文档库 最新最全的文档下载
当前位置:文档库 › 2008-2009中南大学数据库期末试卷及答案

2008-2009中南大学数据库期末试卷及答案

中南大学数据库考试试卷2008 -- 2009 学年 2 学期

一、填空题(本大题共5小题,每小题2分,共10分)

1. 数据库的三级模式结构中,全局数据视图的描述称为___________。

2. 在数据库系统中管理数据的软件称为___________。

3. 当用户建立视图时,在数据字典中存储的是视图的___________,而不是数据。

4. 数据独立性是指_____________ 和_____________ 独立性。

5. 数据模型通常由________________ 、 ________________ 和完整性约束三部分组成。

二、选择题(本大题共5小题,每小题 2 分,共 10 分)

1. 关于冗余数据的叙述中,不正确的是()。

A.冗余的存在容易破坏数据库的完整性

B.冗余的存在给数据库的维护增加困难

C.不应该在数据库中存储任何冗余数据

D.冗余数据是指可由基本数据导出的数据

2. 最终用户使用的数据视图称为()

A.内模式B.外模式

C.概念模式D.存储模式

3. 数据库设计中,用于反映企业信息需求的是()

A.ER模型B.关系模型

C.层次模型D.网状模型

4.数据的存储结构与数据逻辑结构之间的独立性称为数据的()

A.结构独立性B.物理独立性

C.逻辑独立性D.分布独立性

5. SQL语言具有的功能是()

A.关系规范化,数据操纵,数据控制

B.数据定义,数据操纵,数据控制

C.数据定义,关系规范化,数据控制

D.数据定义,关系规范化,数据操纵

三、简答题(本大题共3小题,每小题5分,共15分)

1. 为什么视图被称为虚表?基本表与视图的区别是什么?

2. 在关系数据库中能完全消除数据冗余吗?

3. 简述在SQL中,DELETE语句与DROP TABLE的区别。

四、求解下列问题(本大题共5小题,第1、2、3小题各15分,第4、5小题各10分,共65分)

1. 对于教学数据库的三个基本表

学生 S(S#,SNAME,AGE,SEX)

学习 S C(S#,C#,GRADE)

课程 C(C#,CNAME,TEAC HER)

(1)试用关系代数表达式和SQL语句表示:检索WANG同学不学的课程号。

(2)试用SQL语句完成:在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表STUDENT(S#,SNAME,SEX)。(3)试用SQL语句完成:检索选修课程包含LIU老师所授课的学生学号。

(4)有如下关系代数表达式:

πc#,CNAME (C(πS#,C#(SC))÷πS#(S))))

请指出其汉语含义。

2. 东方货运公司数据库的样本数据如下。

表名称:卡车

车号货运站编号类型总行程购入日期

1001 501 1 59002.7 11/06/2000

1002 502 2 54523.8 11/08/2000

1003 501 2 32116.6 09/29/2001

1004 502 2 3256.9 01/14/2002

表名称:货运站

货运站编号地址电话经理

010—67301234 何东海 501 北京市东城区花市大街

111号

502 北京市海淀花园路101号010—64248892 吴明君

表名称:型号

类型汽车型号

1 DJS130

2 DLS121

根据数据库的表结构和内容,求:

(1)指出每个表的主码和外码。如果没有外码,则写“无”。

(2)卡车表存在实体完整性和参照完整性吗?请详细说明。

(3)具体说明卡车表与运货站表之间存在着什么关系?

(4)卡车表中包含多少个实体?

3. 数据模型分析,关系模型R(U,F)

U=ABCDEG,F={AD→E,AC→E,CB→G,BCD→AG,BD→A,AB→G,A→C}

(1)求此模型的最小函数依赖集。

(2)求出关系模式的候选码。

(3)此关系模型最高属于哪级范式。

(4)将此模型按照模式分解的要求分解为3NF。

4. 在关系模式R(U,F)中,U=ABCDEF={A→C,AC→B,B→D,C→E,EC→B} 计算(EC)+。

5. 设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。

设车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着“使用”联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。

1)试画出E-R图,并在图上注明属性、联系类型;

2)将该E-R图转换为其对应的关系模型表示的数据库逻辑结构;

3)指出转换结果中每个关系模式的候选码。

参考答案

一、填空题

1.M端实体关键字与N端实体关键字组合2.数据库理论3.可重用性(或共享性)4.层次模型5.数据库恢复6.数据操作7.关系模型8.外码(外来键)9.概念设计10.实体完整性

二、单项选择题

1. D

2. C

3. B

4. C

5. B

三、1.解:关系代数表达式:πS#,SNAME(σGNAME='冰箱'(SHOP?SALE?GOODS))

SELECT语句如下:

SELECT A.S#,SNAME

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱';

2.解:DELETE FROM SALE

WHERE S# IN(SELECT S#

FROM SHOP

WHERE SNAME='第一商店')

