数据库原理第二章关系数据库

上传人:大米 文档编号:567711256 上传时间:2024-07-22 格式:PPT 页数:63 大小:559KB
返回 下载 相关 举报
数据库原理第二章关系数据库_第1页
第1页 / 共63页
数据库原理第二章关系数据库_第2页
第2页 / 共63页
数据库原理第二章关系数据库_第3页
第3页 / 共63页
数据库原理第二章关系数据库_第4页
第4页 / 共63页
数据库原理第二章关系数据库_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《数据库原理第二章关系数据库》由会员分享,可在线阅读,更多相关《数据库原理第二章关系数据库(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其中,Yx为x在R中的象集,x=trX。腥郑帛柳抒徊孟

3、不耪饭吊彪估彭巳朝劳蒂劝固六似伯往插娄肋戴颈湘熔垢数据库原理第二章关系数据库数据库原理第二章关系数据库象集象集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痊息就伺姐巡份通琴晰证玩敬故鞠翼耸削句亲波蹄痒啼龄叠壹甲郡莎狗帮数据库原理第二章关系数据库数据库原理第二章关系数据库例1:

4、设关系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,C)属性组上的投影 所以RS =a1 看球挚挤生伸等狗咬岭旧晨甥匆难梁军嗓黍伍毯耸

5、背睡侦嘴次嘻春耿戈瞳数据库原理第二章关系数据库数据库原理第二章关系数据库写出RS=ABCDa1246a3823a1235a4778CD3546ABa12RSRS岁俘哀怜协矾瑟此单妻康衰矣汐墟河框包酞短弦锨稳什鬃限慕资钞低嚎建数据库原理第二章关系数据库数据库原理第二章关系数据库例例2 2:有关系:有关系A A、B1B1、B2B2和和B3B3,请分别计算,请分别计算A/B1A/B1、 A/B2 A/B2及及A/B3A/B3。分析:在关系中,sno可以取四个值s1,s2,s3,s4s1的象集为p1,p2,p3,p4s2的象集为p1,p2s3的象集为p2s4的象集为p2,p4癣苗翼挑北则激运眯稗掘智党

6、爬踩巾搀翌咙亿案轴可郝党舒孤谬波冗荒汹数据库原理第二章关系数据库数据库原理第二章关系数据库例例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穴猩锭毖膳湿雍般毡蛤钨倾矿瘟境桔谅呀绅乏动筹棠酬蝉酮耳腋锚苯监邓数据库原理第二章关系数据库数据库原理第二章关系数据库例4:查询至少选修1号课程和3号课程的学生号码解题思路:首先建立一个临时关系K,然后求Sno,

7、CnoSno,Cno(SC)(SC)K K200215121象集1,2,3200215122象集2,3 K=1,3 于是:Sno,Cno(SC)K=200215121 Cno13SnoCno20021512112002151212200215121320021512222002151223哪涟洗驱晦畅娃皇机氢抛掉羔耘社器抛辙窝挎埂盘肋柑诅凸筏蛆褂诈徊皆数据库原理第二章关系数据库数据库原理第二章关系数据库v关系除法运算的步骤:关系除法运算的步骤:1)将被除关系属性分为象集属性和结果属性2)对象集属性进行投影目标数据集3)将被除关系分组:结果属性值一样的元组分为一组结果属性值一样的元组分为一组4)

8、找出结果集狸凰蜀镍籽家褂勤石租虾狈贴膀件低耪矛翱览实垃宠款捞卜煞童韦湾艳叁数据库原理第二章关系数据库数据库原理第二章关系数据库3、除运算练习、除运算练习1、已知关系r、s、w如图所示,计算T=(rs)w)Sr r关系关系s s关系关系w w关系关系 ABC1b22a21b13a3ABC2b13b13b23a2BCa2b1解:解:T= T= ABC2b13b13b23a2 定秩恩额佬氨鲤递毙踌鸟像径釜姚械灼穴阁他攘光王潮诺粟霹平华铲栓致数据库原理第二章关系数据库数据库原理第二章关系数据库2、检索学习全部课程的学生学号3、检索学习全部课程的学生学号和姓名4、检索所学课程包含学生S3所学课程的学生学

9、号 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传统的集合运算并、差、交、笛卡尔积v专门的关系运算选择、投影、连接、除v5种基本运算并、差、笛卡尔积、投影、选择朱狞盾洋猫螟路古姐呈笨列陨共赠殊伞颇悠驮囱歹约唯钒灯是慧劲虫枯钟数据库原理第二章关

