数据库原理 03关系模型的基本概念 | 您所在的位置:网站首页 › 数据库原理基本概念图表 › 数据库原理 03关系模型的基本概念 |
关系模型概述什么是关系关系模型的完整性约束
重点与难点 一组概念的区分: 围绕关系的相关概念:域、笛卡儿积、关系、关系模式、关键字/键/码、外码/外键、主码/主键、主属性/非主属性。 三个完整性:实体完整性、参照完整性、用户定义完整性 概述 形象的说:一个关系(relation)就是一个table。 关系模型就是处理table的,他由三部分组成:包括描述数据库各种关系的基本结构形式(table)、关系运算(table和table之间可能发生的各种运算)、完整性约束(这些操作应该遵循的约束条件)。 关系运算:关系代数和关系演算 。 关系演算:元组演算和域演算。 关系代数的示例:基于集合的运算(数学语言) 也就是说操作的对象和结果都是集合,是一次一集合的操作(Set-at-a time)。 而非关系型数据的操作通常是一次次记录(Record-at-a time)。 以下是基于关系代数设计的数据库语言:ISBL(计算机语言) ISBL是用计算机可以识别的符号表征关系代数的运算符号。 元组演算是基于逻辑的演算(数学语言)。 基于元组演算设计了数据库语言:Ingress系统的QUEL(计算机语言) 域演算和元组演算类似但是域演算是基于示例的运算(以示例为单位)。 基于域演算设计的数据库语言示例:QBE: Query By Example(计算机语言) 综述:关系运算 什么是关系? 表的基本构成要素 其中列的取值范围叫: 域(Domain) 一组值的集合这组值具有相同的数据类型。集合中元素的个数称为域的基数。元组 笛卡儿积的每个元素(d1,d2,d3,,,,,,dn)成为一个n元组。 元组(d1,d2,d3,,,,,,dn)中每一个值di称作一个分量笛卡儿积是n个域形成的所有所有可能的n元组的集合。如果域Di的基数是mi 那么笛卡儿积的基数=元组的个数是m1*m2*m3****mn 由于笛卡儿积中并不是所有的元组都是有意义的,由此我们从中抽取一些有意义的作为关系。 关系(Relation) 由于关系的不同列可能来自同一个域,那么作为区分需要为每一列起一个名字叫:属性名 属性名和域名是不一样的,域名是域的名字,但是属性名是关系里面的。 关系可以如下描述: 其中A是关系的属性名,而D是属性来源的域名。这种用属性名来表示关系的描述方式称为关系模式或者表标题。 例如下图的关系为一三目关系,描述为 家庭(丈夫:男人,妻子:女人,子女:儿童) 或者 家庭(丈夫,妻子,女人) 关系模式R(A1:D1 , A2:D2 , … , An:Dn )中属性指向域的映像在很多DBMS中通常直接说明属性的类型长度。例如:
关系模式与关系: 同一关系模式可以有很多关系。关系模式是关系的结构,关系是关系模式在某一时刻的数据。关系模式是稳定的,而关系是某一时刻的值,是随时间可能变化的。思维回顾 关系有哪些特性 列是同质:即每一列中的分量来自同一域,是同一类型的数据不同的列可来自同一个域,称其中的每一列为一个属性,不同的属性要给予 不同的属性名。例如: 列位置互换性:区分哪一列是靠列名 行位置互换性:区分哪一行是靠某一或某几列的值(关键字/键字/码字) 关系是以内容(名字或值)来区分的,而不是属性在关系的位置来区分,如下面两个关系是完全相同的关系 理论上,关系是由集合来定义的,这就要求关系的任意两个元组不能完全相同。(满足集合的特性:集合内不能有两个完全相同的元素),现实应用中表可能并不完全遵守此特性。【元组相同是指两个元组的每个分量都相同】 属性不可再分特性:又被称为关系第一范式 关系上一些重要概念 候选键/候选码 依靠候选码我们可以把关系里面每一个元组都区分开,候选码可以唯一标识一个元组。 以上选课关系模型里面学生编号和课程代码就是一个候选码,但有时候候选码不止一个,可能有很多组。 主键/主码 当有多个 候选码/候选键 的时候,可以选用一个作为 主码/主键。 DBMS以主键作为主要线索管理关系中的各个元组。 主属性和非主属性 包含在任何一个候选码中的属性我们称之为主属性,而其他的就是非主属性。 最简单的候选码只有一个主属性。 最极端的所有属性构成这个关系的候选码称之为全码(AII-Key)。 外码(Foreign Key)/外键 关系R中的一个属性组,他不是R的候选码,但是他和另一个关系S的候选码相对应,那么就称这个属性是关系R外键/外码。 两个关系通常是用 外键/外码 连接起来的。 小结 关系模型的完整性 实体完整性:(针对主码而言) 关系的主码中的属性值不能为空值。 空值是不能参与算术比较,或者逻辑运算的。 参照完整性:(针对外码而言) 如果关系R1的外码Fk与关系R2的主 码Pk相对应,则R1中的每一个元组的 Fk值或者等于R2 中某个元组的Pk 值, 或者为空值。
参照完整性为了保证两个关系之间联系的正确性。 用户自定义完整性:(用户自定义的限制条件要满足) 用户针对具体的应用环境定义的完整性约束条件。 由于我们用的字符类型定义的范围还是太大,有时候我们需要进一步用户自定义属性条件。 DBMS系统提供了一套定义机制,让用户对某些属性定义相关的完整性约束。 当有更新操作发生的时候DBMS将自动按照完整性约束条件来检验更新操作的正确性,即是否符合用户自定义的完整性。 |
CopyRight 2018-2019 实验室设备网 版权所有 |