1、(完整word版)数据库原理及应用教程课本答案课后习题参考答案第1章习题参考答案一、选择题1. C 2. B 3. D 4. C 5. D 6. A 7. A 8. B 9. D、 10. B 11. C 12. D 13. A 14. D 15. B二、填空题1. 数据库系统2. 关系3. 物理独立性4. 操作系统5. 数据库管理系统(DBMS)6. 多对多7. 独立性8. 完整性控制9. 逻辑独立性10. 关系模型11. 概念 结构(逻辑)12. 树 有向图 二维表 嵌套和递归13. 宿主语言(或主语言)14. 数据字典15. 单用户结构 主从式结构 分布式结构 客户/服务器结构 浏览器/
2、服务器结构第2章习题参考答案一、选择题1. A 2. C 3. C 4. B 5. B 6. C 7. B 8. D 9. C 10. A 11. B 12. A 13. A 14. D 15. D二、填空题1. 选择(选取) 2. 交 3. 相容(或是同类关系)4. 并 差 笛卡尔积 选择 投影5. 并 差 交 笛卡尔积6. 选择 投影 连接7. f(R)8. 关系代数 关系演算9. 属性10. 同质11. 参照完整性12. 系编号 系名称,电话,办公地点13. 元组关系 域关系14. 主键 外部关系键15. R和S没有公共的属性三 简答题(1)查询T1老师所授课程的课程号和课程名。CNO,
3、CN(TNO=T1(TC)*CNO,CN(C))(2)查询年龄大于18岁男同学的学号、姓名、系别。SNO, SN, Dept(Age18 Sex=男(S)(3)查询“李力”老师所授课程的课程号、课程名和课时。CNO (TNO(TN=李力(T)*TC)* C(4)查询学号为S1的同学所选修课程的课程号、课程名和成绩。CNO,CN,Score(SNO=S1(SC)*CNO,CN(C)(5)查询“钱尔”同学所选修课程的课程号、课程名和成绩。CNO,CN,Score(SNO(SN= 钱尔(S)*CNO,CN(C)*SC)(6)查询至少选修“刘伟”老师所授全部课程的学生姓名。SN(SNO, SN(S)*
4、(SNO, CNO(SC)CNO(TN=刘伟(T*TC)(7)查询“李思”同学未选修的课程的课程号和课程名。CNO, CN(CNO(C)-CNO(SN=李思(S)*SC)*C)(8) 查询全部学生都选修了的课程的课程号和课程名。CNO, CN(C*(SNO, CNO(SC)SNO(S)(9)查询选修了课程号为C1和C2的学生的学号和姓名。(SNo,CNo(SC)CNo(CNo =C1 CNo =C2(C)*SNo,SN(S)(10)查询选修全部课程的学生的学号和姓名。SNO, SN(S*(SNO, CNO(SC)CNO(C)(11)查询选修课程包含“程军”老师所授课程之一的学生学号。SNO(S
5、C*CNO(TN=程军(C)(12)查询选修课程包含学号S2的学生所修课程的学生学号。SNO, CNO(SC)CNO(CNO=S2(SC)第3章习题参考答案一、选择题1. B 2. A 3. C 4. B 5. C 6. C 7. B 8. D 9. A 10. D二、填空题1. 结构化查询语言(Structured Query Language)2. 数据查询、数据定义、数据操纵、数据控制3. 外模式、模式、内模式4. 数据库、事务日志5. NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束、CHECK约束6. 聚集索引、非聚集索引7. 连接
6、字段8. 行数9. 定义10. 系统权限、对象权限11. 基本表、视图12(1)INSERT INTO S VALUES(990010,李国栋,男,19)(2)INSERT INTO S(No,Name) VALUES(990011, 王大友)(3)UPDATE S SET Name=陈平 WHERE No=990009(4)DELETE FROM S WHERE No=990008(5)DELETE FROM S WHERE Name LIKE 陈%13CHAR(8) NOT NULL14SC.CNo=C.CNo15ALTER TABLE Student ADD SGrade CHAR(10
7、)三、设计题1. 图书(Book)书号类型书名作者单价出版社号BNoBTypeBNameBAuthBPricePNo出版社(Publish)出版社号出版社名称所在城市电话PNoPNamePCityPTel(1) 查找在“高等教育出版社”出版,书名为“操作系统”的图书的作者名。SELECT BAuth FROM Book, PublishWHERE Book.PNo= Publish.PNo AND BName=操作系统 AND PName=高等教育出版社(2) 查找为作者“张欣”出版全部“小说”类图书的出版社的电话。SELECT PTel FROM Book, PublishWHERE Boo
8、k.PNo= Publish.PNo AND BType =小说 AND BAuth=张欣豆丁:SELECT PTel FROM Publish WHERE PNO=ALL(SELECT DISTINCT PNO FORM Book WHERE BAuth=张欣AND BType =小说 );(3) 查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别。SELECT BPrice, PName, BType FROM Book, PublishWHERE Book.PNo= Publish.PNo AND PName =电子工业出版社 AND BType =计算机(
9、4) 查找比“人民邮电出版社”出版的“高等数学”价格低的同名书的有关信息。SELECT * FROM BookWHERE BName =高等数学 AND BPriceANY(SELECT BPrice FROM Book,Publish WHERE Book.PNo= Publish.PNo AND PName =人民邮电出版社 AND BName =高等数学)AND PName 人民邮电出版社豆丁:SELECT* FROM Book WHERE BPrice100 AND SDate+30(SELECT MAX(SDate) FROM BookSell)或:SDate-2009-5-130
10、或: 2009-5-30- SDate 20 AND DEPT=计算机(4) 检索姓王的教师所讲课程的课程号和课程名称。SELECT C.C#,CN FROM C, TWHERE C.C#= T.C# AND TN LIKE 王%(5) 检索张三同学所学课程的成绩,列出SN, C#,GRSELECT SN,C#,GR FROM S,SCWHERE S.S#= SC.S# AND SN= 张三(6) 检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。SELECT SN,T.C#,GR FROM T,SC,SWHERE T.C# =SC.C# AND S.S#= SC.S# AN
11、D (SAL+COMM)1000(7) 检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。SELECT S.S#,SN,AVG(GR) AS AVGSCORE FROM S,SCWHERE S.S#= SC.S# AND C#C1GROUP BY S.S#,SN HAVING COUNT(*)=2ORDER BY AVG(GR) DESC(8) 检索选修和张三同学所选课程中任意一门相同的学生姓名,课程名SELECT SN,CN FROM S,SC,C或:CN=ANYWHERE S.S#= SC.S# AND C.C#=SC.C# AND C# IN (SELE
12、CT C# FROM S,SC WHERE S.S#= SC.S# AND SN= 张三) AND SN 张三(9) S1同学选修了C3,将此信息插入SC表中。INSERT INTO SC(S#,C#) VALUES(S1,C3) 或 INSERT INTO SC VALUES(S1,C3)(10) 删除S表中没有选修任何课程的学生的记录。DELETE FROM S WHERE S# NOT IN(SELECT DISTINCT S# FROM SC)第4章习题参考答案一、选择题1. B 2. B 3. D 4. B 5. C 6. D 7. B 8. D 9. C 10. A二、填空题1.
13、超键(或超码)2. 正确 完备3. 属性集X的闭包X + 函数依赖集F的闭包F +4. 平凡的函数依赖 自反性5. ADC 6. 2NF 3NF BCNF7. 无损连接 保持函数依赖8. AB BC BD9. B BB BC BBC10. BC AD DC11. AB 1NF 12. AD 3NF三、简答题7. 设有关系模式R(U,F),其中:U=A,B,C,D,E,F=AD,ED,DB,BCD,CDA 求R的候选码。 (2)根据函数依赖关系,确定关系模式R属于第几范式。(3)将R分解为3NF,并保持无损连接性。解: 由于(CE)+ =ABCDE,C+ =C,E+ =BDE,_R的候选码是CE
14、。 求出最小依赖集F=AD,ED,DB,BCD,CDA 将R分解的3NF:r=AD,DE,BD,BCD,ACD19. 设有关系R,如图所示。职工号职工名年龄性别单位号单位名E1ZHAO20FD3CCCE2QIAN25MD1AAAE3SUN38MD3CCCE4LI25FD3CCC试问R属于3NF?为什么?若不是,它属于第几范式?并如何规范化为3NF?解:R不属于3NF,它是2NF。因为:R的候选码为职工号和职工名,而:职工号单位号,单位号职工号,单位号单位名所以:职工号 t 单位名,即存在非主属性单位名对候选码职工号的传递函数依赖。规范化后的关系子模式为关系R1与R2。R1职工号职工名年龄性别单
15、位号E1ZHAO20FD3E2QIAN25MD1E3SUN38MD3E4LI25FD3R2单位号单位名D3CCCD1AAA第6章习题参考答案一、选择题1. B 2. C 3. C 4. A 5. C 6. B 7. C 8. B 9. D10. C 11. D 12. B 13. B 14. D 二、填空题1. 数据库的结构设计、数据库的行为设计2. 新奥尔良法3. 分析和设计阶段、实现和运行阶段4. 需求分析5. 概念结构设计6. 自顶向下、自底向上7. 属性冲突、命名冲突、结构冲突8. 逻辑结构设计9. 确定物理结构、评价物理结构10. 数据库加载11. 运行和维护12. 物理13. 数据
16、字典14. 需求分析15. 载入三、设计题1一个图书管理系统中有如下信息:图书:书号,书名,数量,位置借书人:借书证号,姓名,单位 出版社:出版社名,邮编,地址,电话,E-mail 约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社具有唯一性。 根据以上情况,完成如下设计: (1)构造满足需求的ER图。 (2)将ER图转换为等价的关系模式。(3)指出转换后的每个关系模式的关系键。 解:(1)满足上述需求的ER图如图所示。n图书借阅借书人m借书证号单 位姓 名书 名数
17、 量书 号n1出版社出版借书日期还书日期位 置邮 编地 址出版社名E-mail电 话 (2-3)转换为等价的关系模式及关系键如下; 借书人(借书证号,姓名,单位) 图书(书号,书名,数量,位置,出版社名) 出版社(出版社名,电话,邮编,地址,E-mail) 借阅(借书证号,书号,借书日期,还书日期)。1nnm设备处零件设备管理装配1m工人拥有2图6-21(a)、(b)和(c)所示给出某企业管理系统三个不同的局部E-R图,将其合并成一个全局E-R图,并设置各个实体以及联系的属性(允许增加认为必要的属性,也可将有关基本实体的属性改为联系的属性)。1部门属于职员mnm零件厂商生产(a) (b) (c
18、) 图6-21 局部的ER图 各实体构成如下: 部门:部门号,部门名,电话,地址 职员:职员号,职员名,职务(干部工人),年龄,性别 设备处:单位号,电话,地址 工人:工人编号,姓名,年龄,性别 设备:设备号,名称,位置,价格 零件:零件号,名称,规格,价格厂商:单位号,名称,电话,地址1nnm部门零件设备管理装配1n职工工作生产mn 解:汇总后的E-R图如图所示。 各类实体的属性为: 部门:部门号,部门名,电话,地址 职工:职工号,职工名,职务,年龄,性别 设备:设备号,名称,规格,价格 零件:零件号,名称,规格,价格3某医院病房计算机管理中需要如下信息:科室:科室名,科室地址,科室电话,医
19、生姓名病房:病房号,床位号,所属科室名医生:工作证号,姓名,性别,出生日期,联系电话,职称,所属科室名病人:病历号,姓名,性别,诊断记录,主管医生,病房号其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。完成如下设计:(1)设计该计算机管理系统的ER图;(2)将该E-R图转换为关系模型结构;(3)指出转换结果中每个关系模式的候选码。 解:(1)本题的E-R图如图所示。n病人入住病房1病房号床位号工作证号姓 名性 别病历号n医生从属科室1科室名科室电话科室地址性 别出生日期姓 名诊治组成n1n1职 称所属科室名联系电话 (2)对应的关系模型结构如下: 科室(科名,科地址,科电话) 病房(病房号,床位号,科室名) 医生(工作证号,姓名,性别,出生日期,联系电话,职称,科室名) 病人(病历号,姓名,性别,诊治记录,主管医生,病房号) (3)每个关系模式的候选码如(2)所示。