关系模型中的完整性约束详解
1. 完整性约束的引入
在关系模型中,其结构能帮助我们组织应用所需的信息。然而,并非模式中的每一组元组所代表的信息都对应用而言是正确的。之前我们简单讨论过空值带来的问题,现在我们将更详细地探讨这个问题,先从不含空值的关系入手。
以图中数据库为例,假设最高成绩为A(可获荣誉),最低为F,存在以下几种不应出现的情况:
- 成绩值超出范围 :在 EXAMS 关系的第一个元组中,考试成绩为K,这是不可接受的,因为成绩必须在A到F之间。
- 荣誉授予条件不符 : EXAMS 关系的第二个元组显示,成绩为B的考试却授予了荣誉,而荣誉只有在成绩为A时才可授予。
- 注册号码重复 : STUDENTS 关系的最后两个元组包含了两个不同学生但注册号码相同的信息,这是不可能的,因为注册号码的目的就是明确标识每个学生。
- 引用值不存在 : EXAMS 关系的第四个元组中, Student 属性的值未出现在 STUDENTS 关系的注册号码中;第一个元组显示的课程代码也未出现在 COURSES 关系中。
为避免上述情况,引入了完整性约束的概念,它是所有正确数据库实例都必须满足的属性。每个约束可视为一个谓词,为每个实例赋予真或假的值。通常,我们会为数据库模式关联一组约束,并认为满足
超级会员免费看
订阅专栏 解锁全文
7658

被折叠的 条评论
为什么被折叠?



