数据库期末考试习题及答案
2003-2004学年第二学期期末考试
2001级《数据库系统概论》试题C
一、选择题(20分,每小题2分):
1.数据库系统与文件系统的主要区别是____。
A .数据库系统复杂,而文件系统简单
B .文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决
C .二文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件
D .文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量
2.同一个关系模型的任意两个元组值____。
A .不能全同 B .可全同
C .必须全同 D .以上都不是
3.自然连接是构成新关系的有效方法。一般情况下,当对关系R 和S 使用自然连接时,要求R 和S 含有一个或多个共有的____。
A .元组 B .行 C .记录 D .属性
4.SQL 语言具有两种使用方式,分别称为交互式SQL 和____。
A .提示式SQL B .多用户SQL
C .嵌入式SQL D .解释式SQL
5.关系规范化中的删除操作异常是指________。
A .不该删除的数据被删除 B .不该插入的数据被插入
C .应该删除的数据未被删除 D .应该插入的数据未被插入
6. 属于BCNF 的关系模式________。
A .已消除了插入、删除异常 B .已消除了插入、删除异常和数据冗余
C .仍然存在插入、删除异常 D .在函数依赖范畴内,已消除了插入和删除的异常
7.从E-R 模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是____。
A .M 端实体的关键字 B .N 端实体的关键字
C .M 端实体关键字与N 端实体关键字组合 D .重新选取其他属性
8.数据库的____是指数据的正确性和相容性。
A .安全性 B .完整性 C .并发控制 D .恢复
9.授权编译系统和合法性检查机制一起组成了____子系统。
A .安全性 B .完整性 C .并发控制 D .恢复
10.设有两个事务T1、T2,其并发操作如图1所示,下列评价正确的是____。 A 该操作不存在问题 B .该操作丢失修改
C .该操作不能重复读 D .该操作读“脏”数据
T1 T2
① 读A=100
A =A*2写回
② 读A=200
③ ROLLBACK
恢复A=100
图1 事务并发操作图
二、填空题(20分,每小空2分):
1.DBMS 的基本工作单位是事务,它是用户定义的一组逻辑一致的程序序列;并发控制的主要方法是①机制。
2.系统在运行过程中,由于某种原因,造成系统停止运行,致使事务在执行过程中以非控制方式终止,这时内存中的信息丢失,而存储在外存上的数据不受影响,这种情况称为②。
3.关系数据库中基于数学上两类运算是③和④。
4
5.1NF ,2NF ,和3NF
6存放视图的⑨。
7
三、简答题(15分,每小题5分):
1.什么是数据库?
2.什么是数据库的数据独立性?
3.叙述等值连接与自然连接的区别和联系。
四、综合题(45分):
1.设有如下实体: (10分)
学生:学号、单位、姓名、性别、年龄、选修课程名
课程:编号、课程名、开课单位、任课教师号
教师:教师号、姓名、性别、职称、讲授课程编号
单位:单位名称、电话、教师号、教师名
上述实体中存在如下联系:
(1) 一个学生可选修多门课程,一门课程可为多个学生选修;
(2) 一个教师可讲授多门课程,一门课程可为多个教师讲授;
(3) 一个单位可有多个教师,一个教师只能属于一个单位。
试完成如下工作:
(1)分别设计学生选课和教师任课两个局部信息的结构E-R 图。 (4分)
(2)将上述设计完成的E-R 图合并成一个全局E-R 图。 (3分)
(3)将该全局E-R 图转换为等价的关系模型表示的数据库逻辑结构。 (3分)
2.设有关系S 、SC 、C ,试用关系代数、元组关系演算表达式和SQL 完成下列操作。(15分,每小题5分)
S(S#,SNAME,AGE,SEX) 例:(001,' 李强',23,’男' )
SC(S#,C#,SCORE) 例:(003,'C1',83)
C(C#,CNAME,TEACHER) 例:('C1',' 数据库原理',' 王华' )
(1)试用关系代数检索选修了“程军”老师所授课程之一的学生姓名。
(2)试用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生姓名。
(2)试用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生学号。
(3)试用SQL 找出“程序设计”课程成绩在90分以上的学生姓名。
3.设有关系模式R (U ,F ),其中: (10分)
U={A,B ,C ,D ,E},F = { A→BC ,CD →E ,B →D ,E →A}。
⑪ 计算B +。 (2分)
⑫ 求R 的所有候选码。 (8分)
4.设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),S#,CNAME为候选码,设关系中有如下函数依赖: (10分)
S#,CNAME→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME
S#,CNAME→GRADE
SDEPT →MNAME
试求下列问题:
(1)关系STUDENT 属于第几范式? (5分)
(2)如果关系STUDENT 不属于BCNF ,请将关系STUDENT 逐步分解为BCNF 。(5分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
试题答案
一、选择题(20分,每小题2分):
1.B 2.A 3.D 4.C 5.A 6.D 7.C 8.B 9.A 10.D
二、填空题(20分,每小空2分):
1.①封锁
2.②系统故障
3.③关系代数 ④关系演算
4.⑤需求分析,概念设计,逻辑设计,物理设计,编码和调试
5.⑥3NF 2NF LNF 成立
6.⑦一个或几个基本表 ⑧定义 ⑨视图对应的数据
7.⑩集合
三、简答题(15分,每小题5分):
1.什么是数据库?
答:数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同时使用。因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。
2.什么是数据库的数据独立性?
答:数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。
逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。
物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。
数据独立性的好处是,数据的物理存储设备更新了,物理表示及存取方法改变了,但数据的逻辑模式可以不改变。数据的逻辑模式改变了,但用户的模式可以不改变,因此应用程序也可以不变。这将使程序维护容易,另外,对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性,使数据库系统有较好的可扩充性,给 DBA 维护、改变数据库的物理存储提供了方便。
3.叙述等值连接与自然连接的区别和联系。
答:等值连接表示为
R A=BS ,自然连接表示为R S ;自然连接是除去重复属性的等值连接。两者之间的区别和联系如下:
● 自然连接一定是等值连接,但等值连接不一定是自然连接。
等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
● 等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分
量必须是公共属性。
● 等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
四、综合题(45分):
1.试完成如下工作: (10分)
(1)分别设计学生选课和教师任课两个局部信息的结构E-R 图。 (4分)
(2)将上述设计完成的E-R 图合并成一个全局E-R 图。 (3分)
(3)将该全局E-R 图转换为等价的关系模型表示的数据库逻辑结构。 (3分) 解:
(1)学生选课局部E-R 图如图2 所示,教师任课局部E-R 图如图3所示。
(2)合并的全局E-R 图如图4所示。
为避免图形复杂,下面给出各实体属性:
单位:单位名、电话
学生:学号、姓名、性别、年龄
教师:教师号、姓名、性别、职称
课程:编号、课程名
(3)该全局E-R 图转换为等价的关系模型表示的数据库逻辑结构如下:
单位(单位名,电话)
教师(教师号,姓名,性别,职称,单位名)
课程(课程编号,课程名,单位名)
学生(学号,姓名,性别,年龄,单位名)
讲授(教师号,课程编号)
选修(学号,课程编号)
图3 教师任课局部E -R 图
图4 合并的全局E -R 图
2.设有关系S 、SC 、C ,试用关系代数、元组关系演算表达式和SQL 完成下列操作。(15分,每小题5分)
S(S#,SNAME,AGE,SEX) 例:(001,' 李强',23,’男' )
SC(S#,C#,SCORE) 例:(003,'C1',83)
C(C#,CNAME,TEACHER) 例:('C1',' 数据库原理',' 王华' )
(1)试用关系代数检索选修了“程军”老师所授课程之一的学生姓名。 ∏SNAME
(SSC TEACHER='程军' (C))
(2)试用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生姓名。 {T(1)|(∃U)(∃V)(∃W)(S(U)∧SC(V)∧C(W)∧T[1]=U[1]∧U[1]=V[1]∧V[2]=W[1]∧W[3]='程军')}
(2)试用元组关系演算表达式检索选修了“程军”老师所授课程之一的学生学号。 {T(1)| (∃V)(∃W)( SC(V)∧C(W)∧T[1]=V[1]∧V[2]=W[1]∧W[3]='程军')}
(3)找出“程序设计”课程成绩在90分以上的学生姓名。
SELECT SNAME
FROM S,SC,C
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SCORE>=90 AND CNAME='程序设计'
或者
SELECT SNAME
FROM S
WHERER S.S# IN (
SELECT S#
FROM SC
WHERE SCORE>=90 AND C.C# IN (
SELECT C#
FROM C
WHERE CNAME='程序设计')
3.设有关系模式R (U ,F ),其中: (10分)
U={A,B ,C ,D ,E},F = { A→BC ,CD →E ,B →D ,E →A}。
⑪ 计算B +。 (2分)
⑫ 求R 的所有候选码。 (8分)
解:
⑪ 令X={B},X (0)=B,X (1)=BD,X (2)=BD,故B +=BD。
⑫ 根据候选码的定义,R 的候选码只可能由F 中各个函数依赖的左边属性组成,即A ,B ,C ,D ,E ,由于A →BC (A →B ,A →C ),B →D ,E →A ,故:
可除去A ,B ,C ,D ,⎽ 组成候选码的属性可能是E 。
计算可知:E +=ABCDE,即E →U ,⎽ E是一个候选码。
可除去A ,B ,E ,⎽ 组成候选码的属性可能是CD 。
计算可知:(CD)+=ABCDE,即CD →U ,但C +=C,D +=D,⎽ CD是一个候选码。
可除去B ,C ,D ,E ,⎽ 组成候选码的属性可能是A 。
计算可知:A +=ABCDE,即A →U ,⎽ A是一个候选码。
可除去A ,D ,E ,⎽ 组成候选码的属性可能是BC 。
计算可知:(BC)+=ABCDE,即CD →U ,但B +=BD,C +=C,⎽ BC 是一个候选码。
R 的所有候选码是A ,BC ,CD ,E 。
4.设有关系STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),S#,CNAME为候选码,设关系中有如下函数依赖: (10分)
S#,CNAME→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME
S#,CNAME→GRADE
SDEPT →MNAME
试求下列问题:
(1)关系STUDENT 属于第几范式?(5分)
(2)如果关系STUDENT 不属于BCNF ,请将关系STUDENT 逐步分解为BCNF 。(5分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
解:
(1)关系STUDENT 是1NF 。
(2)首先消除部分函数依赖{S#,CNAME}→{SNAME,SDEPT,MNAME} 将关系分解为:
R1(S#,SNAME,SDEPT,MNAME)
R2(S#,CNAME,GRADE)
在关系R1中存在非主属性对候选码的传递函数依赖S#→SDEPT ,SDEPT →MNAME ,所以以上关系模式还不是BCNF ,进一步分解R1:
R11(S#,SNAME,SDEPT)
R12(SDEPT,MNAME)
R11,R12都是3NF 。
关系模式
R2(S#,CNAME,GRADE)
R11(S#,SNAME,SDEPT)
R12(SDEPT,MNAME)
R2,R11,R12关系模式存在的函数依赖
S#,CNAME→GRADE S#,SNAME→SNAME,SDEPT SDEPT →MNAME 上述函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF 。