数据完整性是指数据的正确性与相容性,是为了防止数据库存在不正确的数据。定义了完整性约束以后,MySQL的服务器可以随时检测处于更新状态的数据库的内容是否符合完整性约束用于保证数据的一致性与正确性,从而防止数据的意外破坏以及提高相应的效率。
关系模型提供了实体完整性、参照完整性以及用户定义完整性3项规则。
1. 实体完整性
实体是一个数据对象,是指客观存在的并可以相互区分的事物。在数据库中,实体表现为一条记录,必须遵守实体的完整性。
实体完整性的主要内容是:主键不能为空,即关系的主属性不能为空。在MySQL中,实体完整性的实现通过主键约束与候选键约束来实现。即主键应该满足以下的规则:
- 每个表只能定义一个主键
- 主键的唯一性
- 最小化原则:复合主键不应当包含多余的列
候选键约束:
某一属性集能够唯一标示相应的元组,其为候选键。主键必须是唯一的,但是候选键可以是很多个。
2. 参照完整性
参照完整性的规则要求,外键与主键的引用规则。
目前只有InnoDB支持外键
3. 用户定义完整性
非空约束,CHECK约束,触发器
CHECK约束:检查是否符合相应的语言要求。