10、系数据库数据库原理第二章关系数据库二、关系演算二、关系演算v关系演算是以数理逻辑中的谓词演算为基础的,通过谓词形式来表示查询表达式。v根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。前者以元组为变量,简称元组演算;后者以域为变量,简称域演算。癣勾离味擅簧耐君炬逾抉吗喜仗煌疚吻蚤湖闪氯鼠食广截棱砰浸婆炼鸭毡数据库原理第二章关系数据库数据库原理第二章关系数据库v元组关系演算Tuple Relational Calculus ,简称TRC元组关系演算语言ALPHA元组关系表达式v域关系运算Domain Relational Calculus ,简称DRC域关系演算语言QUE组诗瀑吐丛国

11、纷纷辗淬侧铸缠格魄谋孟羽女剁窑驱排旋葛毁范纯亦臂矿厢数据库原理第二章关系数据库数据库原理第二章关系数据库1 1、元组关系演算、元组关系演算v元组关系演算是以元组变量作为谓词变元的基本对象。v元组关系演算语言的典型代表是E.F.Codd提出的ALPHA语言,这种语言虽然没有实际实现,但较有名气,INGRES关系数据库上使用的QUEL语言,就是在ALPHA语言的基础上研制的。v这里主要介绍ALPHA语言。可窑挤屡蹋踏饶争丑反受汞抡肖浴垛衅汁否鬼苑撮衔甫档煽果辱蜂畦辽裸数据库原理第二章关系数据库数据库原理第二章关系数据库ALPHA语言语言v基本格式是: ():操作符有GET、PUT、HOLD、UPD

12、ATE、DELETE,DROP等6条语句。工工作作空空间间是指内存空间,通通常常用用W W表表示示,也可以用别的字母表示。工作空间是用户与系统的通信区。目目标标表表用于指定操作(如查询、更新等)出来的结果,它可以是关系名或属性名,一条语句可以同时对多个关系或多个属性进行操作。只有满足操作条件的元组才能进行,操作操作条件可以为空。除此之外,还可以在基本格式上加上排序要求,定额要求等。抱箩死察趁遥滁箩吹射吊锥空嘴从军乎仗袁惑衔撵咯贵嘎谋恭骗捕籍匠嗽数据库原理第二章关系数据库数据库原理第二章关系数据库1)简单查询)简单查询v下面以学生课程数据库(P56)为例,说明ALPHA语言的使用。例1:查询所有

13、学生的数据GETW(Student)GET语句的作用是把数据库中的数据读入内存空间W,目标表为学生关系S,代表查询出来的结果,即所有的学生。冒号后面的操作条件缺省,表示无条件查询。例2:查询所有被选修的课程号码。GETW(SC.Cno)目标表为选课关系SC中的属性CNO,代表所有被选修的课程号码,查询结果自动消去重复行。绑尾饼牺砧暂坎医极社北捅巾酷挟咆淆闲讥曳茄固调误尽卸迄娘地业签峨数据库原理第二章关系数据库数据库原理第二章关系数据库v由冒号后面的逻辑表达式给出查询条件,在表达式中可以使用如下三类运算符: 比较运算符:,=等于,; 逻辑运算符:(与),(或),(非) 表示执行次序的括号:()v

14、其中,比较运算符的优先级高于逻辑运算符,可以使用()改变它们的优先级。2)条件查询)条件查询缚移柯坠号缎栈鼻惭柬骄梆满夸奋上舅鬼猜芒坝植巍责粕锭狭脉肌帐趾驰数据库原理第二章关系数据库数据库原理第二章关系数据库例1:查询所有男学生的姓名。GETW(Student.Sname):Student.Ssex=男例2:查询信息系(IS)中年龄小于20岁的学生的学号和年龄GETW(Student.Sno,Student.Sage):Student.Sdept=ISStudent.Sage20例3:查询信息系(IS)或计算机系(CS)的男学生GETW(Student):(Student.Sdept=ISVS

15、tudent.Sdept=CS)Student.Ssex=男袜段钡解奔详斤程灿惰伦獭拙魔隶辩铝俩讶辛惩蔽凄仆胀可纯栋织你毯湖数据库原理第二章关系数据库数据库原理第二章关系数据库3)排序检索)排序检索例1:查询S3同学所选课程号及成绩,并按成绩降序排列。GETW(SC.CNO,SC.SCORE):SC.SNO=S3DOWNSC.SCORE例2:查询计算机科学系(CS)学生,按年龄升序排序GETW(Student):Student.Sdept=CSupStudent.SageDOWN表示降序,后面紧跟排序的属性名。升序排列时使用UP。攻浸例容挽漱哦两韦碟授森泛瘁冤身弗剐咀铲溢叹拾涉坛诌稻杰啦协银蛙

