Đáp án đúng: B
Câu hỏi này kiểm tra kiến thức về tính chất "có thể phục hồi" (recoverable) của một lịch trình (schedule) trong hệ quản trị cơ sở dữ liệu. Một lịch trình được coi là "có thể phục hồi" nếu như, với mọi giao dịch T trong lịch trình đó, nếu T đọc dữ liệu mà một giao dịch U đã ghi, thì giao dịch U phải commit trước khi T commit. Điều này đảm bảo rằng nếu T commit, nó sẽ đọc dữ liệu đã được commit bởi U, và nếu U bị rollback, thì T cũng phải bị rollback để duy trì tính nhất quán của cơ sở dữ liệu.
Phân tích các lựa chọn:
* **A. Mọi lịch trình có thể phục hồi đều có thể tuần tự hóa được:** Sai. Tính "có thể phục hồi" và tính "tuần tự hóa" là hai khái niệm độc lập. Một lịch trình có thể phục hồi không nhất thiết phải tuần tự hóa được, và ngược lại.
* **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:** Sai. Phát biểu này không chính xác. Giao dịch T đọc từ giao dịch U thì U phải commit trước T commit, không phải là "đượ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ỏ:** Đúng. Đây chính là định nghĩa của lịch trình có thể phục hồi. Nếu một giao dịch T đọc dữ liệu từ một giao dịch U, và U bị hủy bỏ (rollback), thì T cũng phải bị hủy bỏ để đảm bảo tính nhất quán. Vì vậy, không có giao dịch nào bị hủy bỏ vì một giao dịch mà nó đọc từ đó đã bị hủy 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ự:** Sai. Lịch trình phục hồi tồn tại và là một khái niệm quan trọng trong quản lý giao dịch cơ sở dữ liệu.
Vậy, đáp án đúng là C.