Lịch biểu của các giao tác

Một phần của tài liệu Xử lý truy vấn và quản lý giao tác trong cơ sở dữ liệu (Trang 66 - 67)

Một lịch biểu S của n giao tác T1, T2,...Tn là thứ tự các hoạt động của giao tác đƣa ra để ràng buộc, các thao tác của giao tác Ti trong S phải xuất hiện theo đúng thứ tự trong Ti. Tuy nhiên các thao tác từ các giao tác Tj khác có thể xen kẽ với các thao tác của Ti trong S. Vì thế cần cân nhắc trật tự của các thao tác trong S. [1, 4]

Với mục đích khôi phục và điều khiển đồng thời, do đó cần quan tâm chủ yếu vào các thao tác read-item và write_item, cũng nhƣ xác nhận và hủy bỏ các giao tác. Sử dụng ký hiệu r, w, c và a đối với các thao tác read_item, write_item, commit, abort, và bổ xung các chỉ số định danh giao tác (số giao tác) vào từng thao tác trong lịch biểu. Trong các ký hiệu này, mục cơ sở dữ liệu X đƣợc đọc hoặc viết theo các thao tác r và w trong dấu ngoặc đơn “( )”. Ví dụ, lịch biểu của hình 2.3(a) ở trang 56 gọi là Sa và có thể đƣợc viết nhƣ sau:

Sa: r1(X); r2(X); w1(X); r1(Y); w2(X); w1(Y);

Hình 2.3(b) ở trang 57 cho tƣơng ứng lịch biểu Sb nếu giao tác T1 đƣợc huỷ bỏ sau khi thực hiện thao tác read_item(Y):

Sb: r1(X); w1(X); r2(X); w2(X); r1(Y); a1;

Hai thao tác trong một lịch biểu đƣợc gọi là xung đột nếu chúng thỏa mãn cả 3 điều kiện sau:

(1) Chúng thuộc các giao tác khác nhau

(2) Chúng truy cập vào cùng mục dữ liệu (ví dụ là X) (3) Ít nhất một trong các thao tác là write_item(X).

Xét lịch biểu Sa, các thao tác r1(X) và w2(X) xung đột, tƣơng tự các thao tác r2(X) với w1(X) và w1(X) với w2(X) là xung đột. Tuy nhiên, các thao tác r1(X) và r2(X) không xung đột bởi vì chúng đều là các thao tác đọc; các thao tác w2(X) và w1(Y) không xung đột bởi vì chúng thao tác trên các mục

dữ liệu phân biệt X và Y; và các thao tác r1(X) và w1(X) không xung đột bởi vì chúng thuộc cùng một giao tác.

Một lịch biểu S của n giao tác T1, T2,...,Tn đƣợc gọi là một lịch biểu hoàn thành nếu các điều kiện sau đây đƣợc đảm bảo [4, 6]:

1. Các thao tác trong S chính xác là các thao tác trong T1, T2, ...,Tn, thêm một thao tác chấp nhận hay hủy bỏ nhƣ là thao tác cuối đối với mỗi giao tác trong lịch biểu

2. Đối với bất kỳ cặp thao tác từ cùng giao tác Ti thứ tự xuất hiện của chúng trong S giống nhƣ thứ tự của chúng trong Ti.

3. Đối với bất kỳ 2 thao tác xung đột nào, một trong 2 thao tác đó phải xảy ra trƣớc thao tác còn lại trong lịch biểu.

Nói chung, khó có đƣợc lịch biểu đầy đủ trong một hệ thống xử lý giao tác, bởi vì các giao tác mới đang tiếp tục đƣợc chấp nhận vào hệ thống.

Một phần của tài liệu Xử lý truy vấn và quản lý giao tác trong cơ sở dữ liệu (Trang 66 - 67)