关系的完整性
数据完整性是指:关系模型中数据的正确性与一致性。
关系模型一般定义三类完整性约束:实体完整性,参照完整性和用户自定义完整性约束。
1.实体完整性:
要求关系的主码具有唯一性且主码中的每一个属性不能取空值。
2.参照完整性:
若属性(或属性组)F是基本关系R的外码,他与基本关系S的主码K相对应(基本关系R和S也可以是同一个关系),则对于R中每个元组在F上的取值必须为:或取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
【例3-2】 “学生”实体和“系”实体可以用下面的关系表示,其中,主码用下划线标识。
学生(学号,姓名,性别,年龄,系号)
系(系号,系名,系主任)
学生关系的属性“系号”与系关系的主码“系号”相对应,因此,“系号”属性是学生
关系的外码。这里系关系是被参照关系,学生关系为参照关系;学生关系中的每个元组的“系
号”属性只能取下面两类值:空值或系关系中“系号”已经存在的值。
【例3-3】学生关系的自身参照,其中,主码用下划线标识。
学生(学号,姓名,性别,年龄,系号,班长学号)
学生关系的“班长学号”与其主码“学号”形成参照和被参照的自身参照关系,即“班
长学号”为学生关系的外码。学生关系中的每个组的“班长学号”属性只能取下面两类值:
空值或学生关系中“学号”已经存在的值。
3.用户自定义完整性:
由用户自行对数据库中的数据进行规定,也称为域完整性规则。
通过这些规则使数据库只接受符合完整性的约束条件的数据。