【软考】——数据库之关系代数的运算
2016-10-30 19:29
417 查看
【前言】
软考的日子越来越近了,我对于知识的学习也仅仅停留在做题上,及时总结的好习惯,需要一点一滴积累。【正文】
总览
关系代数:以关系为运算对象的一组高级运算的集合。
一句话总结:五基四组两扩充,关系代数一路通。
详细介绍
一、关系代数的五个基本操作
举例用到两个关系:1 .并(Union)
设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。形式定义如: R∪S= { t |t ∈R V t ∈S},t是元组变量,R和S的元数相同。
注意:并运算可实现插入新元组的操作,消除重复元组
2 . 差(Difference)
设关系R和S具有相同的关系模式,R和S的差是由于属于R但不属于S的元组构成的集合,记为R- S。形式定义如: R - S ={ t|t ∈R V t ?S},R和S的元数相同。
注意:差运算是有序的,R - S ≠ S - R
3 .笛卡尔积 (Cartesian Product)
设关系R和S 的元数分别为r 和 s ,定义R和S的笛卡尔积是一个(r+ s )元的元组集合,每个元组的前r 个分量(属性值)来自R 的一个元组,后s个分量来自S的一个元组,记为R × S。形式定义如:
R × S = { t|t
= <tr , ts> ∧tr∈R∧ts∈S }
此处tr 、 ts 中的r,s 为上标。若R有m个元组,S有n个元组,则R×S有m × n 个元组。
注意:新关系的属性个数为r+s,元组个数为m×n。
4 .投影 (Projection)
这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。设关系R是k 元关系,R在其分量Ai1,…,Aim(m<=k,i1,…im为1到k间的整数)上的投影用πi1,…im(R)表示,它是一个m元的元组集合,形式定义如下:
πi1,…,im(R)={t ∣ t
= <ti1,…tim>∧<t1,…tk>∈R}
注意 :投影主要是从列的角度进行运算,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复)。
5 .选择(Selection)
选择操作又称限制,是根据某些条件做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。F中两种成分:运算对象:常数(用引号括起来),元组分量(属性名或列
的序号)。
运算符:算术比较运算符(<,<=,
> ,>= ,=,≠),逻辑运算符(∧,∨,?)。
关系R关于公式F的选择操作用sF(R)表示,形式定义如下:
sF(R) = {t ∣ t ∈ R ∧ F(t)
=true },s为选择运算符,sF(R)表示从R中挑选满足公式F为真的元组所构成的关系。
注意:选择运算是从行的角度进行的运算。
二、四个组合操作
1 .交(Intersection)
关系R和S的交是由属于R又属于S的元组构成的集合,记为R∩S,这里要求R和S定义在相同的关系模式上。形式定义如下:R∩S
={ t ∣ t ∈ R ∧ t ∈ S
} ,R和S的元数相同。
2 .连接(Join )
连接是从关系R和S的笛卡尔积中选取属性值满足某一θ操作的元组,记为,这里的i 和j 分别是关系R和S的第i 个、第j 个属性的序号。形式定义如下:
此处,tri、tsj分别表示元组tr的第i 个分量、元组ts的第j 个分量,triθtsj表示这两个分量值满足θ操作。(如果θ是等号“=”,该连接操作为“等值连接”)。
注意:一般的连接操作是从行的角度进行运算
3 .自然连接(Natual join)
两个关系R和S的自然连接操作用R S 表示,具体计算过程如下: l 计算R × S ;
l 设R和S 的公共属性是A1,…,AK,挑选R×S 中满足 R.A1=S.A1,…,R.AK=S.AK的那些元组;
l 去掉S.A1,…,S.AK这些列。
因此R ? S可用下式定义:
R ? S=Πi1,…,im (sR.A1=S.A1∧…∧R.AK=S.AK(R×S)),其中i1,…,im 为R和S的全部属性,但公共属性只出现一次。
R ? S = ΠA,R.B,R.C,D(sR.B=S.B∧R.C=S.C(R×S))
一般自然连接使用在R和S有公共属性的情况中。如果两个关系没有公共属性,那么其自然连接就转化为笛卡尔积操作。
注意:自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
4 .除法(Division)
设关系R和S的元数分别是r 和s(设r> s> 0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系:其中每个元组t 与s中每个元组u组成的新元组<t,u>必在关系R中。为方便起见,我们假设S的属性为R中后S个属性。
R ÷ S 的具体计算过程如下:
l T = π1,2,…,r-s(R)
l W = (T×S) – R(计算T×S中不在R的元组)
l V = π1,2,…, r-s(W)
l R ÷ S = T - V
即 R ÷ S = π1,2,…,r-s(R)
-π1,2,…, r-s((π1,2,…r-s(R) ×S) - R)
例:关系R是÷学生选修课程的情况,关系COURSE1、COURSE2、COURSE3分别表示课程情况,而操作R ÷ COURSE1、R ÷ COURSE2、R ÷ COURSE3中列课程的学生名单。
注意:除操作是同时从行和列的角度进行运算
【后续】
通过做软考题越来越发现,考试不是学习的最终目的,通过考试学会方法去学习,不断锻炼和培养自己的学习能力,让学习更加有方向和动力,还要打好扎实的基础,仅是做到看过是不够的,更加要做的是多多动手实践一遍,才会了解自己是不是真的掌握了。不足之处请大家多多提意见~~
相关文章推荐
- 数据库集合运算与关系代数
- 【数据库】关系代数基本运算
- 【数据库】解释关系代数中的象集、除运算
- 数据库中关系代数中的关系运算
- 数据库查询的基本运算,关系代数
- 【数据库】关系代数基本运算
- 数据库考试中常见题分析:关系代数中的除法运算
- 【数据库】关系代数基本运算
- 数据库——关系代数中的除法运算【转】
- 数据库---SQL双重否定、函数依赖、关系代数的基本运算
- 数据库基础--关系代数中的除法运算
- 数据库中的关系运算
- 数据库系统原理之关系运算
- 基于MapReduce的关系代数运算(2)
- 基于MapReduce的关系代数运算(1)
- database复习===关系代数基本运算
- 数据库之关系代数
- 关系代数――附加的关系运算(1)
- 关系代数――基本运算(1)
- 【软考】(六)关系代数