关系的完整性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/carrot_guo/article/details/88073165

实体完整性

若属性A是基本关系R的主属性,则属性A不能取空值;

参照完整性

一、关系间的引用

在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用

  • 例子
    学生(学号,姓名,性别,专业号,年龄)
    专业(专业号,专业名)

    学生关系引用了专业关系的主码“专业号”;学生关系中的“专业号”值必须是确实存在的专业的专业号 ,即专业关系中有该专业的记录。

二、 外码

设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码$K_s$相对应,则称F是基本关系R的外码。基本关系R称为参照关系,基本关系S称为被参照关系目标关系;

  • 例子

选修关系的“学号” 与学生关系的主码“学号”相对应;
选修关系的“课程号”与课程关系的主码“课程号”相对应;
“学号”和“课程号”是选修关系的外码;
学生关系和课程关系均为被参照关系;
选修关系为参照关系;

  • 外码的特点

  1. 关系R和S不一定是不同的关系;
  2. 目标关系S的主码K_s和参照关系的外码F必须定义在同一个(或一组)域上;
  3. 外码并不一定要与相应的主码同名;

三、参照完整性规则

若属性(或属性组)F是基本关系R的外码它与基本关系S的主码K_s 相对应( 基本关系R 和S 不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值);
或者等于S中某个元组的主码值;

猜你喜欢

转载自blog.csdn.net/carrot_guo/article/details/88073165