实体完整性
若属性A是基本关系R的主属性,则属性A不能取空值;
参照完整性
一、关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用;
-
例子
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)学生关系引用了专业关系的主码“专业号”;学生关系中的“专业号”值必须是确实存在的专业的专业号 ,即专业关系中有该专业的记录。
二、 外码
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码
$K_s$
相对应,则称F是基本关系R的外码。基本关系R称为参照关系,基本关系S称为被参照关系或目标关系;
选修关系的“学号” 与学生关系的主码“学号”相对应;
选修关系的“课程号”与课程关系的主码“课程号”相对应;
“学号”和“课程号”是选修关系的外码;
学生关系和课程关系均为被参照关系;
选修关系为参照关系;
- 关系R和S不一定是不同的关系;
- 目标关系S的主码K_s和参照关系的外码F必须定义在同一个(或一组)域上;
- 外码并不一定要与相应的主码同名;
三、参照完整性规则
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码K_s 相对应( 基本关系R 和S 不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值);
或者等于S中某个元组的主码值;