码迷,mamicode.com
首页 > 其他好文 > 详细

关系代数

时间:2014-05-14 21:31:43      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:style   blog   c   ext   http   width   

关系代数的由来


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


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


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

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

 

 常见符号

bubuko.com,布布扣

 

五种基本的关系代数


1、并

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

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


bubuko.com,布布扣


2、差(Difference)


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

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


bubuko.com,布布扣


3、笛卡儿积(Cartesian Product


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


bubuko.com,布布扣


4、投影(Projection)


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

表示符号 π


bubuko.com,布布扣

 

5、连接


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

 

σ为选择运算符


bubuko.com,布布扣


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

 

 

扩充的代数操作

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

如图


bubuko.com,布布扣


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

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


实例图表


bubuko.com,布布扣

 

结果


bubuko.com,布布扣

连接

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

 

 

θ连接

bubuko.com,布布扣


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

等值连接

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

自然连接

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


bubuko.com,布布扣


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



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

关系代数,布布扣,bubuko.com

关系代数

标签:style   blog   c   ext   http   width   

原文地址:http://blog.csdn.net/cfl20121314/article/details/25785705

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!