数据库原理试题05-06A卷答案

更新时间:2024-04-08 14:31:01 阅读量: 综合文库 文档下载

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

2005—2006学年第一学期期末考试试卷(A卷)

一、单项选择题:在每小题的备选答案中选出一个正确答案,并将正确答案的代码填在题干上的括号内。(每小题 1分,本大题共 10分)

1.B 2.C 3.D 4.D 5.D 6.D 7.B 8.A 9.B 10.A 二、填空题:(每空1分,本大题共10分) 1.数据库管理系统DBMS 2.完整性约束 3.选择运算 4.DISTINCT

5.获得权限的用户还能够获得传递权限,把获得的权限转授给其他用户 6.1NF 7.伪传递规则 8.BCNF?3NF 9.隔离性 10.介质故障

三、判断改正题:判断下列各题是否正确,正确的划√,错误的划×,并说明理由。(每小题2分,本大题共10分) 1.错误(1分)

实体是指客观存在可以相互区别的事物,既可以是具体的对象,也可以是抽象的事件。故“一个男生”和“一次借书”均为一个实体。(1分) 2.错误(1分)

函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。(1分) 3.错误(1分)

非主属性是指不包含在任何候选码中的属性。(1分) 4.正确(1分)

因为如果不存在非平凡的非函数的多值依赖,必为4NF,则也为BCNF,与假设矛盾。(1分) 5.错误(1分)

两段封锁法仍有可能发生死锁,而且可能增多。(1分) 四、问答题(每小题10分,本大题共40分)

1.设有两个关系R (A,B,C) 和S (C,D,E),试用SQL查询语句表达下列关系代数表达式πA,E (σB = D (R∞S))。 答案要点:

SELECT A,E --------3分 FROM R,S --------3分

WHERE B = D AND R.C = S.C --------4分

2. 设有关系模式R (A,B,C,D),F是R上成立的FD集,F = {D→A,D→B},试写出关系模式

R的候选键,并说明理由。 答案要点:

① R的候选键是CD --------4分

1

② 理由:从已知的F,可导出D→ABD,--------2分 再根据增广律,可得出CD→ABCD, --------2分 即CD值可决定全部属性值。--------2分

3.两个函数信赖集F和G等价的充分必要条件是什么? 答案要点:

F中每个FD在G+ 中,--------5分 并且G中每个FD也在F+ 中。--------5分

4.设有一教学管理数据库,其属性为:学号S#,课程号C#,成绩G,任课教师TN,教师所在系D。这些数据有下列语义:

学号和课程号分别与其代表的学生和课程一一对应; 一个学生所修的每门课程都有一个成绩;

每门课程只有一位任课教师,但每位教师可以有多门课程; 教师中没有重名,每个教师只属于一个系 (1) (2)

试根据上述语义确定函数依赖集;

如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明在进行

增、删操作时的异常现象。 (3) 分解为3NF 答案要点:

(1)F={(S#,C#)→G,C#→TN,TN→D } --------3分 (2)关系模式为1NF,因为该关系模式的候选码为(S#,C#),则非主属性有G,TN和D。有∵F中有C#→TN,∴存在非主属性TN对候选码(S#,C#)的部分依赖,--------2分 P 即(S#,C#)→TN

若新增一门课程而暂时还没有学生选修时,则因缺少关键字S#值而不断进行插入操作。若某个教师调离学校要删除其有关信息时,会将不该删除的课程(C#)信息删除。--------2分 (3)∵F= Fmin={(S#,C#)→G,C#→TN,TN→D }

∴ρ= {(S#,C#,G),(C#,TN),(TN,D)}即为所求的3NF分解。--------3分 五、综合题:(每小题30分,本大题共30分)

2006年6月,举世瞩目的第18届世界杯在德国举行,某网站为了方便球迷查询,在自己的网站上设立了世界杯信息查询系统。该系统的一部分要求为: 一名球员可以参加多场比赛,每场比赛有多名球员参加。 答案要点:

(1)请你为该系统的这一部分设计一个ER模型,画出ER图。 要求:

“球员”的属性有:姓名,代表国,号码,年龄,位置

“比赛”的属性有:比赛编号,比赛甲方,比赛乙方,比赛类型 在联系中反映出球员参加比赛的出场时间,进球数 代表国 进球数 出场时间 2 姓名 … 比赛编号 … 比赛类型

--------4分(球员实体、比赛实体、参加联系、出场时间和进球数联系属性各一分)

(2)请你将以下SQL语句补充完整(注明各自的主码,外码,并且球员的号码在1号至23号之间,位置有守门员,后卫,中场,前锋,比赛类型有小组赛和淘汰赛两种) Create table player --球员表 {

name char(20), --姓名 nation char(20), --代表国

number int check (number between 1 to 23 ) , --号码--------1分 age int, --年龄

position char(10) check position in (‘守门员’,’后卫’,’中场’,’前锋’ ) --位置--------1分 primary key (nation,number), –定义主码--------1分 }

Create table match --比赛表 {

matchid int primary key, --比赛编号(主码)--------1分 match_a char(20), --比赛甲方 match_b char(20), --比赛乙方

matchtype char(10) check matchtype in (‘小组赛’,’淘汰赛’ ) –比赛类型--------1分 }

Create table join --参加表 {

nation char(20), --代表国 number int , --号码 matchid int, --比赛编号 time int, --出场时间 goal int --进球数

primary key (nation,number,matchtype) –定义主码--------1分

foreign key (nation,number) reference player (nation,number) –定义外码--------1分 foreign key (matchid) reference match (matchid) –定义外码--------1分 }

(3)使用关系代数表达式以及SQL语句做以下查询

检索至少参加两场世界杯比赛的球员的代表国以及身披号码; 关系代数表达式:

π1,2(δ1=6∧2=7∧3≠8(join×join)) --------2分 SQL语句

Select distinct join1.nation,join2.number--------1分 From join as join1,join as join2--------1分 Where join1.nation=join2.naiton--------1分 And join1.number=join2.number--------1分 And join1.matchid≠join2.matchid--------1分

(4)使用SQL语句补充完成以下检索

统计每位球员的总的出场时间(超过180分钟才统计)要求输出球员姓名,代表国,身披号码,

3

总的出场时间,查询结果按总的出场时间降序排列

Select name,nation,number,sum(time) as alltime--------1分 From player,join--------1分

Group by nation,number--------1分 Having sum(time)>= 180--------1分 Order by alltime desc--------1分

(5)使用SQL语句补充完成以下更新

法国队11号因伤退出世界杯,请作相应的处理 Delete

From join--------1分 Where nation=’法国’ And number=11 Delete

From player--------1分 Where nation=’法国’ And number=11

(6)使用SQL补充定义完成以下视图 建立守门员的视图goalkeeper Create view goalkeeper As

Select name,nation,number,age --------1分 From player

Where position=”守门员” --------1分 (7)使用SQL语句补充完成以下操作

把队球员表的insert权限授予用户Zhang,并允许他将此权限授予其他用户 Grant insert --------1分 on table player

to Zhang with grant option--------1分

4

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

Top