下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【数据库原理】关系代数篇除法讲解陈宇超编辑总结:除法运算的一般形式示意图如何计算r÷s呢,首先我们引进”象集”的概念,具体意义看下面的陈述即可理解关系r和关系s拥有共同的属性b、c , r÷s得到的属性值就是关系r包含而关系s不包含的属性,即a属性在r关系中a属性的值可以取 a1,a2,a3,a4 a1值对应的象集为 (b1,c2) , (b2,c1) , (b2,c3) a2值对应的象集为 (b3,c7) , (b2,c3) a3值对应的象集为 (b4,c6) a4值对应的象集为 (b6,c6) 关系s在b、c上的投影为 (b1,c2) , (b2,c1) , (b2,c
2、3) 只有a1值对应的象集包含关系s的投影集,所以只有a1应该包含在a属性中所以r÷s为aa1【例题一】为了更好的理解除法的实际作用,请看下面的例题设有教学数据库有3个关系(以下四小问均用除法的思想解决)学生信息关系student(sno,sname,age,sex)学生选课关系 sc(sno,cno,score)学校课程关系 course(cno,cname)student表snosnameagesexs001陈晓16男s002周倩21女s003华南19男s004曹匀21女s005郑威20男course表cnocnamec001计算机科学c002诗歌鉴赏c003资本论sc表snoc
3、noscores001c00188s001c00295s001c00399s002c00197s002c00384s003c00269s005c00277s005c00398sql语言中没有全称量词,具体实现时可以把带有全称量词的谓词转换为等价的带有存在量词的谓词。解决这类的除法问题一般采用双嵌套not exists来实现带全称量词的查询解决所谓forall的问题。(1) 检索所学课程包含了c002课程的学生学号解 关系代数表达式:sno ( sc÷cno(cno=c002 (course) )sql语句从略(2) 求至少选择了c001和c003两门课程的学生学号解 关系代数表达式:
4、sno ( sc÷cno(cno=c001 or cno=c003(course) )sql语句select distinct sno from sc a where not exists(select * from course b where cno in ('c002','c003') and not exists(select * from sc c where a.sno=c.sno and b.cno=c.cno)也可以采用自连接select s1.sno from (select * from sc where cno='c001
5、') as s1,(select * from sc where cno='c003') as s2 where s1.sno=s2.sno(3) 求至少学习了学生s003所学课程的学生学号解 关系代数表达式:sno ( sc÷cno(sno=s003 (sc) )select distinct sno from sc a where not exists(select * from sc b where sno='s003' and not exists(select * from sc c where a.sno=c.sno and b.c
6、no=c.cno)(4) 求选择了全部课程的学生的学号解 此例的等价自然语义是,输出这样的学号,不存在某门课程在他的选课记录里没有选这门课关系代数表达式:sno (sc÷cno(course) )sql语句select distinct sno from sc a where not exists( select cno from course b where not exists (select * from sc c where c.sno=a.sno and c.cno=b.cno)(5) 求选择了全部课程的学生的学号和姓名解 关系代数表达式:sno,sname(student
7、sc)÷cno(course) )sql语句select sno,sname from student a where not exists( select cno from course b where not exists (select * from sc c where c.sno=a.sno and c.cno=b.cno)以上小问用group by结合count语句也是可以实现的,也更好理解一些。例如求选择了全部课程的学生学号select sno from (select count (*) cnt, snofrom scgroup by sno ) twhere cnt >= ( select count (cno )from course )求至少选择了c002和c003两门课程的学生学号select sno from sc where cno in('c002','c003') g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新能源汽车充电设施代理销售合同4篇
- 二零二五年度环保车间改造施工合同样本4篇
- 二零二五年度户外遮阳窗帘销售合同样本4篇
- 2025年特种变压器租赁及安全监测服务合同2篇
- 二零二五民爆物品装卸作业环境保护与监测合同4篇
- 二零二五年度跨境电商平台部分股份转让合同书3篇
- 事业单位专属2024版劳动协议模板版A版
- 二零二五年度智能仓储车间生产责任承包合同模板3篇
- 2025年新能源汽车动力电池回收利用合同范本3篇
- 2024通讯设备租赁与维护服务合同模板3篇
- 2025年工程合作协议书
- 2025年山东省东营市东营区融媒体中心招聘全媒体采编播专业技术人员10人历年高频重点提升(共500题)附带答案详解
- 2025年宜宾人才限公司招聘高频重点提升(共500题)附带答案详解
- KAT1-2023井下探放水技术规范
- 垃圾处理厂工程施工组织设计
- 天疱疮患者护理
- 驾驶证学法减分(学法免分)题库及答案200题完整版
- 2024年四川省泸州市中考英语试题含解析
- 2025届河南省九师联盟商开大联考高一数学第一学期期末学业质量监测模拟试题含解析
- 抚养权起诉状(31篇)
- 2024年“一岗双责”制度(五篇)
评论
0/150
提交评论