数据库原理与应用教程-(第二版)人民邮电出版社习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题参考答案
第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章习题参考答案
一、选择题
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,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))
第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.连接字段
8.行数
9.定义
10.系统权限、对象权限
11.基本表、视图
12.
(1)INSERT INTO S VALUES('','李国栋','男',19)
(2)INSERT INTO S(No,Name) VALUES('', '王大友')
(3)UPDATE S SET Name='陈平' WHERE No=''
(4)DELETE FROM S WHERE No=''
(5)DELETE FROM S WHERE Name LIKE '陈%'
13.CHAR(8) NOT NULL
14.o=o
15.ALTER TABLE Student
ADD SGrade CHAR(10)
三、设计题
1.
(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<ANY
(SELECT BPrice FROM Book,Publish
WHERE Book.PNo= Publish.PNo AND PName =’人民邮电出版社’ AND BName =’高等数学’)AND PName <>’人民邮电出版社’
(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.
(1)建立存书表和销售表。
CREATE TABLE BookStore
( BNo CHAR(8) PRIMARY KEY,
BName V ARCHAR(20),
Publish V ARCHAR(20),
Version INT,
PDate DATETIME, 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 2009/5/30
四、简答题 S
(1) 创建S 表,S#为主键,SN 不能为空。
CREATE TABLE S ( S# CHAR(8) PRIMARY KEY ,
SN CHAR(8) NOT NULL , AGE INT,
DEPT V ARCHAR(20) );
(2) 创建计算机系学生的视图,该视图的属性列由学号、姓名、课程名和任课教师号组成。
CREATE 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 AVG(GR) DESC
(8) 检索选修和张三同学所选课程中任意一门相同的学生姓名,课程名
SELECT SN,CN FROM S,SC,C
WHERE S.S#= SC.S# AND C.C#=SC.C# S,SC WHERE S.S#= SC.S# AND SN= ’张三’) AND SN<> ’张三’
(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. 超键(或超码)
2. 正确 完备
3. 属性集X 的闭包X + 函数依赖集F 的闭包F +
4. 平凡的函数依赖 自反性
5. {AD →C } φ
6. 2NF 3NF BCNF
7. 无损连接 保持函数依赖
8. AB BC BD
9. B →φ B →B B →C B →BC 10. B →C A →D D →C 11. AB 1NF
12. AD 3NF
三、简答题
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}
试问R 属于
3NF ?为什么?若不是,它属于第几范式?并如何规范化为3NF ? 解:R 不属于3NF ,它是2NF 。
因为:R 的候选码为职工号和职工名,而:
职工号→单位号,单位号→职工号,单位号→单位名
所以:职工号 t 单位名,即存在非主属性单位名对候选码职工号的传递函数依赖。
规范化后的关系子模式为关系R1与R2。
第6章习题参考答案
一、选择题
1. B
2. C
3. C
4. A
5. C
6. B
7. C
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
约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。
借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社具有唯一性。
根据以上情况,完成如下设计:
(1)构造满足需求的E-R图。
(2)将E-R图转换为等价的关系模式。
(3)指出转换后的每个关系模式的关系键。
解:(1)满足上述需求的E-R图如图所示。
(2-3)转换为等价的关系模式及关系键如下;
借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电话,邮编,地址,E-mail ) 借阅(借书证号,书号,借书日期,还书日期)。
2.图6-21(a )、(b )和(c )所示给出某企业管理系统三个不同的局部E-R 图,将其合并成一个全局E-R 图,并设置各个实体以及联系的属性(允许增加认为必要的属性,也可将有关基本实体的属性改为联系的属性)。
(a )
(b )
(c ) 图6-21 局部的E -R 图
各实体构成如下:
部门:部门号,部门名,电话,地址
职员:职员号,职员名,职务(干部/工人),年龄,性别 设备处:单位号,电话,地址 工人:工人编号,姓名,年龄,性别 设备:设备号,名称,位置,价格 零件:零件号,名称,规格,价格
厂商:单位号,名称,电话,地址
解:汇总后的E-R 图如图所示。
各类实体的属性为:
部门:部门号,部门名,电话,地址 职工:职工号,职工名,职务,年龄,性别 设备:设备号,名称,规格,价格 零件:零件号,名称,规格,价格
3.某医院病房计算机管理中需要如下信息: 科室:科室名,科室地址,科室电话,医生姓名 病房:病房号,床位号,所属科室名
医生:工作证号,姓名,性别,出生日期,联系电话,职称,所属科室名 病人:病历号,姓名,性别,诊断记录,主管医生,病房号
其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
完成如下设计:
(1)设计该计算机管理系统的E-R图;
(2)将该E-R图转换为关系模型结构;
(3)指出转换结果中每个关系模式的候选码。
解:(1)本题的E-R图如图所示。
(2)对应的关系模型结构如下:
科室(科名,科地址,科电话)
病房(病房号,床位号,科室名)
医生(工作证号,姓名,性别,出生日期,联系电话,职称,科室名)病人(病历号,姓名,性别,诊治记录,主管医生,病房号)
(3)每个关系模式的候选码如(2)所示。