关系模型是一种用于数据库管理的数学模型,由 Edgar F. Codd 在 1970 年提出。它以关系(表)的形式组织数据,使用集合论和谓词逻辑作为理论基础。
关系模型的基本术语
- 关系:一张二维表
- 元组:表中一行
- 属性:表中一列
- 域:属性的取值(在关系型数据库中所有的域都是原子数据,例如:整数、字符,而集合、数组为非原子数据)
- 关系模式:对关系的描述,如:关系名(属性名1,属性名2,.……,属性名n)
- 候选码:能唯一标识一个元组的属性组合,如(身份证,名字,性别),(身份证,电话)
- 主码:在多个候选码中选择一个,如(身份证,名字,性别)
- 主属性:在所有候选码中都存在的属性,如身份证
- 外码:另一个关系的码
- 全码:所有属性构成的属性组
- 超码:一个包含码的属性集
关系模式的定义
表示为:R(U, D, dom, F)
U:该关系的属性名集合;D:U中属性的域;dom:属性向域的映像集合;F属性间的依赖关系集合。
关系模式中的关系数据结构
一张二维表格
关系模型中的关系操作集合
选择
在关系R中选择满足条件的元组集合,定义为:
![]()
F中的运算对象是属性名(或列的序号)或常数,运算符、算术比较符和逻辑运算符。
例如选取R关系中第1个属性值大于等于第6 个属性值的元组:![]()
选取R关系中第1个属性值大于6的元组:![]()


投影
在关系R中选择若干属性组成新的关系,定义为:
![]()
A为要投影的属性组名。


连接
连接分为θ连接、等值连接和自然连接3种。连接运算是从两个关系R和S的卡儿积中选取满足条件的元组。因此,可以认为笛卡儿积是无条件连接,其他的连接操作认为是有条件连接,下面分别介绍。
- θ连接:从R与S的笛卡儿积中选取属性间满足一定条件的元组,记作:
其中,XθY为连接的条件,θ是比较运算符,X和Y分别为R和S上度数相等且可比的属性组。也可表示为:
i和j为从两个关系R和S中选取R的第i列和S的第j列。θ连接可以由基本的关系运算笛卡儿积和选取运算导出。因此,0连接可表示为:



- 等值连接:当θ为“=”时,称之为等值连接,记为:
![]()
- 自然连接:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉,记为:
![]()


外连接
外连接运算是连接运算的扩展,可以处理由于连接运算而缺失的信息。

上面几个表的自然连接:

左外连接:取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值 nul 充填所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中。如
:

右外连接:取出右侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值 nul 充填所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中。如
:

除
除运算是同时从关系的水平方向和垂直方向进行运算。给定关系R(X,Y)和S(Y,Z),X、Y、Z为属性组。R÷S应当满足元组在X上的分量值x的象集
包含关系S在属性组Y上投影的集合。其形式定义如下:
![]()
其中,
为x在R中的象集,x=
,且R÷S的结果集的属性组为X。

并
关系R与S具有相同的关系模式时,分别属于R和S的元组集合,记为:
![]()


交
关系R与S具有相同的关系模式时,属于R同时又属于S的元组构成的集合,记为:
![]()

差
关系R与S具有相同的关系模式时,属于R但不属于S的元组集合,记为:
![]()


笛卡尔积
n目关系R、m目关系S,则二者的笛卡尔积是一个n+m目的元组集合,前n属于R,后m属于S,记作RXS,其形式定义如下:
![]()



如果R和S中有相同的属性名,可在属性名前加关系名作为限定,以示区别。
关系模型中的关系完整性约束
- 实体完整性:主码中属性不能为空
- 参照完整性:R1中的外码的每个值必须能在对应的R2中主码的值中找到,或为空值
- 用户定义的完整性:用户对某一具体数据指定的约束条件进行检验
关系模型核心概念解析
1798

被折叠的 条评论
为什么被折叠?



