JavaScript is required

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?

A.
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).
B.
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.
C.
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.
D.

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.

Trả lời:

Đáp án đúng: D


Câu hỏi này liên quan đến cơ chế khóa trong quản lý giao dịch cơ sở dữ liệu, đặc biệt là khi một giao dịch cần đọc dữ liệu trước khi quyết định cập nhật nó. Phương án A không đúng vì không thể cấp khóa ghi cho một mục dữ liệu nếu mục đó đang có khóa đọc của giao dịch khác. Điều này sẽ vi phạm tính cô lập của giao dịch. Phương án B không rõ ràng và không phù hợp với các giao dịch cơ bản. Khóa chờ thường liên quan đến cơ chế phức tạp hơn để xử lý deadlock hoặc contention, nhưng không phải là giải pháp trực tiếp cho việc đọc trước khi ghi. Phương án C không hiệu quả. Việc chuyển giao giao dịch và yêu cầu khóa ghi sau đó không phải là một phương pháp chuẩn và có thể dẫn đến các vấn đề về đồng thời và nhất quán dữ liệu. Phương án D là đáp án đúng. Cơ chế "nâng cấp khóa" (lock upgrade) cho phép một giao dịch giữ khóa đọc trên một mục dữ liệu, sau đó nâng cấp khóa đó thành khóa ghi khi cần thiết để cập nhật dữ liệu. Điều này tránh việc phải thả khóa đọc và yêu cầu khóa ghi sau, giúp giảm thiểu nguy cơ xung đột và cải thiện hiệu suất. Vì vậy, đáp án đúng là D: 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.

Câu hỏi liên quan