数据库原理试题
南 京 农 业 大 学 试 题 纸
2007-2008 学年 2 学期 课程类型:必修、选修 试卷类型:A 、B
装订线 装订线
系主任 出卷人
参考答案:
一、名词解释(10分) 1.主码
表中的某个属性组,他可以唯一的确定一个元组。 2.数据库完整性
指数据的正确性与相容性。包括完整性约束机制、完整性检查机制和违背完整性约束条件应采取的预防措施。
(回答:实体完整性、参照完整性和自定义完整性也可) 3.数据字典
数据字典是系统中各类数据描述的集合。一般包括:数据项、数据结构、数据流、数据存储、处理过程。 4.视图
视图是从一个或者几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。可以在视图上再定义视图。
5.模式:是数据库全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
(回答:对关系的描述,一般表示为: 关系名(属性,域、属性与域的映射,函数依赖)也可以。) 二、选择题(10分)
1 C 2 . C. 3. C 4. D 5. B 6. C 7. C 8 C. 9. C. 10 D
三、填空题(10分)
1、抽象 2、数据定义 3、投影 4、网状模型、关系模型 5、原子性、隔离性(顺序可以颠倒)
6、数据项、数据流、存储过程、数据存储(4个里面选取任意2个) 7.面向主题
四、简答题(20分)
1.简要回答数据模型的概念及其组成要素?
数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。一般地讲,数据模型是严格定义的概念的集合。这些概念精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。 (1)数据结构。 (2)数据操作。 (3)数据的约束条件:
2.什么是数据库恢复? 数据库恢复的基本技术是什么?
把数据库从错误状态恢复到某一已知的正确状态(即一致状态或完整状态) ,就是数据库恢复。数据库恢复的基本技术是数据转储和登录日志文件
3. 什么是数据与程序的物理独立性?数据库系统如何保证该独立性?
当数据库的存储结构发生变化了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变。从而应用程序也不需要变化,保证了数据与程序的物理独立性,简称数据的物理独立性。
4. 简述ODBC 的工作原理?
ODBC 由四个部分组成。包括应用程序、驱动程序管理器、数据库驱动程序、ODBC 数据源管理。 (对每个部分的功能做简要说明即可。如果画出体系结构更好。) 5.简要论述数据库新技术与发展。
数据库技术经历了第一代的层次模型与网状模型阶段、第二代的关系数据库阶段,目前发展到数据局系统大家族的第三代阶段。主要特征和技术包括:面向对象的方法和技术对数据库的发展有深远影响、数据库技术与多学科交叉融合,如与网络技术、分布市技术、并行计算技术、移动计算技术等互相结合、互相渗透。面向应用领域的数据库技术的研究也获得新的进展。如,统计数据库、数据仓库、工程数据库、科学数据库、空间数据库等。
五、设计题(50分) 1.(1)试用关系代数完成以下操作:
求供应工程J1零件为红色的供应商号码SNO.
πsno (σjno =' j 1' (SPJ ))
求没有使用天津供应商生产的红色零件的工程号JNO.
πjno (j ) -πjno (πsno (σcity =' 天津' (S )) ∞πsno , pno , jno (SPJ ) ∞πpno (σcolor =' 红' (P )))
(2)用SQL 语句完成以下操作
建立供应关系表SPJ ,并定义主码、外码约束以及空值等约束。 CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT);
找出所有供应商的姓名和所在城市 SELECT SNAME,CITY FROM S;
求工程项目J2使用的各种零件的名称及其数量. SELECT P.PNAME,SPJ.QTY FROM P,SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=’J2’; 求没有使用天津产的零件的工程号码. SELECT JNO FROM J WHERE NOT EXISTS ( SELECT * FROM SPJ
WHERE SPJ.JNO=J.JNO AND SNO IN
(SELECT SNO FROM S WHERE CITY=’天津’; 把全部红色零件的颜色改成蓝色。
UPDATE P SET COLOR=’蓝’ WHERE COLOR=’红’; 将(S2,J6,P4,200)插入供应情况关系。 INSERT INTO SPJ(SNO,JNO,PNO,QTY) V ALUES (S2,J6,P4,200)
从供应商关系删除S2的记录,并从供应情况关系中删除相应的记录。 DELETE FROM SPJ WHERE SNO=’S2’; DELETE FROM S WHERE SNO=’S2’; 2.(5分) 调度S是冲突可串行化的,与之等价的一个串行调度序列为:
3(10分)某工厂生产若干产品,每种产品由若干不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料构成。不同零件所用的材料可以相同。这些零件按照所属的不同的产品分别放在仓库中,原材料按照类别放在若干仓库里面。
(1) 请构建该工厂产品、零件、材料、仓库的概念模型。
(2)把该概念模型转换为关系模型并确定每个模式的候选键。 产品关系、零件关系、材料关系、 仓库关系
(产品组成关系 零件制造关系 零件存储关系 材料存放关系。)
4. (12分)现有如下关系模式:其中,Teacher(Tno,Tname ,Tel ,Dpartment ,Bno ,Bname ,BorrowDate ,Rdate ,Backup) 。 Tno ,教师编号; Tname ,教师姓名; Tel ,电话; Department ,所在部门; Bno ,借阅图书编号; Bname ,书名; BorrowDate ,借书日期; Rdate ,还书日期; Backup ,备注。该关系模式的属性之间具有通常的语义,例如,教师编号函数决定教师姓名,即教师编号是惟一的,图书编号是惟一的,等等。
(1).教师编号是候选码吗? 理由是什么。 教师编号Tno 不是候选码
(2).写出该关系模式的主码。 (tno,bno)
(3).该关系模式中是否存在部分函数依赖? 如果存在,请写出其中两个。 (tno,bno)-→tmane (tno,bno)→bname
(4).说明要将一个1NF 的关系模式转化为若干个2NF 关系,需要如何做?
模式分解。消除1NF 关系中的存在传递函数依赖。分解时要保持无损连接性和原由的函数依赖。 (5).该关系模式最高满足第几范式? 并说明理由。 1NF ,存在部分函数依赖。 (6).将该关系模式分解为3NF 。
Teacher1(Tno,Tname ,Tel ,Dpartment)
Teacher2(Bno ,Bname ,BorrowDate ,Rdate ,Backup) 。
5. (5分) 设有: 供应商表S(SNO,SNAME,CITY),零件表P(PNO,PNAME,WEIGHT,SIZE),供应关系表 SP(SNO,PNO,DEPT,QUAN) ,有如下查询: 查询供应一个部门10000个以上螺栓并且位于南京的供应商的名字.
SELECT SNAME FROM S,P,SP
WHERE S.SNO=SP.SNO AND SP.PNO=P.PNO AND S.CITY=‘NAJING’ AND P.PNAME=‘BOLT’ AND SP.QUAN>10000;
给出该语句的代数优化方法(写出该语句的查询树、原始语法树,根据代数优化规则生成优化的查询树)。