数据库课后习题答案

习题参考答案第1章习题参考答案章习题参考答案一、选择题 1. C 11. C 2. B 12. D 3. D 13.

A 4. C 14. D 5. D 15.

B 6. A 7. A 8. B 9. D、10. B 、二、填空题1. 数据库系统3. 物理独立性5. 数据库管理系统(DBMS)数据库管理系统()7. 独立性9. 逻辑独立性逻辑独立性11. 概念结构(逻辑)结构(逻辑)13. 宿主语言(或主语言)宿主语言(或主语言)15. 单用户结构主从式结构分布式结构 2. 关系 4. 操作系统 6. 多对多8. 完整性控制10. 关系模型12. 树有向图二维表嵌套和递归14. 数据字典客户/服务器结构浏览器/服务器结构客户服务器结构浏览器服务器结构第2章习题参考答案章习题参考答案一、选择题1. A 11. B 2.

C 12. A 3. C 13. A 4. B 14.

D 5. B 15. D 6. C 7. B 8. D 9. C 10. A 二、填空题1. 选择(选取)选择(选取)4. 并差笛卡尔积选择投影6. 选择投影连接9. 属性12. 系编号系名称,电话,办公地点系名称,电话,14. 主键外部关系键三简答题老师所授课程的课程号和课程名。(1)查询T1 老师所授课程的课程号和课程名。)∏CNO,CN(σTNO=’T1’(TC)*∏CNO,CN(C)) ))岁男同学的学号姓名、系别。学号、(2)查询年龄大于18 岁男同学的学号、姓名、系别。)∏SNO, SN, Dept (σAge>18∧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)*(∏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(SC*∏CNO(σTN=’程军’(C))))的学生所修课程的学生学号。(12)查询选修课程包含学号S2 的学生所修课程的学生学号。)∏SNO, CNO(SC)÷∏CNO(σCNO=’S2’(SC))))2. 交3. 相容(或是同类关系)相容(或是同类关系)5. 并差交笛卡尔积8. 关系代数关系演算7. σf(R) 10. 同质11. 参照完整性13. 元组关系域关系15. R 和S 没有公共的属性没有公共的属性第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、UNIQU

E 约束、PRIMARY KEY 约束、FOREIGN KEY 约束、CHECK 约束约束、约束、、6. 聚集索引、非聚集索引聚集索引、7. 连接字段8. 行数9. 定义10. 系统权限、对象权限系统权限、对象权限11. 基本表、视图基本表、12..李国栋','男(1)INSERT INTO S V ALUES('990010','李国栋男',19) )李国栋王大友') (2)INSERT INTO S(No,Name)

