上海电机学院 200__–200__学年第__学期
《数据库原理及应用》课程期末考试试卷 H 2007.10
开课学院: ,专业: 考试形式:闭、开卷,所需时间 90 分钟 考生姓名: 学号: 班级 任课教师
题序 得分 评卷人 一 二 三 四 五 总 分 一、 填空题(共20分,每空格1分)
1. 数据模型通常包括数据结构、数据操作 和 数据完整性约束 3个要素。 2. 数据库系统中最常使用的数据模型是层次模型 、 网状模型 和 关系模型。
(更新:面向对象)
3. 在SQL中,用DELETE命令可以从表中删除行,用DROP命令可以从数据
库中删除表。
4. 对并发操作若不加以控制,可能带来的不一致性有丢失修改、不可重复读 和
读“脏”数据。
5. 在设计分E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同
的设计人员设计的,所以,各个分E-R图之间难免有不一致的地方,这些冲突主要有:属性冲突、 命名冲突 和 结构冲突3类。
6. 数据库系统设计(开发)分为6个阶段分别为需求分析、概念结构设计、逻
辑结构设计、物理结构设计、数据库实施和数据库运行与维护。
二、选择题(共30分,每小题2分)
1.在数据库的三级模式结构中,描述数据库中全体数据的逻辑结构和特征的是____。
A. 外模式 B.内模式 C.存储模式 D.模式
2.在数据管理技术发展阶段中,文件系统阶段与数据库系统阶段的主要区别之一在于数据库系统_____。
A.数据可共享 B.数据可长期保存
C.采用一定的数据模型组织数据 D.有专门的软件对数据进行管理 3.关系模型中,一个码(关键字)是___ 。
A. 可由多个任意属性组成 B.至多由一个属性组成
C. 可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成 D.以上都不是
4.若采用关系数据库来实现应用,在数据库设计的____阶段将关系模式进行规范化处理。
1
A.需求分析 B.概念设计 C.逻辑设计 D. 物理设计
5.在关系代数的传统集合运算中,假定有关系R和S,运算结果为W。如果W中的元组属于R,或者属于S,则W为____运算的结果。
A. 笛卡尔积 B. 并 C.差 D.交 6.SQL是_____的缩写
A.Standard Query Language B.Select Query Language C.Structured Query Language D.以上都不是 7.SQL语言中,实现投影操作的是__
A.SELECT B. FROM C. WHERE D.GROUP BY
8.关于3NF的关系模式,以下说法正确的是____
A. 消除了属性间的部分函数依赖和传递函数依赖
B. 消除了非主属性对键的传递函数依赖,但仍然可能存在非主属性对键的部分函数依赖
C. 消除了非主属性对键的部分函数依赖,但仍然可能存在非主属性对键的传递函数依赖
D.消除了非主属性对键的部分函数依赖和传递函数依赖 9.解决并发操作带来的数据不一致性问题普遍采用_____
A. 封锁 B.恢复 C. 存取控制 D. 协商
10.当发生故障时,根据现场数据内容、日志文件的故障前映象和_____来恢复
系统的状态。
A.库文件 B.日志文件 C.检查点文件 D.后备文件
11.在数据库的三级模式结构中,内模式有_____
A.1个 B.2个 C.3个 D.任意多个
12.下面哪些属于数据库系统的组成成员____
A.操作系统 B.DBMS
C.用户 D.A和B、C都是
13.组成数据模型的三要素分别指数据结构、数据操作和____
A.数据类型 B.数据的取值范围 C.数据抽象 D.数据的约束条件
14.下面哪个不属于概念结构设计时常用的数据抽象方法的是___
A.合并 B.聚集 C.概括 D. 分类 15.自然连接是 ____ 进行运算
A.向关系的垂直方向 B.向关系的水平方向
C.既向关系的水平方向也向关系的垂直方向
D.先向关系的垂直方向,然后再向关系的水平方向
三、设有如图所示的关系R、S、T,计算(22分)
2
R : S: T: A B C A E F A B C a3 b6 c7 a3 e4 f5 a1 b5 c3 a2 b5 c7 a7 e2 f3 a3 b6 c7 a7 b2 c3 a7 b6 c7 a4 b4 c3
(1) R∪T(3分) 答案:
R∪T A a3 a2 a7 a7 a4 a1 B b6 b5 b2 b6 b4 b5 C c7 c7 c3 c7 c3 c3
S×T S.A a3 a3 a7 a7
E e4 e4 e2 e2
F f5 f5 f3 f3
T.A a1 a3 a1 a3
B b5 b6 b5 b6
C c3 c7 c3 c7
(2) S×T(3分)上面 (3) A,E(S)(3分)
A,E(S)
A a3 a7 E e4 e2
R.A a3 a7 a7
B b6 b2 b6 C c7 c3 c7 E e4 e2 e2 F f5 f3 f3 (4)
(7分)上面
B b6 C c7 (5) R÷S(6分)
四、设工程—零件数据库中有四个基本表:(每题3分,共18分) 供应商(供应商代码,姓名,年龄,所在城市,联系电话); 工程(工程代码,工程名,负责人,预算); 零件(零件代码,零件名,规格,产地,颜色);
供应零件(供应商代码,工程代码,零件代码,数量)。 试用SQL语句完成下列操作:
(1)找出上海市的供应商的姓名和电话;
3
(2)查找预算在50000—100000元之间的工程的信息,并将结果按预算降序排列; (3)找出工程J2使用的各种零件名称以及数量; (4)找出上海厂商供应的所有零件代码; (5)找出没有使用天津产零件的工程代码。
(6)求其他城市的供应商中比上海供应商年龄都小的供应商的信息。 答案:
(1) SELECT姓名,联系电话
FROM 供应商
WHERE 所在城市=’上海市’; (2) SELECT *
FROM 工程
WHERE 预算BETWEEN 50000 AND 100000 ORDER BY 预算 DESC; (3) SELECT 零件名,数量 FROM 供应零件,工程
WHERE 工程.工程代码=供应零件.工程代码 AND供应零件.工程代码=’J2’; (4) SELECT 供应商.零件代码 FROM 供应零件,供应商
WHERE 供应零件.供应商代码=供应商.供应商代码 AND供应商.所在城市=’上海’; (5) SELECT工程代码 FROM 供应零件,零件
WHERE供应零件.零件代码=零件.零件代码AND零件.产地<>’天津’; (6) SELECT *
FROM 供应商
WHERE 年龄WHERE 所在城市=’上海市’) AND所在城市<>’上海市’; 五、设关系模式R(ABCD),F是R上成立的FD集,F={ CD->B, B->A }。(10分)1.说明R不是3NF模式的理由。
2.试把R分解成3NF模式集。 解:
1.CD->B, B->A
CD—->A,存在传递依赖,所以不是3NF模式 2.R1(CDB) R2(BA)
【案例4-15】 在上例中,R2是2NF模式,且也是3NF模式。但R1(C#,TNAME,TADDR)是2NF模式,却不一定是3NF模式。如果R1中存在函数依赖C#→TNAME和TNAME→TADDR,那么C#→TADDR就是一个传递依赖,即R1不是3NF模式。此时R1的关系中也会出现冗余和异常操作。譬如一个教师开设五门课程,那么关系中就会出现五个元组,教师的地址就会重复五次。 如果把R2分解成R21(TNAME,TADDR)和R22(C#,TNAME)后,C#→TADDR就不会出现在R21和R22中。这样R21和R22都是3NF模式。 算法4-5 分解成3NF模式集的算法 设关系模式R(U),主键是W,R上还存在FD X→Z。并且Z是非主属性,ZÍX,X不是候选键,这样W→Z就是一个传递依赖。此时应把R分解成两个模式: R1(XZ),主键是X; R2(Y),其中Y=U-Z,主键仍是W4 ,外键是X(REFERENCES R1)。 利用外键和主键相匹配机制,R1和R2通过联接可以重新得到R。 如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止。