免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关系代数表达式总结一、并例1 求选修了课程号为1或2的课程的学生学号。分析:可以先求出选修了课程号为1的课程的学生学号,再求出选修了课程号为2的课程的学生学号,最后使用并运算的方法求出选修课程号为1或2的课程的学生学号。本例也可以使用或条件来表示。Sno(Cno=1(SC)Sno(Cno=2(SC) 或Sno(Cno=1 Cno=2(SC)二、交例2 检索至少选修课程号为2和3的课程的学生学号。分析:方法一:只涉及到一个表,但不能直接用(为什么?)特别注意,本例不能写为:Sno(Cno=2 Cno=3(SC)因为选择运算为行运算,在同一行中Cno不可能既为2,又为3。第一步:转换(SCSC)笛卡尔积将垂直的条件展开为水平的条件。SC1 SC2学号Sno课程号Cno成绩Grade学号Sno课程号Cno成绩Grade9500119295001192950011929500128595001192950013889500119295002290950011929500238095001285950011929500128595001285950012859500138895001285950022909500128595002380选修课程号为2和3的学生:1=42=2 5=3(SCSC)最后取出学生的学号:1(1=42=2 5=3(SCSC)方法二:Sno(Cno=2(SC)Sno(Cno=3(SC)三、差例3 将学生信息(95001,李勇,男,20,CS)从Student表删除。分析:可以将这行数据看成由一个元组构成的表,将Student表与该表进行差运算。因此,该删除操作可表示为:Student-95001,李勇,男,20,CS注意:但是当查询涉及到否定或全部值时,上述形式就不能表达了,就要用到差操作或除操作。例4 求没有选修课程号为2的课程的学生学号。分析:可以认为是在全部学号中去掉选修课程号为2的课程的学生学号,就得出没有选修课程号为2的学生学号。由于在并、交、差运算中,参加运算的关系要求是兼容的,故应当先投影,再进行差运算。Sno(Student)- Sno(Cno=2(SC)特别注意,本题不能写为:Sno(Cno2(SC)。因为,选择运算为行运算,并且SC表中包含的只是选修了课程的学生学号,对那些没选任何课程的学生学号,在SC中找不到。根据题意,要查询没有选修课程号为2课程的学生学号,显然包括没选任何课程的学生学号。当查询涉及到针对“否定”特征含义的查询要求,如“不”、“没有”等字眼,一般要用差运算表示。四、自然连接例5 检索不学“2”号课程的学生姓名与年龄。分析:首先考虑“差”的问题。先求出全体学生的姓名和年龄,再求出学了”2”号课程的学生的姓名和年龄,最后执行两个集合的差操作。Sname,Sage(Student)- Sname,Sage(Cno=2(StudentSC)例6 查询至少选修了一门其直接先行课为“5”号课程的学生姓名。分析:(1)根据题目确定要输出的列为:Sname,都在Student表中;(2)根据题意,先行课程名为“5”,则选择的条件为Cpno=5,因为Cpno在Course表中,所以也要用到Course表;(3)根据1,2两步确定用到的表名集为Student,Course;(4)因为表名集中两个表,则要用自然连接将它们连接起来,但因为这个两表不存在共同的列,不能进行自然连接。因此要加入中间表,中间表中应含有能与其它两个表进行自然连接的公共列,这个表就是SC。将选择条件Cpno=5作用于自然连接后产生的新表上,并用投影操作选取要输出的Sno,Cno。综上,该查询的关系代数表达式为:Sname(Cpno=5(Course)SCSno,Sname(Stuent)或Sname(Sno(Cpno=5(Course)SC)Stuent)五、除1除法定义中的含义分析:(1)前提:两个关系R(X,Y)和S(Y,Z)应该有公共属性列。(2)运算结果为P(X),元组来自于R关系,只包含X属性列(3)R关系中的哪些元组呢? 对于TX的象集包含Y(S)2.除法运算的步骤(1)将被关系R的属性分成两个部分,即与除关系相同的属性部分Y,和与除关系不同的属性部分X。(2)在除关系中,求Y的投影,得到目标数据集。(3)将被除关系进行分组。(分组原则是“值”一样的为一组)(4)考虑被除关系中已分好的每一元组,如果它的象集包含目标数据集(投影结果),则其值为商。例如,R SABCBCDa1b1c2b1c2d1a2b3c7b2c1d1a3b4c6b2c3d2a1b2c3(b)a4b6c6RSa2b2c3Aa1b2c1a1(a) (c)分析:在关系R中,A可以取四个值a1,a2,a3,a4。其中: a1的象集为(b1,c2),(b2,c3),(b2,c1) a2的象集为(b3,c7),(b2,c3) a3的象集为(b4,c6) a4的象集为(b6,c6)S在(B,C)上的投影为(b1,c2),(b2,c1),(b2,c3) 显然只有a1的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以RS=a1。例,R表示选修课程,S1、S2、S3表示课程情况R S1SnoSnameCnoCnameCnoCname1BaoC1DBC2OS1BaoC2OSS21BaoC3DSCnoCname1BaoC4MISC2OS2GuC1DBC4MIS2GuC2OSS33AnC2OSCnoCname4LiC2OSC1DB4LiC4MISC2OSC4MISRS1 RS2SnoSnameSnoSname1Bao1Bao2Gu4Li3AnRS34LiSnoSname1Bao3.除法的物理意义(1)除法的含义:RS1表示至少选修S1关系中列出课程的学生的学号和姓名;RS2表示至少选修S2关系中列出课程的学生的学号和姓名;(2)求选修所有课的同学姓名:(S、SC、C)说明:针对“全部”特征含义的查询要求,如“全部”、“至少”、“包含”等字眼,一般要用除法运算。4.有时需要构造被除数与除数除操作是同时从行和列角度进行运算(S是R的子集),构造被除数与除数。用除法的第一种情况例7 检索至少选修课程号为1和2的学生学号。分析:(1)至少选修课程号为1和2的关系(表)。(2)考虑用除法来做(3)构造一个临时表K=Cno(Cno=1 Cno=2(Course)(4)构造被除数与除数Sno,Cno(SC)K用除法的第二种情况例8 查询选修了全部课程的学生的学号。1) 确定目标属性:学号Sno;2) 确定目标条件:如果学号x被查询到,说明在临时关系Sno,Cno(SC)表中学号x的像集就是所有课程号Cno组成的集合;3) 确定目标关系:根据1)、2)的分析,可以确定该查询是在sno,cno(SC)和Course两个关系上进行除法运算。其中,关系SC提供选修信息,而Course提供全部的课程号信息。4) 画查询树:图3 例题2 的查询树5) 写出关系代数表达式:sno,cno(SC)cno(Course)。例9 查询选修全部课程的学生号码和姓名。(结果需同时满足多个关系的时候用除法)。Sno,Cno(SC)Cno(Course)Sno,Sname(Student)六、综合实例1、设有如下所示的关系:学生表S(S#,SNAME,AGE,SEX)、课程表C(C#,CNAME,TEACHER)和学生选课表SC(S#,C#,GRADE),其中:S#为学号,SNAME为姓名,AGE为年龄,SEX为性别,C#为课程号,CNAME为课程名,GRADE为成绩, TEACHER为教师。SS#SNAMEAGESEX1李强23男2刘丽22女3张友22男CC#CNAMETEACHERK1C语言王华K5数据库原理程军K8编译原理程军SCS#C#GRADE1K1832K1853K1922K5903K5843K880试用关系代数表达式表示下列查询语句:(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 (2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。 (3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。 (4)检索“李强”同学不学课程的课程号(C#)。 (5)检索至少选修两门课程的学生学号(S#)。 (6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。 (7)检索选修课程包含“程军”老师所授课程之一的学生学号(S#)。 (8)检索选修课程号为K1和K5的学生学号(S#)。 (9)检索选修全部课程的学生姓名(SNAME)。 (10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。 (11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。 解:本题各个查询语句对应的关系代数表达式表示如下:(1)C#,CNAME(TEACHER=程军(C) (2)S#,SNAME(AGE21SEX=男(S) (3)SNAME(Swv (S#,C#(SC)C#(TEACHER=程军(C) (4)C#(C)-C#(SNAME=李强(S) wv SC) (5)S#(1=425(SC SC)(6)C#,CNAME(Cwv (S#,C#(SC)S#(S) (7)S#(SCwv C#(TEACHER=程军(C) (8)S#,C#(SC)C#(C#=k1 C#=k5(C) (9)SNAME(Swv (S#,C#(SC)C#(C)) (10)S#,C#(SC)C#(S#=2(SC)(11)S#,SNAME(Swv (S#(SCwv CNAME=C语言(C)2、设有如下所示的关系:学生表S(S#,SNAME,AGE,SEX)、课程表C(C#,CNAME,TEACHER)和学生选课表SC(S#,C#,GRADE),其中:S#为学号,SNAME为姓名,AGE为年龄,SEX为性别,C#为课程号,CNAME为课程名,GRADE为成绩, TEACHER为教师。SS#SNAMEAGESEXS1李强23男S2刘丽22女S3张友22男CC#CNAMETEACHERK1C语言王华K5数据库原理程军K8编译原理程军SCS#C#GRADES1K183S2K185S3K192S2K590S3K584S3K880试用关系代数表达式表示下列查询语句:(1)检索LIU老师所授课程的课程号和课程名;(2)检索年龄大于23岁的男学生的学号和姓名;(3)检索学号为S3学生所学课程的课程名与任课教师名;(4)检索至少选修LIU老师所授课程中一门课的女学生姓名;(5)检索WANG同学不学的课程的课程号;(6)检索既选修了LIU老师的课程、又选修了LI老师课程的学生学号;(7)全部学生都选修的课程的课程号与课程名;(8)检索选修课程包含LIU老师所授全部课程的学生学号。解:本题各个查询语句对应的关系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社工社会营销方案
- 汽车艺术活动策划方案
- 自贡年会活动策划方案
- 活动策划暖场方案
- 玉米营销方案模板
- 车展中心营销方案
- 2025中国包装生产线智能化升级投资回报与风险预警报告
- 学校德育建设总体规划方案
- 幼儿语言发展促进游戏指导方案
- 医药企业绿色采购实施方案
- 高压变电站拆除施工方案
- 2025年注册计量师(一级)计量案例分析模拟试题及答案测量不确定度深度解析
- 《看不见的力》第一课时课件-科学二年级上册冀人版
- 哈尔滨医科大学招聘笔试真题2024
- 中央台办所属事业单位2024年度公开招聘工作人员笔试高频难、易错点备考题库及答案详解1套
- 四川成都传媒集团人力资源服务中心招聘笔试题库2025
- (正式版)DB61∕T 5026-2022 《市政工程信息模型应用标准》
- 护理疑难病例讨论制度
- 【《日处理6000立方米的某化工园区废水处理工程设计》23000字(论文)】
- 鼻腔冲洗护理课件
- 医疗卫生安全生产责任考核制度细则
评论
0/150
提交评论