練習題題庫 [第十二章:交易管理]
練習12-1
請問以下交易的交錯執行會造成何種問題:
 
  T1 T2
1 begin (T1)  
2   begin (T2)
3   read (X, b); b = b + 10
4 read (X, a); a =a + 10  
5 read (Y, c)  
6   write (b, X)
7   write (b, Y)
8 write (a, X)  
9 read (Y, c)  
10 commit (T1)  
11   commit (T2) 或 abort (T2)
 
練習12-2
考慮一個編號為 ‘t0001’ 的交易,它有以下的系統追蹤記錄:

[start, t0001]
[read, t0001, p3]
[write, t0001, p3, 135, ‘資料庫理論與實務’, ‘資料庫實務與理論’]
[read, t0001, p15]
[write, t0001, p15, 310, ‘5566 專輯’, ‘7788 專輯’]
[read, t0001, p9]
[write, t0001, p9, 200, ‘英雄’, ‘狗熊’]
[commit, t0001]

請問若要將這個交易所修改過的資料寫回硬碟,需寫入幾個硬碟頁?由此推論為何在COMMIT 時,DBMS 的作法是將該交易的系統追蹤記錄寫入硬碟,而不是將該交易所修改過的資料頁寫回硬碟。
 
練習12-3
請列出可復原的排程、無連鎖駁回的排程和嚴格的排程之間的從屬關係。
 
練習12-4
考慮 n 個交易的執行,請問有幾種順序執行的方式?
 
練習12-5
請問以下交易排程是否為可順序的排程?
 
  T1 T2 T3
1 begin (T1)    
2 read (X, a)    
3 write (a, X)    
4   begin (T2)  
5     begin (T3)
6   read (X, b)  
7     read (Z, d)
8 write (c, Z)    
9   write (b, Y)  
10   commit (T2)  
11     read (Y, e);
12     write (e, Z)
13     commit (T3)
14 commit (T1)    
 
練習12-6
請問鎖定小單位的資料項和大單位的資料項,各有哪些優缺點?