数据库原理与应用教程习题答案

习题1

选择题:

10.ABCD 11.A 12.AB 13.A 14.A 15.B 16.A 17.D 18.D 19.C 20.C 21.C 22.B 23.D 24.C 25.D 26.D

习题2

选择题:

7.A 8.D 9.D 10.C 11.C 12.B 13.C 14.C 15.D 16.C 17.B 18.C 19.A

20.

⑴π姓名,学号(σ课程名='数据库'(学生?选课?课程))

⑵π姓名,学号(σ课程名='数据库'(学生?选课?课程))∩π姓名,学号(σ

(学生?选课?课程))

课程名='数据结构'

⑶π学号(学生)-π学号(σ课程名='数据库'(选课?课程))

⑷π学号(π学号,课程号(选课)?π先行课(σ课程名='数据库'(课程)))

⑸π课程号,课程名(课程)-π课程号,课程名(σ任课老师='LIU'(课程))

⑹π课程名,任课老师(σ学号='S3'(课程?选课))

⑺π姓名(σ任课老师='LIU'(学生?选课?课程))

⑻π课程号(课程)-π课程号(σ姓名='WANG'(学生?选课))

(9)π学号(σ1=4∧2≠5(选课?选课))

(10)π课程号,课程名(课程)?(π学号,课程号(选课)÷π学号(学生))21.(1)πSNO(σJNO=‘J1’(SPJ))

(2)πSNO(σJNO=‘J1’∧PNO=‘P1’(SPJ))

(3)πSNO(σJNO=‘J1’∧COLOR=‘RED’(SPJ?P))

(4)πJNO(J)-πJNO(σCITY=‘天津’∧COLOR=‘RED’(S?SPJ?P))(5)πJNO,PNO(SPJ)÷πPNO(σSNO=‘S1’(SPJ))

22.

R∪S R∩S R×S

习题3

选择题:

2.A 3.B 4.C 5.B 6.C 7.A 8.D 9.A 10.C 11.B 12.C 13.C 14.D 15.C

填空题:

16.面向过程

17.数据定义、数据操纵、数据查询、数据控制

18.交互式、嵌入式

19.WHERE、GROUP BY 、HA VING

20.ORDER BY、ASC、DESC

21.DISTINCT

22.LIKE、%、-

23.右连接,左连接

24.无关子查询,相关子查询

25.行列子集视图

26.GRANT,REVOKE

27.EXEC SQL,END-EXEC

28.定义游标,打开游标,推进游标,关闭游标

29.共享变量,EXEC SQL BEGIN DECLARE SECTION

30.第一个元组前

操作题:

31.

(1)SELECT 学号,姓名 FROM 学生WHERE 所在系=‘计算机’

(2)SELECT 学号,课程号 FROM 选课WHERE 成绩<60

(3)SELECT 姓名,年龄,所在系 FROM 学生WHERE 年龄 BETWEEN 17 AND 25 ORDER BY 年龄 DESC

(4)SELECT DISTINCT 学号FROM 选课

(5)SELECT *FROM 学生 WHERE 姓名 LIKE ‘—中%’

(6)SELECT 所在系,COUNT(*) AS 总人数 FROM 学生 GROUP BY 所在系

(7)SELECT AVG(成绩)AS 平均分,MAX(成绩)AS 最高分,MIN(成绩)AS 最低分FROM 选课 WHERE 课程号=’C3’

(8)SELECT 课程号,AVG(成绩)AS 平均分 FROM 选课 GROUP BY 课程号 HAVING AVG (成绩)>=85

(9)SELECT 学号,课程号 FROM 选课 WHERE 课程号 IN (SELECT 课程号 FROM 课程WHEER 教师=‘张林’)

(10) SELECT 学号 FROM 选课 WHERE 课程号 IN (SELECT 课程号 FROM 课程WHERE 课程名= ‘C语言’ OR 课程名 = ‘数据库’)

(11) SELECT 课程.课程号,课程名FROM 学生,选课,课程WHERE 学生.学号=选课.学号 AND 课程.课程号=选修.课程号)

(12)SELECT 学号 FROM 选课 WHERE 课程号 = ‘C2’AND 学号IN

( SELECT 学号 FROM 选课 WHERE 课程号 = ‘C3’)

(13)SELECT 学号,姓名FROM 学生WHERE NOT EXISTS

(SELECT *FROM 课程WHERE NOT EXISTS

(SELECT *FROM 选课WHERE 学生.学号=选课.学号AND 选课.课程号=课程.课程号))

(14)SELECT 学号FROM 学生WHERE NOT EXISTS

(SELECT *FROM 选课1 WHERE 选课1.学号=‘1042’ AND NOT EXISTS

(SELECT *FROM 选课2 WHERE 学生.学号=选课

2.学号AND 选课2.学号=选课1.学号))

38.程序设计题

(1)CREATE TABLE 商品

