精华内容
下载资源
问答
  • 关系模型的完整性约束The Relational Model is the most popular of the logic data models, and it’s at the basis of SQL databases. 关系模型是最流行的逻辑数据模型 ,它是SQL数据库的基础。 The Relational...

    关系模型的完整性约束

    The Relational Model is the most popular of the logic data models, and it’s at the basis of SQL databases.

    关系模型是最流行的逻辑数据模型 ,它是SQL数据库的基础。

    The Relational Model is based on two simple concepts:

    关系模型基于两个简单的概念:

    • tables

      桌子

    • relations

      关系

    The relational model dates back to 1969 and the work of Edgar F. Codd, an English computer scientist. Although as computer programmers we’re used to look with curiosity at new shiny things, a technology that can be central in everything about computers for 50 years is definitely worth studying.

    关系模型的历史可以追溯到1969年,是英国计算机科学家Edgar F. Codd的工作。 尽管作为计算机程序员,我们习惯于好奇地研究新事物,但50年来,在计算机的所有方面都处于核心地位的技术绝对值得研究。

    The fact that the model is based upon tables makes it very intuitive to use, because we are used to using tables to organize things. Think about an Excel spreadsheet, for example.

    该模型基于表的事实使其使用起来非常直观,因为我们习惯于使用表来组织事物。 例如,考虑一个Excel电子表格。

    With SQL-based databases, like PostgreSQL, Oracle, MySQL, SQLite and MS SQL Server, and many others, the data analyzed using the ER Model can be modeled using the relational model and be almost immediately transformed into a SQL database format, which can be considered a real-world implementation of the relational model, but we’ll talk about this in other posts.

    对于基于SQL的数据库,例如PostgreSQL,Oracle,MySQL,SQLite和MS SQL Server等,可以使用关系模型对使用ER模型分析的数据进行建模,并几乎立即将其转换为SQL数据库格式,从而可以被认为是关系模型的实际实现,但我们将在其他文章中讨论。

    In this post I want to talk about the theory and the concepts that the relational model is based upon, not expressed in mathematical terms but what it means in practice.

    在这篇文章中,我想谈谈关系模型所基于的理论和概念,不是用数学术语来表达,而是在实践中意味着什么。

    If you’re a student, you might find that what I write here is not what is written on your textbook, but maybe you can read it more easily to grasp the more formal concepts expressed in your learning material.

    如果您是学生,您可能会发现我在这里写的不是您教科书上写的,但也许您可以更轻松地阅读它,以掌握学习材料中表达的更正式的概念。

    桌子 (Tables)

    In a relational model, a table is a collection of items.

    在关系模型中, 是项目的集合。

    It is organized in rows and columns:

    它按行和列进行组织:

    Name Age
    Flavio 36
    Roger 7
    Syd 6
    名称 年龄
    弗拉维奥 36
    罗杰 7
    赛德 6

    元组 (Tuples)

    Each entry in the table is called a tuple. You can also use the terms record or row.

    表中的每个条目称为元组 。 您还可以使用术语recordrow

    A tuple represents a row of the table, like this:

    元组代表表的一行,如下所示:

    Flavio 36
    弗拉维奥 36

    属性 (Attributes)

    An attribute is one single item in the tuple.

    属性是元组中的一项。

    In this example:

    在此示例中:

    Flavio 36
    弗拉维奥 36

    “Flavio” is an attribute. 36 is another attribute.

    “ Flavio”是一个属性。 图36是另一个属性。

    元组是唯一的 (Tuples are unique)

    Every tuple in the table is unique.

    表格中的每个元组都是唯一的。

    In the relational model, we can’t have duplicate data, meaning every row in the table must be different in at least one attribute.

    在关系模型中,我们不能有重复的数据,这意味着表中的每一行在至少一个属性上必须不同。

    关系键 (The relation key)

    The thing that ensures a tuple is unique is the relation key.

    确保元组唯一的是关系键

    The key is one attribute that must uniquely identify a tuple.

    关键字是一个必须唯一标识元组的属性。

    If the relation key is a set of attributes, it must be non-redundant. This means that if we remove one of the attributes of the key, the key can’t guarantee its uniqueness.

    如果关系键是一组属性,则它必须是非冗余的 。 这意味着,如果我们删除键的属性之一,则键不能保证其唯一性。

    If more than one keys can be determined, one of those keys will be identified as the primary key.

    如果可以确定一个以上的键,则这些键之一将被标识为主键

    密钥完整性约束 (Key integrity constraint)

    They key attribute(s) of any tuple in the table must never be null, and must never repeat.

    它们在表中任何元组的键属性都不能为null ,也不能重复

    Given a key, we must be able to point to a specific tuple/row without ambiguity.

    给定一个密钥,我们必须能够毫无歧义地指向一个特定的元组/行。

    域约束 (The domain constraints)

    Every attribute has rules about what value it can hold.

    每个属性都有关于它可以保持什么值的规则

    If we decide to store numbers, we can’t store strings, for example. And we might decide to not store strings longer than 10 characters for names.

    例如,如果决定存储数字,则不能存储字符串。 并且我们可能决定不存储长度超过10个字符的字符串作为名称。

    We can also call this type.

    我们也可以称这种类型

    参照完整性约束 (The referential integrity constraint)

    If a table contains reference to a secondary table, or other tuples in the same table, then we must abide to rules that prevent the reference to break.

    如果一个表包含对辅助表或同一表中其他元组的引用,则我们必须遵守防止引用中断的规则。

    In particular, we must avoid breaking the reference by:

    特别是,我们必须避免通过以下方式破坏引用:

    • avoiding deleting or editing the primary key of the record that we point to, in the other table.

      避免在另一个表中删除或编辑我们指向的记录的主键。
    • avoid inserting a new record with a non-existing key to point to in the other table.

      避免插入一个不存在的键指向另一个表中的新记录。
    • avoid changing the key of the record we point to, without ensuring that the new key exists in the other table.

      避免更改我们指向的记录的键,而不必确保新键在另一个表中存在。

    A DBMS (Data Base Management System) will implement measures to help us implement referential integrity.

    DBMS(数据库管理系统)将采取措施来帮助我们实现参照完整性。

    翻译自: https://flaviocopes.com/relational-model/

    关系模型的完整性约束

    展开全文
  • 关系模型的完整性约束

    千次阅读 2018-07-29 00:11:11
    关系模型的完整性规则是对关系的某种约束条件。关系的完整性约束分为三类: 实体完整性:关系必须有主键,且不能为空; 参照完整性:维护实体之间的引用关系,外键可以为空,或者其值为参照关系对应的主键值; ...

    关系模型的完整性规则是对关系的某种约束条件。关系的完整性约束分为三类:

    实体完整性:关系必须有主键,且不能为空;

    参照完整性:维护实体之间的引用关系,外键可以为空,或者其值为参照关系对应的主键值;

    用户定义的完整性:由应用环境决定,针对具体关系数据库的约束条件。

    展开全文
  • 关系模型中设计表时的约束条件

    千次阅读 2019-02-26 15:27:19
    关系模型中设计表时的约束条件 一、介绍 关系模型是目前最重要的也是应用最广泛的数据模型。简而言之,关系就是一张二维表,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系 设计...

    关系模型中设计表时的约束条件

    一、介绍

    • 关系模型是目前最重要的也是应用最广泛的数据模型。简而言之,关系就是一张二维表,由行和列组成。关系模型将数据模型组织成表格的形式,这种表格在数学上称为关系

    • 设计表时,可对表中的一个字段或多个字段的组合设置约束条件,不满足约束条件的数据将被数据库管理系统拒绝录入。约束分为表级约束和字段级约束,表级约束是对表中几个字段的约束,字段级约束是对表中一个字段的约束

    二、常见的约束形式

    • 1.主键约束

      • 主键用来保证表中每条记录的唯一性,因此在设计数据库表时,建议为所有的数据库表都定义一个主键,用于保证数据库表中记录的唯一性。一张表只允许设置一个主键,这个主键可以是一个字段,也可以是一个字段组合。单个字段作为主键时,使用字段级约束;用字段组合作为主键时,则使用表级约束。在录入数据的过程中,必须在所有的主键字段中输入数据,即任何主键字段的值不允许为 null 。如果不在主键字段中输入数据,或输入的数据在表中已经存在,则这条记录将被拒绝。可以在创建表时创建主键,也可以对表中已有的主键进行修改或者增加新的主键
    • 2.外键约束

      • 外键约束主要用于定义表于表之间的某种关系,对于表 A 来说,外键字段的取值是 null,或者是来自于表 B 的主键字段的取值,表 A 与表 B 必须存放在同一关系型数据库中。外键字段所在的表称为子表,主键字段在的所在的表称为父表,父表与子表之间通过外键字段建立起了外键约束关系,即表 A 称为表 B 的子表,表 B 称为表 A 的父表。子表与父表之间的外键约束关系如下:

        • 如果子表的记录 “参照” 了父表的某条记录,则父表中该记录的删除(delete)或修改(update)操作可能以失败告终

        • 如果试图直接插入(insert)或者修改(update)子表的 “外键值”,子表中的 “外键值” 必须是父表中的 “主键值” 或者 null,否则插入(insert)或者修改(update)操作失败

    • 3.非空约束

      • 如果在一个字段中允许不输入数据,可以将该字段定义为 null,如果在一个字段中必须输入数据,则应当该字段定义为 not null。如果设置某个字段的非空约束,直接在该字段的数据类型后面加上 not null 关键字即可
    • 4.唯一性约束

      • 如果一个字段值不允许重复,则应当对该字段添加唯一性约束(unique)。与主键约束不同,一张表中可以存在多个唯一性约束。如果设置某个字段的唯一性约束,直接在该字段的数据类型后面加上 unique 关键字即可
    • 5.默认约束

      • 默认值字段用于指定一个字段的默认值,当尚未在该字段中输入数据时,该字段中将自动填入这个默认值。如果设置某个字段的默认值约束,直接在该字段的数据类型后面加上 “default 默认值” 即可
    • 6.检查约束

      • 检查(check)约束用于检查字段的输入值是否满足指定的条件,在表中输入或者修改记录时,如果不符合检查约束指定的条件,则数据不能写入该字段
    • 7.自增约束

      • 自增(AUTO_INCREMENT)约束是 MySQL 唯一扩展的完整性约束,当向数据库表中插入新记录时,字段上的值会自动生成唯一的 ID。在具体设置自增约束时,一个数据库表中只能有一个字段使用该约束,该字段数据类型必须是整型类型。由于设置自增约束后的字段会生成唯一的 ID,所以该字段也经常会被设置为主键
    • 8.删除约束

      • 在 MySQL 数据库中,一个字段的所有约束都可以用 alter table 命令进行删除
    展开全文
  • 关系模型的完整性规则是对关系的某种约束,提供一种手段来保证用户对数据库的修改时不会破坏数据库中数据的完整性。保证数据是有意义的。 关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性...
        

    概述

    数据完整性指数据库中数据的正确性、相容性和一致性。包括现实世界中的应用需求的完整性。数据的完整性由完整性规则来定义。

    关系模型的完整性规则是对关系的某种约束,提供一种手段来保证用户对数据库的修改时不会破坏数据库中数据的完整性。保证数据是有意义的。

    关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由DBMS自动支持

    实体完整性约束(Entity Integrity Constraint)

    此约束指关系的主属性,主码不能为空,在关系数据库系统中,一个关系对应一张表,实体完整性指在数据存储数据的表中,主键/码不能取控值 NULL

    参照完整性约束 (Referential Integrity Constraint)

    现实世界中实体之间往往存在某种联系,在关系模型中这种联系通过关系来描述

    参照完整性约束就说定义外码和主码之间的引用规则,是对关系间引用数据的一种限制。若属性(属性组)X 是基本关系 R 的外码,它与基本关系 S 的主码 Y 对应,那么 R 中每个元组在 F 上的值要么取 NULL,要么等于 S中对应元组的主码值。 R 和 S 可以是不同的关系,也可以是同一关系。

    如:

    教师(职工号,姓名,性别,系编号)
    系(系编号,系名,办公地点)
    

    上述两个关系之间存在属性的引用,系编码既是 关系的主码又是教师关系的外部码。那么教师 关系中系编码属性的取值需要参照 关系中系编码的值或为 NULL。

    用户定义完整性约束 (User-defined Integrity constraint)

    此约束针对某一应用环境的完整性约束条件,反映了某一具体应用所涉及的数据应满足的要求。关系模型提供定义和检验的机制,此类规则一般在建立数据库表的同时进行定义,如果某些条件未建立在库表一级,则应在各个模块的具体编程中通过程序进行检查和控制。

    关系模型完整性约束检验 重点

    在对数据库进行修改时须检验是否满足对上述三类完整性约束

    插入操作

    首先检查实体完整性约束,检查插入行在主码属性上的值是否已存在,不存在,可以执行插入,否则不可插入。再检查参照完整性约束,如果是向被参照关系插入,则不需要考虑此约束;如果向参照关系插入,则检查插入行在外码属性上的值是否已在相应被参照关系的主码属性中存在,存在,可插入,否则不可插入,或者将插入行的外码属性的值改为NULL,再插入,最后检查自定义完整性约束,包括数据的类性、精度、取值范围、是否允许空值、是否有默认值等,满足即可执行插入操作,否则给出错误信息。

    删除操作

    一般只需对被参照关系检查参照完整性约束。如果主键被引用则不可删,或将参照关系中对应行的外码属性改为为NULL,再删除

    更新操作

    结合删除 和 插入操作,先删除再插入。

    展开全文
  • 关系:是用于描述数据一张二维表,组成表行称为元组,组成表列称为属性。 • 域(Domain):指列(或属性)取值范围。 • 候选键(Candidate Key):也称为候选码。能唯一标识关系中每一个元组...
  • Default设定 表定义时设定default create table pub( pub_id char(4) not null, pub_name varchar(40) null, city varchar(20) default 'Pasa', state char(2) default 'CA') SQL中字符型数据必须用单引号...
  • 数学上,把一系列域上笛卡尔积子集称之为关系 eg: (1)examinee表 每个行列单元都是不能再分原子值; 不允许重复出现完全相同行; 每个行列单元都是不能再分原子值; 行列次序无要求,但是不能出现重复...
  • 数据库关系模型的三类完整性约束

    千次阅读 2019-02-25 10:12:10
    关系模型中有三类完整性约束,分别是:实体完整性,参照完整性,用户定义完整性 实体完整性 定义:实体完整性是用于保证关系数据库中每个元组都是可区分,唯一。 它意思就是说数据表中每一行都应该有办法...
  • 一、实体完整性(要求有唯一健) ...二、参照完整性(外键参照)(引用完整性约束) 参照完整性要求关系中不允许引用不存在实体。设定相应更新删除插入规则来更新参考表。 例如表sutdent(有i...
  • 关系模型的组成: 数据结构(表结构)+关系操作(八个操作)+完整性约束(三个完整性) 实体完整性 在关系表中,所有元组主码的值都不能为空。 参照完整性 在关系模型中,采用给关系定义外键的形式进行关系间属性...
  • MySQL支持关系模型中、和三种不同完整性约束答:实体完整性;列完整性\n\n\n\n参照完整性;实体完整性\n\n\n\n用户定义完整性;参考完整性“三农”问题是指( )答:农业问题 农村问题 农民问题关系模式候选码...
  • 数据的完整性约束(因数据模型的不同而不同) 关系数据模型的基础概念 关系:用来描述数据以及数据之间的联系,俗称表 列:字段、属性、数据项、成员 行:元组或记录 域:列的取值范围 关系模式:对关系的...
  • 数据完整性 要想了解这三类完整性约束首先要了解什么是数据完整性。数据完整性是指数据库中存储数据是有意义或正确,和现实世界相符。...实体完整性和参照完整性是关系模型必须满足完整性约束...
  • 利用循环一致性约束,将两两模型的映射关系转化为三维模型簇的多路对应关系。实验结果表明,本算法在一定程度上减小了三维模型间对应关系的等距误差,不仅可以实现两个模型间的对应关系计算,还适用于计算等距或近似...
  • 3.4 关系模型的完整性约束 数据完整性是指数据库中存储的数据是有意义的或正确的。关系模型中的数据完整性规则是对关系的某种约束条件。它的数据完整性约束主要包括三大类:实体完整性、参照完整性和用户定义的完整...
  • 关系模型=关系数据结构+关系操作集合+关系完整性约束 关系数据结构:关系、关系模式、关系数据库 关系 关系也是一个二维表,表每行对应一个元组,表每列对应一个域,每一列称为一个属性,不同属性要给予...
  • 关系模型关系模型

    2016-10-15 11:11:00
    关系模型研究的内容 一个关系就是一个Table,关系模型就是处理...定义表的约束与操作的约束 关系模型三要素 基本结构 (Table) 基本操作(U、-、X、σ、π、÷、∩) 完整性约束(实体完整、参照完整、用户...
  • 关系模型(RM)将数据库表示为关系集合。关系不过是一张数据值表,表中每一行代表一组相关数据值。表中这些行表示现实世界实体或关系。 表名和列名有助于解释每一行中值含义,数据表示为一组关系。在关系...
  • 3.5.3关系模型的数据结构、操纵和约束 关系是一种数学理论,运用这种理论所得到的逻辑模型称关系模型,关系模型由关系数据结构、关系操纵及关系约束三部分组成。 1 关系数据结构 (1)表结构关系模...
  • 关系模型

    千次阅读 2018-07-11 18:31:41
    关系模型 关系模型组成的三要素 ...关系模型的完整性规则是对关系的某种约束条件 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动...
  • 我们知道,一种数据模型必须包含三个基本部分:构造机制(数据结构):主要描述数据类型、内容、性质以及数据间联系等。...作为数据库一种数据模型,关系模型提供了一组完整性规则或限制。完整性...
  • 关系模型由关系模型的数据结构、关系模型的操作集合和关系模型的完整性约束三部分组成,这三部分也称为关系模型的三要素。 数据结构 关系数据模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中称为...
  • 关系模型的组成

    2019-06-19 19:12:56
    关系模型由关系数据结构、(关系操作集合)和(关系完整性约束)三部分组成。
  • 1、实体完整性:所谓实体完整性就是指关系(所谓的关系就是表)主码不能取空值; 比如学生表主码通常是取学号为主码 2、参照完整性:是指参照关系中每个元素外码要么为空(NULL),要么等于被参照关系中某个元素...
  • 关系模型关系模型里的基本概念术语对比用关系模型描述事件或行为关系数据模型的操纵2.数据库系统的三级模式结构3.关系的三类完整性约束外码**实体完整性****参照完整性****用户定义的完整性** 0.学习前言 数据库技术...
  • 关系模型的数据结构非常简单,只包含单一的数据结构---关系 关系有3种类型:基本关系(通常又称基本表或者基表)、查询表和视图表 1、基本表示实际存在的表,是实际存储数据的逻辑表示 2、查询表是查询结果对应的...
  • 关系模型的基本概念

    千次阅读 2019-05-03 12:21:24
    一、关系模型的三要素: 关系数据结构:关系模型中只包含单一的数据结构----关系,在用户看来关系模型中数据的逻辑结构是一张扁平的二维表 关系操作(操作对象和结果都是集合): 查询:选择、投影、连接、并、...
  • 为了增强和丰富基本E-R模型的表达能力。 进行了哪些扩展?我们介绍主要的3种扩展: ISA联系 基数约束 PART-OF联系 1.ISA联系 有的实体型是某个实体型的子类型,这种父类0子类的联系称为ISA联系,表示is a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,435
精华内容 974
关键字:

关系模型的约束