1、第第2 2章关系数据库系统章关系数据库系统12.32.3关系代数2.3.12.3.1传统的集合运算传统的集合运算 2.3.22.3.2专门的关系运算专门的关系运算第第2 2章关系数据库系统章关系数据库系统22.3.1传统的集合运算1.1.并(并(unionunion)设关系设关系R R和关系和关系S S具有相同的关系模式,具有相同的关系模式,R R和和S S的并是由属的并是由属于于R R或属于或属于S S的元组构成的集合,记为的元组构成的集合,记为R RS S。形式定义如下:。形式定义如下:R RS=S=t|tt|tR Rt tS tS t是元组变量,是元组变量,R R和和S S的元数相同的元
2、数相同2.2.差(差(differencedifference)设关系设关系R R和关系和关系S S具有相同的关系模式,具有相同的关系模式,R R和和S S的差的差是由属于是由属于R R但不属于但不属于S S的元组构成的集合,记为的元组构成的集合,记为R RS S。形式定义如下:。形式定义如下:R RS=t|tS=t|tR Rt S Rt S R和和S S的元数相同的元数相同3.3.交(交(intersectionintersection)设关系设关系R R和关系和关系S S具有相同的关系模式,关系具有相同的关系模式,关系R R和和S S的交是由属于的交是由属于R R又属于又属于S S的元组构
3、成的集合,记为的元组构成的集合,记为R RS S。形式定义如下:。形式定义如下:R RS=t|tS=t|tR Rt tS RS R和和S S的元数相同关系的交可以用差的元数相同关系的交可以用差来表示,即来表示,即R RS=RS=R(R(RS)S)。4.4.广义笛卡尔积(广义笛卡尔积(extended cartesian productextended cartesian product)设关系设关系R R和和S S分别为分别为m m目(属性数)和目(属性数)和n n目,目,R R和和S S的广义笛卡尔积是一个(的广义笛卡尔积是一个(m+nm+n)列的元组的集)列的元组的集合。元组的前合。元组的
4、前m m列是列是R R的一个元组,后的一个元组,后n n列是关系列是关系S S的一个元组。记为的一个元组。记为R RS S。形式定义如下:形式定义如下:R RS=tS=tr rt ts s|t|tr rR Rt ts sS S 若若R R有有m m个元组,个元组,S S有有n n个个元组,则元组,则R RS S有有m mn n个元组。个元组。第第2 2章关系数据库系统章关系数据库系统32.3.2专门的关系运算专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个记号。入几个记号。(1 1)设关系模式为)设关系模式为
5、R R(A A1 1,A A2 2,A A3 3,A An n)。它的一个关系设为)。它的一个关系设为R R。t tR R表示表示t t是是R R的一个元组。的一个元组。t At Ai i 则表示元组则表示元组t t中相应于属性中相应于属性A Ai i的一个分量。的一个分量。(2 2)若)若A=AA=Ai1i1,A Ai2i2,A Ai3i3,A Aikik,其中,其中A Ai1i1,A Ai2i2,A Ai3i3,A Aikik是是A A1 1,A A2 2,A A3 3,A An n中的一部分,则中的一部分,则A A称为属性列或域列。称为属性列或域列。t A=t A=(t At Ai1i1
6、,t t AAi2i2,t At Ai3i3,t At Aikik)表示元组)表示元组t t在属性列在属性列A A上诸分量的集合。上诸分量的集合。(3 3)R R为为n n目关系,目关系,S S为为m m目关系。目关系。t tr rR R,t ts sS S,t tr rt ts s称为元组的连接。它称为元组的连接。它是是n+mn+m列的元组,前列的元组,前n n个分量为个分量为R R 中的一个中的一个n n元元组,后元元组,后m m个分量为个分量为S S中的中的一个一个m m元元组。元元组。(4 4)给定一个关系)给定一个关系R R(X X,Z Z),),X X和和Z Z为属性组。定义,当为
7、属性组。定义,当t X=xt X=x时,时,x x在在R R中的象集(中的象集(images setimages set)为:)为:Z Zx x=t Z|t=t Z|tR R,t X=xt X=x它表它表示示R R中属性组中属性组X X上值为上值为x x的诸元组在的诸元组在Z Z上分量的集合。上分量的集合。第第2 2章关系数据库系统章关系数据库系统41.1.选择(选择(selectionselection)选择又称为限制(选择又称为限制(restrictionrestriction),它是在关系),它是在关系R R中选取符合条件的元中选取符合条件的元组。是 从 行 的 角 度 进 行 的 运
8、算。记 为:组。是 从 行 的 角 度 进 行 的 运 算。记 为:F F(R)=(R)=t|tt|tR RF(t)=TrueF(t)=True其中其中F F表示选择条件,表示选择条件,它是一个逻辑表达式,取逻辑值它是一个逻辑表达式,取逻辑值“TrueTrue”或或“FalseFalse”。逻辑表达式逻辑表达式F F有两种成分:(有两种成分:(1 1)运算对象:运算对象:有常量(用引号括起来)有常量(用引号括起来)和元组分量(属性名或列的序号)。(和元组分量(属性名或列的序号)。(2 2)运算符:运算符:有算术比较运算符有算术比较运算符(也称为(也称为符)和逻辑运算符。符)和逻辑运算符。逻辑表
9、达式逻辑表达式F F就是由逻辑运算符连接各算术表达式组成。而算术表达式就是由逻辑运算符连接各算术表达式组成。而算术表达式的基本形式为:的基本形式为:X X1 1X X2 2,其中,其中为算术比较运算符,为算术比较运算符,X X1 1、X X2 2为运算对象。为运算对象。2.3.2专门的关系运算第第2 2章关系数据库系统章关系数据库系统52.投影(投影(projection)投影是从投影是从R中选择出若干属性列组成新的关系。也就是中选择出若干属性列组成新的关系。也就是对一个关系对一个关系R进行垂直分割,消去某些列,并有时重新进行垂直分割,消去某些列,并有时重新安排列的顺序,是从列的角度进行的运算
10、。记为:安排列的顺序,是从列的角度进行的运算。记为:A(R)=tA|tR 其中其中A是是R中的属性列。中的属性列。投影后不仅取消了原关系中的某些列,而且还可能取消投影后不仅取消了原关系中的某些列,而且还可能取消某些元组。因为取消了某些属性列后,就可能出现重复某些元组。因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。行,应取消这些完全相同的行。2.3.2专门的关系运算第第2 2章关系数据库系统章关系数据库系统63.连接连接(join)连接也称为连接也称为连接。它是从两个关系的笛卡尔积中选取属性间满足给定条连接。它是从两个关系的笛卡尔积中选取属性间满足给定条件的元组。记为:件的元
11、组。记为:R S=trts|trRtsStr Ats B其中其中A和和B分别为关系分别为关系R和和S上度数相等且可比的属性组。上度数相等且可比的属性组。是比较运算符。是比较运算符。连接运算从连接运算从R和和S的广义笛卡尔积的广义笛卡尔积RS中选取(中选取(R关系)在关系)在A属性组上的值属性组上的值与(与(S关系)在关系)在B属性组上的值满足比较关系属性组上的值满足比较关系的元组。的元组。当当为为“=”时,该时,该连接称为等值连接;当连接称为等值连接;当为为“”时,称为大于连时,称为大于连接;当接;当为为“”时,称为小于连接。时,称为小于连接。自然连接(自然连接(natural join)是一
12、种特殊的等值连接。它要求两个关系中进是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。它是从行和列的角度进行运算。即它是从行和列的角度进行运算。即R和和S若具有相同的属性组,则自然连接若具有相同的属性组,则自然连接可记为:可记为:R S=trts|trRtsStr B ts B2.3.2专门的关系运算A B第第2 2章关系数据库系统章关系数据库系统74.除(除(division)给定关系给定关系R(X,Y)和和S(Y,Z),其中),其中X,Y,Z为属性组。为属性组。R中中的的Y
13、与与S中的中的Y可以有不同的属性名,但必须出自相同的域集。可以有不同的属性名,但必须出自相同的域集。R与与S的除运算得到一个新的关系的除运算得到一个新的关系P(X),P是是R中满足下列条件的元组在中满足下列条件的元组在X属性列上的投影:元组在属性列上的投影:元组在X上分量值上分量值x的象集的象集Yx包含包含S在在Y上投影的上投影的集合。记为:集合。记为:RS=trX|trRy(S)Yx 除除操作是同时从行和列进行运算。其具体计算过程如下:操作是同时从行和列进行运算。其具体计算过程如下:(1)计算)计算X分量值分量值x的象集的象集Yx。(2)计算)计算S在在Y上的投影上的投影K。(3)检查哪些分量值)检查哪些分量值x的象集的象集Yx包含包含K。该分量值。该分量值x即为除运算的结即为除运算的结果。果。2.3.2专门的关系运算