(商品号 CHAR(4) PRIMARY KEY,

商品名 VARCHAR(20) NOT NULL,

单价 DECIMAL(6,2),

型号 CHAR(10),

制造商 VARCHAR(30))

CREATE TABLE 商场

(商场号 CHAR(6) PRIMARY KEY,

商场名 VARCHAR(20) NOT NULL,

地址 VARCHAR(40),

经理 CHAR(8))

CREATE TABLE 销售

(商品号 CHAR(4),

商场号 CHAR(6),

销售量 INT

PRIMARY KEY(商品号,商场号),

FOREIGN KEY(商品号) REFERENCE 商品(商品号),

FOREIGN KEY(商场号) REFERENCE 商场(商场号))

(2)ALTER TALBE 商品 ADD 数量 CHAR(3)

(3)ALTER TALBE 商品 DROP 数量

(4)CREATE UNIQUE INDEX SNAMEX ON 商场(商场名)

(5)CREATE INDEX SNOGNOX ON 销售(商场号,商品号)

(6)DROP INDEX SNAMEX

DROP INDEX SNOGNOX

39.(1)INSERT INTO 商品V ALUES(‘G10’,‘空调’,NULL,‘KC1500’,‘美的’)(2)INSERT INTO 美的(商品名,型号,单价)

SELECT 商品名,商品号,单价FROM 商品WHERE 制造商=‘美的’CREATE VIEW 美的(型号,商品编号)AS

SELECT 型号,商品号FROM 商品WHERE 制造商=‘美的’(3)UPDATE商品SET单价=单价*0.95 WHERE 制造商=‘美的’AND 商品名=‘电话机’

(4)UPDATE商品SET单价=单价*0.9 WHERE 商品号=(SELECT 商品号FROM 销售WHERE 销售量<500)AND 商品名=‘电话机’(5)DELETE FROM商品WHERE 型号=‘TV18A’

(6)CREATE VIEW VIEW1AS

SELECT商场名,商品名,型号,单价,销售量

FROM商品,销售,商场

WHERE商品.商品号=销售.商品号AND商场.商场号=销售.商场号

40.(1)CREATE TABLE 职工

( 职工号CHAR(4) NOT NULL,

姓名CHAR(8) NOT NULL,

年龄SMALLINT,

性别CHAR(1),

PRIMARY KEY(职工号));

CREATE TABLE 社会团体

(编号 CHAR(6)PRIMARY KEY,

名称 CHAR(10) NOT NULL,

负责人 CHAR(8),

活动地点 VARCHAR(30))

CREATE TABLE 参加

(职工号CHAR(4),

编号 CHAR(6),

参加日期 DATE,

PRIMARY KEY(职工号,编号),

FOREIGN KEY(职工号) REFERENCE 职工(职工号),

FOREIGN KEY(编号) REFERENCE 社会团体(编号))

(2)CREATE VIEW 社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) AS

SELECT 社会团体.编号,名称,职工.职工号,姓名,性别 FROM 职工,社会团体,参加 WHERE 职工.职工号 =参加.职工号 AND 社会团体.编号=参加.编号

CREATE VIEW 参加人情况(职工号,姓名,社团编号,社团名称,参加日期) AS

SELECT职工.职工号,姓名,社团编号,社团名称,参加日期 FROM 职工,社会团体,参加 WHERE 职工.职工号 =参加.职工号 AND 社会团体.编号=参加.编号(3)SELECT 职工号,姓名 FROM 职工,社会团体,参加 WHERE 职工.职工号 =参加.职工号 AND 社会团体.编号=参加.编号 AND (名称=‘唱歌队’ OR 名称=‘篮球队’)(4)SELECT * FROM 职工 WHERE NOT EXISTS (SELECT * FROM 社会团体 WHERE EXISTS (SELECT * FROM 参加 WHERE职工.职工号 =参加.职工号 AND 社会团体.编号=参加.

编号))

(5)SELECT * FROM 职工 WHERE NOT EXISTS (SELECT * FROM 社会团体 WHERE NOT EXISTS

(SELECT * FROM 参加 WHERE职工.职工号 =参加.职工号 AND 社会团体.编号=参加.

编号))

(6)SELECT 职工号 FROM 职工 WHERE NOT EXISTS (SELECT * FROM 参加1 WHERE 职工号=‘1001’ AND NOT EXISTS

(SELECT * FROM 参加2 WHERE职工.职工号 =参加2.职工号 AND 参加 1.学号=参加2.学号))

(7)SELECT 编号,COUNT(*) AS 人数 FROM 参加 GROUP BY 参加

(8)SELECT 社团名称,COUNT(*) AS 人数 FROM 参加人情况 GROUP BY 社团名称HAVING COUNT(*)>=ANY ALL (SELECT COUNT(*)FROM 参加人情况 GROUP BY 社团名称)

