关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义完整性

数据完整性

要想了解这三类完整性约束首先要了解什么是数据完整性。数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相符。关系模型中三类完整性约束:
– 实体完整性(Entity Integrity)
– 参照完整性(Referential Integrity)
– 用户定义的完整性(User-defined Integrity) •
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持

实体完整性

• 保证关系中的每个元组都是可识别的和惟一的 • 指关系数据库中所有的表都必须有主键,而且表中不允
许存在如下记录:
– 无主键值的记录
– 主键值相同的记录
• 原因:实体必须可区分
例如:
关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义完整性_第1张图片
上图就出现了主键值(学号是主键)重复的情况。当在表中定义了主键时,数据库管理系统会自动保证数据的实体完整性,即保证不允许存在主键值为空的记录以及主键值重复的记录。

参照完整性

也称为引用完整性
• 现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用
• 参照完整性就是描述实体之间的联系的
• 参照完整性一般是指多个实体或关系之间的关联关系
关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义完整性_第2张图片
此完整性涉及到了外键:
• 参照完整性规则就是定义外键与被参照的主键之间的引用规则
• 外键一般应符合如下要求:
– 或者值为空
– 或者等于其所参照的关系中的某个元组的主键值

用户定义完整性

• 也称为域完整性或语义完整性
• 是针对某一具体应用领域定义的数据约束条件
• 反映某一具体应用所涉及的数据必须满足应用语义的要求
• 实际上就是指明关系中属性的取值范围,防止属性的值与应用语义矛盾
• 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统方法处理它们,而不要由应用程序承担这一功能

你可能感兴趣的:(数据库设计,数据库库,完整性约束)