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

2017年浙江工业大学数据库系统原理(同等学力加试)考研复试核心题库

  摘要

一、简答题

1. 设有如图1所示的关系R 和S ,计算:

(1)(2)(3)(4)

图1

【答案】本题各小题的结果如图2所示。

图2

2. 描述MapReduce 的计算过程。分析MapReduce 技术作为大数据分析平台的优势和不足。

MapReduce 技术主要应用于大规模廉价集群上的大数据并行处理,【答案】(1)是以key/value的分布式存储 系统为基础,通过元数据集中存储、数据以chunk 为单位分布存储和数据chunk 冗余复制来保证其高可用性。

(2)优势:MapReduce 是一种并行编程模型。其处理模式以离线式批量处理为主。

(3)MapReduce 存在如下不足:

①基于MapReduce 的应用软件较少,许多数据分析功能需要用户自行开发,从而导致使用成本増加;

②程序与数据缺乏独立性;

③在同等硬件条件下,MapReduce 的性能远低于并行数据库; ④MapReduce 处理连接的性能尤其不尽如人意。

3. 数据库中要存储和管理的数据内容包括哪些方面?

【答案】数据库系统中数据的物理组织必须体现实体之间的联系,支持数据库的逻辑结构——各种数据模型。因此数据库中要存储4个方面的数据:

(1)数据描述,即数据的外模式、模式、内模式; (2)数据本身; (3)数据之间的联系; (4)存取路径。

4. 什么是封锁?基本的封锁类型有几种?试述它们的含义。

【答案】(1)封锁是指事务T 在对某个数据对象(例如表、记录等)进行操作之前,先向系统发出请求,对其加锁。加锁后,事务T 就对该数据对象有控制权,在事务T 释放锁之前,其他事务不能更新此数据对象。

(2)基本的封锁类型有两种:排它锁(简称X 锁)和共享锁(简称S 锁)。

①排它锁又称为写锁。若事务T 对数据对象A 加上X 锁,则只允许T 来读取和修改A , 其他任何事务都不能再对A 加任何类型的锁,直到T 释放A 上的锁。这就保证了其他事务在T 释放A 上的锁之前不能再读取和修改A 。

②共享锁又称为读锁。若事务T 对数据对象A 加上S 锁,则事务T 可以读A 但不能修改A , 其他事务只能再对A 加S 锁,而不能加X 锁,直到事务T 释放A 上的S 锁。这就保证了其他事务可以读A ,但在事务T 释放A 上的S 锁之前不能对A 做任何修改。

5. 设教学数据库的模式如下:

试用多种方式定义下列完整性约束:

(1)在关系S 中插入的学生年龄值在16〜25之间。 (2)在关系SC 中插入元组时,其

值和C#值必须分别在S 和C 中出现。

(3)在关系SC 中修改GRADE 值时,必须仍在0〜100之间。

(4)在删除关系C 中一个元组时,首先要把关系SC 中具有同样C#值的元组全部删去。 (5)在关系S 中把某个

值修改为新值时,必须同时把关系SC 中那些同样的

值也修改

为新值。

【答案】(1)用检查子句定义:

(2)在关系SC 的定义中,用检查子句定义:

在关系SC 的定义中,用外码子句定义:

(3)在关系SC 的定义中,用检查子句定义:

(4)在关系SC 中,可用外码子句定义:

(5)在关系SC 中,可用外码子句定义:

6. 登记日志文件时为什么必须先写日志文件,后写数据库?

【答案】把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。

如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO 操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后进行数据库的修改。

二、应用题

7. 设有关系模式.

(1)求R 的所有候选码。 (2)判断

是否为无损连接分解?

(3)将R 分解为BCNF ,并具有无损连接性。

而【答案】(1)从F 中看出,候选码至少包含BE (因为它们不依赖于任何属性)

所以BE 是R 的唯一候选码。

(2)P 的无损连接性判断结果如图所示,其中没有全a 行,由此判定P 不具有无损连接性。

其上的函数依赖集为