当前位置:问答库>考研试题

2017年沈阳建筑大学数据库系统概论考研复试核心题库

  摘要

一、简答题

1. F 面的结论哪些是正确的? 哪些是错误的? 对于错误的请给出一个反例说明之。

(1)任何一个二目关系是属于3NF 的。 (2)任何一个二目关系是属于BCNF 的。 (3)任何一个二目关系是属于4NF 的。 (4)当且仅当函数依

的连接。

(5)若(6)若(7)若(8)若

(2)正确。按BCNF 的定义,若于二目关系决定因素必然包含码。

(3)正确。因为只有两个属性,所以无非平凡的多值依赖。 (4)错误。当

在R 上成立,关系R (A ,B ,C )等于其投影

的连接。

反之则不然。正确的是当且仅当函数依赖

的连接。

(5)正确。 (6)正确。 (7)正确。

(8)错误。反例关系模式

2. 如表所示,给出的是一个调度的事件序列。该调度包含

H 为数据库中的数据项。假定

存在死锁?并分析哪些事务处于等 待另外事务的状态。

表 —个调度的事件序列

等12个事务

成功,则获得i 上的一个S 锁,

是否

在R 上成立,关系R (A , B ,C

)等于其投影

且Y 不是X 的子集时,每个决定因素都包含码,对在R 上成立,关系R (A ,B ,C )等于其投

【答案】(1)正确。因为关系模式中只有两个属性,所以无传递。

而“修改i ”成功时,则将锁升级为X 锁。又假定所有锁都保持到事务结束,那么,在时刻

【答案】在时刻事务

存在事务

死锁,另外,事务等待事务事务

等待事务

等待事务

3. 试述SQL 的特点。

【答案】SQL 有以下五个特点:

(1)综合统一:SQL 语言集数据定义语言DDL 、数据操纵语言DML 、数据控制语言DCL 的功能于一体。在关系模型中实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作符,从而克服了非关系系统由于信息表示方式的多样性带来的操作复杂性。

(2)高度非过程化:用SQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”, 因此无需了解存取路径、存取路径的选择以及SQL 语句的操作过程。这有利于提高数据独立性。

(3)面向集合的操作方式:SQL 语言采用集合操作方式,不仅操作对象和查找结果可以是元组的集合,而且插入、删除、更新操作的对象也可以是元组的集合。

(4)以同一种语法结构提供两种使用方式:SQL 语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到高级语言程序中,供程序员设计程序时使用。

(5)语言简捷,易学易用。

4. 对于参照完整性规则,在SQL 语言中可以用哪几种方式实现?删除基本关系的元组时,依赖,依赖关系可以采取的做法有哪3种? 关系可以采 取的做法有哪3种?修改基本关系的主码值时

【答案】(1)参照完整性规则在SQL 中可以用外码子旬、检查子句、断言等方式实现。 (2)

删除基本关系元组时,SQL 规定,依赖关系可以采取下列3种做法之一:

①RESTRICT 方式:只有当依赖关系中没有一个外码值与要删除的基本关系中主码值相对应时,系统才能执 行删除操作,否则拒绝此删除操作。

②CASCADE 方式:将依赖关系中所有外码值与基本关系中要删除的主码值相对应的元组一起删除。

③SETNULL 方式:删除基本元组时,将依赖关系中所有与基本关系中被删主码值相对应的外码值置为空值。

(3)对于这3种方式,选择哪一种,要视应用环境的语义而定。修改基本关系的主码值时,依赖关系可以采取的做法与上述删除操作类似。

5. 试述数据库管理系统的基本功能。

【答案】DBMS 具有如下基本功能: (1)数据库定义和创建

创建数据库主要是用数据定义语言DDL 定义和创建数据库模式、外模式、内模式等数据库对象。

(2)数据组织、存储和管理

DBMS 要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。 (3)数据存取

提供用户对数据的操作功能,实现对数据库数据的检索、插入、修改和删除。 (4)数据库事务管理和运行管理

DBMS 运行控制和管理功能。这些功能保证了数据库系统的正常运行,保证了事务的ACID 特性。

(5)数据库的建立和维护

数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。

(6)其他功能

包括DBMS 与网络中其他软件系统的通信功能;一个DBMS 与另一个DBMS 或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。

6. 什么是死锁?请给出预防死锁的若干方法。

【答案】(1)如果事务是

等待

释放

上的锁。

样就出现了在等待

封锁了数据又申请封锁

封锁了数据因已封锁了

又请求封锁也只能等待

已封锁了

释放上的锁。这

又在等待的局面,

两个事务永远不能结束,形成死锁。