📜  数据库管理系统 |设置 3

📅  最后修改于: 2021-09-09 11:17:54             🧑  作者: Mango

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

1) 考虑以下数据项 P 和 Q 初始化为零的事务:

T1: read (P) ;
    read (Q) ;
    if P = 0 then Q : = Q + 1 ;
    write (Q) ;
T2: read (Q) ;
    read (P) ;
    if Q = 0 then P : = P + 1 ;
    write (P) ;

用于并发执行的 T1 和 T2 的任何非串行交错都会导致
(A) 一个可序列化的时间表
(B) 不可冲突序列化的调度
(C) 冲突可序列化调度
(D) 无法绘制优先级图的时间表

答案 (B)
如果出现以下情况,则称两个或多个动作发生冲突:
1)动作属于不同的事务。
2) 至少其中一个动作是写操作。
3) 动作访问同一个对象(读或写)。

如果满足以下条件,则称调度 S1 和 S2 是冲突等效的:
1) 调度 S1 和 S2 都涉及同一组事务(包括每个事务内的操作顺序)。
2)S1和S2中每对冲突动作的顺序相同。

当调度与一个或多个串行调度冲突等效时,该调度被称为是冲突可串行化的。

资料来源:时间表的维基页面

在给定的场景中,有两种可能的串行调度:
1) T1 然后是 T2
2) T2 之后是 T1。
在两个串行调度中,其中一个事务读取另一个事务写入的值作为第一步。因此,T1 和 T2 的任何非串行交错都不会发生冲突串行化。

2) 考虑以下关系A、B、C。以下关系代数表达式的结果包含多少个元组?假设 AUB 的模式与 A 的模式相同。

Table A
Id   Name    Age
----------------
12   Arun    60
15   Shreya  24
99   Rohit   11


Table B
Id   Name   Age
----------------
15   Shreya  24
25   Hari    40
98   Rohit   20
99   Rohit   11


Table C
Id   Phone  Area
-----------------
10   2200   02  
99   2100   01

(一) 7
(乙) 4
(三) 5
(四) 9

答案 (A)

Result of AUB will be following table

Id   Name    Age
----------------
12   Arun    60
15   Shreya  24
99   Rohit   11
25   Hari    40
98   Rohit   20

The result of given relational algebra expression will be

Id   Name    Age  Id   Phone Area
---------------------------------
12   Arun    60   10   2200   02 
15   Shreya  24   10   2200   02   
99   Rohit   11   10   2200   02 
25   Hari    40   10   2200   02 
98   Rohit   20   10   2200   02 
99   Rohit   11   99   2100   01
98   Rohit   20   99   2100   01

3)考虑上面的表A、B和C。下面SQL查询的结果包含多少个元组?

SELECT A.id 
FROM   A 
WHERE  A.age > ALL (SELECT B.age 
                    FROM   B 
                    WHERE  B. name = "arun") 

(一) 4
(乙) 3
(C) 0
(四) 1

答案 (B)
“ALL”的意思是A.Age应该大于子查询返回的所有值。表 B 中没有名为“arun”的条目。因此子查询将返回 NULL。如果子查询返回 NULL,则 A 的所有行的条件都为真(有关详细信息,请参见此处)。所以表A的所有行都被选中。

请参阅 GATE Corner 了解所有往年论文/解决方案/解释、教学大纲、重要日期、笔记等。