个性化阅读
专注于IT技术分析

数据库管理系统常见问题介绍|S9

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

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)存在一些查询数据库在运行时会遇到完整性违规的数据库。

答案(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可能返回重复的学生值, 因为”学生”不是已注册关系中的关键字, 但是查询2和查询4始终返回相同的行集。

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

3)考虑注册关系(学生, 课程), 其中(学生, 课程)是主键, 而付费关系(学生, 金额), 其中学生是主键。假定没有空值, 也没有外键或完整性约束。假设分别由20%的学生支付了6000、7000、8000、9000和10000的金额。考虑这些查询计划(左侧的计划1, 右侧的计划2)以”列出支付了x的学生所修读的所有课程”。

数据库管理系统|S91

磁盘寻道需要4毫秒, 磁盘数据传输带宽为300 MB/s, 检查元组以查看数量是否大于x需要10微秒。下列哪种说法是正确的?

(A)计划1和计划2不会为所有数据库输出相同的行集。

(B)对于某些数据库, 一门课程可能在计划1的输出中被列出多次

(C)对于x = 5000, 对于所有数据库, 计划1的执行都比计划2的执行快。

(D)对于x = 9000, 对于所有数据库, 计划I的执行均比计划2慢。

答案(C)

假设有足够大的内存可用于所有需要的数据。这两个计划都需要加载两个表课程并进行注册。因此, 两个计划的磁盘访问时间相同。

与计划1相比, 计划2进行的比较次数更少。

1)联接操作将需要更多的比较, 因为与计划1相比, 计划2中的第二个表将有更多行。

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。

请参阅门角适用于所有上一年的论文/解决方案/说明, 课程提纲, 重要日期, 注释等。

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

赞(0) 打赏
未经允许不得转载:srcmini » 数据库管理系统常见问题介绍|S9
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