Khái niệm sự đặt khóa (locking)

Một phần của tài liệu Bài giảng cơ sở dữ liệu nâng cao (Trang 41 - 42)

Sựđặt khóa (còn gọi là khóa chốt, hay locking) trên một mục dữ liệu là việc hệ thống trao quyền truy xuất mục dữ liệu đó cho một giao dịch, hoặc thu hồi lại quyền này.

Có hai loại mô hình khóa: Mô hình khóa cơ bản và mô hình khóa đọc/ghi. + Mô hình khóa cơ bản: gồm các khóa Lock và UnLock:

Ký hiệu LOCK A là chỉ mục dữ liệu A đã được trao quyền truy xuất cho một giao dịch T, giao dịch T có toàn quyền đọc hoặc ghi trên A.

Ký hiệu UNLOCK A là chỉ mục dữ liệu A đã thu hồi quyền truy xuất của giao dịch T trước đó và sẵn sàng trao quyền truy xuất cho một giao dịch mới.

+ Mô hình khóa đọc/ghi: gồm các khóa Read Lock, Write Lock và UnLock:

Ký hiệu RLOCK A (khóa đọc): Cho phép giao dịch T chỉ đọc mục dữ liệu A, mà không được phép ghi trên A.

Ký hiệu WLOCK A (khóa ghi): Cho phép giao dịch T được đọc và ghi trên mục dữ liệu A,

như vậy khóa ghi WLOCK A là tương đương khóa cơ bản LOCK A.

Tại mỗi thời điểm, chỉ có một tập con các mục dữ liệu được đặt khóa. Bộ quản lý khóa sẽ lưu trữ các khóa hiện hành trong “bảng khóa”, là tập các bộ sau:

Lock table = {(I, L, T)}

Trong đó, mỗi bộ của bảng gồm 3 thành phần I, L, T với ý nghĩa như sau: Giao dịch T được đặt một khóa L (với L là khóa LOCK, RLOCK hoặc WLOCK) trên mục dữ liệu I. Như vậy khóa L không chỉ gắn với mỗi giao dịch T, mà còn gắn với mục dữ liệu I. Nếu L = Null có nghĩa là tại thời điểm đó mục dữ liệu I chưa có giao dịch nào đặt khóa.

Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 41

2.4.3. Lịch biểu trong các giao dịch phân tán

Một phần của tài liệu Bài giảng cơ sở dữ liệu nâng cao (Trang 41 - 42)