首页 > 代码库 > 【软考】(六)关系代数

【软考】(六)关系代数

关系代数的由来


    首先从宏观上来认识一下关系演算这个概念,换句话讲也就是什么是关系代数,这也是我在接触一些东西的首要工作。大家都知道对于关系型数据库的数据库操作语言分为查询和更新两类。而查询语言这块,又分为关系代数语言与关系演算语言。这里讲的就是关系代数。所以能够这样定义,关系代数就是为数据库操作语言进行查询的集合操作。


关系代数中的操作可分为两类


(1)传统的集合操作:并、差、交、笛卡儿积、除法。

(2)扩充的关系操作:投影、选择、连接、。

 

 常见符号

 

五种主要的关系代数


1、并

设关系R和S具有同样的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为RS。形式定义例如以下:

RS{t | t tS}t是元组变量,RS的元数相



2、差(Difference)


设关系R和S具有同样的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。形式定义例如以下:

R-S{ t | t tS}RS的元数同样。


计算机生成了可选文字:关系s1SnoSnameSlleptN00001M田yISN00(X)3CandyISN00004J日匡TlIS关系脸SnoSnameSdeptNo0001M田yISN00008KattefISN00021TOlllIS51一52SnoSnameSllePtN00003气CandyISNo0004Ja匡11ISleseseseseseseseseseses卜


3、笛卡儿积(Cartesian Product


设关系R和S的元数分别为r和s,定义R和S的笛卡儿积是一个(r+s)元的元组集合,每一个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S



4、投影(Projection)


这个操作是对一个关系进行垂直切割,消去某些列,并又一次安排列的顺序。

表示符号π


计算机生成了可选文字:关系黝Sno气snameSdeptNo0001MaryISN00003Can即ISN00004J日以11IS关系s2SnoSnameSlleptN00001MalyISN00008KattCrISNo0021TomIS汀。。,。~(51)SnoSnameN00001MaryN00003CandyN00004J81n

 

5、连接


这个操作是依据某些条件,对既定的集合进行条件选择。

 

σ为选择运算符


计算机生成了可选文字:关系s1SnoSname昌几e阵N00001从2卿IS时00003Can即ISN00004J日以nIS关系s2SnoSnameSdePtN00001MaryISN00008KatteYISN00021TOlllIS几彻一*。。。3(51)SnoSnameSdeptN00003CandyIS


对于主要的关系代数操作,能够发现。之前的三种针对的都是两个或者两个至上的集合操作,而后两种操作的都为一个集合。 

 

 

扩充的代数操作

这个操作就是从两个集合内找出既属于R有属于S集合的元素的集合。符号:

如图


计算机生成了可选文字:关系s1SnoSnattteSdcptN00001MalyISN00003CandylSN00004J出nIS关系徽SnoSnameSlleptN00001MaryISN00008KatteYISN00021TomIS51门52SllameSlleptIS0n幻口』气N00001Mary


图中两个集合同样的部分为第一行元素。

除的操作要求进行操作的两个关系集合须要有重叠的属性。


实例图表


计算机生成了可选文字:系,‘知RABCDa』气bCd8bCfCaCd关系SCDdf

 

结果


计算机生成了可选文字:一鱿B一b一R于SAa

连接

全部的连接操作都是在进行笛卡尔积的基础上进行一些对应的条件操作。所以依据条件不同,分为等值连接、自然连接、θ连接。

 

 

θ连接

\begin{matrix} R\ \bowtie\ S \\ a\ \theta\ b\end{matrix}


表示从RS中分别选取R的第i列和S的第j列进行连接操作。

等值连接

等值连接就是当θ的值为等于号时的连接。

自然连接

自然连接是一种比較特殊的连接,要求两个连接的关系中必需要有同样的属性。如


计算机生成了可选文字:关系s1SnoSnameSdeptNo0001MalyISNo0003CandyISN00004JalnIS关系s2SttoAgeN00的l23N0000821N00021,,曰7l51)(昌25110SnameSllept叱eN00001、,____气M田甲IS23


如图,两个集合存在同样的属性Sno这样将这两个不同集合中同样属性的一行连接,得到结果。



    如上就是关系代数的一些基本操作和扩展操作,很多其它的须要从实际的样例来理解定义这样会便于理解。对于主要的操作,并、差、笛卡尔积针对的都是两个不同的集合的操作;而投影和连接针对既定集合的操作。扩展中的运算主要是连接,连接依据θ的值的不同来区分究竟是自然连接和等值连接;等值连接和自然连接都是θ值在不同情况下的特殊状态。