Mô hình khóa đọc – ghi (chia sẻ – độc quyền)

Một phần của tài liệu Bài giảng CSDL Nâng cao (Trang 25)

 Cho phép nhiều hơn một giao dịch có thể truy cập trên cùng một mục giữ liệu X nếu các giao dịch đó chỉ đọc dữ liệu.

26

 Nếu một giao dịch muốn thực hiện ghi trên mục dữ liệu X, nó phải có độc quyền truy cập trên X.

 Một khóa trên mục dữ liệu X: LOCK(X) có 3 trạng thái: “read – locked” (“share – locked”), “write – locked” (“exclusive – locked”) và “unlocked”.

 Các thao tác: read_lock, write_lock, unlock được sử dụng với khóa đọc – ghi.

 Trong mô hình khóa đọc – ghi, một bản ghi trong bảng khóa (Lock Table) gồm 4 trường:

Data item name LOCK No_of_reads Locking Transactions

o Data item name: Tên mục dữ liệu.

o LOCK: read_locked hoặc write_locked.

o Nếu LOCK là write_locked: Locking transactions là một giao dịch duy nhất đang giữ khóa ghi trên mục dữ liệu.

o Nếu LOCK là read_locked: Locking transactions là một danh sách các giao dịch giữ khóa đọc trên mục dữ liệu. No_of_reads: Số lượng các giao dịch đang giữ khóa đọc trên X.

 Trong mô hình khóa đọc – ghi, mọi giao dịch phải tuân theo các luật sau:

o Một giao dịch phải thực hiện read_lock(X) hoặc write_lock(X) trước khi read_item(X).

o Một giao dịch phải thực hiện write_lock(X) trước khi write_item(X).

o Một giao dịch phải thực hiện unlock_item(X) sau khi đã hoàn tất các thao tác read_item(X), write_item(X).

o Một giao dịch không được thực hiện read_lock(X) nếu nó đang giữ khóa đọc, hoặc ghi trên X (Hold the lock).1

o Một giao dịch không được thực hiện write_lock(X) nếu nó đang giữ một khóa đọc trên X.1

o Một giao dịch không được thực hiện unlock_item(X) nếu nó không giữ khóa trên X.

 Hình 4.1 dưới đây chỉ ra quá trình xử lý yêu cầu khóa trong mô hình khóa chia sẻ - độc quyền.

1

27

Hình 4.1: Xử lý yêu cầu khóa trong mô hình khóa chia sẻ – độc quyền

Một phần của tài liệu Bài giảng CSDL Nâng cao (Trang 25)