V ALUES('990011', '王大友)王大友陈平' (3)UPDATE S SET Name='陈平WHERE No='990009' )陈平(4)DELETE FROM S WHERE No='990008' )(5)DELETE FROM S WHERE Name LIKE '陈%' )陈13.CHAR(8) NOT NULL .14.http://m.wendangku.net/doc/8fc5431f227916888486d726.htmlo=http://m.wendangku.net/doc/8fc5431f227916888486d726.htmlo .15.ALTER TABLE Student .ADD SGrade CHAR(10) 三、设计题1. 图书(Book)图书()书号BNo 出版社号PNo 类型BType 书名BName 作者BAuth 所在城市PCity 单价BPrice 电话PTel 出版社号PNo 出版社(出版社(Publish))出版社名称PName (1) 查找在“高等教育出版社”出版,书名为“操作系统”的图书的作者名。SELECT BAuth FROM Book, Publish WHERE Book.PNo= Publish.PNo AND BName=’操作系统AND PName=’高等教育出版社操作系统’ 高等教育出版社’ 操作系统高等教育出版社(2) 查找为作者“张欣”出版全部“小说”类图书的出版社的电话。SELECT PTel FROM Book, Publish WHERE Book.PNo= Publish.PNo AND BType =’小说AND BAuth=’张欣小说’ 张欣’ 小说张欣(3) 查询“电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及图书类别。SELECT BPrice, PName, BType FROM Book, Publish WHERE Book.PNo= Publish.PNo AND PName =’电子工业出版社AND BType =’计算机电子工业出版社’ 计算机’ 电子工业出版社计算机(4) 查找比“人民邮电出版社”出版的“高等数学”价格低的同名书的有关信息。SELECT * FROM Book WHERE BName =’高等数学AND BPrice’人民邮电出版社人民邮电出版社’ 人民邮电出版社(5) 查找书名中有“计算机”一词的图书的书名及作者。SELECT BName, BAuth FROM Book 计算机%’ WHERE BName LIKE ’%计算机计算机(6) 在“图书”表中增加“出版时间” (BDate)项,其数据类型为日期型。ALTER TABLE Book ADD BDate datetime (7) 在“图书”表中以“作者”建立一个索引。CREATE INDEX Name ON Book(BAuth) desc 2. 存书(BookStore)存书()书号BNo 书名BName 出版社Publish 数量SCount 版次Version 金额SMoney 出版日期PDate 作者BAuth 书价BPrice 进价BInPrice 数量BCount 销售(销售(BookSell))日期书号SDate BNo (1) 建立存书表和销售表。建立存书表和销售表。CREATE TABLE BookStore ( BNo CHAR(8) PRIMARY KEY, BName V ARCHAR(20), Publish VARCHAR(20), Version INT, PDate DA TETIME, BAuth V ARCHAR(10), BPrice NUMERIC(4,1), BInPrice 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 FROM BookSell (4) 列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额)每天的销售报表SELECT BNo, BName , SDate , BCount , SCount * SMoney AS TOTALMONEY FROM BookStore, BookSell WHERE BookStore. BNo= BookSell. Bno GROUP BY BNo, BName , SDate , BCount (5) 分析畅销书,即列出当期(从当前起,向前30 天)销售数量大于100 的书名、数量。分析畅销书,即列出当期(从当前起,的书名、数量。SELECT BName , SCount FROM BookStore, BookSell WHERE BookStore. BNo= BookSell. BNo AND SCount>100 AND SDate+30<(SELECT MAX(SDate) FROM BookSell) 或:SDate-‘2009-5-1’<30 或:‘2009-5-30’- SDate <30 或:SDate BETWEEN ‘2009-5-1’ AND ‘2009-5-30’ 说明:说明:日

期的表示方法2009-5-30 20090530 2009/5/30 四、简答题S(学生信息表)(学生信息表)学号S# 课程号C# 学生姓名SN 课程名称课程名称CN 年龄AGE 所在系DEPT SC (选课信息表)(选课信息表)学号S# 课程号C# 成绩GR C(课程信息表)(课程信息表)(1) 创建S 表,S#为主键,SN 不能为空。为主键,不能为空。为主键CREATE TABLE S ( S# CHAR(8) PRIMARY KEY, SN CHAR(8) NOT NULL, AGE INT, DEPT V ARCHAR(20) ); (2) 创建计算机系学生的视图,该视图的属性列由学号、姓名、课程名和任课教师号组成。创建计算机系学生的视图,该视图的属性列由学号、姓名、课程名和任课教师号组成。CREA TE VIEW computer_student(S#, SN, C#,T#) AS SELECT S.S#, SN,SC.C#,T# FROM S,SC,T 计算机’ WHERE S.S#= SC.S# AND SC.C#= T.C# AND DEPT=’计算机计算机(3) 检索计算机系年龄在20 岁以上的学生学号。检索计算机系年龄在岁以上的学生学号。计算机系SELECT S# FROM S WHERE AGE>20 AND DEPT=’计算机计算机’ 计算机(4) 检索姓王的教师所讲课程的课程号和课程名称。检索姓王的教师所讲课程的课程号和课程名称。SELECT C.C#,CN FROM C, T WHERE C.C#= T.C# AND TN LIKE ‘王%’ 王(5) 检索张三同学所学课程的成绩,列出SN, C#,GR 检索张三同学所学课程的成绩,SELECT SN,C#,GR FROM S,SC WHERE S.S#= SC.S# AND SN= ’张三张三’ 张三(6) 检索选修总收入超过1000 元的教师所讲课程的学生姓名、课程号和成绩。检索选修总收入超过元的教师所讲课程的学生姓名、课程号和成绩。总收入SELECT SN,T.C#,GR FROM T,SC,S WHERE T.C# =SC.C# AND S.S#= SC.S# AND (SAL+COMM)>1000 (7) 检索没有选修C1 课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。课程且选修课程数为两门的学生的姓名和平均成绩,并按平均成绩降序排列。降序排列SELECT S.S#,SN,A VG(GR) AS A VGSCORE FROM S,SC WHERE S.S#= SC.S# AND C#<>’C1’ GROUP BY S.S#,SN HA VING COUNT(*)=2 ORDER BY A VG(GR) DESC (8) 检索选修和张三同学所选课程中任意一门相同的学生姓名,课程名检索选修和张三同学所选课程中任意一门相同的学生姓名,SELECT SN,CN FROM S,SC,C WHERE S.S#= SC.S# AND C.C#=SC.C# AND C# IN (SELECT C# FROM S,SC WHERE S.S#= SC.S# AND SN= ’张三张三’) AND SN<> ’张三张三’ 张三张三或:CN=ANY (9) S1 同学选修了C3,将此信息插入SC 表中。同学选修了,表中。INSERT INTO SC(S#,C#) V ALUES(‘S1’,’C3’) 或INSERT INTO SC V ALUES(‘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. 超键(或超码)超键(或超码)+ 3. 属性集X 的闭包X + 函数依赖集F 的闭包F 5. {AD→C} φ 7. 无损连接保持函数依赖9. B→φ B→B B→C B→BC 11. AB 1NF 三、简答题7. 设有关系模式R(U,F),其中:U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,CD→A } ⑴求R 的候选码。(2)根据函数依赖关系,确定关系模式R 属于第几范式。(3)将R 分解为3NF,并保持无损连接性。解:⑴由于(CE)+ =ABCDE,C+ =C,E+ =BDE,_R 的候选码是CE。⑵求出最小依赖集F’={A→D,E→D,D→B,BC→D,CD→A } 将R 分解的3NF:ρ={AD,DE,BD,BCD,ACD} 19. 设有关系R,如图所示。职工号E1 E2 E3 E4 职工名ZHAO QIAN SUN LI 年龄20 25 38 25 性别F M M F 单位号D3 D1 D3 D3 单位名CCC AAA CCC CCC 2. 正确完备4. 平凡的函数依赖自反性6. 2NF 3NF BCNF 8. AB BC BD 10. B→C A→D D→C 12. AD 3NF 试问R 属于3NF?为什么?若不是,它属于第几范式?并如何规范化为3NF?解:R 不属于3NF,它是2NF。因为:R 的候选码为职工号和职工名,而:职工号→单位号,单位号→职工号,单位号→单位名所以:职工号t 单位名,即存在非主属性单位名对候选码职工号的传递函数依赖。规范化后的关系子模式为关系

R1 与R2。R2 R1 职工号E1 E2 E3 E4 职工名ZHAO QIAN SUN LI 年龄20 25 38 25 性别F M M F 单位号D3 D1 D3 D3 单位号D3 D1 单位名CCC AAA 第6章习题参考答案章习题参考答案一、选择题 1. B 11. D 2. C 12. B 3. C 4. A 5. C 13. B 14. D 6. B 7. C 8. B 9. D 10. C 二、填空题1. 数据库的结构设计、数据库的行为设计数据库的结构设计、2. 新奥尔良法3. 分析和设计阶段、实现和运行阶段分析和设计阶段、4. 需求分析5. 概念结构设计6. 自顶向下、自底向上自顶向下、7. 属性冲突、命名冲突、结构冲突属性冲突、命名冲突、8. 逻辑结构设计三、设计题9. 10. 11. 12. 13. 14. 15. 确定物理结构、确定物理结构、评价物理结构数据库加载运行和维护物理数据字典需求分析载入1.一个图书管理系统中有如下信息:图书:书号,书名,数量,位置借书人:借书证号,姓名,单位出版社:出版社名,邮编,地址,电话,E-mail 约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社具有唯一性。根据以上情况,完成如下设计:(1)构造满足需求的E-R 图。(2)将E-R 图转换为等价的关系模式。(3)指出转换后的每个关系模式的关系键。解:(1)满足上述需求的E-R 图如图所示。借书证号姓名单位借书人m 借阅借书日期出版社名还书日期n 出版E-mail n 图书 1 出版社电话书号书名数量位置邮编地址(2-3)转换为等价的关系模式及关系键如下;借书人(借书证号,姓名,单位)图书(书号,书名,数量,位置,出版社名)出版社(出版社名,电话,邮编,地址,E-mail)借阅(借书证号,书号,借书日期,还书日期)。2.图6-21(a)(b)和(c)所示给出某企业管理系统三个不同的局部E-R 图,将其合并成一个全局、E-R 图,并设置各个实体以及联系的属性(允许增加认为必要的属性,也可将有关基本实体的属性改为联系的属性)。设备处职员 1 m 属于1 n 管理设备n 装配m 零件零件n 生产m 拥有厂商m 工人 1 部门(a)各实体构成如下:部门:部门号,部门名,电话,地址职员:职员号,职员名,职务(干部/工人),年龄,性别设备处:单位号,电话,地址工人:工人编号,姓名,年龄,性别设备:设备号,名称,位置,价格零件:零件号,名称,规格,价格厂商:单位号,名称,电话,地址(b)图6-21 局部的E-R 图(c)解:汇总后的E-R 图如图所示。各类实体的属性为:部门:部门号,部门名,电话,地址职工:职工号,职工名,职务,年龄,性别设备:设备号,名称,规格,价格零件:零件号,名称,规格,价格3.某医院病房计算机管理中需要如下信息:科室:科室名,科室地址,科室电话,医生姓名病房:病房号,床位号,所属科室名部门1 工作n 职工1 m 管理n 设备n 生产装配n m 零件医生:工作证号,姓名,性别,出生日期,联系电话,职称,所属科室名病人:病历号,姓名,性别,诊断记录,主管医生,病房号其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。完成如下设计:(1)设计该计算机管理系统的E-R 图;(2)将该E-R 图转换为关系模型结构;(3)指出转换结果中每个关系模式的候选码。解:(1)本题的E-R 图如图所示。病房号病房1 入住床位号n 科室名 1 科室地址科室电话科室 1 从属组成n 病人n 诊治n 1 医生所属科室名职称联系电话病历号姓名性别工作证号姓名性别出生日期(2)对应的关系模型结构如下:科室(科名,科地址,科电话)病房(病房号,床位号,科室名)医生(工作证号,姓名,性别,出生日期,联系电话,职称,科室名)病人(病历号,姓名,性别,诊治记录,主管医生,病房号)(3)每个关系模式的候选码如(2)所示。

相关推荐
相关主题
热门推荐