JavaScript is required

Phát biểu nào về lịch trình tuần tự hóa là đúng?

A.
Mọi lịch trình tuần tự hóa đều có thể khôi phục được.
B.
Mọi lịch trình có thể tuần tự hóa không chứa các hành động xung đột.
C.
Mọi lịch trình 2PL đều có thể tuần tự hóa được.
D.
Mọi lịch trình tuần tự hoá không cần tuần tự hoá cục bộ
Trả lời:

Đáp án đúng: C


Đáp án đúng là A. Mọi lịch trình tuần tự hóa đều có thể khôi phục được. Giải thích: * **Lịch trình tuần tự hóa (Serializable schedule):** Là một lịch trình mà kết quả của nó tương đương với việc thực hiện các giao dịch theo một thứ tự tuần tự nào đó. Nói cách khác, có một thứ tự giao dịch mà nếu thực hiện theo thứ tự đó, kết quả sẽ giống hệt như kết quả của lịch trình ban đầu. * **Khả năng khôi phục (Recoverability):** Một lịch trình được coi là có thể khôi phục nếu, với bất kỳ giao dịch T nào commit, thì tất cả các giao dịch T' đã đọc dữ liệu do T ghi trước đó phải commit trước T. Điều này đảm bảo rằng nếu T cần phải rollback (ví dụ, do lỗi), thì tất cả các giao dịch phụ thuộc vào T cũng có thể rollback một cách nhất quán. Tại sao A đúng: Mọi lịch trình tuần tự hóa đều có thể khôi phục được vì các giao dịch được thực hiện tuần tự. Do đó, nếu một giao dịch (T) đọc dữ liệu từ một giao dịch khác (T'), thì T' chắc chắn đã commit trước T. Điều này thỏa mãn định nghĩa về khả năng khôi phục. Tại sao các đáp án khác sai: * **B. Mọi lịch trình có thể tuần tự hóa không chứa các hành động xung đột.** Sai. Lịch trình có thể tuần tự hóa có thể chứa các hành động xung đột, nhưng các xung đột này phải được giải quyết sao cho lịch trình tương đương với một lịch trình tuần tự. * **C. Mọi lịch trình 2PL đều có thể tuần tự hóa được.** Sai. 2PL (Two-Phase Locking) giúp đảm bảo tính tuần tự, nhưng không phải mọi lịch trình tuân thủ 2PL đều tuần tự hóa được. Có những lịch trình 2PL có thể dẫn đến deadlock. * **D. Mọi lịch trình tuần tự hoá không cần tuần tự hoá cục bộ** Sai. Lịch trình tuần tự hoá vẫn cần phải tuần tự hoá cục bộ ở mỗi trang web riêng lẻ trong hệ thống phân tán.

Câu hỏi liên quan