定义

完整性约束就是一个表内的数据必须满足的条件。 :::info 例如某表中规定人的年龄在0-100之间,这就是一个完整性约束。 :::

完整性约束可以分为几类:

  • 静态约束 inherent constraint,例如1NF
  • 隐式约束 implicit constraint,例如表中的数据要符合定义域、主键不能为空等。
  • 显式约束 explicit constraint,显式约束,通常使用断言来定义。
  • 动态约束 dynamic constraint,数据库在从一个状态转换到另一个状态时遵循的规则,通常使用触发器来定义。

主键约束

假设,表r1中的主键为k1,表r2中的主键f1是r1.k1的外键。

  • 插入:当r2中插入新数据时,会检查插入数据中的f1是否存在于r1.k1中。
  • 删除:当r1中删除元组时会检查r2中是否有引用了r1.k1的外键。