关系数据库——关系的完整性约束

数据库系统与SQL语言 专栏收录该内容
16 篇文章 0 订阅

引言

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

其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,应该由关系系统自动支持。

用户定义的完整性约束条件是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。

实体完整性

若属性(指一个或者一组属性)A是基本关系R的主属性,则A不能取空值。

规则说明:

  1. 实体完整性规则是针对基本关系而言的。
  2. 现实世界中的实体是可区分的,即他们具有某种唯一性标识。
  3. 相应地,关系模型中以主码作为唯一标识。
  4. 主码中的属性即主属性不能取空值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,与第二条相互矛盾,因此,这个规则称为实体完整性规则。

参照完整性

外码:设F是基本关系R的一个或者一组属性,但不是关系R的码,K(S)是基本关系S的主码。如果F与K(S)相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或是目标关系。

外码不一定要与相应的主码同名。

例:

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

若属性(或者属性组)F是基本关系R的外码,他与基本关系S的主码K(S)相对应,则对于R中每个元组在F上的取值要么取空值,要么等于S中某个元组的主码值。

用户自定义完整性

任何关系型数据库系统都应该支持实体完整性和参照完整性。这是关系模型所要求的。

除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的约束条件就是针对某一具体关系数据库的约束条件,它反映了某一具体应用所涉及的数据必须满足的语义要求。

例如在学生关系中,要求学生不能没有姓名,学生课程成绩关系中要求成绩必须在0到100之间。

  • 2
    点赞
  • 0
    评论
  • 7
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值