数据完整性要理解这三种类型的完整性约束,首先必须理解什么是数据完整性。 数据完整性是指数据库中存储的数据是有意义的还是正确的,与现实世界相一致。 关系模型的三个完整性约束:
实体完整性(Entity Integrity ) ) ) ) ) ) ) ) ) ) )。
-参照完整性(Referential Integrity )
用户定义的完整性(用户定义的完整性)。
实体完整性和参照完整性是关系模型必须满足的完整性约束,称为关系的两个不变性,需要关系系统自动支持
可识别的唯一关系数据库中的所有表都必须具有主键,并且表中不允许使用实体完整性保证关系中的每个元组
这些记录包括:
没有键值的记录
主键值相同的记录
原因:实体必须能够区分开来
例如:
在上图中,主键值(学校号码为主键)重复。 一旦在表中定义了主键,数据库管理系统就会自动保证数据的实体完整性。 这意味着不允许主键值为空的记录和主键值重复的记录。
参照完整性也称为参照完整性
现实世界的实体之间往往有某种联系。 在关系模型中,实体与实体之间的联系都用关系表示,关系与关系之间的引用自然存在
引用完整性是指描述实体之间的关系
引用完整性通常是指多个实体或关系之间的关联关系
此完整性涉及外键。
引用完整性规则是指定义外键和被引用主键之间的引用规则
外键通常必须满足以下要求:
或值为空
-或等于所引用关系中的元组的主键值
用户定义的完整性也称为域的完整性或语义的完整性
为特定APP应用程序定义的数据约束
反映某一具体应用所涉及的数据必须满足应用语义的要求
实际上,表示关系中属性的取值范围,防止属性值和应用意义的矛盾
关系模型必须提供一种定义和验证这种完整性的机制,APP应用程序才能使用统一的系统方法来处理这种功能,而不是承担这种功能