Khi một giao dịch cần kiểm tra dữ liệu trước, sau đó mới quyết định có cập nhật hay không. Anh/chị cần thiết lập khoá như thế nào?
Yêu cầu cấp một khoá ghi cho nó trên một mục dữ liệu mà trên mục đó đang có một khoá đọc (của giao dịch khác).
Yêu cầu cấp một khoá ghi cho nó trên một mục dữ liệu mà trên mục đó đang có một khoá chờ được giải phóng.
Yêu cầu cấp một khoá đọc cho nó trên một mục dữ liệu sau đó chuyển giao giao dịch và yêu cầu khoá ghi.
Yêu cầu cấp một khoá đọc cho nó trên một mục dữ liệu sau đó nâng cấp khoá lên thành khoá ghi.
Đáp án đúng: A
Đáp án đúng là D. Khi một giao dịch cần kiểm tra dữ liệu trước khi quyết định cập nhật, nó cần đọc dữ liệu trước. Sau khi đọc và xác định cần cập nhật, giao dịch sẽ nâng cấp khóa đọc thành khóa ghi để thực hiện việc cập nhật. Việc này đảm bảo không có xung đột ghi-ghi (write-write conflict) và vẫn cho phép các giao dịch khác đọc dữ liệu đồng thời (cho đến khi khóa được nâng cấp).
- A. Yêu cầu cấp một khóa ghi trên một mục dữ liệu đang có khóa đọc của giao dịch khác sẽ bị từ chối ngay lập tức để tránh xung đột.
- B. Yêu cầu cấp khóa ghi trên mục dữ liệu đang chờ giải phóng không phù hợp trong trường hợp cần kiểm tra dữ liệu trước.
- C. Việc yêu cầu khóa đọc rồi chuyển giao giao dịch và yêu cầu khóa ghi là không hiệu quả và có thể gây ra các vấn đề về đồng thời. Thay vào đó, nâng cấp khóa đọc lên khóa ghi là giải pháp tốt hơn.