完整性约束保证当授权用户对数据库进行修改时不会破坏数据库的一致性。因此,完整性约束防止的是对数据的意外破坏。
完整性约束的例子如:
1. 一个账户的余额不能为空
2. 任何两个账户不能有相同的账号
3. depositor关系中的每个账号必须在account关系中有一个对应的账号
4. 一个银行雇员每小时薪金不能低于6:00美元
一般来说,一个完整性约束可以是与数据库有关的任意谓词。但检测任意谓词的代码可能太高。因此,许多数据库允许用户指定那些只需极小开销就可以检测的完整性约束。下面是一些这样的完整性约束形式:
1. 单个关系上的约束:
1.1 not null
1.2 unique
1.3 check(<谓词>)
2. 参照完整性
3. 断言