1.3.3 关系完整性

1.3.3 关系完整性

关系模型对数据都具有一定的限制,这种限制称为关系完整性或关系完整性约束。

关系完整性可以防止数据库中存在不符合语义的数据,限制错误的或不合法的数据输入到数据库中。

1.实体完整性

实体完整性是对关系中元组的唯一性约束,关系中的主关键字可以标识每个元组,所以实体完整性约束实质上是对关系中主关键字的约束,即关系的主关键字不能是空值(NULL)且不能重复,所谓空值就是“不知道”或“无意义”的值,一般指没有输入任何值。

在关系数据库管理系统中,一个关系只能有一个主关键字,设置主关键字后,系统会自动进行实体完整性检查。

2.自定义完整性

自定义完整性是针对关系数据库指定属性的约束条件,其作用是将某些属性的值限制在指定的定义域内。

在关系数据库管理系统中,系统提供了自定义完整性的定义和检验机制,对超出定义域的数据系统会给出提示,防止非法的数据输入数据库中。

3.参照完整性

参照完整性是对相关联的两个或多个关系之间的约束,由外部关键字引起,也就是外部关键字的约束,要求外部关键字可以取参照关系中主关键字的值或者为空,外部关键字的值可以重复,但不能取参照关系中主关键字中不存在的值。

在数据库管理系统中,系统提供了设置参照完整性的环境和手段,对不符合的数据,系统会自动检验并提示用户重新输入。

任务1.3 以学生关系和成绩关系为例,建立两关系的实体完整性,建立学生关系中“性别”自定义完整性,成绩关系中“成绩”的自定义完整性,以及建立两关系的参照完整性。

解答:

(1)建立学生关系完整性,设置“学号”为主关键字;建立成绩关系完整性,设置“学号”与“课程编号”为组合主关键字,设置主关键字后,系统自动检验,主关键字不能为空值,也不许重复。

(2)建立学生关系中“性别”自定义完整性,“性别”取值只能是“男”或“女”;建立成绩关系中“成绩”的自定义完整性,成绩只能输入大于等于0小于100的数字。建立自定义完整性后,如果输入错误的数据,系统会自动检验并提示用户。

(3)建立两关系的参照完整性:以“学号”为学生关系与成绩关系的公共属性,建立学生关系和成绩关系的连接,则向成绩关系添加元组时,其学号必须是学生关系中已存在的学号,也就是说,必须先输入该学号的学生记录,才能输入该学生的成绩记录。