(9)SELECT 名称,负责人 FROM 社会团体 WHERE 编号 IN(SELECT 编号 FROM 参加 GROUP BY 编号 HAVING COUNT(*))100)

(10)GRANT SELECT,INSERT,DELETE ON TABLE社会团体,参加 TO 李平 WITH GRANT OPTION

习题4

6.B→A,C←→D

7.DC

因为:D→A,D→B,但D不能决定C,所以DC为候选码

8.(1)(SNO,CNO)→GRADE,SNO→TNAME,TNAME→TADDR

候选码为(SNO,CNO)

(2)R11(SNO,CNO,GRADE),R12(SNO,TNAME,TADDR)

去掉非主属性对码的部分函数依赖,则关系模式为2NF

(3)R21(SNO,CNO,GRADE),R22(SNO,TNAME),R23(TNAME,TADDR)

去掉非主属性对码传递函数依赖,则关系模式为3NF

9.(AB)F+=ABCDE

10.Fmin={A→B,A→C,B→C}

11.关系模式及函数依赖、主键、外键

学生(学号,姓名,出生年月,系名,班级号,宿舍区)

F1={学号→姓名,学号→出生年月,学号→系名,学号→班级号,班级号→宿舍区} 主键为学号

存在传递函数依赖

系(系号,系名,系办公地点,人数)

F2={系号→系名,系号→系办公地点,系号→人数}

主键为系号

班级(班级号,专业名,系名,人数,入校年份)

F3={班级号→专业名,班级号→系名,班级号→人数,班级号→入校年份}

主键为班级号

社团(社团名,成立年份,地点,人数,学号,入团年份)

F4={社团名→成立年份,社团名→地点,社团名→人数,(社团名,学号) →入团年份} 主健为(社团名,学号),存在部分函数依赖,外键为学号

12.(1)

AB

ACD

BCD

(2)修改:

AB

ACD

BCD

没有一行出现全A,可见该分解不是无损分解

13.(1)在AB分解上的投影F1={A→B}

在AC分解上的无投影F2={A→C}

在AD分解上的投影F3={A→D}

(2)原始表

AB

AC

AD

修改:

AB AC AD

不是无损分解 14.(1)Fmin={A →E,,BCD →A,AB →G ,A →C} (2)该关系模式的候选码:BCD ,ABD (3)此关系模式最高属于1NF (4)分解为3NF 为: R1(ABCDG ),R2(AE ) 15.(1)关系模式中存在的函数依赖

F={s →n ,s →b ,cs →cn ,cs →cb ,as →am ,scs →→as} (2)R1(s ,n ,b ,as ,am ),R2(s ,cs ,cb ) 选择题:

16.A 17.D 18.B 19.D 20.D 21.D 22.A 23

.D 24.B

习题5 选择题:

24.B 25.C 26.B 27.D 28.D 29.D 30.C 31.A 32.D 33.D

习题6 17.

出版社(出版社名,地址,电话)

作者(作者,单位,电话)

出版(出版社名,书号,作者,书名,出版时间)18.

图书(图书号,书名,作者,出版社)

读者(读者号,姓名,地址,年龄,单位)

借阅(图书号,读者号,借出日期,应还日期)19.

学生(学号,姓名,年龄,性别,系号)

教师(教师号,教师名,职称,系号)

系(系号,系名,系主任)

课程(课程号,课程名,学分,教师号)

项目(项目号,名称,负责人)

选修(学号,课程号,成绩)

参加(教师号,项目号,排名)

20.

产品(产品编号,品名,价格)

客户(客户名称,客户电话)

订购(订单号,客户名称,产品编号,订货日期,订购数量)

21.

工程(工程号,工程名称,地址)

供应商(供应商号,供应商名,电话)

水泥(水泥型号)

供应(工程号,水泥型号,供应商号,单价,数量,)

习题7

选择题:

12.A 13.D 14.A 15.B 16.A 17.A 18.B 19.C 20.A 21.A 22.D 23.B 24.B

填空题:

25.权限设置,混合

26.存储过程

27.日志

28.报告有关数据库对象(sysobjects 表中列出的任何对象)、用户定义数据类型或Microsoft SQL Server所提供的数据类型的信息。

29.实体完整性,域完整性,参照完整性,用户定义的完整性

30.聚簇索引,非聚簇索引

31.完全备份,差异备份,事务日志,文件和文件组

32.登录权限,数据库用户权限,操作权限

33.用户定义的存储过程

习题8

选择题:

3.C 4.C 5.A 6.A 7.C 8.B 9.B 10.D 11.A 12.B 13.A 14.B 15.A 16.D 17.D

填空题:

18.需求分析,系统设计

19.用户信息,记录,退出

20.单层结构,C/S结构,B/S结构,四层结构

21.数据库的名称,ODBC驱动,地址

22.文本,客户端,持久地

相关文档
最新文档