2.1 关系数据结构及形式化定义

2.1.1 关系

关系模型是建立在集合代数的基础上的,这里从集合论的角度给出关系数据结构的形式化定义。

1.域

域是一组具有相同数据类型的集合

2.笛卡尔积

笛卡尔积是域上的一种集合运算。

3.关系

D 1 ∗ D 2 . . . ∗ D n D_1*D_2...*D_n D1D2...Dn的子集叫做在域 D 1 , D 2 . . . D n s D_1,D_2...D_ns D1,D2...Dns的关系,表示为R( D 1 , D 2 . . . D n D_1,D_2...D_n D1,D2...Dn)

这里R表示系得名字,n是关系得目或度

关系中每个元素都是关系的元组。

  • n=1时,该关系为单元关系
  • n=2时,该关系时二元关系

若关系中唯一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。

若一个关系有多个候选码,则选定其中一个为主码。候选码地诸属性称为主属性。不包含在任何候选码中的属性称为非主属性,或非码属性。

当关系作为关系数据模型地数据结构时,需要给予如下的现代和扩充。

(1)无限关系在数据库系统中是无意义的

(2)通过给关系每个列附加一个属性名的方法曲线关系属性的有序性

基本关系的性质:

1.列的同质性:每一列中的分量是同一类型的数据,来自同一个域。
2.列名唯一性:每一列具有不同的属性名,但不同列的值可以来自同一个域。
3.元组相异性:关系中任意两个元组的候选码不能相同。
4.行序的无关性:行的次序可以互换。
5.列序的无关性:列的次序可以互换。
6.分量原子性:分量值是原子的,即每一个分量都必须是不可分的数据项。

关系有3种类型:基本关系(又称基本表或基表)、查询表和视图表。

  • 基本关系:实际存在的表,是实际存储数据的逻辑表示;

  • 查询表 :查询结果对应的表;

  • 视图表 :由基本表或其它视图标导出的表,是虚表,不对应实际存储的数据;

2.1.2 关系模式

在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。

关系是元组的集合,因此关系模式必须指出这个元组集合的结构。

关系的描述称为关系模式:形象地表示为R(U,D,DOM)

2.1.3 关系数据库

在关系模式中,实体与实体之间的联系都是用关系表示的。关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,所以通常称为关系数据库。

2.1.4 关系模型的存储结构

表是关系数据的逻辑模型。

2.2 关系操作

2.2.1 基本的关系操作

关系模型的基本操作包括:查询,插入,删除,修改操作。

查询操作分为:选择,投影,连接,除,并,差,交,笛卡尔积等。选择,投影,并,差,积为五种基本操作

2.2.2 关系数据语言的分类

早期关系操作能力通常用代数方式和逻辑方式表示,分别为关系代数,关系演算。
{ 关 系 代 数 语 言 ( 例 如 I S B L ) 关 系 演 算 语 言 { 元 组 关 系 演 算 语 言 ( 例 如 A L P H A 、 Q U E L ) 域 关 系 演 算 语 言 ( 例 如 Q B E ) 具 有 关 系 代 数 和 关 系 演 算 双 重 特 定 的 语 言 ( 例 如 S Q L ) \begin{cases} 关系代数语言(例如ISBL)\\ \\ 关系演算语言 \begin{cases} 元组关系演算语言(例如ALPHA、QUEL)\\ \\ 域关系演算语言(例如QBE) \end{cases}\\ \\ 具有关系代数和关系演算双重特定的语言(例如SQL) \end{cases} ISBLALPHAQUELQBESQL

2.3 关系的完整性

1.实体完整性:主属性不能为空,主码不相等

2.参照完整性:例如,学生(学号、姓名、专业号),专业(专业号,专业名),学生关系中的专业号需要参照专业关系中的专业号,称学生关系中的专业号是学生关系的外码,专业关系是被参照关系,学生关系为参照关系,外码与主码不一定要同名,学生关系中的外码取值要么为空值,要么为专业关系中对应专业号的值

3.用户定义完整性:例如,学生的成绩取值范围在0~100之间

2.4 关系代数

关系代数用于对关系运算表达查询。

三大要素:

  • 运算对象
  • 运算符
  • 运算结果

2.4.1 传统的集合运算

传统的集合运算是二目运算,包括并,差,交,笛卡尔积4种运算。

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 笛卡尔积

    在这里插入图片描述

    R有K1个元组,S有K2个元组,则关系R和关系S的笛卡尔积有K1×K2个元组

    在这里插入图片描述

2.4.2 专门的关系运算

  • 选择

    选择又称为限制(选择是从行角度进行的运算)

在这里插入图片描述

F:选择条件,是一个逻辑表达式,取值为真或假。

  • 投影

    投影是从列角度进行的运算

在这里插入图片描述

  • 连接

    称为Θ连接【具体连接由关系Θ决定】
    连接运算的含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元祖

  • 自然连接

    两个关系中进行比较的分量必须是相同的属性组
    在结果中把重复的属性列去掉

  • 悬浮元组

    两个关系做自然连接时,关系R中某些元祖有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃,被舍弃的元组称为悬浮元组。

  • 外连接

    把悬浮元组也保存在结果关系中,而在其他属性上填空值(null)
    左外连接:只保留左边关系R中的悬浮元组
    右外连接:只保留右边关系S中的悬浮元组

在这里插入图片描述

  • 除运算

    在这里插入图片描述

    设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性的及其值,且T的元组与S的元组的所有组合都在R中。

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