关系代数

来源:互联网 发布:知进退 明得失 编辑:程序博客网 时间:2024/05/01 12:48
简述关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。
关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符

比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以关系代数的运算按运算符的不同主要分为传统的集合运算和专门的关系运算两类. 传统的集合运算传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。

⒈ 并(Union) 

设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作: 
R∪S={t|t∈R∨t∈S} 
⒉ 差(Difference) 
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作: 
R-S={t|t∈R∧フt∈S}
⒊ 交(Intersection Referential integrity) 
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S&127;的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作: 
R∩S={t|t∈R∧t∈S}
⒋ 广义笛卡尔积(Extended cartesian product) 
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。专门的关系运算专门的关系运算包括选择、投影、连接、除等。
为了叙述上的方便,我们先引入几个记号。 
⒈ 设关系模式为R(A1, A2, …, An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量 。 
⒉ 若A={Ai1, Ai2, …, Aik},其中Ai1, Ai2, …, Aik是A1, A2, …, An中的一部分,则A称为属性列或域列。フA则表示{A1, A2, …, An}中去掉{Ai1, Ai2, …, Aik}后剩余的属性组。t[A]=(t[Ai1], t[Ai2], …, t[Aik])表示元组t在属性列A上诸分量的集合。 
⒊ R为n目关系,S为m目关系。设tr∈R(r为下标),ts∈S(s为下标),则trts(整个式子上方加一个半弧,r和s为下标) 称为元组的连接(Concatenation)。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。 
⒋ 给定一个关系R(X,Z),X和Z为属性组。我们定义,当t[X]=x时,x在R中的象集(Images Set)为: 
Zx={t[Z]|t∈R, t[X]=x} 
它表示R中属性组X上值为x的诸元组在Z上分量的集合。 
⒈ 选择(Selection) 
选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作: 
σF(R) = {t|t∈R ∧ F(t)='真'} 
其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。 
逻辑表达式F的基本形式为: 
X1 θ Y1 [ φ X2 θ Y2 ]
θ表示比较运算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。φ表示逻辑运算符,它可以是フ、∧或∨。[ ]表示任选项,即[ ]中的部分可以要也可以不要,...表示上述格式可以重复下去。 
因此选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。 
⒉ 投影(Projection) 
关系R上的投影是从R中选择出若干属性列组成新的关系。记作: 
ΠA(R) = { t[A] | t∈R } 
其中A为R中的属性列。 
⒊ 连接(Join) 
连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。 
连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。 
θ为“=”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。
自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。 
一般的连接操作是从行的角度进行运算。但自然连接还需要取消了重复列,所以是同时从行和列的角度进行运算。
4. 除(Division) 

给定关系R(X,Y)和S(Y,Z),其中X, Y, Z为属性组。R中的Y与S中的Y&127;可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下 列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。


原创粉丝点击