Reference no: EM13890963
Part -1:
1. Review questions
(a) What is the two-phase locking protocol? How does it guarantee serializability?
(b) Describe the wait-die and wound-wait protocols for deadlock prevention.
(c) Describe the cautious waiting, no waiting, and timeout protocols for deadlock prevention.
(d) What is a timestamp? How does the system generate timestamp?
2. Modify the data structure for multiple-mode locks (shared and exclusive) and the algorithm for read_lock(X), write_lock(X), and unlock(X) so that upgrading and downgrading of locks are possible. (The lock and unlock operations can be found on the course page under "figures for Chapter 20"; Hint: The lock needs to check the transaction id(s) that hold the lock, if any.) (20)
read_lock (X):
B: if LOCK (X)="unlocked"
then begin LOCK (¬ X) "read-locked"; no_of_reads(X) 1
end
else if LOCK(X)="read-locked"
then no_of_reads(X) ¬ no_of _reads(X) + 1
else begin wait (until LOCK (X)="unlocked" and
the lock manager wakes up the transaction);
go to B
end;
write_lock (X):
B: if LOCK (X)="unlocked"
then LOCK (X) ¬ "write-locked"
else begin
wait (until LOCK(X)="unlocked" and
he lock manager wakes up the transaction);
go to B
end;
unlock_item (X):
if LOCK (X)="write-locked"
then begin LOCK (X) "unlocked;" wakeup one of the waiting transactions, if any
end
else if LOCK(X)="read-locked"
then begin
no_of_reads(X) ¬ no_of_reads(X) - 1;
if no_of_reads(X)=0
then begin LOCK (X)="unlocked"; wakeup one of the waiting transactions, if any
end
end;
3. Apply the timestamp ordering algorithm to the schedules of Figure 19.8(b) and (c), and determine whether the algorithm will allow the execution of the schedules. (the figures can be found on the course page under "figures for chapter 19".)
4. The compatibility matrix of Figure 20.8 shows that IS and IX locks are compatible. Explain why this is valid. (the figures can be found on the course page under "figures for chapter 20".)
5. What is ‘certify' lock? Explain why this kind of locks is needed for multiversion 2PL.
|
IS |
IX |
S |
SIX |
X |
|
yes |
yes |
yes |
yes |
no |
IX |
yes |
yes |
no |
no |
no |
S |
yes |
no |
yes |
no |
no |
SIX |
yes |
no |
no |
no |
no |
X |
no |
no |
no |
no |
no |
Part -2:
1. What is the shadow paging principle? Assume that a database contains 7 pages and during the execution of a transaction page 5 and 1 are changed. Give the structures of the current directory and shadow directory before and after the transaction execution, respectively.
2. (a) Consider the five types of transactions given in Fig. 1. If "deferred update" strategy is used, which needs to be redone after the crash?
(b) Consider the five types of transactions given in Fig. 1. If "immediate update" strategy is used, which needs to be undone/redone after the crash?
3. (a) Discuss the two main types of constraints on specializations and generalization.
(b) How does a category differ from a regular shared subclass?
(c) Map the EER diagram shown in Fig. 4.1 into a relational schema.
4. Construct an R-tree over a set of records for geographical objects with the following coordinates [(x1, y1), (x2, y2)]:
[(0, 40), (60, 50)] ---- road1
[(40, 0), (60, 40)] ---- road2
[(15, 25), (35, 35)] ---- house1
[(70, 40), (80, 50)] ---- house2
[(70, 5), (80, 15)] ---- house3
[(35, 25), (80, 35)] ---- pipeline
Assume that each node (either leaf or interior) can store 3 entries.
5. Given the spatial database shown in the lecture notes on Spatial and Temporal Data Management. Design an SQL statement to find all the cities which are closer to Limerick than to Dublin.