




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统原理作业题与参考答案作 业 题 PART 基础篇CHAPTER 1 数据库系统引论1. 教材Page 10 习题3CHAPTER 2 数据模型1. 教材Page 54 习题7(1)(4), (6)CHAPTER 3 SQL语言1. 教材Page 88 习题25(See: 参考答案1)Part 系统篇CHAPTER 4 DBMS引论1. 名词解释:(1)事务;(2)数据目录;(3)多线程DBMS;(4)集中式DB与分布式DBCHAPTER 5 数据库的存储结构1. 试解释关系DB系统中基表数据的三种典型存取路径:(1)索引;(2)簇集;(3)散列。(即基表的四种典型存储机制:(1)表;(2)索引的表;(3)索引簇表;(4)散列簇表)。CHAPTER 6 查询处理与优化1. 用语法树表示教材Page 66例3-4查询的代数优化过程。(See: 参考答案2)CHAPTER 7 事务管理1. 教材Page 172 习题62. 教材Page 172 习题7CHAPTER 8 数据库的安全与完整性约束1. 教材Page 185 习题12. 教材Page 185 习题2CHAPTER 9 触发器与主动数据库系统1. 职员(emp)基表定义见课件。试用 SQL:1999/SQL3语法定义一个名为empBandh的触发器来实现:一旦在emp表中删除一个员工的数据,只要此员工的工种不是“bandh”,就在emp表中恢复(插入)此员工的数据,将其工种(job)置为“bandh”,月薪(sal)置为2000.0,佣金(comm)置为NULL,其余属性不变。(See: 参考答案3)PART 应用篇CHAPTER 10 数据依赖与关系模式的规范化1. 教材Page 225 习题8(See: 参考答案4)CHAPTER 11 数据库设计1. 试对四个实体:学生、班级、课程、教师,及它们间的四个联系:组成、选课、任课、班主任进行E/R建模,并把E/R数据模式转换成关系数据库模式,并写出创建基表的SQL DDL语句,同时定义PK与FK、以及你认为必要的其他完整性约束。(See: 参考答案5)CHAPTER 12 数据库管理1. 教材Page 225 习题1参 考 答 案 参考答案1基表(详细定义见教材):student (sno, sname, sex, bdate, height)course (cno, lhour, credit, semester)sc (sno, cno, grade)(1) 查询身高大于1.80米的男生的学号和姓名。SELECT sno, snameFROM studentWHERE height1.8 AND sex = 男;(2) 查询计算机系秋季所开课程的课程号和学分数。SELECT cno, creditFROM courseWHERE cno LIKE cs% AND semester = 秋;(3) 查询选修计算机系秋季所开课程的男生姓名、课程号、学分数、成绩。SELECT o, credit, sname, gradeFROM sc, course, studentWHERE o = o AND student.sno = sc.sno ANDo LIKE cs% AND semester = 秋 AND sex = 男ORDER BY o;(4) 查询至少选修一门电机系课程的女生的姓名。SELECT snameFROM studentWHERE sex = 女 ANDEXISTS ( SELECT * /相关子查询FROM scWHERE sc.sno = student.sno ANDo LIKE ee%);或者:SELECT snameFROM studentWHERE sex = 女 ANDsno IN ( SELECT DISTINCT sno /不相关子查询FROM scWHERE cno LIKE ee%);或者用“连接”(不好!):SELECT DISTINCT snameFROM student, scWHERE student.sno = sc.sno AND sex = 女 AND cno LIKE ee% ;注:此处的DISTINCT,若加,则会丢失其他同姓名而又均选修了电机系课程的学生;若不加,则选多门电机系课程的某学生的姓名重复出现。因此,用“连接”的方法不好!(5) 查询每位学生已修课程的门数和总平均成绩。SELECT sc.sno, sname, COUNT(o), AVG(sc.grade)FROM sc, studentWHERE student.sno = sc.snoGROUP BY sc.sno;注:标准SQL(见斯坦福书Page 275)或Oracle 7中SELECT列表仅可包含下列表达式类型:(1)常数;(2)组函数;(3)与GROUP BY子句中相同的列表达式;(4)由GROUP BY子句中的列表达式所组成的表达式。因此,上述查询中不能再连接student表而获得sname。(6) 查询每门课程选修的学生人数、最高成绩、最低成绩和平均成绩。SELECT cno, COUNT(sno), MAX(grade), MIN(grade), AVG(grade)FROM scGROUP BY cno;(7) 查询所有课程的成绩都在80分以上的学生的姓名、学号,并按学号升序排列。SELECT sname, snoFROM studentWHERE 80 ALL ( SELECT grade /相关子查询FROM scWHERE sc.sno = student.sno ANDgrade IS NOT NULL)ORDER BY sno;注:具体的RDBMS对NULL值的处理可能不同。(8) 查询缺成绩的学生姓名、缺成绩的课程号及其学分数。SELECT sname, o, creditFROM student, sc, courseWHERE grade IS NULL ANDstudent.sno=sc.sno AND o=o;(9) 查询有(含)一门以上三学分以上课程的成绩低于70分的学生的姓名。SELECT snameFROM studentWHERE sno IN ( SELECT DISTINCT sno /不相关子查询FROM scWHERE grade = 3 ) );或者:SELECT snameFROM studentWHERE EXISTS ( SELECT * /相关子查询FROM scWHERE sc.sno = student.sno AND grade= 3 ) );或者用“连接”(不好!):SELECT DISTINCT snameFROM student, sc, courseWHERE grade 70 AND sc.sno = student.sno AND o = o;注:此处的DISTINCT同题(4),因此,用“连接”的方法不好!(10) 查询19841986年出生的姓名、总平均成绩及已修学分数。SELECT sno, AVG(grade), SUM(credit)FROM sc, courseWHERE o = o ANDsno IN ( SELECT snoFROM studentWHERE YEAR(bdate) BETWEEN 1974 AND 1976)GROUP BY sno;注:若考虑有同姓名学生,只能用ORDER BY sno,而不能用ORDER BY name。但此时在SELECT子句中就不能出现name,见题(5)注。因此,此题不好!或者(也不好!):SELECT sname, student.sno, AVG(grade), SUM(credit)FROM sc, course, studentWHERE o = o AND sc.sno = student.sno ANDYEAR(bdate) BETWEEN 1974 AND 1976GROUP BY sname, student.sno;(Return: CHAPTER 3 作业题)参考答案2基表:s (sno, sname, sex, bdate, height)c (cno, lhour, credit, seme)sc (sno, cno, grade)查询:SELECT sname, o, grade FROM s, c, scWHERE s.sno = sc.sno AND o = o AND seme = 秋;查询可表示成关系代数操作表达式:sname, o, grade(t (ssc)c)其中:t = s.sno = sc.sno AND o = o AND seme = 秋查询可表示成(原始)语法树;其代数优化(语法树等价变换)过程为:先做,后做sname, o, gradetcsscsname, o, grades.sno = sc.sno AND o = oseme = 秋sscc合并与,成为sname, o, o = os.sno = sc.snoseme = 秋sscc先做小,后做大设|seme = 秋c|s|sc|sname, o, o = os.sno = sc.snoseme = 秋sscc加必要的投影,消除无用属性sname, o, o = os.sno = sc.snoseme = 秋ssccsno, snamecno(优化后语法树)优化后的查询可表示成关系代数操作表达式:sname, o, grade (sno, sname s) s.sno = sc.sno(cno (seme=秋c) o=o sc)(Return: CHAPTER 6 作业题)参考答案3(职员(emp)基表定义:emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) )CREATE TRIGGER empBandhAFTER DELETE ON empREFERENCING OLD ROW AS oldrow, FOR EACH ROWWHEN oldrow.job ”bandh”BEGIN INSERT INTO emp VALUES(oldrow.empno, oldrow.ename, “bandh”, oldrow.mgr, oldrow.hiredate, 2000.0, NULL, oldrow.deptno)END;(Return: CHAPTER 9 作业题)参考答案4判别关系模式最高需第几范式?并解释原因。(1) R(ABCD), F=BD, ABC;解:KEY=A, B=AB非平凡函数依赖BD中:决定子B不是超键,所以R不属于BCNF;被决定子D不是主属性,所以R不属于3NF;又,D部分依赖于KEY,所以R不属于2NF;结论:R属于1NF。(2) R(ABCDE), F=ABCE, EAB, CD;解:KEY=AB或E非平凡函数依赖CD中:决定子C不是超键,所以R不属于BCNF;被决定子D不是主属性,所以R不属于3NF;F中不存在非主属性部分依赖于KEY;结论:R属于2NF。(3) R(ABCD), F=BD, DB, ABC;解:KEY=AB或AD非平凡函数依赖BD中:决定子B不是超键,所以R不属于BCNF;但被决定子D是主属性;非平凡函数依赖DB中被决定子B是主属性;非平凡函数依赖ABC中决定子AB是超键;结论:R属于3NF。(4) R(ABC), F=AB, BA, AC;解:KEY=A或B非平凡依赖AB中决定子A是超键;非平凡依赖BA中决定子B是超键;非平凡依赖AC中决定子A是超键;由BA, AC有BC,其中决定子B是超键;即找不到任何冒犯BCNF的非平凡依赖;结论:R属于BCNF。(5) R(ABC), F=AB, BA, CA;解:KEY=C非平凡依赖AB中:决定子A不是超键,所以R不属于BCNF;被决定子B又不是主属性,所以R不属于3NF;又,F中不存在非主属性部分依赖于KEY;结论:R属于2NF。(6) R(ABCD), F=AC, DB;解:KEY=AD非平凡依赖AC中:决定子A不是超键,所以R不属于BCNF;被决定子C又不是主属性,所以R不属于3NF;非主属性C(及B)部分依赖于KEY,所以R不属于2NF;结论:R属于1NF。(7) R(ABCD), F=AC, CDB;解:KEY=AD非平凡依赖AC中:决定子A不是超键,所以R不属于BCNF;被决定子C又不是主属性,所以R不属于3NF;因AC,即非主属性C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械质量保障及风险免责协议
- 个人或组织之间技术转让合同
- 2025年全自动血球计数仪项目可行性研究报告
- 在线广告投放及效果评估服务合同
- 内衣设备外贸采购协议
- 软件技术培训合作协议
- 健身器材加工生产协议
- 商业品牌设计委托合同
- 旅游服务团队行程变更免责协议
- 图文广告制作协议模板合同5篇
- 第6节 有机磷农药中毒病人的护理
- 劳动课程校本教材(共43页)
- 小学生安全教育校本教材(中年级版)
- 中职语文 大国工匠——彭祥华
- 喜达屋明星服务
- 烟草企业安全生产标准化规范-第3部分-考核评价准则和方法
- 风机配套件知识
- 硼氢化钠还原全文
- 武汉市控制性详细规划编制技术规程610
- 与父母依恋关系和与同伴依恋关系量表(IPPA)
- ANCA相关性小血管炎
评论
0/150
提交评论