yw172716

2020-10-15   阅读量: 1141

Mysql

关系型数据库中,关系的完整性有哪几种

扫码加入数据分析学习群

关系模型中有3类完整性约束:域完整性、实体完整性、参照完整性。

1.域(列)完整性

也就是用户定义的表字段的完整性

通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值、规则、约束、是否可以为空,域完整性可以确保不会输入无效的值。比如某个属性的值必须在某个范围内,或者默认为0等,这些就是域(列)完整性,也就是用户定义的完整性。

简单来说就是对表字段的约束。

2.实体(行)完整性

实体完整性是对关系中的记录唯一性,也就是主键的约束。准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。定义表中的所有行能唯一的标识,一般用主键、唯一索引 unique关键字,及identity属性比如说我们的身份证号码,可以唯一标识一个人。

简单来说一个表中的唯一标识列不可为空。主关键字不能取空值或重复的值,如果是多个字段一起组成主键,则这多个字段均不能取空值。

3.参照(引用)完整性

现实世界的实体之间往往存在某种联系,在关系模型中实体与实体见的联系都是用关系来描述的,这样就存在着关系之间的引用。参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。

准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。 参照完整性维护表间数据的有效性、完整性,通常通过建立外键关联另一表的主键,还可以编写2表的触发器来维护参照完整性。

简单来说就是主外键的关系。例如:

这两个表之间存在着属性的引用,即“课程”表引用了“课程类别”表的主键“类型ID”。按照参照完整性规则,“课程”表中每行的“类型ID”属性只能取下面两类值:

1)、空值。表示该课程还未确定类别。

2)、非空值。此时取值必须和“课程类别”表中的“类型ID”值相同,表示这门课程归属该类别。


51.9660 4 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子