一文看懂 关系模型-完整性约束

        关系模型中有三类完整性约束:实体完整性参照完整性用户自定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束,被称为关系的两个不变性,由关系系统自动支持

      实体完整性详解:

        若属性A是基本关系R的主属性,则A不能取空值。那么什么是主属性呢!

        例如,学生表中(学号、姓名、所在系)“学号”为主码,则学号取值唯一,并且不能为空。        

        如果主码由若干属性组成,例如,选课表中(学号、课程号、成绩、班级)“学号、课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。

        具体说明如下:

        1.实体完整性约束是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。例如,“学生”关系对应学生的集合。

        2.现实世界中的实体是可区分的,即它们具有某种唯一性的标识。例如,每个学生都是独立的个体,是不同的。

        3.关系模型中以主码作为唯一性标识。

        4.主码的属性不能为空,如果为空,即说明存在某个不可标识的实体,与2矛盾。

      参照完整性详解:

        现实世界中的实体之间往往存在着某种联系,在关系模型中实体及实体间的联系都是用关系来描述的,这样就自然存在着关系与关系间的引用。

        如实例所示,“选课”关系中的某些属性的取值需要参考其他关系的属性进行取值。

        具体说明如下:

        若属性F是基本关系R的外码,它与基本关系S的主码K,则对于R中的每个元组在F上的值必须为:

        1.或许取空值(F的每个属性值均为空值),或许等于S中某个元组的主码值

        例如:“学生”关系中“专业”属性为空值是表示该学生还未选取专业。

        那么什么是外码呢!如下图所示:

        “学生”表中,学号为主码,为被参照关系。在“选课”表中,学号为外码,参照“学生”表中的学号,为参照关系。(定义:F是基本关系R的一个或一组属性,但不是R的码,K是基本关系S的主码。如果F与K相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参考关系。)

        注意:参照关系R和S不一定是不同的关系,但被参照关系S的K和关系R的外码F必须定义在同一个域上。

      用户自定义完整性详解:

        定义:用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

        例如,某个属性必须取唯一值,某个非主属性不能取空值等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值