数据库管理系统|集9

在2006门CS考试中提出了以下问题。

null

1)考虑银行账户上的两个交易的以下日志序列,具有初始余额12000,将2000转移到抵押支付,然后应用5% %利息。

  1. T1 start
  2. T1 B old=12000 new=10000
  3. T1 M old=0 new=2000
  4. T1 commit
  5. T2 start
  6. T2 B old=10000 new=10500
  7. T2 commit 

假设数据库系统在写入日志记录7之前崩溃。当系统重新启动时,关于恢复过程,哪一条语句是正确的?

(A) 我们必须重做日志记录6,将B设置为10500 (B) 我们必须撤销日志记录6,将B设置为10000,然后重新执行日志记录2和3 (C) 我们不需要重做日志记录2和3,因为事务T1已提交 (D) 我们可以按任意顺序应用重做和撤消操作,因为它们是幂等的。

答复(B)

2)考虑入学(学生,课程)的关系(学生、课程)是主键,而学生(主语)是学生的主键。假设没有空值,没有外键或完整性约束。鉴于以下四个问题:

Query1: select student from enrolled where student in (select student from paid)
Query2: select student from paid where student in (select student from enrolled)
Query3: select E.student from enrolled E, paid P where E.student = P.student
Query4: select student from paid where exists
        (select * from enrolled where enrolled.student = paid.student)

以下哪项陈述是正确的? (A) 所有查询都会为任何数据库返回相同的行集 (B) Query2和Query4为所有数据库返回相同的行集,但存在Query1和Query2为其返回不同行集的数据库。 (C) 存在一些数据库,其中Query3返回的行数严格少于Query2。 (D) 存在Query4在运行时会遇到完整性冲突的数据库。

答复(B) 举个例子:

Table enrolled
student   course
----------------
 abc      c1   
 xyz      c1
 abc      c2
 pqr      c1

Table paid
student  amount
-----------------
 abc      20000
 xyz      10000
 rst      10000


Output of Query 1
 abc
 abc
 xyz

Output of Query 2
 abc
 xyz

Output of Query 3
 abc
 xyz

Output of Query 4
 abc
 xyz

查询1和查询3可能会返回重复的student值,因为“student”不是注册关系中的键,但是查询2和查询4总是返回相同的行集。

因此,选项(B)是正确的。

3)考虑入学(学生,课程)的关系(学生,课程)是主键,和支付的关系(学生,数量),其中学生是主键。假设没有空值,没有外键或完整性约束。假设6000、7000、8000、9000和10000分别由20%的学生支付。考虑这些查询计划(左边的计划1,右边的计划2),“列出超过X的学生所做的所有课程”。

图片[1]-数据库管理系统|集9-yiteyi-C++库 一次磁盘搜索需要4ms,磁盘数据传输带宽为300MB/s,检查元组数量是否大于x需要10微秒。以下哪项陈述是正确的? (A) 计划1和计划2不会为所有数据库输出相同的行集。 (B) 对于某些数据库,课程可能会在计划1的输出中多次列出 (C) 对于x=5000,对于所有数据库,计划1的执行速度都比计划2快。 (D) 对于x=9000,对于所有数据库,计划I的执行速度都比计划2慢。

答复(C) 假设有足够大的内存可用于所有需要的数据。这两个计划都需要加载两个表的课程和注册。因此,两种计划的磁盘访问时间相同。 与计划1相比,计划2的比较次数较少。 1) 联接操作将需要更多的比较,因为第二个表在计划2中的行数将比计划1中的多。 2) 由两个表组成的联接表将有更多行,因此需要进行更多比较才能找到大于x的数量。

4) 给出了以下功能依赖关系:

AB → CD, AF → D, DE → F, C → G , F → E, G → A

以下哪个选项是错误的?

(A) CF+={ACDEFG} (B) BG+={ABCDG} (C) AF+={ACDEFG} (D) AB+={ABCDFG}

答复(C) AF的闭包或AF+={ADEF},AF的闭包不包含C和G。 选项(D)看起来也是正确的。AB+={ABCDG},AB的闭包不包含F。

请看 门角 所有上一年的论文/解决方案/解释、教学大纲、重要日期、笔记等。

如果您发现任何答案/解释不正确,或者您想分享有关上述主题的更多信息,请发表评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享