Đây là bài tập môn Các hệ quản trị CSDL s mới làm, nay post lên cho các bạn tham khảo. Nếu có gì sai sót các bạn góp ý hen.
Bài 1: Cho 3 giao tác T1,T2,T3 & 1 lịch S1
S1: R2(C), R1(A), R1(C), R3(A), R3(B), R2(B), W2(C), W1(A), W3(B), W2(B), R1(B), R2(A),
a. Cho biết S1 có khả tuần tự hay không? Tính A, B,C khi lịch S1 thực hiện xong, biết giá trị ban đầu A=2,
B= -1, C=1. và W1(A): A=C-A; W2(C): C=B-2C;
W2(B): B= -2C; W3(B): B=2+B. Cho Ri,Wi thuộc Ti
b. Viết lại các Transaction trên thỏa nghi thức khóa 2 pha.
c. Lập 1 lịch S2 // (phi tuần tự) từ câu 2.
Bài làm (tham khảo)
a. Viết lại S1 như sau (cho dễ nhìn)
S1 | ||
T1 | T2 | T3 |
Rc | ||
Ra | ||
Rc | ||
Ra | ||
Rb | ||
Rb | ||
Wc | ||
Wa | ||
Wb | ||
Wb | ||
Rb | ||
Ra |
+ Các cặp xung đột:
P1: (R1c;W2c)
P2: (R3a;W1a)
P3: (R3b;W2b)
P4: (R2b;W3b)
P5: (W1a;R2a)
P6: (W3b;W2b)
P7: (W3b;R1b)
P8: (W2b;R1b)
+ Sơ đồ từ các cặp xung đột: P1( 1 qua 2) …
Có chu trình => Phi tuần tự.
+ Tính : theo thứ tự lịch S1
W2c: C = B-2C = -1-2 = -3
W1a: A = C-A = -3 -2 = -5
W3b: B = 2+ (-1) = 1
W2b: B = -2.-3 = 6
b. Khóa 2 pha (ULx không đứng trước WLx, RLx)
S1 | ||
T1 | T2 | T3 |
WLa | WLc | RLa |
Ra | Rc | Ra |
RLc | WLb | WLb |
Rc | Rb | ULa |
Wa | Wc | Rb |
RLb | Wb | Wb |
ULa | RLa | ULb |
ULc | ULc | |
Rb | ULb | |
ULb | Ra | |
ULa |
c. Lịch S2 phi tuần tự:
S2 | ||
T1 | T2 | T3 |
RLa | ||
Ra | ||
WLb | ||
ULa | ||
WLa | ||
Ra | ||
RLc | ||
Rc | ||
Wa | ||
Rb | ||
Wb | ||
ULb | ||
RLb | ||
ULa | ||
ULc | ||
WLc | ||
Rc | ||
Rb | ||
ULb | ||
WLb | ||
Rb | ||
Wc | ||
Wb | ||
RLa | ||
ULc | ||
ULb | ||
Ra | ||
ULa |
thanks bạn nhiều nha, mong bạn post nhiều bài tập dạng này nữa :X
ReplyDeletemình thấy một số bài có câu tìm lịch tuần tự tương đương, bạn chỉ mình làm bằng bài tập của bạn đi:)
ReplyDeletevẫn chưa hiểu gì cả :(. Nhưng thanks bạn vì đã giúp đỡ.
ReplyDeletebạn giải thích cho mình chỗ này đi:
ReplyDeleteTa thấy T1 trước T2, T3 trước T1... Vậy lịch tuần tự tương đương là T3 > T1 > T2.
thanks bạn vì đã giúp mình nhiều nha:X
ReplyDeleteBạn ơi câu a) bạn làm thiếu R3C hay sao á, hay là bạn viết dư đề :S
ReplyDeleteCám ơn @Nặc danh đã góp ý nhé, do mh viết dư đề.
ReplyDeleteCâu A chuẩn rồi. Nhưng sơ đồ các cặp xung đột nên ghi xung đột trên A, B hay C sẽ rõ ràng hơn. Vd: Mũi tên từ 1->2 ghi C,A; 2->1 ghi B,...
ReplyDeleteMột số góp ý của mình. Thanks bạn! =D:
Bạn ơi...khóa 2 pha không cần ghi theo thứ tự trước sau hả bạn? Bạn có tài liệu nào về khóa 2 pha share mình với. Cảm ơn bạn !
ReplyDeleteLập 1 lịch S2 phi tuần tự từ câu 2 làm ntn vậy bạn?
ReplyDeleteBạn ơi...cho mình hỏi. Nếu ng ta bảo viết lại thõa nghi thức khóa 2 pha thì mình k cần theo thứ tự. Còn nếu bảo lập lịch song song thõa nghi thức khóa 2 pha thì phải viết theo thứ tự đúng k bạn?
ReplyDeleteBạn ơi mình có thắc mắt hơi gà một tí đó là như bạn nói "Trong 1 transaction, trạng thái ULx không được đứng trước bất kì một RLx hoặc WLx nào cả." Như vậy thì trong câu b) ở transaction T3 có phần Ula đứng trước Wb là sao hả bạn, mình vẫn chưa rành lắm về kháo 2 pha này, bạn có thể nói rõ hơn một chút về vấn đề này được không? thanks ban :x
ReplyDeleteChào bạn, bạn có bài tập nào về khóa chia sẽ độc quyền không, mình thấy một số đề thi cũng hay ra dạng này, anh em sẽ rất thanks bạn đấy, hihi.
ReplyDeleteChào bạn, nếu như vậy thì Ulx cũng có thể đứng sau Wx đúng không. Ah, khóa chia sẽ độc quyền khác kháo 2 pha chỗ nào vậy bạn? Thanks bạn
ReplyDeletecâu 3 là sao mà T3 lại thực hiện trước z ban :D
ReplyDeleteCâu a sai phần kết quả. A bằng -1 mới đúng vì C được đọc trước khi W(c) thực hiện.
ReplyDelete