Kiểm Thử Tính Khả Tuần Tự Xung đột By OpenStax (Page 11/12)
Có thể bạn quan tâm
Kiểm thử tính khả tuần tự
Khi thiết kế các sơ đồ điều khiển cạnh tranh, ta phải chứng tỏ rằng các lịch trình được sinh ra bởi sơ đồ là khả tuần tự. Để làm điều đó, trước tiên ta phải biết làm thế nào để xác định, với một lịch trình cụ thể đã cho, có là khả tuần tự hay không.
Kiểm thử tính khả tuần tự xung đột
Giả sử S là một lịch trình. Ta xây dựng một đồ thị định hướng, được gọi là đồ thị trình tự (precedence graph), từ S. Đồ thị gồm một cặp (V, E) trong đó V là tập các đỉnh và E là tập các cung. Tập các đỉnh bao gồm tất cả các giao dịch tham gia vào lịch trình. Tập các cung bao gồm tất cả các cung dạng Ti Tj sao cho một trong các điều kiện sau được thoả mãn:
- Ti thực hiện Write(Q) trước Tj thực hiện Read(Q).
- Ti thực hiện Read(Q) trước khi Tj thực hiện Write(Q).
- Ti thực hiện Write(Q) trước khi Tj thực hiện Write(Q).
Nếu một cung Ti Tj tồn tại trong đồ thị trình tự, thì trong bất kỳ lịch trình tuần tự S’ nào tương đương với S, Ti phải xuất hiện trước Tj .
Đồ thị trình tự đối với schedule-1 là:
Đồ thị trình tự đối với schedule-2 là:
Đồ thị trình tự đối với schedule-4 chứa các cung T1 T2 vì T1 thực hiện Read(A) trước T2 thực hiện Write(A). Nó cũng chứa cung T2 T1 vì T2 thực hiện Read(B) trước khi T1 thực hiện Write(B):
Nếu đồ thị trình tự đối với S có chu trình, khi đó lịch trình S không là khả tuần tự xung đột. Nếu đồ thị không chứa chu trình, khi đó lịch trình S là khả tuần tự xung đột. Thứ tự khả tuần tự có thể nhận được thông qua sắp xếp topo (topological sorting), nó xác định một thứ tự tuyến tính nhất quán với thứ tự bộ phận của đồ thị trình tự. Nói chung, có một vài thứ tự tuyến tính có thể nhận được qua sắp xếp topo. Ví dụ, đồ thị sau:
Có hai thứ tự tuyến tính chấp nhận được là:
figure IV-
Như vậy, để kiểm thử tính khả tuần tự xung đột, ta cần xây dựng đồ thị trình tự và gọi thuật toán phát hiện chu trình. Ta nhận được một sơ đồ thực nghiệm để xác định tính khả tuần tự xung đột. Như ví dụ, schedule-1 và schedule-2, đồ thị trình tự của chúng không có chu trình, do vậy chúng là các chu trình khả tuần tự xung đột, trong khi đồ thị trình tự của schedule-4 chứa chu trình do vậy nó không là khả tuần tự xung đột.
Kiểm thử tính khả tuần tự view
Ta có thể sửa đổi phép kiểm thử đồ thị trình tự đối với tính khả tuần tự xung đột dể kiểm thử tính khả tuần tự view. Tuy nhiên, phép kiểm thử này phải trả giá cao về thời gian chạy.
Xét lịch trình schedule-9, nếu ta tuân theo quy tắc trong phép kiểm thử tính khả tuần tự xung đột để tạo đồ thị trình tự, ta nhận được đồ thị sau:
figure IV-
Đồ thị này có chu trình, do vậy schedule-9 không là khả tuần tự xung đột. Tuy nhiên, đã đã thấy nó là khả tuần tự view (do nó tương đương với lịch trình tuần tự<T3, T4 , T6>). Cung T3 T4 không được xen vào đồ thị vì các giá trị của hạng mục Q được sản sinh bởi T3 và T4 không được dùng bởi bất kỳ giao dịch nào khác và T6 sản sinh ra giá trị cuối mới của Q. Các chỉ thị Write(Q) của T3 và T4 được gọi là các Write vô dụng (Useless Write). Điều trên chỉ ra rằng không thể sử dụng đơn thuần sơ đồ đồ thị trình tự dể kiểm thử tính khả tuần tự view. Cần thiết phát triển một sơ đồ cho việc quyết định cung nào là cần phải xen vào đồ thị trình tự.
Từ khóa » Khả Tuần Tự
-
Sửa Bài Khả Tuần Tự Xung đột - YouTube
-
Hệ Quản Trị Csdl Thầy Trí : View, Khả Tuần Tự View - YouTube
-
Tính Khả Tuần Tự Của Lịch Biểu - Bài Giảng Về Cơ Sở Dữ Liệu Nâng Cao
-
Giao Dịch Cơ Sở Dữ Liệu(transaction) - .vn
-
[PDF] GIAO TÁC VÀ LỊCH GIAO TÁC
-
[PDF] Lịch Giao Tác
-
[PDF] HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
-
Tính Khả Tuần Tự Của Lịch Thao Tác Trong Cơ Chế Lock - TaiLieu.VN
-
Giải Bài Tập Lịch Khả Tuần Tự - Thả Rông
-
Tính Khả Tuần Tự Của Lịch Thao Tác Trong Cơ Chế Lock
-
Hệ Quản Trị Cơ Sở Dữ Liệu - Chương 4 - Giao Dịch ( Transaction )
-
Bài Giảng Chương II: Quản Lý Truy Xuất đồng Thời - Tài Liệu Mới