完整性描述

引用完整性
引用完整性指被引用表中的主关键字和引用表中的外部主关键字

之间的关系。如被引用行是否可以被删除等。

在现实生活中的实体之间总是存在着某种联系,在关系模型中实

体与实体之间的联系都是用关系来描述的,这样就存在关系与关

系之间的引用。例如,有学生实体和班级两个实体集合:

学生(学号,姓名,性别,年龄,班级编号)其中学号为主码。

班级(班级编号,学生数量,班主任姓名),其中班级编号为主

码。

这两个关系之间存在着属性的引用,即学生关系引用了班级关系

的主关键字"班级编号",显然,学生关系中的"班级编号"值必须

是在班级表中确实存在的班级的班级编号,即班级关系中有该班

级的记录。这说明学生关系中某个属性的取值要参照班级关系的

属性取值。

在这种情况下,"班级编号"不是学生关系的主关键字,但是却是

班级关系的主码,则称"班级编号"是学生关系的外关键字。

外关键字的定义:

设FK是基本关系R的一个或一组属性,但不一定是关系R的主关键

字。如果FK与基本关系S的主关键字相对应,则称FK是基本关系R

的外关键字,并称基本关系R为引用关系,基本关系S为被引用关

系。

在上例中,"班级编号"是学生关系的外关键字,学生关系是引用

关系,班级关系是被引用关系。

引用完整性就是定义外关键字与主关键字之间的引用规则。如果

要删除被引用的对象,那么也要删除引用它的所有对象,或者把

引用值设置为空(如果允许的话)。例如,前面的学生和班级关系

中,删除某个班级元组之前,必须先删除相应的引用该班级的学

生元组。这就是引用完整性。

图3-1,综合了三种关系数据的完整性。由图中可以看到,实体

完整性是对应元组或行而言域完整性是对应属性或列而言,引用

完整性是对不同表之间的属性或列的引用关系而言。

实体完整性指表中行的完整性。要求表中的所有行都有唯一的标

识符,称为主关键字。主关键字是否可以修改,或整个列是否可

以被删除,取决于主关键字与其他表之间要求的完整性。

实体完整性规则规定基本关系的所有主关键字对应的主属性都不

能取空值,例如,学生选课的关系选课(学号,课程号,成绩)

中,学号和课程号共同组成为主关键字,则学号和课程号两个属

性都不能为空。因为没有学号的成绩或没有课程号的成绩都是不

存在的。

对于实体完整性,有如下规则:

· 实体完整性规则针对基本关系。一个基本关系表通常对应一

个实体集,例如,学生关系对应学生集合。

· 现实世界中的实体是可以区分的,它们具有一种唯一性质的

标识。例如,学生的学号,教师的职工号等。

在关系模型中,主关键字作为唯一的标识,且不能为空。

域完整性
域完整性指列的值域的完整性。如数据类型、格式、值域范围、

是否允许空值等。

域完整性限制了某些属性中出现的值,把属性限制在一个有限的

集合中。例如,如果属性类型是整数,那么它就不能是101.5或

任何非整数。

用户自定义完整性
用户自定义完整性指针对某一具体关系数据库的约束条件,它反

映某一具体应用所涉及的数据必须满足的语义要求。 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值