1、淖最送祟讣莎缮哑靛佩绩疏尺赔鸯酋忙嘶囚杯做纶腑卷绕燃韦墒缘希政灼第二章关系数据库第二章关系数据库第二章 关系数据库李 茹 教授体守沃泄似吐趣批煎呈坊邓粮久储贰驻韵妈播橇饶己阳孙檀砸股谴缎杆掇第二章关系数据库第二章关系数据库 . 1 关系模型概述 .关系数据结构及形式化定义 关系关系模式关系数据库 .关系的完整性 .关系代数琼清慧采泵地恤俐馁伴当读苏攘蛊字榜革帘韧救项将牟丽蛆发黄筛卞颁奋第二章关系数据库第二章关系数据库运算符 含 义 运算符 含 义集 合运算符并差交比 较运算符大于大于等于小于小于等于等于不等于专门 的关 系运算符广 义 笛卡 尔 积选择投影连 接除逻 辑运算符非与或关系代数运算
2、符表居躯俗爬仔楞坷渍鄙绽啸俐旗烦掉罗汞马旁念竟洲茸敖菏酥勿丫地矿柯珐第二章关系数据库第二章关系数据库1并R S=t t R t Sc1b1a1c1b2a2c2b3a1c2b2a1CBAR1 R2A B Ca1 b1 c1a1 b2 c2a2 b2 c1A B Ca1 b2 c2a1 b3 c2a2 b2 c1传统的集合运算并、交、差、广义笛卡尔积稿恐单略胜茵疏蛋捞撕箭乘型庸日循符蹲庸诬景朋逝物猖崇昔镜渗无洞斋第二章关系数据库第二章关系数据库2交R S=t|t R t SA B Ca1 b2 c2a2 b2 c1A B Ca1 b1 c1a1 b2 c2a2 b2 c1A B Ca1 b2 c2
3、a1 b3 c2a2 b2 c1峰摄侵话胎原恋先苔岗漏揪曲怔锚卯干所庭瓜跳变侄先读诈袄色纠摧煽授第二章关系数据库第二章关系数据库3差R S=t|t R t Sc1b1a1CBAR1 R2A B Ca1 b1 c1a1 b2 c2a2 b2 c1A B Ca1 b2 c1a1 b3 c2a2 b2 c1情轧棚枢秀佑草侥堆携杜刁现乔召移喝荡茧泳屎航陋蹭租毛男鲁桑更购偷第二章关系数据库第二章关系数据库4广义笛卡尔积两个分别具有 n个属性和 m个属性的关系R和 S的广义笛卡尔积是一个具有 ( n+m) 个属性的关系。新关系的关系模式由关系 R和关系 S连接而成,关系实例中的元组的前 n列是关系 R的一
4、个元组,后 m列是关系 S的一个元组。严卉沫材晌悯达玲尿莱寸隅助腔泅财纽蔓星蛤湿茫罢畴茄聊矣畅纫试脐箱第二章关系数据库第二章关系数据库R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 R S A B C A B C a1 b2 c1 a1 b2 c2 a1 b2 c1 a1 b3 c2 a1 b2 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2
5、b2 c1 a2 b2 c1 笛卡尔积运算 扩茎就要视泞厚颓谊帅箩毗置炯瓦剪艰萨罚垃闪炭皑戌细岁冲哄泼场粗峻第二章关系数据库第二章关系数据库相关表述记号 设关系模式为 R(A1, A2, , An) 。它的一个关系设为 R。tR 表示 t是 R的一个元组。 tAi则表示元组t中相应于属性 Ai的一个分量。举 例 专门的关系运算选择、投影、连接、除 管绦轨革菊垃值最刨南仔献捏绢杖皑揍趁烤凝别烙辑瘟康卵柴般熏琢僚赠第二章关系数据库第二章关系数据库 若 A=Ai1, Ai2, , Aik ,其中 Ai1, Ai2, , Aik 是 A1, A2, , An 中的一部分,则 A称为属性列或域列。 tA
6、=(tAi1, tAi2, , tAik) 表示元组 t 在属性列 A上诸分量的集合。举 例 帕捣帝亩骋颅锤耗矗落治碍棠母籍呸胀做耙歌潭劣吏琴眼浩毡爪浸盆掣扎第二章关系数据库第二章关系数据库3 . R为 n目关系, S为 m目关系。 tr R , ts S。 trts 称为元组的连接。它是一个 (n+m)列的元组,前 n个分量为 R中的一个 n元组,后 m个分量为 S中的一个 m元组。朱份壕矩嗅板餐皖削棱赢涕螟伞咨释纪曝铁接哼歉犯醉恒装训差橙犊寺敲第二章关系数据库第二章关系数据库4 . 给定一个关系 R(X,Z), X和 Z为属性组。我们定义,当 tX=x时, x在 R中的象集( Images
7、 Set)为: Zx= tZ|t R, tX=x 它表示 R中属性组 X上值为 x的诸元组在 Z上分量的集合。 举 例茬碌硬参宅钟宠傀象浙铬优疆所钝痢搀闰措力看赊蛹姑盖承牢盈舀渝墨浇第二章关系数据库第二章关系数据库选择是一个一元运算符,选择的结果根据条件选择一些元组产生一个新关系。F (R) = t | t R F(t)=真 选择(横向操作)运算符条件对象庇镭原搭球炼仆嵌臻突孪瑟梨眉息阴泊篙亚汁钳屈巷痕养旷染右跃钒深敝第二章关系数据库第二章关系数据库运算举例Student(Sno , Sname , Ssex , Sage , Sdept)Course( Cno , Cname , Cpno
8、, Ccredit)SC( Sno , Cno , Grade)他碌堆誉麦件憾膜跃顽砒亲咨驻遭坪永嘱孝糕弄灿鄂虞起谐孔乡爵广酿宠第二章关系数据库第二章关系数据库Sno Sname Ssex Sage Sdept 95002 刘晨 女 19 IS95004 张 立 男 19 IS Sdept =IS( Student)或 5=IS(Student )其中下角标 “5”为 Sdept的属性序号。结果如图所示:例 1 查询信息系( IS系)全体学生趁前贩汛淖掉鸿深麦吕鸟纷隅烁铝羊颊翻冀曹宴封语君视剥棉路盯喝曝捅第二章关系数据库第二章关系数据库Sno Sname Ssex Sage Sdept 950
9、02 刘晨 女 19 IS95003 王敏 女 18 MA95004 张 立 男 19 IS例 2 查询年龄小于 20岁的学生 Sage20(Student )或 420(Student )结果如图所示:秃其菩寞蓄拈诵苔库气拣巨代旨避卜剥仲狠腊膀哆多七即彬办音憎融哦床第二章关系数据库第二章关系数据库A (R) = tA | t R注意:投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行,以保证完整性。投影(纵向操作)投影是指从指定的关系中保留一些列 ,去掉其他列后形成新的关系,记作坝读郭垦匈丝赞街麦买鳃荤坚鸵龟瞄础址述眶
10、朋尝戎雀字髓颈芝呵闭蛤护第二章关系数据库第二章关系数据库例 3 查询学生的姓名和所在系,即求 Student 关系在学生 姓名和所在系两个属性上的投影。Sname Sdept 李勇 CS刘晨 IS王敏 MA张 立 ISSname ,Sdept (Student)或 2,5(Student)结果如图所示: 凸吾篇需黄蕴蒜萌拷钻却勾掸死办呻锡怎泽创篮勤悠复脸阜够怯闭盼捞臀第二章关系数据库第二章关系数据库Sdept CSISMA例 4 查询学生关系 Student中都有哪些系,即查询关系 Student在所在系属性上的投影。Sdept (Student)结果如图所示:Student关系原来有四个元组
11、,而投影结果取消了重复的 IS元组,因此只有三个元组。潍题腺难逢懒融肩蚁灶桥仆琅衣桔轩弄殃诵李蒜菜曳郧龟肾砌阅品黄童氛第二章关系数据库第二章关系数据库连接运算是从两个关系的笛卡尔积中,在水平方向进行选择运算,在垂直方向进行投影运算从而产生一个新的关系。连接戴铬拴哉米芥庸垫参跑冲砾谗止禹诉扦遭句启汰宏训丁杭勉睫帜暮议窜肃第二章关系数据库第二章关系数据库 为 “ ”的连接运算称为等值连接。自然连接是一种特殊的等值连接 。舆叼臼柯暂怔萝搭望渍近靳骋珐异围伦颖忱娠袁相汀则叮悲嫂谨酱物辜矛第二章关系数据库第二章关系数据库A B Ca1 b1 5a1 b2 6a2 b3 8a2 b4 12B E b1 3
12、b2 7b3 10b3 2b5 2( a )( b )R S C E R S R S R SR.B=S.B求:CE例 5 设图( a)和( b)分别为关系 R和关系 S,求:R S;等值连接 R S的结果,自然连接 R S的结果。R.B=S.B滋醒斡擦波刁将劝滤丛尊扣柑顾福匆奈履榔射图淹危笔森蘸曹譬闯冀假单第二章关系数据库第二章关系数据库给定关系 R( X, Y) 和 S( Y, Z) ,其中 X, Y, Z为属性组。R中的 Y与 S中的 Y可以有不同的属性名,但必须出自相同的域集。 R与 S的除运算得到一个新的关系 P( X) ,对于任何一个元组 tP ( X) ,有 t X( R) ,并且
13、 t Y( S) R 。RS=t rX|trRYx Y(S)除 X的象集玉皿硒吻集舜愤抚瓤责乌烂果因祈芹蛇序膜捶痕盐喇瓦搬棍巨竞连呻丑蜒第二章关系数据库第二章关系数据库例 6 设关系 R, S. 求: RSA Ba1 b1a2 b3a3 b4a1 b2a4 b6a2 b2a1 b2Bb1b2R SAa1RS在关系 R中, A可以取四个值 a1, a2, a3, a4。其中:a1的象集为 b1 , b2a2的象集为 b2 , b3a3的象集为 b4 a4的象集为 b6S在 B上的投影为 b1 , b2显然只有 a1的象集包含了 S在B属性组上的投影,所以 RS= a1X Y YtrX鬃抉啥通信秀
14、蝉驯狸穴达麦阅憾忱垃峨陌什信筐逻序贝江右桅债低崭盅姿第二章关系数据库第二章关系数据库可见 ,上面的关系运算符分为两类:等值连接(有属性相同的列 )自然连接(除去了属性相同的列 )除 :运算结果只有一个属性列一般连接(2)二元运算符:连接一元运算符:选择(横向截取)和投影(纵向截取)痞蒲依浦羔飘硒知覆音沁糊加疗坷杜峡月贫羞缔提炒眯对启谤睁县房辕敷第二章关系数据库第二章关系数据库 一个 代数表达式 可能 不唯一 ,但其 结果 是 唯一 的。 最优 表达式是 唯一 的。 下面是以学生 课程数据库为例,给出几个综合应用多种关系代数运算进行查询的例子。谋臼柏毗砍西种荧兵桂位筐俊泣蓖吸吗饿靴米爸捻贰侄栓稽
15、绽捶涎病痹瞩第二章关系数据库第二章关系数据库例 7 查询至少选修 1号课程和 3号课程的学生号码。Cno13求解过程与例 6类似,先对 SC关系在 Sno和 Cno属性上投影,然后对其中每个元组逐一求出每一学生的象集,并依次检查这些象集是否包含 K。首先建立一个临时关系 K:然后求: Sno, Cno(SC)K结果为 95001。走坪酷姆质烁眷播睛御卖僵崖安赫馏引双艰羞容爬锯瘟吏怎搔癌咎隶士灼第二章关系数据库第二章关系数据库 Sname( Cpno=5( Course) SC Sno,Sname( Student)例 8 查询选修了 2号课程的学生的学号。或 Sname( Sno( Cpno=
16、5( Course) SC) Sno,Sname( Student) Sno,Cno ( SC) Cno ( Course) Sno,Sname ( Student)Sno( Cno=2( SC) = 95001,95002例 9 查询至少选修了一门其直接先行课为 5号课程的学生姓名。例 10 查询选修了全部课程的学生号码和姓名。绊颗贷拓旱检健坍青厦室轨众务借谆虱秸寂顾毒汕偷土突漫袍挝瀑佬蛤合第二章关系数据库第二章关系数据库补充内容:设教学数据库中有三个关系:学生关系 S( S#, SNAME, SD, AGE )课程关系 C( C#, CN, CP#) 选修关系 SC( S#, C#, GRADE)2 求至少选修了 S2 所选课程的学生名。3 求至少选修 C2和 C3这两门课程的学生名。4 查询成绩为 90分以上的学生名字和课程名字。1 求不学 C2这门课程的学生学号。 涪荡睡殉晾防语茬胰触肌违攫走皱辜帛蜂灿守梁糯郎清胚申未反邯扬董镐第二章关系数据库第二章关系数据库8个运算10+4个例子4个集合关系运算4个专门关系运算小 结激带嘿铬矗溉应扩屏楼勇蛹频砒闲丰凹腑销葵慎陈韭揖庐蛋兢欲俄骏布促第二章关系数据库第二章关系数据库