AND G# IN(SELECT G#

FROM GOODS

WHERE PRICE>1000);

3.CREATE VIEW SHOP_BICY

AS

SELECT SNAME

FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='自行车';4.SELECT C.G#,GNAME,SUM(QUANTITY) TOTAL_QUANTITY,

PRICE*SUM(QUANTITY) TOTAL_VALUE FROM SHOP A,SALE B,GOODS C

WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='河西'

GROUP BY C.G#,GNAME;

四、解:1.ER图如下图所示。

2.转换成的关系模型应具有4个关系模式:

教师(工号,姓名,职称)

学生(学号,姓名,性别,年龄,教师工号) 课程(课程号,课程名称,教师工号) 选课(学号,课程号,成绩)

3.每个关系模式中带有下划线的即为其对应的候选码。 五、从R 中选取R 的第2列和S 的第1列相同的元组 π1,2(σ[2]=[3](R ×S ))

六、反证法:若R 不是2NF ,必存在码X 及非主属性A ,使得X P ??

→A 。由于X P

??→A ,必存在X 的真子集Y ,使得Y →A 且A ?Y 。又X 是码,由码的定义得知Y X 且X →Y 。综上所述得结论:R 中存在码X ,属性组Y 及非主属性A (A ?Y )使得X →Y ,Y X ,Y →A 同时成立。这与R 是3NF 的题设矛盾,得证。 七、解: 1.R 的基本FD 有三个:

(职工名,项目名)→工资

项目名 →部门名 部门名 →部门经理

候选码为(职工名,项目名)。 2.根据1),R 中存在下列两个FD :

(职工名,项目名)→(部门名,部门经理)

项目名 →(部门名,部门经理)

R 应分解成两个模式: R 1(项目名,部门名,部门经理)

R2(职工名,项目名,工资)

R1和R2都是2NF 模式。 3.R2已是3NF 模式。

在R1中,由于存在两个FD :

项目名→部门名 部门名→部门经理

即存在一个传递依赖。

对R1应分解成两个模式:R11(项目名,部门名),R12(部门名,部门经理)。因此,

R分解成3NF模式集时,ρ={ R11,R12,R2 }。

八、答:在生成的关系模式的关系中出现冗余和异常现象。

例如部门与职工之间联系是1:N,若在部门模式中加入职工信息,那么部门模式将是如下形式:

