Bữa trước s mới post Bài tập 1, đây là bài tập tiếp theo, một dạng khác nữa, các bạn tham khảo nhen
Bài 2:
Cho 1 lịch nhật kí sau trong một hệ quản trị CSDL
S, T3
W, T3, E, 1, 11
S, T2
W, T3, A, -4, 1
W, T2, B, 1, -16
S, T1
COMMIT T2
COMMIT T3
CHECK POINT
S, T4
W, T4, C, 2, 3
COMMIT T4
S, T5
W, T5, D, -3, 0
S, T6
W, T5, A, 1, 5
COMMIT T5
Lỗi hệ thống.
a. Vẽ và giải thích đồ thị
b. Lập ds undo,redo và giải thích
c. Tính A, B,C,D sau khi undo,redo
--------------------
Bài giải (tham khảo)a. Đồ thị
Giải thích: Tại thời điểm t1, Trans T3 start và commit tại thời điểm t5 trước checkpoint, tương tự có T2.
T1 được start chưa commit thì xảy ra lỗi. T4, T5 start sau checkpoint nhưng cũng commit tại t7, t10. Còn lại T6 chưa commit.
b. Danh sách
DS0 {T2, T3} đã commit trước checkpoint
DS1 {T4, T5} đã commit sau checkpoint. (lấy giá trị mới)
DS2 {T1, T6} chưa commit. (trả về giá trị cũ)
c. Tính
T3 ghi 11 -> E
T3 ghi 1 -> A
T2 ghi -16 -> B
T4 ghi 3 -> C
T5 ghi 0 -> D
T5 ghi 5 -> A
Do T1, T6 không ghi vào biến nào nên không có biến nào dc undo.
Vậy A=5, B=-16, C=3, D = 0
** Chú ý:
Giả sử đề thay đổi dòng cuối cùng
S, T6
W, T6, A, 1, 5
Thì T6 ghi 5 -> A nhưng do undo nên A = 1
Bài tập 1
thanks bạn nhiều nha, mong bạn post nhiều bài tập dạng này nữa :X
ReplyDeleteTính giá trị A,B,C,D có nhầm không bạn?
ReplyDeletetính giá trị sau khi undo và redo thì phải trả giá trị về thời điểm check point chứ. Như thế thì A=1;B=-16;C=2;D=-3.