《《传统的集合运算》PPT课件教案资料.ppt》由会员分享,可在线阅读,更多相关《《传统的集合运算》PPT课件教案资料.ppt(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、传统的集合运算传统的集合运算PPTPPT课件课件A AB BC C3 36 67 72 25 57 77 72 23 34 44 43 3RA AB BC C3 34 45 57 72 23 3SA AB BC C3 36 67 72 25 57 77 72 23 34 44 43 33 34 45 5RS 22.差(差(Difference)关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:R RS=t|tS=t|t R R t t S S R S3A AB BC C3 36 67 72 25 57 77 72 23 34 44 43 3RA AB BC C3
2、 34 45 57 72 23 3SA AB BC C3 36 67 72 25 57 74 44 43 3RS A AB BC C3 36 67 7SR 4交(交(Intersection Referential integrity)关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:RS=t|tRS=t|t R R t t SS 交运算可以通过差运算来重写:交运算可以通过差运算来重写:RS=R-(R-S)RS=R-(R-S)R S5A AB BC C3 36 67 72 25 57 77 72 23 34 44 43 3RA AB BC C3 34 45 57 7
3、2 23 3SA AB BC C7 72 23 3RS 6广义笛卡尔积(广义笛卡尔积(Extended cartesian product)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1k2个元组。记作:R R S S=t|t=t|t=t tr r,t ts s t tr r R R t ts s S S 7AB12RCD10102010EaabbSAB11112222CD 1019201010102010EaabbaabbR x S8
4、2.2.专门的关系运算专门的关系运算专门的关系运算专门的关系运算 专门的关系运算包括选择、投影、连接、除选择、投影、连接、除等。几个记号:几个记号:几个记号:几个记号:1.设关系模式为R(A1,A2,.,An)。它的一个关系设为R。tR表示t是R的一个元组。tAi则表示元组t中相应于属性Ai的一个分量分量。2.若A=Ai1,Ai2,.,Aik,其中Ai1,Ai2,.,Aik是A1,A2,.,An中的一部分,则A称为属性列或域列。A则表示A1,A2,.,An中去掉Ai1,Ai2,.,Aik后剩余的属性组。tA=(tAi1,tAi2,.,tAik)表示元组t在属性列A上诸分量的集合。93.R为n目
5、关系,S为m目关系。t tr r R R,t ts s S S,t tr r t ts s称为元组的连接连接 (Concatenation)。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。给定一个关系R(X,Z),X和Z为属性组。我们定义,当tX=x时,x在R中的象集(象集(Images Set)为:Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。X Z张军同学所选修张军同学所选修的全部课程的全部课程x=张军张军Z Zx x姓名姓名课程课程张军张军物理物理王红王红数学数学张军张军数学数学课程课程数学数学物理物理10更名
6、运算(了解)更名运算(了解)更名运算(了解)更名运算(了解)n定义n给一个关系表达式赋予名字 x(E E)返回表达式E的结果,并把名字x赋给E x(A1 1,A2 2,An n)(E E)返回表达式E的结果,并把名字x赋给E,同时将各属性更名为A1,A2,An n关系被看作一个最小的关系代数表达式,可以将更名运算施加到关系上,得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助111.选择(选择(Selection)选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:F F(R)=t|t(R)=t|t R R F(t)=F(t)=真真真真 其中
7、F表示选择条件,它是一个逻辑表达式,取逻辑值真或假。选择运算实际上是从关系选择运算实际上是从关系R中选取使逻辑表达式中选取使逻辑表达式F为真的为真的元组。元组。选择是从行的角度进行的运算。选择是从行的角度进行的运算。12ABC367257723443RA5(R)ABC367257443A5 C=7(R)ABC36725713例1 查询信息系(IS系)全体学生 Sdept=ISSdept=IS(Student)(Student)或或或或 5=IS5=IS(Student)(Student)例2 查询年龄小于20岁的元组 Sage20Sage20(Student)(Student)或或或或 420
8、420(Student)(Student)补充:查询年龄不小于20岁的男生 AGE20 AGE20 SEX=SEX=男男男男(S S)142.投影(投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。记作:A A(R)=tA|t(R)=tA|t R R 其中A为R中的属性列。投影操作是投影操作是从列的角度进行的运算。从列的角度进行的运算。注意:投影结果中要去掉相同的行注意:投影结果中要去掉相同的行cbcfedcbaCBABCbcef R R B,C(R)15例3 查询学生关系Student在学生姓名和所在系两个属性上的投影 Sname,SdeptSname,Sdep
9、t(Student)(Student)或 2,52,5(Student)(Student)例4 查询学生关系Student中都有哪些系,即查询学生关系Student在所在系属性上的投影 SdeptSdept(Student)(Student)补充:Sname,SageSname,Sage(S)(S)CnoCno(Sno=95001Sno=95001 (SCSC)给出所有学生的姓名和年龄给出所有学生的姓名和年龄找找001号学生所选修的课程号号学生所选修的课程号16广义投影(了解)广义投影(了解)广义投影(了解)广义投影(了解)n定义n在投影列表中使用算术表达式来对投影进行扩展 F1,F2,Fn(
10、E)F1 ,F2 ,Fn 是算术表达式n示例n求教工应缴纳的所得税 P#,SAL*5/100(PROF)173.连接(连接(Join)连接也称为连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:其中A和B分别为R和S上度数相等且可比的属性组。是比较运算符。连接运算从R和S的笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。R S=t tr rt ts s|t|tr r R R t ts s S S t tr rAAt ts sBBABR S R S=rArA SBSB(RS)RS)A B18 连接运算中有两种最为重要也最为常用的连接:一
11、种是等值连接(等值连接(等值连接(等值连接(equi-joinequi-join);另一种是自然连接(自然连接(自然连接(自然连接(Natural joinNatural join)为“”的连接运算称为等值连接等值连接等值连接等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为:R S=t tr rt ts s|t|tr r R R t ts s S S t tr rAA=t ts sBBA=B19987654321CBADE3162ABCDE123311236245662 R R S SB D R S R S 20 自然连接(自然连接(自然连接(自然连接(Nat
12、ural joinNatural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:一般的连接操作是从行的角度进行运算。但自然连接还一般的连接操作是从行的角度进行运算。但自然连接还需要取消了重复列,所以是同时从行和列的角度进行运需要取消了重复列,所以是同时从行和列的角度进行运算。算。当当R与与S无相同属性时,无相同属性时,R S RSR S=t tr rt ts s|t|tr r R R t ts s S S t tr rBB=t ts sBB21A B 12412C D aabab
13、rB13123DaaabbE s 11112 aaaab A B C D Er s22987654321CBACD3162ABCD12314562 R R S S R SR S234.除(除(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上投影的集合上投影的集合。记作:其中,Y Yx x为x在R中的象集,x=tr rX 除操作是同时从行和列的角度进行运算。
14、除操作是同时从行和列的角度进行运算。RS=tRS=tr rX|tX|tr r R R Y Y(S)(S)Y Yx x R R S=S=X X(R)(R)X X(X X(R)(R)Y Y(S)(S)R)R)24ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedef AB(R)AB(R)CD(S)AB(R)CD(S)-R ABCDbccdR S=ABabbcedABbc-=R S 25例例6 设关系R,S分别为图2-9中的(a)和(b),求RS的结果 在关系R中,A可以取四个值a1,a2,a3,a4。
15、其中:a1的象集为的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集为的象集为(b3,c7),(b2,c3)a3的象集为的象集为(b4,c6)a4的象集为的象集为(b6,c6)S在在(B,C)上的投影为上的投影为(b1,c2),(b2,c3),(b2,c1)显然只有显然只有a1的象集的象集(B,C)a1包含包含S在在(B,C)属性组上的属性组上的投影,所以投影,所以RS=a126课程课程数学数学物理物理姓名姓名课程课程成绩成绩张军张军物理物理93王红王红数学数学86张军张军数学数学93王红王红物理物理92课程课程数学数学物理物理姓名姓名课程课程张军张军物理物理王红王红数学数学张军
16、张军数学数学王红王红物理物理姓名姓名张军张军王红王红姓名姓名成绩成绩张军张军9393选修了全部课选修了全部课程并且成绩都程并且成绩都相同的学生相同的学生选修了全部选修了全部课程的学生课程的学生27习题习题习题习题1.求选修了1号或2号课程的学生号Sno(Cno=1 Cno=2(SC)Sno(Cno=1(SC)Sno(Cno=2(SC)方案方案1:方案方案2:282.求选修了1号而没有选2号课程的学生号Sno(Cno=1(SC)Sno(Cno=2(SC)293.求同时选修了1号和2号课程的学生号Sno(Cno=1 Cno=2(SC)Sno(Cno=1(SC)Sno(Cno=2(SC)Sno,Cn
17、o(SC)Cno=1 Cno=2(C)Sno(SC Cno=1 Cno=2(C)304.求未选修1号课程的学生号方案方案1:Sno(S)Sno(Cno=1(SC)方案方案2:Sno(Cno 1(SC)哪一个哪一个正确?正确?SnoCnoGs1c190s2c195s1c296SnoSNAGEs1s2s3315.求仅选修了1号课程的学生号选修选修1号课程的学生仅选号课程的学生仅选1号课程之外的学生号课程之外的学生S#(C#=1(SC)S#(SC C#=1(SC)S#(SC)S#(C#1(SC)所有选课的学生仅选所有选课的学生仅选1号课程之外的学生号课程之外的学生32S#C#SCOREP03C028
18、8P01C0392S#P01P02S#P01P03S#P0233外连接(了解内容)外连接(了解内容)外连接(了解内容)外连接(了解内容)n外连接外连接n为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接外连接=自然连接+失配的元组n外连接的形式:左外连接、右外连接、全外连接 左外连接左外连接=自然连接自然连接+左侧表中失配的元组左侧表中失配的元组右外连接右外连接=自然连接自然连接+右侧表中失配的元组右侧表中失配的元组全外连接全外连接=自然连接自然连接+两侧表中失配的元组两侧表中失配
19、的元组34外连接外连接外连接外连接500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SALPNP#所有老师的信息所有老师的信息35外连接外连接外连接外连接500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SA
20、LPNP#所有课程的信息所有课程的信息36外连接外连接外连接外连接500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SALPNP#所有老师和所有老师和课程的信息课程的信息37半连接半连接半连接半连接F R S R S R S R S F A()A是R中所有属性的集合38赋值运算赋值运算赋值运算赋值运算(了解了解了解了解)n定义n为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部
21、分都赋予一个临时关系变量,该变量可被看作关系而在后面的表达式中使用临时关系变量关系代数表达式n赋值给临时关系变量只是一种结果的传递,而赋值给永久关系则意味着对数据库的修改39赋值运算赋值运算赋值运算赋值运算n示例RS=X(R)X(X(R)Y(S)R)用赋值重写为:temp1 X(R)temp2 X(temp1 Y(S)R)result temp1 temp240聚集函数聚集函数聚集函数聚集函数(不讲不讲不讲不讲)n定义n求一组值的统计信息,返回单一值n使用聚集的集合可以是多重集,即一个值可以重复出现多次。如果想去除重复值,可以用连接符-将distinct附加在聚集函数名后,如sum-disti
22、nctnsum:求和 求全体教工的总工资sumSAL(PROF)求001号学生的总成绩sumSCORE(S#=001(SC)41聚集函数聚集函数聚集函数聚集函数navg:求平均 求001号同学选修课程的平均成绩。avgSCORE(S#=001(SC)ncount:计数 求001号同学选修的课程数。countC#(S#=001(SC)求任课老师的总数。count-distinctP#(PC)42聚集函数聚集函数聚集函数聚集函数nmax:求最大值 min:求最小值 求学生选修数学的最高成绩maxSCORE(CN=数学(C)SC)n分组n将一个元组集合分为若干个组,在每个分组上使用聚集函数。属性下标
23、属性下标 G 聚集函数聚集函数属性下标属性下标(关系)(关系)对此属性在每个分组对此属性在每个分组上运用聚集函数上运用聚集函数按此属性上的按此属性上的值对关系分组值对关系分组43聚集函数聚集函数聚集函数聚集函数n分组运算G 的一般形式G1,G2,.,Gn G F1,A1,F2,A2,Fm,Am(E)Gi是用于分组的属性,Fi是聚集函数,Ai是属性名。G 将E分为若干组,满足:1)同一组中所有元组在G1,G2,.,Gn上的值相同。2)不同组中元组在G1,G2,.,Gn上的值不同。n示例求每位学生的总成绩和平均成绩S#G sumSCORE ,avgSCORE(SC)44数据库修改(不讲)数据库修改
24、(不讲)数据库修改(不讲)数据库修改(不讲)n删除n将满足条件的元组从关系中删除r r En是对永久关系的赋值运算n例:n删除删除001号老师所担任的课程号老师所担任的课程PC PC PC#=001(PC)n删除删除没有选课的学生没有选课的学生S S (S#(S)S#(SC)S关系关系代数表达式关系代数表达式45数据库修改数据库修改数据库修改数据库修改n插入n插入一个指定的元组,或者插入一个查询结果r r En示例:新加入一个老师PC PC (P07,“周正”,750,D08)n示例:加入计算机系学生选修“数学”的信息SC SC S#(S DN=计算机系(DEPT)C#(CN=数学(C)46数
25、据库修改数据库修改数据库修改数据库修改n更新n利用广义投影改变元组的某些属性上的值r F1,F2,Fn(r)n示例:给每位老师上调10%的工资PC P#,PN,SAL SAL*1.1,D#(PC)n示例:对工资超过800的老师征收5%所得税PC P#,PN,SAL SAL*0.95,D#(SAL 800(PC)P#,PN,SAL,D#(SAL 800(PC)47视图(不讲)视图(不讲)视图(不讲)视图(不讲)n定义n视图是命名的、从基本表中导出的虚表,它在物理上并不存在,存在的只是它的定义n视图中的数据是从基本表中导出的,每次对视图查询都要重新计算create view view_name a
26、s n视图之上可以再定义视图n视图 Vs 临时关系变量48视图视图视图视图n视图的优点n个性化服务n简化了用户观点,使不同用户可以从不同角度观察同一数据简化了用户观点,使不同用户可以从不同角度观察同一数据n安全性n“知必所需知必所需”,限制用户数据的访问范围,限制用户数据的访问范围n逻辑独立性n视图作为基本表与外模式之间的映象视图作为基本表与外模式之间的映象49视图视图视图视图n示例n给出老师所教授课程的信息create view p_course As PN,CN(PROF PC C)n给出李明老师所教授的课程名称 PN=李明李明(p_course)50视图视图视图视图n视图更新n信息缺失c
27、reate view p_salary as PN,SAL(PROF)在视图p_salary上执行:p_salary p_salary (李明李明,800)在基本表PROF上执行:PROF PROF (李明李明,800)往PROF中加入元组(李明,800),缺主码缺主码P#P#信息信息51视图视图视图视图create view s_dean as SN,DEAN(S DEPT)在视图s_dean上执行:s_dean s_dean(叶开叶开,伍魁伍魁)在基本表S上执行:S S(null,叶开叶开,null,null)在基本表DEPT上执行:DEPT S(null,null,伍魁伍魁)52视图视图
28、视图视图S#SNAGED#s1张三20d1s2李四23d2s3王五22d3null叶开nullnullD#DNDEANd1物理莫愁d2数学乐天d3化学安然nullnull伍魁SNDEAN张三莫愁李四乐天王五安然叶开伍魁连接属性连接属性53视图视图视图视图n信息歧义在视图s_dean上执行:s_dean SN,DEAN安然安然(SN=李四李四(s_dean)S#SNAGED#s1张三20d1s2李四23d2s3王五22d3D#DNDEANd1物理莫愁d2数学乐天d3化学安然SNDEAN张三莫愁李四乐天王五安然S#SNAGED#s1张三20d1s2李四23d3s3王五22d3D#DNDEANd1物
29、理莫愁d2数学安然d3化学安然OR54视图视图视图视图n物化视图n视图的计算结果被实际存储起来n物化视图可以看成是数据库的cachen查询物化视图比重新计算视图要快许多n需要进行物化视图与基本表之间的一致性维护n应用场合n任何需要对派生数据的快速访问、或视图的重新计算任何需要对派生数据的快速访问、或视图的重新计算非常昂贵、或查询需要耗费非常高的非常昂贵、或查询需要耗费非常高的CPU和磁盘吞吐和磁盘吞吐量的应用场合,都可以使用物化视图来提高效率量的应用场合,都可以使用物化视图来提高效率55视图视图视图视图n如一个零售数据库,存储terabytes数量级的几个月的销售数据。而诸如某个商店的某件商品的销售总量这样的查询,每天可能要被零售商、仓库管理员、市场部人员执行若干次。这时可以将商品的销售总量商品的销售总量查询结果查询结果定义为物化视图n如一个处理定单与产品的事务系统,大量的查询需要连接定单与产品表,可以将定单与产品表的连接结果定单与产品表的连接结果定义为物化视图56结束结束