DEPT(D#,DNAME,E#)

如果一个部门有20个职工,那么关系中就要出现20个元组,即该部门的部门名(DNAME)就要重复20次,这就是冗余。

九、计算:1.(BCD)F+:

X(0)=BCD; X(1)=BCD∪I=BCDI; X(2)=BCDI∪E=BCDEI

X(3)= X(2),算法结束,故:(BCD)F+= BCDEI;

2.(ABC)F+:

X(0)=ABC;X(1)=ABC∪DE=ABCDE;X(2)=ABCDE∪I=ABCDEI=U,算法结束故(ABC)F+=ABCDEI

参考答案:

一、填空题(本大题共5小题,每小题2分,共10分)

1、概念模式(或模式);

2、DBMS;

3、定义;

4、物理,逻辑;

5、数据结构,数据操作

二、选择题(本大题共5小题,每小题 2 分,共 10 分)

CBAB B

三、简答题(本大题共3小题,每小题5分,共15分)

1. 为什么视图被称为虚表?基本表与视图的区别是什么?

因为数据库中只存储有关视图的定义而不存储视图所对应的数据,这些数据仍存放在导出视图的基本表中,所以视图被称为虚表。基本表是实际独立存放在数据库中的表,是实表。

2. 在关系数据库中能完全消除数据冗余吗?

不能。要实现关系数据库中表与表之间的联系,必须通过公共属性来完成,这些公共属性可能是一个表的主键,也可能是另一个表的外键,有相应的参照完整性规则来保证表之间的联系。所以关系数据库中存在数据冗余,但能控制数据的冗余度。

3. 简述在SQL中,DELETE语句与DROP TABLE的区别。

DELETE的作用是删除表中的元组,表的模式依然存在,而DROP TABLE 是将表的结构和元组全部删除,表被删除(DROP)后就不再存在了。

四、求解下列问题

1.(1)πC#(C)-πC#(σSNAME='WANG'S SC) 或者

πC#(SC)-πC#(σSNAME='WANG'S SC)(全部课程号减去WANG同学所学的课程号) SELECT C#

FROM C

WHERE C# NOT IN

(SELECT C#

FROM SC

WHERE S# IN

SELECT S#

FROM S

WHERE SNAME=‘WANG’)

(2)INSERT INTO STUDENT(S#,SNAME,SEX)

SELECT S#,SNAME,SEX

FROM S WHERE NOT EXISTS

(SELECT * FROM SC WHERE

GRADE<80 AND S.S#=SC.S#)

(3)SELECT DISTINCT S#

FROM SC

WHERE C# IN

(SELECT C#

FROM C

WHERE TEACHER='LIU'))

(4)汉语含义:检索全部学生都选修的课程的课程号与课程名。

2.(1)

表名称主码外码

卡车车号货运站编号,类型

货运站货运站编号无

型号类型无

(2)卡车表中存在实体完整性和参照完整性。

实体完整性:在主码车号的这列中不存在空值;

参照完整性:外码“货运站编号”这列中的值都是货运站表中“货运站编号”这列中的值,外码“类型”这列中的值都是型号表中“型号”这列中的值。

(3)货运站表和卡车表之间存在着一对多的关系,即每一个货运站可以有多辆车。如,样本数据中货运站501有两辆车:车号为1001和1003;货运站502有两辆车:车号为1002和1004。

(4)卡车表中包括4个实体,即表中每个元组(行)对应一个实体,每个实体就是一辆车。3. 依照题意,得出:

(1)最小7依赖集Fm={A→E,BC→G,BD→A,A→C}

分解函数依赖的右部,F={AD→E,AC→E,BC→G,BCD→A,BCD→G,BD→A,AB→G,A→C}

消去左边的冗余属性:F={A→E,A→E,BC→G,BD→A,BC→G,BD→A,AB→G,A→C}

消去冗余的函数依赖:Fm={A→E,BC→G,BD→A,A→C}

也可以为:Fm={A→E,AB→G,BD→A,A→C}

(2)候选码:BD

(3)R中每一个非主属性完全函数依赖于R的候选键BD;但C,G都传递依赖于R的候选

键BD,也就是说,R满足2NF的要求,而不满足3NF的要求。此关系模型最高属于2NF。(4)

R2:U2=BCG F2={BC→G}

R3:U3=ACE F3={A→C,A→E}

4. 计算过程如下:

R1:U1=ABD F1={BD→A} 第一次:(1) x(0)=φ,x(1)=EC (2) 由于X(0)≠AB,置X(0)=EC; (3) 检查函数依赖,置X(1)=EC ∪B=ECB

第二次: 置X(0)=ECB , 检查函数依赖,置X(1)=ECB ∪D=ECBD 第三次: 置X(0)=ECBD , 检查函数依赖,X(1)=ECBD

第四次:x(0)=x(1),输出x(1)= (EC)+

=ECBD 5. 解:1)E-R 图如下图所示

2)转换成的关系模型应具有4个关系模式:

车队(车队号,车队名)

车辆(牌照号,厂家,生产日期,车队号) 司机(司机编号,姓名,电话,车队号,聘期) 使用(司机编号,车辆号,使用日期,公里数)

3) 见上题中的下划线

N 1 公里数 拥有 使用日期 车辆 牌照号 厂家 出厂日期 N 车队号 车队

车队名 聘用 聘期

司机 司机编号 姓名 电话

1 使用 M N

相关文档
相关文档 最新文档