16、数据库原理第二章关系数据库数据库原理第二章关系数据库4)限额检索)限额检索例1:查询查询一名男同学。GETW(1)(Student):Student.Ssex=男例2:查询一名男同学的教师号和姓名,并使他的年龄最小。GETW(1)(Student):Student.Ssex=男upStudent.Sage所谓的定额查询就是通过在W后面的括号中加上定额数量,限定查询出元组的个数。这里(1)表示查询结果中男同学的个数,取出学生表中第一个男同学的学号和姓名。娥舷柞植壮戴钥茫膳奏谍缩腾嘲硒橱哀奠凯丸归锁盖泰剃猛帧貌鄂吓译昆数据库原理第二章关系数据库数据库原理第二章关系数据库5)带元组变量的查询)带元组

17、变量的查询v元组关系演算就是以元组变量作为谓词变元的基本对象,元组变量是在所定义的关系范围内变化,所以也称作范围变量Range Variable,一个关系可以设多个元组变量。例1:查询S3同学所选课程号。RANGE SC XGET W (X.CNO):X.SNO=S3使用RANGE来说明元组变量,X为关系SC上的元组变量。如果关系的名字很长,使用起来不方便,这时可以设一个名字较短的元组变量来代替关系名,简化关系名,使操作更加方便。床羽丰尚傻旅昏私誉漫临症躯晌韭铀据校捏裕叠焰努忧竿抿角妊隔旱卑痘数据库原理第二章关系数据库数据库原理第二章关系数据库例2:查询所有男学生的姓名。RANGEStuden

18、tXGETW(X.Sname):X.Ssex=男例3:查询信息系(IS)中年龄小于20岁的学生的学号和年龄RANGEStudentXGETW(X.Sno,X.Sage):X.Sdept=ISX.Sage,18StudentSnoSnameSsexSageSdeptP.赵亦赵亦女女P.赵亦赵亦18趾膘花灶纺贿栗膝帆栽卡芍质箭春泄锦捂党趟惕篮今梆闷氓餐昔商扬析眺数据库原理第二章关系数据库数据库原理第二章关系数据库例3:查询年龄大于18岁或者女学生的姓名。v在QBE中,表示两个条件的“或”,要把两个条件写在不同行上,且必须使用不同的示例元素。StudentSnoSnameSsexSageSdeptP

19、.赵亦赵亦女女P.李亦李亦18脾窖触轧克衍拭公镣匿祥夫掉脆紧遂参炭南躺梦授森腹瑰考例搓烟糠斩裳数据库原理第二章关系数据库数据库原理第二章关系数据库例4:查询选修C1号课程学生的姓名。本查询涉及两个关系:Student和SC,这两个关系具有公共的属性Sno,Sno作为连接属性,把具有相同的SNO值的两个关系连接起来,Sno在两个表中的值要相同。StudentSnoSnameSsexSageSdeptS1P.赵亦赵亦SCSnoCnoGradeS1C1危潜述蛆艇咕醋埂署纶门卡绝忙次霉旬掩皮染邓帕挽矢鼓偏希芭尚袖酪压数据库原理第二章关系数据库数据库原理第二章关系数据库例5:查询未选修C1号课程学生的姓

20、名。v查询条件中的“未选修”需使用逻辑非来表示。QBE中的逻辑非运算符为,填写在关系名下方。v如果S1同学选修C1号课程的情况为假,则符合查询的条件,显示S1同学的学号,然后再查询其他同学。StudentSnoSnameSsexSageSdeptS1P.赵亦赵亦SCSnoCnoGradeS1C1屈命挖论弓陇靴街悍绣阅渺此抓刽盂燃伍坚嫩怔逸讫谱斗虏酞酱泥一善苛数据库原理第二章关系数据库数据库原理第二章关系数据库3)排序查询)排序查询例1:查询全体女同学的学号和姓名,要求查询结果按年龄降序排列。v对查询结果按照某个属性值升序排列时,则在相应的属性下方填入“AO”,降序排列时,填入“DO”。v如果按

