《数据库系统概论:第2章 关系数据库理论2》由会员分享,可在线阅读,更多相关《数据库系统概论:第2章 关系数据库理论2(44页珍藏版)》请在金锄头文库上搜索。
1、2.1 2.1 关系数据结构关系数据结构第第2 2章章 关系数据库理论关系数据库理论2.2 2.2 关系操作关系操作2.3 2.3 关系的完整性关系的完整性2.4 2.4 关系代数关系代数1 任何一种运算都是将一定的任何一种运算都是将一定的运算符运算符作用作用于一定的于一定的运算对象运算对象,得到预期的,得到预期的运算结果运算结果。关系代数的关系代数的运算对象和结果都是关系运算对象和结果都是关系。 运算符包括运算符包括四类四类:集合运算符、专门关:集合运算符、专门关系运算符、比较运算符、逻辑运算符系运算符、比较运算符、逻辑运算符2.4 2.4 关系代数关系代数232.4.1 传统的集合运算传统
2、的集合运算传统的集合运算:传统的集合运算: 合并合并 、相交、相交 、求差、求差- -(相减)、(相减)、广义笛卡尔积广义笛卡尔积 ( (运算从关系的水平(运算从关系的水平(行行)的角度来)的角度来进行)进行)4 具有具有相同属性集相同属性集的两个关系的两个关系R R1 1,R R2 2 的合并,是由属于的合并,是由属于R R1 1或属于或属于R R2 2(或或属于两者)的所有元组属于两者)的所有元组t t(不计重复元组不计重复元组)组成的一个新的关系,新关系具有和组成的一个新的关系,新关系具有和R R1 1相同的属性名集合。相同的属性名集合。 运算符:运算符:“”“” 记为:记为: R R1
3、 1RR2 2 并运算并运算5例如例如ABC123456789ABC7894565112R RS SRSRS的结果为:的结果为:ABC12345678951126 差运算(相减)差运算(相减)具有具有相同属性集相同属性集的两个的两个关系关系R R1 1, R, R2 2的求差,是由属于的求差,是由属于R R1 1而不属而不属于于R R2 2的所有元组的所有元组t t组成的一个新的关系,组成的一个新的关系,新关系具有和新关系具有和R R1 1相同的属性名集合。相同的属性名集合。 运算符:运算符:“” ” 记为:记为: R R1 1- R- R2 2 7例如例如ABC123456789ABC789
4、4565112R RS SR-SR-S的结果为:的结果为:ABC1238交运算交运算 具有具有相同属性集相同属性集的两个关系的两个关系R R1 1, , R R2 2的相交,是由既属于的相交,是由既属于R R1 1又属于又属于R R2 2的所的所有元组有元组t t组成的一个新的关系,新关系组成的一个新的关系,新关系具有和具有和R R1 1相同的属性名集合。相同的属性名集合。运算符:运算符:记为:记为: R R1 1 R R2 29S-RR-SRSRS =R-(R-S) RS =S-(S-R)10例如例如ABC123456789ABC7894565112R RS SR RS S的结果为:的结果为
5、:ABC45678911 广义笛卡尔积广义笛卡尔积 两个关系两个关系R,SR,S(设(设R R为为k k1 1元关系,元关系,M M个个元组,元组,S S为为k k2 2元关系,元关系,N N个元组)的广义笛卡尔积,个元组)的广义笛卡尔积,是一个(是一个(K K1 1+K+K2 2)列的元组的集合,是由属于列的元组的集合,是由属于R R1 1的的任何一个元组任何一个元组t tk1k1和属于和属于S S的元组的元组t tk2k2连接而成的新连接而成的新元组元组t t所组成的一个新关系。所组成的一个新关系。(新关系中元组的前(新关系中元组的前K K1 1列是关系列是关系R R的一个元组,后的一个元
6、组,后K K2 2列是关系列是关系S S的一个元组,基的一个元组,基数为数为M*NM*N) 运算符:运算符: 记为:记为: R R S S 12例如:例如:R RSSABCabcbceedcCDcdefR RS SABR.CS.CDabccdabcefbcecdbceefedccdedcefR RSS结果为:结果为:RSRS结果中元组的个结果中元组的个数(即数(即基数基数, ,行数行数)= = R R和和S S中中行数之积行数之积;属性的个数属性的个数( (即即元数元数, ,列数列数) )= =R R和和S S中列数之和中列数之和。132.4.2 专门的关系运算专门的关系运算专门的关系运算:专
7、门的关系运算: 选择选择 、投影投影 、连接、连接 、求商、求商 (运算不仅涉及(运算不仅涉及行行而且涉及而且涉及列列)14 选择(限制)选择(限制) 从现有关系中选择满足一定条件的从现有关系中选择满足一定条件的元组元组组成新的关系。组成新的关系。(从行的角度进行运算)(从行的角度进行运算) 运算符运算符“” 记为:记为: F F(R R)=t|t=t|t R R F(tF(t)=true)=true 其中其中F F为为选择条件,是一个逻辑表达式选择条件,是一个逻辑表达式 15选择运算是从行的角度进行的运算选择运算是从行的角度进行的运算例如例如设有一个学生设有一个学生- -课程数据库,包课程数
8、据库,包括学生关系括学生关系StudentStudent、课程关系、课程关系CourseCourse和选修关系和选修关系SCSC。16选择(续)学学号号Sno姓姓名名Sname性性别别Ssex年年龄龄Sage所所在在系系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS(a)Student17选择(续)(b)Course课程号课程号课程名课程名先行课先行课学分学分CnoCnameCpnoCcredit1数据库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理2
9、7PASCAL语言语言6418选择(续)(c)SC学学号号课课程程号号成成绩绩SnoCnoGrade950011929500128595001388950022909500238019选择(续)例例1 查询信息系(查询信息系(IS系)全体学生系)全体学生 Sdept = IS (Student)或或 5 =IS (Student)结果:结果: SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95004张立张立男男19IS注意:常量要用单引号括起来,而属性名或属性注意:常量要用单引号括起来,而属性名或属性 序号不用加引号。序号不用加引号。20选择(续)例例2 查询年龄小于
10、查询年龄小于20岁的学生岁的学生 Sage 20(Student) 或或 4 n0mn0),那那么么RSRS是是一一个个(m-m-n n)元的元组集合。元的元组集合。 37象集象集 给定一个关系给定一个关系R(X,Y)R(X,Y),X X和和Y Y为属性组。定为属性组。定义,当义,当tX=tX=x x时,时,x x在在R R中的象集为:中的象集为:Y Yx x =tY|tR,tX= =tY|tR,tX=x x 它表示它表示R R中属性组中属性组X X上值为上值为x x的诸元组在的诸元组在Y Y上各上各分量的集合。分量的集合。tYtY Y Y为为R R中的一个属性组,中的一个属性组,Y=yY=y
11、i1i1,y,yi2i2y yikik ,tY=(tytY=(tyi1i1,ty,tyi2i2tytyikik)表示表示R R中的元中的元组组t t在属性组在属性组Y Y上各分量的集合上各分量的集合38(1)(1)将将R R中中属性分为两个集合属性分为两个集合X X和和Y Y, R(X,YR(X,Y),),其中其中Y Y就是就是S S中的前半部分中的前半部分 属性的集合属性的集合,S(Y,Z),S(Y,Z)。(2)(2)若若X X的某个值的某个值x x的象集的象集Y Yx x Y Yx x=tYtRtX=x=tYtRtX=x 包含包含S S表中表中tYtY的所有元组的所有元组,则,则 将将x
12、x放入结果集中。放入结果集中。因此,求因此,求RSRS的操作步骤如下:的操作步骤如下:39例如:例如:ABCDabcdabefabdebcefedcdedefCDcdefR RS SX XY YY Y当当x=(b,c)x=(b,c)时,时,其象集其象集Y Yx x为:为: C D e f40RSRS的结果为:的结果为:ABabedX X当当x=(a,b)x=(a,b)时,时,其象集其象集Y Yx x为:为:CDcdefde当当x=(e,d)x=(e,d)时,时,其象集其象集Y Yx x为:为:CDcdef41 A B C a1 b1 c2 a2 b3 c7 a3 b4 c6 a1 b2 c3
13、a4 b6 c6 a2 b2 c3 a1 b2 c1 B C D b1 c2 d1 b2 c1 d1 b2 c3 d2X Y YZ例:例: RSRSRS(1)(1)当当x x=(a=(a1 1) )时时其象集为其象集为 B C b1 c2 b2 c3 b2 c1X可以取值为可以取值为aa1 1,a,a2 2,a,a3 3,a,a4 4 42(2)(2)当当x x=(a=(a2 2) )时时 (3)(3)当当x x=(a=(a3 3) )时时(4)(4)当当x x=(a=(a4 4) )时时其象集为其象集为其象集为其象集为其象集为其象集为 B C b3 c7 b2 c3 B C b4 c6 B C b6 c6 B C b1 c2 b2 c1 b2 c3S在在(B,C)Y上的投影为上的投影为RSRS的结果为:的结果为: A a1X43各种运算总结:各种运算总结: 关系代数运算有五个基本操作,另三个非关系代数运算有五个基本操作,另三个非基本运算可以由这基本运算可以由这5 5个基本运算组合而成。个基本运算组合而成。由由和和 组合而成组合而成由由、- - 和和组合而成组合而成44