本试题所用到的银行企业的数据库模式如下所示:
-schema=(customer-name, customer-street, customer-city) -schema=(branch-name, account-number, balance) -schema=(customer-name, account-number) -schema=(branch-name, branch-city, assets) -schema=(branch-name, loan-number, amount) "
-schema=(customer-name, loan-number)
建立在这些关系模式上的数据库中的关系如下所示:
-schema) -schema) Depositor-schema) h-schema) -schema)
-schema)
试题一(20分):请将下列术语填入与其相应的空(仅填对应序号即可):
唯一标识一个实体集中的实体
现实世界中的一个对象,如人物、事件等 多个实体之间的相互关联 相似实体的集合
与联系集相关的实体集的数目 一个实体集的特性
指定一个实体集中可以(或必须)与其他实体集相联系的实体数目 依赖于其他实体集的实体集 度为三的联系
可以被分成多个部分(成员)
复合属性 弱实体集属性 实体 联系 三元度 码 实体集 映射约束
试题二(20分):请用关系代数表达式表示下列查询:
在银行中有贷款或有帐户的客户姓名;(6分) 所有与Smith居住在同一街道的客户姓名;(6分) 在Brooklyn市的所有分支机构中都有帐户的客户姓名。(8分)
试题三(20分):请简要回答以下问题:
你是如何理解DBMS的调度中事务是并发执行而不是并行执行的?(10分) 函数依赖a?b在关系r(R)上是满足的,但在关系模式R上不一定是成立的!为什
么?请举例说明。(10分)
试题四(20分):
用SQL表示查询:在银行中有多个(至少两个)帐户的客户姓名和存款总额;
(10分)
请解释以下SQL语句的含义:
;(3分) ;(3分)
elect count(distinct a) from r,其中a是r的一个属性。(4分)
试题五(10分):在数据库系统中有如下一个调度S,它涉及到3个不同的事务T3、T4和T5。请问调度S是冲突可串行化的吗?为什么?如果调度S是冲突可串行化的,就请给出与之等价的一个串行调度序列。
试题六(10分):请举例说明:在强两阶段封锁协议中,冲突的事务可以按事务的封
锁点顺序串行化。
参考答案
《数据库系统概论》考试试卷答案二
问答第1题
、2h、3f、4b、5c、6i、7e、8a、9d、10g
问答第2题答案:
、 Πcustomer-name(borrower)∪Πcustomer-name(depositor)
、 Πcustomer-name(σcustomer-street = street∧customer-city = city∧
customer-name<>\"Smith\"(customerxp rsmith-addr (street, city)(Πcustomer-street, customer-city(Πcustomer-name = \"Smith\"(customer)))))
、 Πcustomer-name, branch-Πbranch-name(σbranch-city=\"Brooklyn\"(branch))
问答第3题答案:
、 在单处理机系统中,事务的并行执行实际上是这些事务的并行操作轮流交叉运行。这种并行执行方式称为交叉并发方式。虽然单处理机系统中的并行事务并没有真正地并行运行,但是减少了处理机的空闲时间,提高了系统的效率。在多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。这种并行执行方式称为同时并发方式。 要注意DBMS中的\"并发执行\"并不是真正意义上的\"并行执行\"。首先,从用户的角度来看,这两种方式的结果是类似的,都是在一段时间内完成了多项任务。但是并发执行一般来说是单CPU进行处理,靠分时来造成同时执行的假相。数据库系统调度中事务的并发执行就是利用了计算机的磁盘I/O可以和CPU处理并行工作的特性,将不同事务的指令放在一起交叉执行。而并行执行一般是用多个CPU同时进行处理,是真正意义上的同时执行。
、 假设有如下的关系模式:
-schema = (customer-name, customer-street, customer-city) 和关系:
-schema)
对于关系customer来说,由于关系中的记录个数有限,因此函数依赖:customer-street?customer-city可能是满足的,即客户所在的街道函数确定客户所在的城市。但是对关系模式Customer-schema来说,上述函数依赖却不一定成立!因为现实生活中,不同的城市具有相同名字的街道是很有可能的事情。
问答第4题答案:
1、 select customer-name, sum(balance)
-number = a.account-number -name
-number) >= 2
、 1) 列出关系r中所有不同的记录;
给出关系r中所有记录的个数;
给出关系r中属性a的不同值的数目。
问答第5题答案:首先要给出该调度的优先图:
调度的优先图中存在有向环,因此该调度不是冲突可串行化的。
问答第6题答案: 在封锁协议中,冲突的事务可以按事务的封锁点顺序串行化。如下图所示:
根据两阶段封锁协议授权加锁的条件,我们不难知道:
)事务Ti在发出最后一个锁申请之后还没有获得锁之前一直处于等待状态,等待事务Tj释放锁;
)事务的封锁点是指事务获得最后一个锁的时刻,事务在获得最后一个锁之后才会全部执行完事务,因为事务再也不会申请锁,因而也就不会处于等待状态。 而根据强两阶段封锁协议,事务Tj持有的所有锁都必须在事务提交之后才能释放。也就是说先到达封锁点的事务Tj(它不会再申请任何锁,而且在提交之前也不会释放任何锁)一定会比事务Ti先提交(Tj提交之后才会释放锁,Ti才有可能获得锁到达封锁点),而这种提交的先后顺序就是事务的一个可串性化顺序。因此,在强两阶段封锁协议中,冲突的事务可以按事务的封锁点顺序串性化。
因篇幅问题不能全部显示,请点此查看更多更全内容