精华内容
下载资源
问答
  • 关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由DBMS自动支持 实体完整性约束(Entity Integrity Constraint) 此约束指关系的主...
        

    概述

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

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

    关系模型分三类约束:实体完整性约束、参照完整性约束和用户自定义完整性约束。 前两者是必须满足的条件,称作关系的两个不变性。由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,再删除

    更新操作

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

    展开全文
  • 关系模型的数据结构非常简单,只包含单一的数据结构---关系 关系有3种类型:基本关系(通常又称基本表...前面说了,关系完整性包括3个方面:实体完整性、参照完整性和用户定义完整性(前2个是任何关系数据库系...

    关系模型的数据结构非常简单,只包含单一的数据结构---关系

    关系有3种类型:基本关系(通常又称基本表或者基表)、查询表和视图表

    1、基本表示实际存在的表,是实际存储数据的逻辑表示

    2、查询表是查询结果对应的表

    3、视图表是由基本表或者其他视图表导出的表,续表,不对应实际存储的数据。

     

    前面说了,关系完整性由包括3个方面:实体完整性、参照完整性和用户定义完整性(前2个是任何关系数据库系统必须支持的,也是关系模型必须满足的,被称为2个不变性)

    1、实体完整性

    指一个或者一组属性A是基本关系R的主属性,那么A不能为空。(为空说明该实体不可标志,不可区分,实体不完整)

    2、参照完整性

    若属性F是基本关系R的外码(外键),它与基本关系S的主码K对应(R和S不一定是不同的关系),对于R中每个元组在F上的值必须为空或者是S上某个元组的主码值

    3、用户定义完整性

    针对某一具体关系数据库的约束条件,反映某一具体的应用所涉及的数据必须满足的定义。如:某个非主属性也不能为空,某个属性必须取惟一值等。

     

    关系代数:

    是一种抽象查询语言,,用对关系的运算来表达查询。

    传统的集合运算

    并(Union)、差(Except)、交(Intersection)、笛卡尔积(Cartestion Product)

    专门关系运算

    选择(Selection)、投影(Projection)、连接(Join)、除运算(Division)

     

    展开全文
  • 完整性约束

    2018-11-30 18:45:00
    完整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,其中域完整性,实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。 域完整性 是指表中的列必须满足某种特定的数据类型约束,其中...

    域完整性、实体完整性、参照完整性、用户定义完整性

    关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。如果数据不正确,那么一开始就不应该添加到表中。

    完整性通常包括域完整性,实体完整性、参照完整性和用户定义完整性,其中域完整性,实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。

    域完整性

    是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。

    实体完整性

    实体完整性要求每个表都有唯一标识符,每一个关系(表)中的主键字段不能为空或者重复的值。

    一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也就是说它们应该具有某种惟一性标识。在关系模式中,以主关键字作为惟一性标识,而主关键字中的属性(称为主属性)不能取空值,否则,表明关系模式中存在着不可标识的实体(因空值是“不确定"的),这与现实世界的实际情况相矛盾,这样的实体就不是一个完整实体。按照实体完整性规则要求,主属性不得取空值,如主关键字是多个属性的组合,则所有主属性均不得取空值。

    如员工表将编号作为主关键字,那么,该列不得有空值,否则无法对应到某个具体的员工,这样的表格不完整,对应关系不符合实体完整性规则的约束条件。

    参照完整性

    参照完整性要求关系中不允许引用不存在的实体。需设定相应的更新删除插入规则来更新参照表。参照完整性的定义建立在关系之间联系的主关键字与被外部关键字引用的约束条件下。

    关系数据库中通常都包含多个存在相互联系的关系,关系与关系之间的联系是通过公共属性来实现的。所谓公共属性,它是一个关系R(称为被参照关系或目标关系)的主关键字,同时又是另一关系K(称为参照关系)的外部关键字。参照关系K中外部关键字的取值,要么与被参照关系R中某元组主关键字的值相同,要么取空值,那么,这两个关系间建立关联的主关键字和外部关键字引用,符合参照完整性规则要求。如果参照关系K的外部关键字也是其主关键字,根据实体完整性要求,主关键字不得取空值,因此,参照关系K外部关键字的取值实际上只能取相应被参照关系R中已经存在的主关键字值。

    在学生管理数据库中,如果将选课表作为参照关系,学生表作为被参照关系,“学号”作为两个关系进行关联的属性,则“学号"是学生关系的主关键字,是选课关系的外部关键字。选课关系通过外部关键字“学号”参照学生关系。如果学生表中删除一行,那么选课表也应该删除对应的行或者置空这一行,如果“学号"同时也是选课表的主键,那么,根据实体完整性约束,选课表只能删除对应的行,而不能置空。

    用户定义完整性

    实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。

    用户自定义完整性是针对某一具体关系数据库的约束条件,他反应某一具体应用所涉及的数据必须满足的语义要求。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性约束等。

    也就是说,某个表,你设置这一列为null,not null,default,check等。包括:非空约束、唯一约束、检查约束、主键约束 、外键约束。

    ① 非空约束(Not Null Constraint) 就是有些列不能设置为空。

    ② 唯一约束(Unique Constraint)直接在字段定义后加入UNIQUE即可定义唯一约束。UNIQUE 约束唯一标识数据库表中的每条记录。

    ③ 检查约束(The Check Clause) 通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其满足特定的要求。

    ④ 主键约束(Primary Key Constraint) 其实主键约束就是一张表只能建立一个主键约束,其实就是唯一约束+非空约束。

    ⑤ 外健约束( Foreign Key Constraint) Foreign Key Constraint主要是确保同一个表或者不同表之间的引用完整性。

    ✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍扩展阅读✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍

    UNIQUE KEY、UNIQUE约束、UNIQUE索引、PRIMARY KEY

    UNIQUE KEY 也就是UNIQUE约束,是一个唯一非聚集索引。

    UNIQUE索引包含了UNIQUE约束,因为UNIQUE约束是通过UNIQUE索引实现的。为了实现唯一约束,数据库会强制定义一个唯一索引在数据库上面。

    PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

    每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。主键字段不允许为NULL ,UNIQUE允许为NULL。UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

    三者相同点

    保证了往表中插入重复列值的操作都会失败。

    三者的区别

    区别在于建立和删除上,索引是使用 create/drop index 创建和删除的。

    --oracle
    --创建索引、删除索引
    Create index student_id on student(stu_id);
    Drop index student_id;
    

    约束是使用 alter table tb add constraint 建立,使用 alter table tb drop constraint 删除 。

    --oracle
    --创建、删除唯一性约束
    Alter table student add constraint student_id unique(stu_id); 
    Alter table student drop constraint student_id;

    主键使用alter table tb add constraint……primary key创建,使用alter table tb drop primary key删除。

    --oracle
    --创建主键、删除主键
    Alter table student add constraint student_id primary key(stu_id);
    Alter table student drop primary key;

    ✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍扩展阅读✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍

     

    转载于:https://www.cnblogs.com/wangrui1587165/p/9982702.html

    展开全文
  • 本节书摘来自华章出版社《数据库原理与应用(第3版)》一 书中的第3章,第3.4节,作者:何玉洁,更多章节内容可以访问云栖社区“华章...它的数据完整性约束主要包括三大类:实体完整性、参照完整性和用户定义的完整...

    本节书摘来自华章出版社《数据库原理与应用(第3版)》一 书中的第3章,第3.4节,作者:何玉洁,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

    3.4 关系模型的完整性约束

    数据完整性是指数据库中存储的数据是有意义的或正确的。关系模型中的数据完整性规则是对关系的某种约束条件。它的数据完整性约束主要包括三大类:实体完整性、参照完整性和用户定义的完整性。

    3.4.1 实体完整性

    实体完整性是保证关系中的每个元组都是可识别的和唯一的。
    实体完整性是指关系数据库中所有的表都必须有主键,而且表中不允许存在无主键值的记录和主键值相同的记录。
    因为若记录没有主键值,则此记录在表中一定是无意义的。由于关系模型中的每一行记录都对应客观存在的一个实例或一个事实。比如,表3-1中的第一行数据描述的就是“李勇”这个学生。如果将表3-1中的数据改为表3-6所示的数据,可以看到,第1行和第3行数据没有主键值,查看其他列的值发现这两行数据的其他各列的值都是一样的,这会产生这样的疑问:到底是在计算机系中存在名字、年龄、性别完全相同的两个学生,还是重复存储了李勇学生的信息?这就是缺少主键值时造成的情况。如果为其添加主键值为表3-7所示数据,则可以判定在计算机系有两个姓名、年龄、性别完全相同的学生。如果为其添加主键值为表3-8所示数据,则可以判定在这个表中有重复存储的记录,而在数据库中存储重复的数据是没有意义的。
    screenshot

    当在表中定义了主键时,数据库管理系统会自动保证数据的实体完整性,即保证不允许存在主键值为空的记录以及主键值重复的记录。
    关系模型中使用主键作为记录的唯一标识,在关系数据库中主属性不能取空值。关系数据库中的空值是特殊的标量常数,它代表未定义的(不适用的)或者有意义但目前还处于未知状态的值。比如当向表3-2所示的“选课”关系中插入一行记录时,在学生还没有考试之前,其成绩是不确定的,因此,我们希望此列上的值为空。空值用“NULL”表示。
    3.4.2 参照完整性
    参照完整性也称为引用完整性。现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用。参照完整性就是描述实体之间的联系的。
    参照完整性一般是指多个实体或表之间的关联关系。
    例3-1 学生实体和班实体可以用下面的关系模式表示,其中主键用下划线标识:
    学生(学号,姓名,性别,班号,年龄)
    班(班号,所属专业,人数)
    这两个关系模式之间存在着属性的引用,即“学生”关系中的“班号”引用了“班”关系的主键“班号”。显然,“学生”关系中的“班号”的值必须是确实存在的班的班号的值,即在“班”关系中有该班号的记录。也就是说,“学生”关系中的“班号”的取值参照了“班”关系中的“班号”的取值。这种限制一个关系中某列的取值受另一个关系中某列的取值范围约束的特点就称为参照完整性。
    例3-2 学生、课程以及学生与课程之间的选课关系可以用如下三个关系模式表示,其中主键用下划线标识:
    学生(学号,姓名,性别,专业,年龄)
    课程(课程号,课程名,学分)
    选课(学号,课程号,成绩)
    这三个关系模式间也存在着属性的引用。“选课”关系中的“学号”引用了“学生”关系中的主键“学号”,即“选课”关系中的“学号”的值必须是确实存在的学生的学号,也就是在“学生”关系中有这个学生的记录。同样,“选课”关系中的“课程号”引用了“课程”关系中的主键“课程号”,即“选课”中的“课程号”也必须是“课程”中存在的课程号。
    与实体间的联系类似,不仅两个或两个以上的关系间可以存在引用关系,同一个关系的内部属性之间也可以存在引用关系。
    例3-3 有关系模式:职工(职工号,姓名,性别,直接领导职工号)
    在这个关系模式中,“职工号”是主键,“直接领导职工号”属性表示该职工的直接领导的职工号,这个属性的取值就参照了该关系中“职工号”属性的取值,即“直接领导职工号”必须是确实存在的一个职工。
    进一步定义外键:设F是关系R的一个或一组属性,如果F与关系S的主键相对应,则称F是关系R的外键(Foreign Key,也称为外码),并称关系R为参照关系(Referencing Relation),关系S为被参照关系(Referenced Relation)或目的关系(Target Relation)。关系R和关系S不一定是不同的关系。
    显然,目标关系S的主键Ks和参照关系R的外键F必须定义在同一个域上。
    在例3-1中,“学生”关系中的“班号”属性与“班”关系中的主键“班号”对应,因此,“学生”关系中的“班号”是外键,引用了“班”关系中的“班号”(主键)。这里,“班”关系是被参照关系,学生关系是参照关系。
    可以用图3-3所示的图形化方法形象地表达参照和被参照关系。“班”和“学生”的参照与被参照关系的图形化表示如图3-4a所示。
    在例3-2中,“选课”关系中的“学号”属性与“学生”关系中的主键“学号”对应,“课程号”属性与“课程”关系的主键“课程号”对应,因此,“选课”关系中的“学号”属性和“课程号”属性均是外键。这里“学生”关系和“课程”关系均为被参照关系,“选课”关系为参照关系,其参照关系图如图3-4b所示。
    在例3-3中,职工关系中的“直接领导职工号”属性与本身所在关系的主键“职工号”属性对应,因此,“直接领导职工号”是外键。这里,“职工”关系即是参照关系也是被参照关系,其参照关系图如图3-4c所示。

    screenshot
    需要说明的是,外键并不一定要与相对应的主键同名(如例3-3)。但在实际应用中,为了便于识别,当外键与相应的主键属于不同的关系时,一般给它们取相同的名字。
    参照完整性规则就是定义外键与被参照的主键之间的引用规则。
    对于外键,一般应符合如下要求:
    1)或者值为空。
    2)或者等于其所参照的关系中的某个元组的主键值。
    例如,对于职工与其所在的部门可以用如下两个关系模式表示,主键用下画线标识:
    职工(职工号,职工名,部门号,工资级别)
    部门(部门号,部门名)
    其中,“职工”关系的“部门号”是外键,它参照了“部门”关系的“部门号”。如果某新来职工还没有被分配到具体的部门,则其“部门号”就为空值;如果职工已经被分配到了某个部门,则其部门号就有了确定的值(非空值)。
    主键要求必须是非空且不重的,但外键无此要求。外键可以有重复值,这点我们从表3-2可以看出。

    3.4.3 用户定义的完整性

    用户定义的完整性也称为域完整性或语义完整性。任何关系数据库系统都应该支持实体完整性和参照完整性,除此之外,不同的数据库应用系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性就是针对某一具体应用领域定义的数据库约束条件,它反映某一具体应用所涉及的数据必须满足应用语义的要求。
    用户定义的完整性实际上就是指明关系中属性的取值范围,也就是属性的域,即限制关系中的属性的取值类型及取值范围,防止属性的值与应用语义矛盾。例如,学生的考试成绩的取值范围为0~100,或取{优、良、中、及格、不及格}。

    展开全文
  • 关系数据模型的操纵主要包括查询、插入、删除和更新数据,这些操作必须遵循三大完整性约束,分别为: 参照完整性:要求关系中不允许引用不存在的实体 用户自定义完整性:针对某一具体关系数据库的约束条件,它反映...
  • 数据库 完整性约束

    千次阅读 2019-05-24 14:57:42
    数据完整性分为四类: 实体完整性:规定表的每一行在表中是惟一的实体。 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束包括取值范围、精度等规定。 参照完整性:是指两个表的主关键字和外...
  • 数据完整性包括 实体完整性约束完整性约束 参照完整性约束(外键约束(Foreign key)) 用户定义完整性约束 参照完整性 属于表间规则,用来保持表之间的关系,确保插入到表中的数据是有效的。 可以使用外键***...
  • 数据库完整性约束

    千次阅读 2018-09-06 15:18:58
    数据库完整性约束分为以下四类: 1) 实体完整性:规定表的每一行在表中是惟一的实体。指关系的主关键字(primary key)不能重复也不能取空值,因为空值是不确定。 2) 域完整性:是指表中的列必须满足某种特定的数据...
  • 数据库完整性约束

    2014-05-09 14:18:12
    包括限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值定义,非空约束和规则),在当今的关系DBMS中,一般都有域完整性约束检查功能。 实体完整性:  实体完整性
  • 数据库完整性约束1

    2010-05-26 12:31:00
    SQL的安全机制:完整性定义约束,视图... 隐式约束:隐含于数据模型中的完整性约束关系模型的隐式约束有域约束和表约束  域约束即列值域的约束,只能使用CHECK来约束  表约束包括表级约束和列级约束 涉及PRIM...
  • 层次化的数据库对象命名机制一个关系数据库管理系统的实例中可以建立多个数据库一个数据库中可以建立多个模式一个模式下通常包括多个表、视图和索引等数据库对象模式定义CREATE SCHEMA <模式名> AUTHORIZATION...
  • mysql数据完整性

    2019-07-14 17:10:35
    完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值,规则,约束,是否可以为空,域...
  • SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。  SQL语言包含4个部分:  ※ 数据定义语言(DDL),例如:CREATE、DROP、ALTER...
  • 定义数据完整性

    2012-09-21 09:02:00
    关系模型带来的最大优点之一就是模型本身集成了数据完整性。作为模型的一部分而实施的数据完整... 为属性选择的数据类型和是否允许为NULL值,甚至数据模型本身都是声明式数据完整性约束的例子。其他声明式约束包括...
  • MySQL 提供了数据完整性约束,主要包括实体完整性,域完整性和引用完整性。 实体完整性是对关系中的记录进行约束,即对行的约束。 一,主键约束 主键(promary key)用于唯一的标识表中的某一条记录,在两个表的...
  • 实现数据完整性

    2020-05-02 08:51:36
    1、域完整性是对数据表中字段属性的约束包括字段胡值域、字段的类型及字段有效规则等约束,是由确定关系结构时所定义胡字段胡属性决定的。 2、实体完整性,实体完整性即指关系中主属性值不能为null且不能有相同值...
  • 关系模型中有3类完整性约束:域完整性、实体完整性、参照完整性。 1.域(列)完整性 也就是用户定义的表字段的完整性 通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系...
  • 概念结构设计(难点):找到每个功能的实体、属性及关系(要按照数据库范式去划分实体属性范围,同时按照数据完整性要求使用各种约束条件)。主要采用E-R模型进行设计,包括画E-R图 逻辑结构设计:根据E-R图画出...
  • 数据库完整性包括哪三种1、实体完整性实体完整性是对关系中的记录唯一性,也就是主键的约束。...2、域完整性完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的...
  • (5) 数据完整性

    2019-09-25 03:42:55
    MySQL提供了数据完整性约束,主要包括实体完整性,域完整性和引用完整性。 5.1 实体完整性 实体完整性是对关系中的记录进行约束,即对行的约束。此处主要讲解主键约束、唯一约束和自动增长列。 1. 主键约束 主键...
  • 数据完整性包括实体完整性、域完整性、参照完整性 实体完整性:保证数据的非空、唯一、不重复。即要求=每个表中只有一个主键,主键必须唯一且不为空。 例如学籍关系表中的学号必须唯一,且部位空,否则无法对学籍...
  • 是对数据表中的字段属性进行约束,包括字段的值域、字段的类型以及字段的有效规则等约束,域完整性主要包括not null约束,唯一性约束,检查约束。 实体完整性 即指关系中的主属性值不能为null,不能重复。实体完整性...
  • 关系数据库的完整性(理解)

    千次阅读 2020-06-25 11:22:29
    关系数据库的完整性实体完整性参照完整性用户定义完整性 数据库的完整性包括数据的正确性(输入正确,存储正确) 数据的相容性 (符合要求、规则) 举个简单的例子: 学生的学号必须唯一, 性别只能是男或女等等...
  • 数据库完整性

    2021-01-15 21:35:18
    数据库完整性 数据库完整性是指数据的正确性和相容性 ...完整性约束条件也称完整性规则,是数据库中的数据必须满足的语义约束条件。SQL使用了一系列概念来描述完整性,包括实体完整性、参照完整性、用户定义完整性。
  • 约束约束保证数据完整性和一致性约束分为表级约束和列级约束对某一个字段约束成为列级约束针对两个或两个以上字段约束成为表级约束约束类型包括:NOT NULL 非空约束PRIMARY KEY 主键约束UNIQUE KEY 唯一约束...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 316
精华内容 126
关键字:

关系数据完整性约束包括