完整性约束

为了维护数据库中数据和现实世界的一致性,关系数据库中的数据必须满足一定的限制。完整性约束可以由用户检查,也可以由系统来检查。完整性约束检查只有在进行数据库更新操作时才需进行

  • 域完整性约束

  • 实体完整性约束

  • 引用完整性约束

  • 用户定义完整性约束

域完整性约束

域完整性约束规定每一个属性的值应该是其值域中的值

指定一个值域的通常方法是指定一个数据类型,如整型、实型、字符型等,从而属性的值都应该属于该数据类型。

实体完整性约束

  • 关系中主码的值不能为NULL ,每个元组的主码值应是唯一的

  • 主码包含的所有属性值都不能取空值

  • 大部分DBMS支持实体完整性约束检查,但不是强制的。

引用完整性约束

引用完整性约束是不同关系之间或同一关系的不同元组间的约束,它规定不允许引用不存在的元组

设F是关系R的一个或一组属性。如果F与关系S的主码K相对应,则称F是关系R的外码(foreign key),并且称关系S为基本关系(基本表),关系R为依赖关系(依赖表)

引用完整性约束规定依赖关系R中外码F的取值只允许两种可能1. 空值;2. 等于基本关系S中某个元组的K值(主码值)。

用户自定义完整性(Check子句)

通常用check 子句来保证属性值满足指定的条件。

示例:在创建课程信息表时,通过check 子句设置学生的学分不可以为负数:

Last updated