• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
成为自己最想成为的那种人
博客园    首页    新随笔    联系   管理    订阅  订阅
2.3 关系完整性

    关系模型的完整性规则是对关系的某种约束条件。

    也就是说关系的值随着时间变化时应该满足一些约束条件。

    (这些约束条件实际上是现实世界的要求。任何关系在任何时刻都要满足这些语义约束)

  关系模型中有三类完整性约束:

      实体完整性 (关系模型必须满足的完整性约束条件)

      参照完整性 (关系模型必须满足的完整性约束条件)→关系的两个不变性

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

2.3.1 实体完整性

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

    (所谓空值就是“不知道”或“不存在”或“无意义”的值)

    按照实体完整性规则的规定,如果主码由若干属性组成,则所有这些主属性都不能取空值。

  对于实体完整性规则说明如下:

    (1)一个基本表通常对应现实世界的一个实体集,例如学生关系对应于学生的集合。(实体完整性规则是针对基本关系而言的)

    (2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。

    (3)关系模型中以主码作为唯一性标识。

    (4)主码中的属性即主属性不能取空值。

2.3.2 参照完整性

    现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的,

  这样就自然存在着关系与关系间的引用。

    需要指出的是,外码并不一定要与相应的主码同名,如例2.3中学生关系的主码为学号,玩吗为班长。

    不过,在实际应用中为了便于识别,当外码与相应的主码属于不同关系时,往往给它们取相同的名字。

    参照完整性规则就是定义外码与主码之间的引用规则。

  参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应,则

      对于R中每个元组在F上的值必须:

          或者取空值(F的每个属性值均为空值)

          或者等于S中某个元组的主码值

      参照完整性规则中,R和S可以是同一个关系。

2.3.3 用户定义的完整性

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

    用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

    例如某个属性必须取唯一值、某个非主属性不能取空值等。(学生不能没有姓名,则可以定义学生姓名不能取空值;某个属性(如学生的成绩),的取值范围可以定义在0~100之间等)

    关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能。

 

posted on 2017-06-10 08:51  遇见未来  阅读(976)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3