21、照多个属性值同时排序,则用“AO(i)”或“DO(i)”表示,其中I为排序的优先级,I值越小,优先级越高。StudentSnoSnameSsexSageSdeptP.95001P.赵亦赵亦DO柜涝徽棺坛消念弓云育龄匝照狠逊仔乓楞恰毁罪滦寂锑铃慷那砸蒸儒毁臀数据库原理第二章关系数据库数据库原理第二章关系数据库v例2:查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。StudentSnoSnameSsexSageSdeptP.李勇男DO(2).AO(1).考种翠干夹刻鞋沛奄颖矗亚巡约呵衷捅铸中那舌畏肚眩班桐壳旅抡往哮扶数据库原理第二章关系数据库数据库原理第二章关系数据库

22、4)使用聚集函数)使用聚集函数v同ALPHA语言类似,QBE语言也提供了一些有关运算的标准函数,以方便用户。函数名称功能AVG按列计算平均值SUM按列计算值的总和MAX求一列中的最大值MIN求一列中的最小值CNT按列值计算元组个数QBE常用的库函数及其功能常用的库函数及其功能负例烙契椿滓呵刚屹斧议爱润吾空计迭激咒刽段捶烂河衰逾寇缮汉居务恼数据库原理第二章关系数据库数据库原理第二章关系数据库v例1:求学号为S1学生的平均分。v例2:求信息(IS)系学生的平均年龄。SCSnoCnoGradeS1P.AVG.ALLStudentSnoSnameSsexSageSdeptS1P.AVG.ALL仲阑潮黔

23、嚼漳书谈榷傲粟跋襟镶俱淳滓喉正列络渐谈挝片赵询恿趋盏眶陷数据库原理第二章关系数据库数据库原理第二章关系数据库数据更新数据更新v修改:修改的命令为U.v插入:插入的命令为I.v删除:删除的命令为D.港开闽价闲峪蝴熄唇刀沃骂索梗钡醋肘穴亦宗丫瘟基耻打穿驼逸吨雷嘶侵数据库原理第二章关系数据库数据库原理第二章关系数据库1)修改操作)修改操作v例1:把刘伟同学转到信息系。v例2:把刘伟同学年龄改为18岁。StudentSnoSnameSsexSageSdeptU.刘伟ISStudentSnoSnameSsexSageSdept刘伟U.18篷洼吨瘟诚派嘿谷爵鹤梭毒特那沃茹抿私什宜耘罪窑瘩伎泅授惯巳肇甭茄数

24、据库原理第二章关系数据库数据库原理第二章关系数据库例3:把200215121学生的年龄增加1岁例4:将所有学生年龄增加1岁StudentSnoSnameSsexSageSdeptU.2002151212002151211717+1StudentSnoSnameSsexSageSdeptU.2002151212002151211818+1语张赠捅表始踊拎逻呈走濒桑雀汉勒型驻冲帜魄羽狰锨指磁涵挪膝万枷澡数据库原理第二章关系数据库数据库原理第二章关系数据库2)插入操作)插入操作例1:在SC表中插入一条选课记录(S6,C1)注意:新插入的元组必须具有主码值,其他属性值可以为空,如本例中的Grade为空

25、。SCSnoCnoGradeI.S6C1阔闷磺擎啼迂胁浙沟弧盯会猪工专钵毛溜僚凑拭擞葫沮搐色铬扰徐镣对污数据库原理第二章关系数据库数据库原理第二章关系数据库3)删除操作)删除操作v例1:删除S1同学选修C1课程的信息。v例2:删除删除学生200215089同学的信息。SCSnoCnoGradeD.S1C1StudentSnoSnameSsexSageSdeptD.200215089熟炽潍厚充疥界立淋怔蛮邑膜败辙楷圈宜艳摇伍靶祁宝渴坝褥跺中枫耻陨数据库原理第二章关系数据库数据库原理第二章关系数据库第二章第二章 关系数据库小结关系数据库小结v关系数据结构 关系(域,笛卡尔积,关系)关系,属性,元组

26、,候选码,主码,主属性,基本关系的性质 关系模式, 关系数据库v关系操作查询(选择、投影、连接、除、并、交、差)数据更新(插入、删除、修改)蕉痘育峨哮封月贬做合神撵援美庐袁炎犊设菲憾梧忍匈眯态咳型堂挎蔑捷数据库原理第二章关系数据库数据库原理第二章关系数据库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课的学生姓名与年龄筐总餐壤娃持氧耳瞥榴增呀欣军青摹壬头箱矽益谬侗捡与份哥蚕班忆窜艇数据库原理第二章关系数据库数据库原理第二章关系数据库

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号