关系代数表达式总结

上传人:kms****20 文档编号:37797384 上传时间:2018-04-22 格式:DOC 页数:5 大小:165.50KB
返回 下载 相关 举报
关系代数表达式总结_第1页
第1页 / 共5页
关系代数表达式总结_第2页
第2页 / 共5页
关系代数表达式总结_第3页
第3页 / 共5页
关系代数表达式总结_第4页
第4页 / 共5页
关系代数表达式总结_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《关系代数表达式总结》由会员分享,可在线阅读,更多相关《关系代数表达式总结(5页珍藏版)》请在金锄头文库上搜索。

1、核心出品核心出品 必属精品必属精品 免费下载免费下载关系代数表达式总结关系代数表达式总结 一、并一、并 例例 1 1 求选修了课程号为 1 或 2 的课程的学生学号。 分析:分析:可以先求出选修了课程号为 1 的课程的学生学号,再求出选修了课程号为 2 的 课程的学生学号,最后使用并运算的方法求出选修课程号为 1 或 2 的课程的学生学号。本 例也可以使用或条件来表示。 Sno(Cno=1(SC)Sno(Cno=2(SC) 或 Sno(Cno=1 Cno=2(SC) 二、交二、交 例例 2 2 检索至少选修课程号为 2 和 3 的课程的学生学号。 分析:分析: 方法一:方法一:只涉及到一个表,

2、但不能直接用(为什么?) 特别注意,本例不能写为:Sno(Cno=2 Cno=3(SC) 因为选择运算为行运算,在同一行中 Cno 不可能既为 2,又为 3。 第一步:转换(SCSC) 笛卡尔积将垂直的条件展开为水平的条件。SC1 SC2 学号 Sno课程号 Cno成绩 Grade学号 Sno课程号 Cno成绩 Grade 9500119295001192 9500119295001285 9500119295001388 9500119295002290 9500119295002380 9500128595001192 9500128595001285 9500128595001388 9

3、500128595002290 9500128595002380 选修课程号为 2 和 3 的学生:1=42=2 5=3(SCSC) 最后取出学生的学号:1(1=42=2 5=3(SCSC) 方法二:方法二:Sno(Cno=2(SC)Sno(Cno=3(SC) 三、差三、差 例例 3 3 将学生信息(95001,李勇 , 男 ,20, CS)从 Student 表删除。 分析:分析:可以将这行数据看成由一个元组构成的表,将 Student 表与该表进行差运算。 因此,该删除操作可表示为: Student-95001,李勇 , 男 ,20, CS 注意:注意:但是当查询涉及到否定或全部值时,上述

4、形式就不能表达了,就要用到差操作 或除操作。例例 4 4 求没有选修课程号为 2 的课程的学生学号。 分析:分析:可以认为是在全部学号中去掉选修课程号为 2 的课程的学生学号,就得出没有 选修课程号为 2 的学生学号。由于在并、交、差运算中,参加运算的关系要求是兼容的, 故应当先投影,再进行差运算。Sno(Student)- Sno(Cno=2(SC) 特别注意,特别注意,本题不能写为:Sno(Cno2(SC)。因为,选择运算为行运算,并且 SC 表中包含的只是选修了课程的学生学号,对那些没选任何课程的学生学号,在 SC 中找 不到。根据题意,要查询没有选修课程号为2课程的学生学号,显然包括没

5、选任何课程 的学生学号。 当查询涉及到针对“否定”特征含义的查询要求,如“不”、“没有”等字眼,一般 要用差运算表示。 四、自然连接四、自然连接 例例 5 5 检索不学“2”号课程的学生姓名与年龄。 分析:首先考虑“差”的问题。先求出全体学生的姓名和年龄,再求出学了”2”号课 程的学生的姓名和年龄,最后执行两个集合的差操作。Sname,Sage(Student)- Sname,Sage(Cno=2(StudentSC) 例例 6 6 查询至少选修了一门其直接先行课为“5”号课程的学生姓名。 分析:分析:(1)根据题目确定要输出的列为:Sname,都在 Student 表中; (2)根据题意,先

6、行课程名为“5” ,则选择的条件为 Cpno=5 ,因为 Cpno 在 Course 表中,所以也要用到 Course 表; (3)根据 1,2 两步确定用到的表名集为Student,Course; (4)因为表名集中两个表,则要用自然连接将它们连接起来,但因为这个两表不存在 共同的列,不能进行自然连接。因此要加入中间表,中间表中应含有能与其它两个表进行 自然连接的公共列,这个表就是 SC。将选择条件 Cpno=5作用于自然连接后产生的新表 上,并用投影操作选取要输出的 Sno,Cno。 综上,该查询的关系代数表达式为:Sname(Cpno=5(Course)SCSno,Sname(Stuen

7、t) 或Sname(Sno(Cpno=5(Course)SC)Stuent) 五、除五、除 1 1除法定义中的含义除法定义中的含义 分析:(1)前提:两个关系 R(X,Y)和 S(Y,Z)应该有公共属性列。 (2)运算结果为 P(X),元组来自于 R 关系,只包含 X 属性列 (3)R 关系中的哪些元组呢?对于 TX的象集包含Y(S) 2.2.除法运算的步骤除法运算的步骤 (1)将被关系 R 的属性分成两个部分,即与除关系相同的属性部分 Y,和与除关系不 同的属性部分 X。 (2)在除关系中,求 Y 的投影,得到目标数据集。 (3)将被除关系进行分组。 (分组原则是“值”一样的为一组) (4)

8、考虑被除关系中已分好的每一元组,如果它的象集包含目标数据集(投影结果) , 则其值为商。例如,R SABCBCD a1b1c2b1c2d1 a2b3c7b2c1d1a3b4c6b2c3d2 a1b2c3(b) a4b6c6RS a2b2c3A a1b2c1a1 (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)a

9、1包含了S在(B,C)属性组上的投影,所以RS=a1。 例,R 表示选修课程,S1、S2、S3 表示课程情况R S1 SnoSnameCnoCnameCnoCname 1BaoC1DBC2OS 1BaoC2OSS2 1BaoC3DSCnoCname 1BaoC4MISC2OS 2GuC1DBC4MIS 2GuC2OSS3 3AnC2OSCnoCname 4LiC2OSC1DB 4LiC4MISC2OS C4MIS RS1 RS2 SnoSnameSnoSname 1Bao1Bao 2Gu4Li 3AnRS3 4LiSnoSname 1Bao 3.除法的物理意义 (1)除法的含义: RS1 表示

10、至少选修至少选修 S1 关系中列出课程的学生的学号和姓名; RS2 表示至少选修至少选修 S2 关系中列出课程的学生的学号和姓名; (2)求选修所有课所有课的同学姓名:(S、SC、C) 说明:说明:针对“全部”特征含义的查询要求,如“全部”、“至少”、“包含”等字眼, 一般要用除法运算。 4.有时需要构造被除数与除数 除操作是同时从行和列角度进行运算(S 是 R 的子集) ,构造被除数与除数。 用除法的第一种情况用除法的第一种情况 例 7 检索至少选修课程号为 1 和 2 的学生学号。 分析:(1)至少选修课程号为 1 和 2 的关系(表) 。 (2)考虑用除法来做 (3)构造一个临时表K=C

11、no(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

12、(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 为教师。 S S#SNAMEAGESEX 1李强23男 2刘

13、丽22女 3张友22男 C C#CNAMETEACHER K1C 语言王华 K5数据库原理程军 K8编译原理程军 SC S#C#GRADE 1K183 2K185 3K192 2K590 3K584 3K880 试用关系代数表达式表示下列查询语句: (1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。(2)检索年龄大于 21 的男学生学号(S#)和姓名(SNAME)。(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。(4)检索“李强”同学不学课程的课程号(C#)。(5)检索至少选修两门课程的学生学号(S#)。(6)检索全部学生都选修的课程的课程号(C#)和课

14、程名(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(S (S#,C#(SC)C#(TEACHER=程军(C)(4)C#(C)-C#(SNAME=李强(S) SC)(5)S#(1=425(SC SC) (6)C#,CNAME(C (S#,C#(SC)S#(S)(7)S#(SC C#(TEACHER=程军(C)(8)S#,C#(SC)C#(C#=k1 C#=k5(C)(9)SNAME(S (S#,C#(SC)C#(C))(10)S#,C#(SC)C#(S#=2(SC) (11)S#,SNAME(S (S#(SC CNAME=C 语言(C) 2、设有如下所示的关系:学生表 S(S#,SNAME,AGE,SEX)、课程表 C(C#,CNAME,TEACHER)和 学生选课表 SC(S#,C#,GRADE),其中:S#为学号,SN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

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