1、习题参考答案第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老师所授课
3、程的课程号和课程名。CNO,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)查询至少选修“刘伟
4、”老师所授全部课程的学生姓名。SN( SNO, SN(S)*( 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
5、, CNO(SC) CNO(C)(11)查询选修课程包含“程军”老师所授课程之一的学生学号。SNO( SC*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
6、约束、PRIMARY KEY约束、FOREIGN KEY约束、CHECK 约束6. 聚集索引、非聚集索引7. 连接字段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 N
7、ULL14SC.CNo=C.CNo15ALTER TABLE Student ADD SGrade CHAR(10)三、设计题1. 图书(Book)书号 类型 书名 作者 单价 出版社号BNo BType BName BAuth BPrice PNo出版社(Publish)出版社号 出版社名称 所在城市 电话PNo PName PCity PTel(1) 查找在“高等教育出版社”出版,书名为“操作系统”的图书的作者名。SELECT BAuth FROM Book, PublishWHERE Book.PNo= Publish.PNo AND BName=操作系统 AND PName=高等教育出
8、版社(2) 查找为作者“张欣”出版全部“小说”类图书的出版社的电话。SELECT PTel FROM Book, PublishWHERE Book.PNo= Publish.PNo AND BType =小说 AND BAuth=张欣(3) 查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别。SELECT BPrice, PName, BType FROM Book, PublishWHERE Book.PNo= Publish.PNo AND PName =电子工业出版社 AND BType =计算机(4) 查找比“人民邮电出版社”出版的“高等数学”价格低的同
9、名书的有关信息。SELECT * FROM BookWHERE BName =高等数学 AND BPrice人民邮电出版社 (5) 查找书名中有“计算机”一词的图书的书名及作者。SELECT BName, BAuth FROM BookWHERE BName LIKE %计算机%(6) 在“图书”表中增加“出版时间”(BDate)项,其数据类型为日期型。ALTER TABLE Book ADD BDate datetime(7) 在“图书”表中以“作者”建立一个索引。CREATE INDEX Name ON Book(BAuth) desc2. 存书(BookStore)书号 书名 出版社 版
10、次 出版日期 作者 书价 进价 数量BNo BName Publish Version PDate BAuth BPrice BInPrice BCount销售(BookSell)日期 书号 数量 金额SDate BNo SCount SMoney(1) 建立存书表和销售表。CREATE TABLE BookStore( BNo CHAR(8) PRIMARY KEY, BName VARCHAR(20), Publish VARCHAR(20),Version INT,PDate DATETIME,BAuth VARCHAR(10),BPrice NUMERIC(4,1),BInPrice
11、NUMERIC(4,1),BCount INT);CREATE TABLE BookSell( BNo CHAR(8) PRIMARY KEY,SDate DATETIME, SCount INT,PDate DATETIME,SMoney SMALLMONEY);(2) 掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价*数量,即库存占用的资金)SELECT BName, BCount, BPrice* BCount AS TOTALCOUNT FROM BookStore(3) 统计总销售额。SELECT SUM(SCount * SMoney) AS TOTALMONEY
12、FROM BookSell(4) 列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额)SELECT BNo, BName , SDate , BCount , SCount * SMoney AS TOTALMONEY FROM BookStore, BookSellWHERE BookStore. BNo= BookSell. Bno GROUP BY BNo, BName , SDate , BCount(5) 分析畅销书,即列出当期(从当前起,向前30天)销售数量大于100的书名、数量。SELECT BName , SCount FROM BookStore, BookSe
13、llWHERE BookStore. BNo= BookSell. BNo AND SCount100 AND SDate+3020 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 FR
14、OM T,SC,SWHERE T.C# =SC.C# AND S.S#= SC.S# AND (SAL+COMM)1000(7) 检索没有选修C1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。SELECT S.S#,SN,AVG(GR) AS AVGSCORE FROM S,SCWHERE S.S#= SC.S# AND C# 张三(9) S1同学选修了 C3,将此信息插入SC表中。INSERT INTO SC(S#,C#) VALUES(S1,C3) 或 INSERT INTO SC VALUES(S1,C3)(10) 删除S表中没有选修任何课程的学生的记录。DELET
15、E 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. 超键(或超码) 2. 正确 完备3. 属性集X的闭包X + 函数依赖集F的闭包F + 4. 平凡的函数依赖 自反性5. ADC 6. 2NF 3NF BCNF7. 无损连接 保持函数依赖 8. AB BC BD9. B BB BC BBC 10. BC A D DC11. AB 1NF 12. AD 3NF三、简答题7. 设有关系模式R(U,F ),
16、其中:U=A,B ,C, D,E ,F=AD,ED,D B,BCD,CDA 求R的候选码。 (2)根据函数依赖关系,确定关系模式R属于第几范式。(3)将R分解为 3NF,并保持无损连接性。解: 由于(CE) + =ABCDE,C + =C,E + =BDE, R的候选码是CE 。 求出最小依赖集F=AD,ED ,DB,BC D ,CDA 将R分解的3NF:=AD,DE,BD,BCD ,ACD19. 设有关系R,如图所示。职工号 职工名 年龄 性别 单位号 单位名E1 ZHAO 20 F D3 CCCE2 QIAN 25 M D1 AAAE3 SUN 38 M D3 CCCE4 LI 25 F
17、D3 CCC试问R属于3NF?为什么?若不是,它属于第几范式?并如何规范化为3NF?解:R不属于3NF,它是2NF。因为:R的候选码为职工号和职工名,而:职工号单位号,单位号职工号,单位号单位名所以:职工号 t 单位名,即存在非主属性单位名对候选码职工号的传递函数依赖。规范化后的关系子模式为关系R1与R2 。R1职工号 职工名 年龄 性别 单位号E1 ZHAO 20 F D3E2 QIAN 25 M D1E3 SUN 38 M D3E4 LI 25 F D3R2单位号 单位名D3 CCCD1 AAA第6章习题参考答案一、选择题1. B 2. C 3. C 4. A 5. C 6. B 7. C
18、 8. B 9. D 10. C 11. D 12. B 13. B 14. D 二、填空题1. 数据库的结构设计、数据库的行为设计2. 新奥尔良法3. 分析和设计阶段、实现和运行阶段4. 需求分析5. 概念结构设计6. 自顶向下、自底向上7. 属性冲突、命名冲突、结构冲突8. 逻辑结构设计9. 确定物理结构、评价物理结构10. 数据库加载11. 运行和维护12. 物理13. 数据字典14. 需求分析15. 载入三、设计题1一个图书管理系统中有如下信息:图书:书号,书名,数量,位置借书人:借书证号,姓名,单位出版社:出版社名,邮编,地址,电话,E-mail约定:任何人可借多种书,任何一种书可为
19、多个人所借,借书证号具有唯一性。借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社具有唯一性。根据以上情况,完成如下设计:(1)构造满足需求的ER图。(2)将ER图转换为等价的关系模式。(3)指出转换后的每个关系模式的关系键。解:(1)满足上述需求的ER图如图所示。(2-3)转换为等价的关系模式及关系键如下;借书人(借书证号,姓名,单位)n图书借阅借书人m借书证号 单 位姓 名书 名 数 量书 号n 1 出版社出版借书日期还书日期位 置 邮 编 地 址出版社名 E-mail电 话图书(书号,书名,数量,位置,出版社名)出版社(出版社名
20、,电话,邮编,地址,E-mail)借阅(借书证号,书号,借书日期,还书日期)。2图6-21(a)、(b)和(c)所示给出某企业管理系统三个不同的局部 E-R图,将其合并成一个全局E-R图,并设置各个实体以及联系的属性(允许增加认为必要的属性,也可将有关基本实体的属性改为联系的属性)。(a) (b) (c)图6-21 局部的 ER图各实体构成如下:部门:部门号,部门名,电话,地址职员:职员号,职员名,职务(干部工人),年龄,性别设备处:单位号,电话,地址工人:工人编号,姓名,年龄,性别设备:设备号,名称,位置,价格零件:零件号,名称,规格,价格厂商:单位号,名称,电话,地址解:汇总后的E-R图如
21、图所示。各类实体的属性为:部门:部门号,部门名,电话,地址职工:职工号,职工名,职务,年龄,性别设备:设备号,名称,规格,价格零件:零件号,名称,规格,价格3某医院病房计算机管理中需要如下信息:科室:科室名,科室地址,科室电话,医生姓名病房:病房号,床位号,所属科室名医生:工作证号,姓名,性别,出生日期,联系电话,职称,所属科室名病人:病历号,姓名,性别,诊断记录,主管医生,病房号其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但1部门属于职员mn m零件 厂商生产1 nnm设备处零件设备管理装配1m工人拥有1 nnm部门零件设备管理装配1n职工工作 生产
22、mn可负责多个病人的诊治,一个病人的主管医生只有一个。完成如下设计:(1)设计该计算机管理系统的ER图;(2)将该E-R图转换为关系模型结构;(3)指出转换结果中每个关系模式的候选码。解:(1)本题的E-R图如图所示。(2)对应的关系模型结构如下:科室(科名,科地址,科电话)病房(病房号,床位号,科室名)医生(工作证号,姓名,性别,出生日期,联系电话,职称,科室名)病人(病历号,姓名,性别,诊治记录,主管医生,病房号)(3)每个关系模式的候选码如(2)所示。n病人入住病房1病房号 床位号工作证号姓 名 性 别病历号n医生从属科室1科室名 科室电话科室地址性 别 出生日期姓 名诊治组成n 1n 1职 称所属科室名联系电话