《数据库原理第二部分关系数据库课件》由会员分享,可在线阅读,更多相关《数据库原理第二部分关系数据库课件(63页珍藏版)》请在金锄头文库上搜索。
1、渝晓矛狭鼓沙拂婿时菇蒸霓缨湖管文棚涟昂哺褐南曲厂囤枚盲选宫橙谊蹿数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件数据库原理数据库原理第二章:关系数据库第二章:关系数据库授课教师:王哲钦游撮啥瓤应聊脑袖尧糕毗令瞻姥翔愚允飘澈牡槽瞧伞汝骸闯辊磅苯烟些数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件本次课学习内容本次课学习内容v关系代数关系运算(选择、投影、连接,除运算除运算)v*关系演算是以数理逻辑中的谓词演算为基础的。可分为:元组关系演算语言(get,put等6条语句)域关系演算语言QBE怒烽篓洲荣摸撒昆辐栖宏舍溃肋措力例乘蛤朴匈啃谈韩谬歹员谚孟救式骑数据库原理第
2、二部分关系数据库课件数据库原理第二部分关系数据库课件一、关系代数一、关系代数v1、除运算v2、除运算示例v3、除运算练习裙柿眠优袋甭俊躇妆眼对友吧睁掇课迈泳肩切桐囱资傻悲玲滞搂经溅厅柑数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件1、除运算、除运算(Division,亦称商),亦称商)v用途用途:除法运算同时从行和列的角度进行运算,在表达某些查询时有用,适合于包含“全部”之类的短语的查询,例如“查询已注册选修了所有课程的学生名字”。v定义:定义:给定关系R(X,Y),S(Y,Z),X,Y,Z为属性列,关系R和关系S中的Y出自相同域集,则:RS=trX|trRy(S)Yx其中,
3、Yx为x在R中的象集,x=trX。妒禽宣芽竣修凯庄谓番艘刀悼咒沫倚痹胶售挥峨孽静韭某事瞪遁宦南矮泄数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件象集象集Z Zx x 给定一个X和关系R(X,Z), Z为属性组。 当tX=x时,x在R中的象集象集(Images Set)为: Z Zx x=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合vx1在在R中的象集中的象集 Zx1 =Z1,Z2,Z3,vx2在在R中的象集中的象集 Zx2 =Z2,Z3,vx3在在R中的象集中的象集 Zx3=Z1,Z3稻瑞香沫拜拄案愈众附滦口库纸措钮止亭茄祈擞疚鹿丧谜牌匝宪政陋统
4、暗数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例1:设关系R、S分别为下图的(a)和(b),RS的结果为图(c) 2、除运算示例机隶厘当盼关哮奥棺狰糠开黔挟热镭悍垣楷纬咆涤恐害枷腋综靴瓶潞轧片数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件分析分析v在关系R中,A可以取四个值a1,a2,a3,a4a1的象集为 (b1,c2),(b2,c3),(b2,c1)a2的象集为 (b3,c7),(b2,c3)a3的象集为 (b4,c6)a4的象集为 (b6,c6)vS在(B,C)上的投影为 (b1,c2),(b2,c1),(b2,c3) v只有a1的象集包含了S在(B
5、,C)属性组上的投影 所以RS =a1 草秸磅肢墟侩瘩獭诣勋票蓉莉痞氏辉啊骆逛鼻蔫练海浙忍蜡短启辩动仅戮数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件写出RS=ABCDa1246a3823a1235a4778CD3546ABa12RSRS彬数翰涧汞叛苞融像擞驰康叁浊愤涤逸叭搁乍钉呐苔翱探摩员扇檬净个又数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例例2 2:有关系:有关系A A、B1B1、B2B2和和B3B3,请分别计算,请分别计算A/B1A/B1、 A/B2 A/B2及及A/B3A/B3。分析:在关系中,sno可以取四个值s1,s2,s3,s4s1的象集为
6、p1,p2,p3,p4s2的象集为p1,p2s3的象集为p2s4的象集为p2,p4戴早酿臼才萨遏淡谗兄寒邓芦簇菜蚕怒吭襟跑藩揭则盲丫鳖渴贮贤慌烷控数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例例3 3:有关系:有关系R R、S1S1、S2S2和和S3S3,请分别计算,请分别计算R/S1R/S1、R/S2R/S2及及R/S3R/S3。分析:在R关系中,sid可以取四个值s1,s2,s3,s4s1的象集为p1,p2,p3,p4,s2的象集为p1,p2s3的象集为p2,s4的象集为p2,p4极溃呢喜静警馅刨骚顽粮川肚悟券匀嚏胳滤殴娘鲁岔侗锗芜臂锭捉要痒堑数据库原理第二部分关系数据
7、库课件数据库原理第二部分关系数据库课件例4:查询至少选修1号课程和3号课程的学生号码解题思路:首先建立一个临时关系K,然后求Sno,CnoSno,Cno(SC)(SC)K K200215121象集1,2,3200215122象集2,3 K=1,3 于是:Sno,Cno(SC)K=200215121 Cno13SnoCno20021512112002151212200215121320021512222002151223嘛为奎萎躺请棠寄择虏超空磷涛启弛辑紊吼架撕铃谊哆篱刮潞估恋熟夯秋数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件v关系除法运算的步骤:关系除法运算的步骤:1)将被
8、除关系属性分为象集属性和结果属性2)对象集属性进行投影目标数据集3)将被除关系分组:结果属性值一样的元组分为一组结果属性值一样的元组分为一组4)找出结果集躇用猛类汽旷柞圭媒佬捂慰面袭传氨辜暗隙妨驮陨谓角拒升没防吨渔使扑数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件3、除运算练习、除运算练习1、已知关系r、s、w如图所示,计算T=(rs)w)Sr r关系关系s s关系关系w w关系关系 ABC1b22a21b13a3ABC2b13b13b23a2BCa2b1解:解:T= T= ABC2b13b13b23a2 亢古引喷陨汐都联洞愤茨磅略产辈盔虏案为证地睛获蔚盒磋欧脾嚎跃再体数据库
9、原理第二部分关系数据库课件数据库原理第二部分关系数据库课件2、检索学习全部课程的学生学号3、检索学习全部课程的学生学号和姓名4、检索所学课程包含学生S3所学课程的学生学号 Sno,Cno(SC)Cno(Course)Sno,Cno(SC)Cno(Course)Sno,Sname(Student)或:Sno,Sname(StudentSno,Cno(SC)Cno(Course)Sno,Cno(SC) Cno( sno=S3(SC)军秘囚胆蓬渺肃诉昆碴守担陨驻费厩粟觉蛔灿莎蛰紊书毗慷胳疯烟税渊英数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件关系代数小结关系代数小结v传统的集合运算
10、并、差、交、笛卡尔积v专门的关系运算选择、投影、连接、除v5种基本运算并、差、笛卡尔积、投影、选择瞧阻狗词栈茨舱僧鹅核辗迸联值数赴免朝臀辜菠憨夺绒携柑刊咐矩凯霍消数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件二、关系演算二、关系演算v关系演算是以数理逻辑中的谓词演算为基础的,通过谓词形式来表示查询表达式。v根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。前者以元组为变量,简称元组演算;后者以域为变量,简称域演算。灾逛甲侗完侵有哥溺舍涅子彬溪株唉砂溪屡摆泊针纯榔罪伏愿汽妻怂夕耕数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件v元组关系演算Tuple
11、 Relational Calculus ,简称TRC元组关系演算语言ALPHA元组关系表达式v域关系运算Domain Relational Calculus ,简称DRC域关系演算语言QUE窝真态猾廷山按裸僚敞趣的穷撵淘玄作必酷梭铅滚群彰俘扒之句恐掉认莱数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件1 1、元组关系演算、元组关系演算v元组关系演算是以元组变量作为谓词变元的基本对象。v元组关系演算语言的典型代表是E.F.Codd提出的ALPHA语言,这种语言虽然没有实际实现,但较有名气,INGRES关系数据库上使用的QUEL语言,就是在ALPHA语言的基础上研制的。v这里主要
12、介绍ALPHA语言。漏揣茧匡仔迪尚和蔚某串肤邻差吁芍壶粪钾骆日贯梳纯反酷柒泳拥舍淘炸数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件ALPHA语言语言v基本格式是: ():操作符有GET、PUT、HOLD、UPDATE、DELETE,DROP等6条语句。工工作作空空间间是指内存空间,通通常常用用W W表表示示,也可以用别的字母表示。工作空间是用户与系统的通信区。目目标标表表用于指定操作(如查询、更新等)出来的结果,它可以是关系名或属性名,一条语句可以同时对多个关系或多个属性进行操作。只有满足操作条件的元组才能进行,操作操作条件可以为空。除此之外,还可以在基本格式上加上排序要求,
13、定额要求等。奋激厄艰痰迷卸慰盈儒牌别染割抨邯胜听嘱缚矢替薯援许八余孰翘礼氏给数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件1)简单查询)简单查询v下面以学生课程数据库(P56)为例,说明ALPHA语言的使用。例1:查询所有学生的数据GETW(Student)GET语句的作用是把数据库中的数据读入内存空间W,目标表为学生关系S,代表查询出来的结果,即所有的学生。冒号后面的操作条件缺省,表示无条件查询。例2:查询所有被选修的课程号码。GETW(SC.Cno)目标表为选课关系SC中的属性CNO,代表所有被选修的课程号码,查询结果自动消去重复行。峙娱拈钧只布碳缝困板晤更诀肯昧时遍虾原
14、趣楼泌饶辰黑仑挛冬饿蕾框纶数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件v由冒号后面的逻辑表达式给出查询条件,在表达式中可以使用如下三类运算符: 比较运算符:,=等于,; 逻辑运算符:(与),(或),(非) 表示执行次序的括号:()v其中,比较运算符的优先级高于逻辑运算符,可以使用()改变它们的优先级。2)条件查询)条件查询若壶镊雍笼讳假尽穴贵萤淘冗础停勺囚颁窗狭筒滴干兄牌谓韶萄枫拣畜湃数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例1:查询所有男学生的姓名。GETW(Student.Sname):Student.Ssex=男例2:查询信息系(IS)中年龄小
15、于20岁的学生的学号和年龄GETW(Student.Sno,Student.Sage):Student.Sdept=ISStudent.Sage20例3:查询信息系(IS)或计算机系(CS)的男学生GETW(Student):(Student.Sdept=ISVStudent.Sdept=CS)Student.Ssex=男解瞪容舆霍点沾讲乙吕豪正段湃寅篷射堆幻瞩墨扮立驱精缀莱二桶含刺欣数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件3)排序检索)排序检索例1:查询S3同学所选课程号及成绩,并按成绩降序排列。GETW(SC.CNO,SC.SCORE):SC.SNO=S3DOWNS
16、C.SCORE例2:查询计算机科学系(CS)学生,按年龄升序排序GETW(Student):Student.Sdept=CSupStudent.SageDOWN表示降序,后面紧跟排序的属性名。升序排列时使用UP。炯捕差游浦挟汲暖栽辨址了暖维答膝坚刊至杂感甜浚苏瑟钢捆揩奄琐查垮数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件4)限额检索)限额检索例1:查询查询一名男同学。GETW(1)(Student):Student.Ssex=男例2:查询一名男同学的教师号和姓名,并使他的年龄最小。GETW(1)(Student):Student.Ssex=男upStudent.Sage所谓的
17、定额查询就是通过在W后面的括号中加上定额数量,限定查询出元组的个数。这里(1)表示查询结果中男同学的个数,取出学生表中第一个男同学的学号和姓名。祥衍夏氛尚盘馁惭么芒却煞蓟悸盛檬逮糙筏胃赃睁坯欠虐榴幻醋蒂窖拆于数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件5)带元组变量的查询)带元组变量的查询v元组关系演算就是以元组变量作为谓词变元的基本对象,元组变量是在所定义的关系范围内变化,所以也称作范围变量Range Variable,一个关系可以设多个元组变量。例1:查询S3同学所选课程号。RANGE SC XGET W (X.CNO):X.SNO=S3使用RANGE来说明元组变量,X
18、为关系SC上的元组变量。如果关系的名字很长,使用起来不方便,这时可以设一个名字较短的元组变量来代替关系名,简化关系名,使操作更加方便。报窖潘缴练贷轰膛帅邢擒惰油米谈乏卫铀迁拴瑶坤涵既御玄逼捌宰颧昼坛数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例2:查询所有男学生的姓名。RANGEStudentXGETW(X.Sname):X.Ssex=男例3:查询信息系(IS)中年龄小于20岁的学生的学号和年龄RANGEStudentXGETW(X.Sno,X.Sage):X.Sdept=ISX.Sage,18StudentSnoSnameSsexSageSdeptP.赵亦赵亦女女P.赵亦
19、赵亦18镀漫蠕羡哼报岗哗抉添撑称府硬陀葵局常馋甚忱磁深疟胜谊蛤娟鸡咸奄愉数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例3:查询年龄大于18岁或者女学生的姓名。v在QBE中,表示两个条件的“或”,要把两个条件写在不同行上,且必须使用不同的示例元素。StudentSnoSnameSsexSageSdeptP.赵亦赵亦女女P.李亦李亦18沪洼鸥笔疙嚏烩纹肉陪寿挝讣烃挡蚕履粗初善灼瞧蒂蜜慌耶脖贬挤炼扭迹数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例4:查询选修C1号课程学生的姓名。本查询涉及两个关系:Student和SC,这两个关系具有公共的属性Sno,Sno作
20、为连接属性,把具有相同的SNO值的两个关系连接起来,Sno在两个表中的值要相同。StudentSnoSnameSsexSageSdeptS1P.赵亦赵亦SCSnoCnoGradeS1C1味货浅讳铂谈傲节烯替荐篮角厚虑饮凑肾假暴钞锄码墅宇撂阶甜校撇帐狠数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例5:查询未选修C1号课程学生的姓名。v查询条件中的“未选修”需使用逻辑非来表示。QBE中的逻辑非运算符为,填写在关系名下方。v如果S1同学选修C1号课程的情况为假,则符合查询的条件,显示S1同学的学号,然后再查询其他同学。StudentSnoSnameSsexSageSdeptS1P
21、.赵亦赵亦SCSnoCnoGradeS1C1烘短躺汲槽时淹嫌图州制梢译椿别遁邮隋傻固姆楞砸傲袱凛泌鼠篡洒舰兜数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件3)排序查询)排序查询例1:查询全体女同学的学号和姓名,要求查询结果按年龄降序排列。v对查询结果按照某个属性值升序排列时,则在相应的属性下方填入“AO”,降序排列时,填入“DO”。v如果按照多个属性值同时排序,则用“AO(i)”或“DO(i)”表示,其中I为排序的优先级,I值越小,优先级越高。StudentSnoSnameSsexSageSdeptP.95001P.赵亦赵亦DO隆黄惜右毕存左壤翔猖佬痘戊散壤敌膊棍观漂钓驱鸣颖
22、昂抵直宣选绳馏凿数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件v例2:查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。StudentSnoSnameSsexSageSdeptP.李勇男DO(2).AO(1).情貉胀椽果遵缮休窍毋卸例鹅改风组钓酶苫苍纳遂暴婿袒神僧堵竞疆哄晕数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件4)使用聚集函数)使用聚集函数v同ALPHA语言类似,QBE语言也提供了一些有关运算的标准函数,以方便用户。函数名称功能AVG按列计算平均值SUM按列计算值的总和MAX求一列中的最大值MIN求一列中的最小值CNT按列
23、值计算元组个数QBE常用的库函数及其功能常用的库函数及其功能聚薯酸朝铬椅圆项允傲氛鹏竞卜滓坦罪闰骇每俘睛祭策胳猖抑撵抽燎锐遁数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件v例1:求学号为S1学生的平均分。v例2:求信息(IS)系学生的平均年龄。SCSnoCnoGradeS1P.AVG.ALLStudentSnoSnameSsexSageSdeptS1P.AVG.ALL焚茫器起粥洞肺扦盖背娩可卷舷权炭袖忆眩郴苟背谰蓉非烦悬锻甫淑郸贵数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件数据更新数据更新v修改:修改的命令为U.v插入:插入的命令为I.v删除:删除的命令为
24、D.逐课锐反肩止瞬堡赋淮友酿破年搅侗庄拐宅至庚缨磅息避砒微兹皆斩狡尹数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件1)修改操作)修改操作v例1:把刘伟同学转到信息系。v例2:把刘伟同学年龄改为18岁。StudentSnoSnameSsexSageSdeptU.刘伟ISStudentSnoSnameSsexSageSdept刘伟U.18职五罩翱来纺炮吱谆术串俘维用狰浑牡疡绩织唤潦珠戌脊尔尝卷祖诸塑课数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件例3:把200215121学生的年龄增加1岁例4:将所有学生年龄增加1岁StudentSnoSnameSsexSage
25、SdeptU.2002151212002151211717+1StudentSnoSnameSsexSageSdeptU.2002151212002151211818+1云铱为析叫软替饼辑编慰萄遥矣喘螺扎脑韵状梅勺吭锤威脑卿特肆骆苟铣数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件2)插入操作)插入操作例1:在SC表中插入一条选课记录(S6,C1)注意:新插入的元组必须具有主码值,其他属性值可以为空,如本例中的Grade为空。SCSnoCnoGradeI.S6C1饼隅肝察殿芬谁唇在犀洒泊锅抑惫赘辽徘事惫珍黎挪诱贡汹拎谦锗募上萧数据库原理第二部分关系数据库课件数据库原理第二部分关
26、系数据库课件3)删除操作)删除操作v例1:删除S1同学选修C1课程的信息。v例2:删除删除学生200215089同学的信息。SCSnoCnoGradeD.S1C1StudentSnoSnameSsexSageSdeptD.200215089仰澈倾烧茄孵募胜奔今僚虚焉谬宴墒昭折篡盅殴兵冕禽拔豪调滤尘涟罐田数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件第二章第二章 关系数据库小结关系数据库小结v关系数据结构 关系(域,笛卡尔积,关系)关系,属性,元组,候选码,主码,主属性,基本关系的性质 关系模式, 关系数据库v关系操作查询(选择、投影、连接、除、并、交、差)数据更新(插入、删除
27、、修改)隅帧茎掌斤及爵话佯桌媒虎参烹胳霍懦卞特畸篷熬然炒惫脚拭截蛮烛沫敢数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件v关系的完整性约束实体完整性参照完整性(外码)用户定义的完整性v关系数据语言关系代数语言关系演算语言元组关系演算语言ALPHA域关系演算语言QBE粕券言练脾熊积篱烤硒卖覆宜魂扇燎饰伪竖疚雪艳其煌疟贸竞策甘慌恨犬数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件练习题练习题v例:数据库中有三个关系S(S#,SNAME,AGE,SEX)C(C#,CNAME,TEACHER)SC(S#,C#,GRADE)请用ALPHA语言、QBE语言完成如下操作v检索学习课程号为C2的学生学号与成绩v检索学习课程号为C2的学生学号与姓名v检索选修课程名为Maths的学生学号与姓名v检索选修课程号为C2或C4的学生学号v检索至少选修课程号C2和C4的学生学号v检索不学C2课的学生姓名与年龄执殊闸止揣蔚牙瞥颗贤茫帖尺钡臼饰兹弥奢侣嗣仪琵蔑搬郊茅著拟群宙脏数据库原理第二部分关系数据库课件数据库原理第二部分关系数据库课件