高级数据库技术思考题(应用题及参考答案)

更新时间:2023-11-03 15:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SN,CNO, G)(CNO为课程号,G为成绩),试用SQL语言完成以下各题: (1)创建学生表、学生选修课程表。

(2)建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序; (3)从视图V-SSC上查询平均成绩在90分以上的SN、CN和G。 参考答案: (1)

(2)CREATE SQL VIEW V-SSC(SNO,SN,CNO,CN,G)

AS SELECT S.SNO,SSN,CNO,SC.CN,SC.G FROM S,SC

WHERE S.SNO=SC.SNO ORDER BY CNO

(3)SELECT SN,CN,G

FROM V-SSC GROUP BY SNO HAVING AVG(G)>90

2. 已知学生表S和学生选课表SC。其关系模式如下:

S(SNO,SN,SD,PROV) SC(SNO,CN,GR)

其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。 试用SQL语言实现下列操作:

(1)创建学生表S和学生选课表SC。

(2)查询“信息系”的学生来自哪些省区。

(3)按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。 参考答案: (1)

(2)SELECT DISTINCT PROV

FROM S

WHERE SD=\信息系\

(3)SELECT SN,GR

FROM S,SC

WHERE SD=\英语系\计算机\.SNO=SC.SNO ORDER BY GR DESCZ

3. 某保险公司关于汽车保险涉及以下查询和登录:

·查询投保人:输入保险号,输出投保人姓名、投保的汽车、型号; ·事故登录:登录事故编号、出事汽车牌照、车主、赔偿金、稽查人。 根据上述用户需求,要求作出: (1)实体联系模型(E-R图)。 (2)从E-R图导出关系模型。

(3)用SQL语言创建用(2)中的关系模型。

参考答案:

1)查询投保人数据流图,如图4-l所示。

(3)关系模型

车主(保险号,姓名,地址)

汽车(牌照,车型,保险金,保险号)

事故(编号,牌照,日期,驾驶员,赔偿金,稽查)

4.试各举三例说明两个实体型之间具有的一对一联系,一对多联系,多对多联系。

5.设有如图3.2所示的三个关系,并假定这三个关系框架组成的数据模型就是用户子模式。其中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(品数量)。试用SQL语言写出下列查询,并给出执行结果:

(1)找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。 (2)找出供应书包的商店名。

(3)找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。

参考答案:

1、SELECT A#,ANAME FROM A WHERE WQTY<=100 OR CITY=\长沙\2、SELECT A.ANAME FROM A,B,AB WHERE A.A#=AB.A# AND B.B#=AB.B# AND B.BNAME=\书包\

3、SELECT A.ANAME,A.CITY FROM A,B WHERE A.A#=AB.A# AND AB.B# IN(SELECT AB.B# FROM AB WHERE A#=\)

6.设有如图2.12所示的关系R,S和T,计算: (1)R1=R∪S (2)R2=R-S (3)R3=RT (4)R4=RT

A<C

(5)R5=∏A(R)

(6)R6=σA=C(R×T)

参考答案:

本题各小题的结果如图2.13所示。

7.设有如图2.8所示的关系R和S,计算: (1)R1=R-S (2)R2=RUS (3)R3=R ∩ S (4)R4=R×S

参考答案:

本题各小题的结果如图2.9所示。

8.要建立关于系、学生、班级、研究会诸信息的一个关系数据库。规定:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一个宿舍区。每个学生可参加若干研究会,每个研究会有若干学生。

描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。 描述班级的属性有:班号、专业名、系名、人数、入校年份。 描述系的属性有:系号、系名、系办公室地点、人数。 描述研究会的属性有:研究会名、成立年份,地点、人数。 学生参加某研究会,有一个入会年份。 要求作出:

(1)实体联系模型(E-R图)。 (2)从E-R图导出关系模式。

(3)用SQL语言创建用(2)中的关系模式。

参考答案: (1)学生关系

学生(学号、姓名、出生年月、系名、班号、宿舍区) 候选码:学号。

外部码:系名、班号。 最小依赖集:

学号->姓名, 学号->出生年月, 学号->班号, 系名->宿舍区, 班号->系名。 存在传递函数依赖:

学号->系名->宿舍区,故:学号->宿舍区(传递依赖); 班号->系名->宿舍区,故:班号->宿舍区(传递依赖); 学号->班号->系名,故:学号->系名(传递依赖)。 (2)班级关系

班(班号、专业名、系名、人数、入校年月) 候选码:班号。 外部码:系名。 最小依赖集:

班号->专业名,班号->人数, 班号->入校年月,专业名->系名。 存在传递函数依赖:

班号->专业名->系名,故:班号->系名(传递依赖)。 (3)系关系

系(系号、系名、办公室地点、人数) 侯选码:系号,系名。 无外部码。 最小依赖集:

系号<-->系名,系号->办公室地点,

系号->人数,系名->办公室地点,系名->人数。 (4)研究会关系

研究会(研究会名,成立年份,地点,人数) 候选码:研究会名。

无外部码 最小依赖集:

研究会名->成立年份, 研究会名->地点, 研究会名->人数。

(5) 学生参加研究会关系

学生----研究会(学生号、研究会名,入会年份) 候选码:(学生号,研究会名)。 外部码:学生号,研究会名。 最小依赖集:

(学生号,研究会名)->(f)入会年份,是完全函数依赖。 以上各关系无全码存在。

9. 写出完成下列操作的SQL命令: 已知关系S、SC、C的关系模式为: S(S#,SN,SA,SEX,SD) SC(C#,S#,G) C(C#,CN,PC#)

其中:S#为学号,SN为学生名,SA为年龄,SEX为性别,SD为系别,C#为课程号,G为成绩,CN为课程名称,PC#先行课程号

(1)求选修了先行课号为‘C2’的课程的学生的名字,系别及人数

(2)求选修了‘C1’课程且成绩(G)在90分以上的学生的学号,姓名 (3)求至少被N人以上的学生选修的课程

(4)求数学系学生选修‘C1’课程的平均成绩(数学系:MA) (5)求在下列各系的学生:MA(数学系),CS(计算机科学系)

参考答案:

(1).SELECT S.SN,S.SD,count(S.*) FROM S,SC,C

WHELE S.S#=SC.S# AND SC.C#=C.C# AND C.PC#=‘C2’; (2). SELECT S.S#,S.SN FROM S,SC,C

WHELE S.S#=SC.S# AND SC.G>90 AND (SC.C#=C.C# AND C.C#=‘C2’); (3). SELECT SC.C# FROM S,SC

WHELE S.S#=SC.S# AND count(DISTINCT S#)>=20; (4). SELECT SC.AVG(G) FROM S,SC

WHELE S.S#=SC.S# AND S.SD=‘MA’ AND SC.C#=‘C1’; (5). SELECT * FROM S

WHELE SD=‘MA’ OR SD=‘CS’;

10.在著书工作中,一位作者可以编写多本图书,一本书也可由多位作者编写。设作者的属性有:作者号,姓名,单位,电话;书的属性有:书号,书名,出版社,日期。试完成以下两题: (1)根据这段话的意思,画出其E-R图。

(2)将这个E-R图转换为关系模式,并给出各关系模式中的主关键字。 (3)用SQL语言创建用(2)中的关系模式。

参考答案:

(1)E-R图如图8.4所示。

(2)转换的关系模型为:

作者(作者号,姓名,单位,电话),关键字是“作者号”。 书(书号,书名,出版社,日期),关键字是“书号”。

编写(作者号,书号),关键字是“作者号”,“书号”。

本文来源:https://www.bwwdw.com/article/n4o2.html

Top