数据库之关系代数(理论部分)

来源:互联网 发布:hakko触摸屏编程软件 编辑:程序博客网 时间:2024/05/20 21:21

1.关系代数简介

关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。
关系代数的运算对象是关系,运算结果亦为关系
2.关系代数的运算
(1).集合运算
集合运算一般是从行的角度上进行运算,
常见集合的运算:
并(Union)
定义:设关系R和关系S具有相同数目的列n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作:
R∪ S ={t | t∈R ∨ t∈S}
理解:首先选择R中的所有元组,然后选择S中不属于R的元组。
举例:如图2.6(c)
 
差(Difference)
定义:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:
R-S ={t|t∈R ∧ フt∈S}
举例:如图2.6(d)
 
三、交(Intersection)
定义:设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:
R∩S ={t|t∈R ∧ t∈S}
举例:如图2.6(e)
 
四、广义笛卡尔积(Extended Cartesian Product)
定义:两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组
 

 

(2).关系运算
关系运算包括:选择、投影、连接、除等
选择:
选择(Selection)
定义:选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:
其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。
注:逻辑表达式F的基本形式为:
θ表示比较运算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。φ表示逻辑运算符,它可以是フ、∧或∨。[ ]表示任选项,即[ ]中的部分可以要也可以不要,…表示上述格式可以重复下去。
因此选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算
理解:选择部分行
投影(Projection)
定义:关系R上的投影是从R中选择出若干属性列组成新的关系。记作:
其中A为R的属性列。
理解:选择部分列
注:投影之后由于产生了完全相同的行,应取消这些完全相同的行
连接(Join)
定义:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:
其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。
理解:从笛卡尔积中选择满足一定条件的部分行。
说明:
① 连接运算中有两种最为重要也最为常用的连接:等值连接(equi-join)和自然连接(Natural join)。
② θ为“=”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为:
③ 自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:
除(Division)
定义:给定关系R(X,Y)和S(Y,Z),其中X, Y, Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:
其中YxxR中的象集
原创粉丝点击