当前位置:文档之家› 关系模型的完整性约束

关系模型的完整性约束

关系模型的完整性约束
关系模型的完整性约束是对关系中数据的约束,其目的是保证在对关系中的数据进行操作时保持数据的有效性和一致性。

关系模型中包括了3类完整性约束,即实体完整性、参照完整性和用户定义的完整性。

1.实体完整性
实体完整性(Entity Integrity Constraint)规则:若属性A是关系R的主属性,则属性A的值不能为空值。

实体完整性规则具体说明如下:
(1)使用“Null”表示空值,表示的不是空格值,而是表示“不知道”、“不存在”或“无意义”的值。

(2)实体完整性规则是针对基本关系的。

一个基本表通常对应现实世界的一个实体集。

(3)实体完整性规则可以保证实体是可区分的。

如果主属性取空值Null,就表明实体集中存在不可标识的实体,即存在不可区分的实体,这显然违背了现实世界。

(4)实体完整性规则可以保证实体的唯一性。

关系中使用主码作为唯一性标识,因此,不允许主码中的属性出现重复值。

例如,学生档案表中的学号是主属性,学号属性不允许为空值,而其他属性,如“性别”为空,则仅仅表明该学生的这些特征值还不清楚,但不影响该元组所表达的意义和它所具有的唯一性。

2.参照完整性
参照完整性(Referential Integrity Constraint)规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K s相对应(基本关系R和S可以是不同的关系),则对于关系R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于关系S
中某个元组的主码值。

例如,有学生档案、专业两个关系,其关系模型表示如下:
学生档案(学号,姓名,性别,年级,专业编号)
专业(专业号,专业名称,所属学院)
(1)外码和参照关系
设F是基本关系R的一个或一组属性,但不是关系R的码。

如果F与基本关系S的主码K s相对应,则称F是基本关系R的外码(Foreign Key),并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Referenced Relation)。

需要说明的是,R的外码F与S的主码K s必须来自于同一个域。

例如,专业关系的专业号与学生档案的专业编号相对应,因此专业编号是学生档案关系的外码。

同时,学生档案关系是参照关系,而专业关系是被参照关系。

(2)参照完整性规则
上例中,专业编号是学生档案关系的外码,它的值将参照专业关系的主码(专业号)属性。

它的取值只能是:
●空值:表示该学生至今还未分配专业;
●非空值:该值只能来自于专业关系的专业编号属性中的某一个值。

3.用户定义的完整性
用户定义的完整性(User-Defined Integrity Constraint)是针对某一具体关系数据库的约束条件,它反映的是某一具体应用所涉及的数据必须满足的语义要求。

数据库管理系统(DBMS)都应该提供定义和检验这类完整性机制,以便统一检验和处理这种约束,而不再由应用程序来提供这个功能。

例如,人员的“性别”属性的取值只能是“男”或“女”,“成绩”属性的取值范围在0~100之间。

因此,当用户向关系表中输入数据时,如果某个属性定义了约束,数据库管理系统(DBMS)会自动检测输入值是否符合约束条件,若不符合,数据库管理系统(DBMS)会拒绝该值的输入,从而保证了数据输入的合理性。

相关主题