JavaScript is required

Anh/chị hãy cho biết phát biểu nào sau đây về lịch trình có thể phục hồi là đúng?

A.

Mọi lịch trình có thể phục hồi đều có thể tuần tự hóa được.

B.

Trong một lịch trình có thể phục hồi, nếu một giao dịch T được thực hiện, thì bất kỳ giao dịch nào khác mà T đọc từ đó cũng phải được thực hiện.

C.

Trong một lịch trình có thể phục hồi, sẽ không có giao dịch nào bị hủy bỏ vì một giao dịch mà nó đọc từ đó đã bị huỷ bỏ

D.

Không tồn tại lịch trình phục hồi, chỉ có lịch trình tuần tự.

Trả lời:

Đáp án đúng: B


Câu hỏi này kiểm tra kiến thức về lịch trình có thể phục hồi (recoverable schedule) trong quản lý cơ sở dữ liệu. Lịch trình có thể phục hồi là một loại lịch trình đảm bảo rằng nếu một giao dịch T đọc dữ liệu từ một giao dịch T', thì T' phải commit trước khi T commit. Điều này đảm bảo rằng nếu T bị rollback, thì T' cũng phải được rollback để duy trì tính nhất quán của dữ liệu.

Xét các phương án:

  • A: Sai. Lịch trình có thể phục hồi không nhất thiết phải tuần tự hóa được. Tính tuần tự hóa (serializability) là một khái niệm khác, đảm bảo rằng kết quả của lịch trình tương đương với việc thực hiện các giao dịch một cách tuần tự.
  • B: Đúng. Đây chính là định nghĩa của lịch trình có thể phục hồi. Nếu T đọc từ T', T' phải commit trước T. Nếu T' bị abort, T không được commit.
  • C: Sai. Trong lịch trình có thể phục hồi, một giao dịch có thể bị hủy bỏ nếu nó đọc dữ liệu từ một giao dịch đã bị hủy bỏ (cascading rollback).
  • D: Sai. Lịch trình phục hồi là một khái niệm quan trọng và có tồn tại.

Vậy, đáp án đúng là B.

Câu hỏi liên quan