数据库原理与统计笔记-2.3关系的完整性

前言

有关数据库原理与统计的笔记,内容为书本的原文概括。

关系模型的完整性规则是对关系的某种约束条件。关系的值随着时间变化时应该满足一些约束条件,这些约束条件实际上是现实世界的要求,任何关系在任何时刻都要满足这些语义约束。

关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性。应该由关系系统自动支持,用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。

一、实体完整性

关系数据库中每个元组应该是可区分的,是唯一的。这样的约束条件用实体完整性来保证。
规则2.1 实体完整性规则若属性A是基本关系R的主属性,则A不能取空值,即不知道、不存在或无意义的值。

按照实体完整性规则的规定,如果主码由若干属性组成,则所有这些主属性都不能取空值。
(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。
(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。
(3)关系模型中以主码作为唯一性标识。
(4)主码中的属性不能取空值,如果取了空值,就说明存在某个不可标识的实体(即存在不可区分的实体)

二、参照完整性

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

例: 有两个关系如下,加粗的为主码
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)

学生关系中的专业号属性与专业关系的主码专业号相对应,所以专业号属性是学生关系的外码。
专业关系是被参照关系,学生关系为参照关系。

:被参照关系的主码,是参照关系的外码

规则2.2 参照完整性规则:

参照完整性规则就是定义外码与主码之间的引用规则。
若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须:

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

三、用户定义的完整性

任何关系数据库系统都应该支持实体完整性和参照完整性,这是关系模型所要求的。
除此之外,不同的关系数据库系统根据应用环境的不同,还需要一些特殊的约束条件——用户定义的完整性,它反映某一具体应用所设计的数据必须满足的语义要求。
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能。
在早期的关系数据库管理系统中没有提供定义和检验这些完整性的机制,因此需要应用开发人员在应用系统的程序中进行检查。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章