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

2021-05-29  本文已影响0人  Levi_moon

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

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. 关系的相关名词

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. 完整性约束

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

关系的完整性分为:

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)

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

外连接运算有以下三种:


上一篇下一篇

猜你喜欢

热点阅读