美文网首页
软件设计师考试 | 第九章 数据库技术基础 | 关系代数

软件设计师考试 | 第九章 数据库技术基础 | 关系代数

作者: Levi_moon | 来源:发表于2021-05-29 22:57 被阅读0次

(一)关系数据库的基本概念

1. 属性和域

在现实世界中,要描述一个事物常常取若干特征来表示,这些特征称为属性(Attribute)。例如,用学号、姓名、性别等属性来描述学生。

每个属性的取值范围对应一个值的集合,称为该属性的域(Domain)。例如,学号的域是六位整型数,姓名的域是十位字符等。

在关系数据模型中,通常对域加了一个限制,所有的域都应是原子数据(Atomic Data)。例如,整数、字符串是原子数据,而集合、记录等是非原子数据。

2. 笛卡尔积与关系

笛卡尔积:

笛卡尔乘积是指在数学中,两个集合XY的笛卡尔积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。

假设集合A={a, b},集合B={0, 1, 2},
则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则AB的笛卡尔积表示所有可能的选课情况。A表示所有声母的集合,B表示所有韵母的集合,那么AB的笛卡尔积就为所有可能的汉字全拼。

A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做AB的笛卡尔积,记作AxB.

笛卡尔积的符号化为:

A×B={(x,y)|x∈A∧y∈B}
例如,A={a,b}, B={0,1,2},
则
A×B={(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}
B×A={(0, a), (0, b), (1, a), (1, b), (2, a), (2, b)}

关系:
笛卡尔积的子集称为在域上的关系。

例如,
D₁XD₂X···XDiX···XDn的子集称为在域D₁,D₂,···,Di,···,Dn上的关系,
记为R(D₁,D₂,···,Di,···,Dn),称关系R为n元关系。

3. 关系的相关名词

  • 目或度
    R表示关系的名字,n表示关系的目或度。
  • 候选码
    若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性或属性组为候选码。
  • 主码
    若一个关系有多个候选码,则选定其中一个为主码。
  • 主属性
    包含在任何候选码中的诸属性称为主属性。
    不包含在任何候选码中的属性称为非码属性。
  • 外码
    如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外码。
  • 全码
    关系模型的所有属性组是这个关系模式的候选码,称为全码。

4. 关系的3种类型

  • 基本关系
    又称为基本表或基表,它是实际存在的表,是实际存储数据的逻辑表示。
  • 查询表
    是查询结果对应的表。
  • 视图表
    是由基本表或其他视图表导出的表。由于它本身不独立存储在数据库中,数据库中只存放它的定义,所以常称为虚表。

5. 关系数据库模式

在数据库中要区分型和值。关系数据库中的型也称为关系数据库模式,是关系数据库结构的描述。它包括若干域的定义以及在这些域上定义的若干关系模式。实际上,关系的概念对应于程序设计语言中变量的概念,而关系模式对应于程序设计语言中类型定义的概念。

关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常称之为关系数据库。

关系的描述称之为关系模式,可以形式化地表示为:R(U,D,dom,F)
其中,R表示关系名;U是组成该关系的属性名集合;D是属性的域;dom是属性向域的映像集合;F为属性间数据的依赖关系集合。

通常将关系模式简记为:

R(U)或R(A₁,A₂,A₃,···,An)

其中,R为关系名,A₁,A₂,A₃,···,An为属性名或域名,属性向域的映像常常直接说明属性的类型、长度。

通常在关系模式主属性上加下划线表示该属性为主码属性。

6. 完整性约束

完整性规则防止的是对数据的意外破坏。

关系的完整性分为:

  • 实体完整性
    规定基本关系R的主属性A不能取空值。
  • 参照完整性
    现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体集间的联系是用关系来描述的,这样自然就存在关系与关系间的引用。
  • 用户定义完整性
    用户定义完整性就是针对某一具体的关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,由应用的环境决定。

7. 关系运算

关系操作的特点的操作对象和操作结果都是集合,而非关系数据模型的数据操作方式则为一次一个记录的方式。

关系数据语言分为三类:

  • 关系代数语言
  • 关系演算语言
  • 具有关系代数和关系演算双重特点的语言

(二)5种基本的关系代数运算

1. 并(Union)

关系RS具有相同的关系模式,即RS的元素相同(结构相同)。关系RS的并是由属于R或属于S的元组构成的集合,记作R∪S,其形式定义如下:

R∪S={t|t∈R∨t∈S}

式中t为元组变量。

2. 差(Difference)

关系RS具有相同的关系模式,关系RS的差是由属于R但不属于S的元组构成的集合,记作R-S,其形式定义如下:

R-S={t|t∈R∧t∉S}

3. 广义笛卡尔积(Extended Cartesian Product)

两个元数分别为n目和m目的关系RS的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组,记作RXS,其形式定义如下:

RXS={t|t=<t^n,t^m>∧t^n∈R∧t^m∈S}

4. 投影(Projection)

投影运算是从关系的垂直方向进行运算,在关系R中选出若干属性列A组成新的关系,记作πΑ(R),其形式定义如下:

πΑ(R)={t[A]|t∈R}

5. 选择(Selection)

选择运算是从关系的水平方向进行运算,是从关系R中选择满足给定条件的诸元组,记作σF(R),其形式定义如下:

σF(R)={t|t∈R∧F(t)=true}

其中,F中的运算对象是属性名(或列的序号)或常数,运算符、算术比较符(<、<=、>、>=、≠)和逻辑运算符(∧、∨、¬)。


(三)扩展的关系代数运算

1. 交(Intersection)

关系RS具有相同的关系模式,关系RS的交是由属于R同时又属于S的元组构成的集合,记作R∩S,其形式如下:

R∩S={t|t∈R∧t∈S}

显然,R∩S=R-(R-S),或R∩S=S-(S-R)

2. 连接(Join)

连接分为以下三种:

  • θ连接
  • 等值连接
  • 自然连接

3. 除(Division)

除运算是同时从关系的水平方向和垂直方向进行运算。

给定关系R(X,Y)S(Y,Z)X,Y,Z为属性组。R÷S应当满足元组在X上的分量值x的象集Yx包含关系S在属性组Y上投影的集合。其形式如下:

R÷S={t^n[X]|t^n∈R∧πy(S)⊆Yx}

其中,YxxR中的象集,x=t^n[X],且R÷S的结果集的属性组为X

4. 广义投影(Generalized Projection)

广义投影运算允许在投影列表中使用算术运算,实现了对投影运算的扩充。

5. 外连接(Outer Join)

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

外连接运算有以下三种:

  • 左外连接
    取出左侧关系中所有与右侧关系中任一元组都不匹配的元组,用空值充填所有来自右侧关系的属性,构成新的元组,将其加入自然连接的结果中。
  • 右外连接
    取出右侧关系中所有与左侧关系中任一元组都不匹配的元组,用空值填充所有来自左侧关系的属性,构成新的元组,将其加入自然连接的结果中。
  • 全外连接
    完成左外连接和右外连接的操作。即填充左侧关系中所有与右侧关系中任一元组都不匹配的元组,并填充右侧关系中所有与左侧关系中任一元组都不匹配的元组,将产生的新元组加入自然连接的结果中。

相关文章

网友评论

      本文标题:软件设计师考试 | 第九章 数据库技术基础 | 关系代数

      本文链接:https://www.haomeiwen.com/subject/hjzqrltx.html