- Các khái niệm về Lịch biểu trong giao dịch phân tán (Schedule)
P: READ A; A:= A+ 1; WRIT EA
2.7.3. Một số kịch bản hợp thức hóa
Ta sẽ trình bày một số tình huống có thể xảy ra trong quá trình hợp thức hóa của một hệ thống phân tán gồm 1 trạm điều phối, 2 trạm tham gia S1, S2.
Kịch bản 1: Giao dịch bình thường hợp thức hóa được.
Hình 3.12. Hợp thức hóa bình thường Hình 3.13. Giao dịch bị hủy bỏ
Trong kịch bản này, tại thời điểm giao dịch, trạm điều phối và các trạm tham gia đều hoạt động bình thường, trao đổi thông tin giữa các trạm thực hiện tốt nên không có trục trặc gì xảy ra trong quá trình giao dịch vì vậy giao dịch được hợp thức hóa nhanh chóng, CSDL cập nhật các dữ liệu đã thay đổi bởi tất cả các trạm. Các thủ tục hợp thức hóa theo hai giai đoạn được thể hiện trong hình 3.12.
Kịch bản 2: Hỏng hóc tại trạm tham gia S2 trước khi sẵn sàng, sau thời gian trễ không có phản hổi, trạm điều phối ra lệnh ‘Hủy bỏ’ huỷ giao dịch (Hình 3.13).
Kịch bản 3: Hỏng hóc của S2 sau khi đã thông báo “sẵn sàng” và sau đó khôi phục được. Hợp thức hoá được sau khi S2 hoạt động (Hình 3.14).
Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 53
Kịch bản 4: Hỏng hóc tại trạm điều phối (ký hiệu x x x x trong hình vẽ) khi nhận được tín hiệu sẵn sàng. Quá trình hợp thức hóa được thực hiện sau khi trạm điều phối hoạt động trở lại (Hình 3.15).
Hình 3.15. Hỏng hóc tại trạm điều phối được khôi phục, hợp thức hóa được thực hiện
Kết luận: Giao thức hợp thức hoá 2 pha sẽđảm bảo tính nguyên tố của giao dịch toàn cục chống lại một số kiểu hỏng hóc, trừ hỏng hóc do “thảm họa”. Đây là một mô hình hợp thức đơn giản nhất. Với những hệ thống phức tạp và yêu cầu có độ an toàn cao thì ta có giao thức hợp thức hoá 3 pha [5].
Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 54
BÀI TẬP CHƯƠNG 2
1. Mục đích và yêu cầu của sự phân đoạn trong CSDL phân tán. Trình bày các phương pháp phân đoạn và các biểu thức khôi phục.
2. Định nghĩa các phép kết nối, nửa kết nối của 2 quan hệ, cho thí dụ minh họa.. Việc thay thế phép kết nối trực tiếp bởi các các phép kết nối và nửa kết nối (theo chiến lược nửa kết nối) gồm những bước nào?
3. Việc định giá các câu hỏi phân tán gồm những giai đoạn nào. Việc tối ưu hóa câu hỏi nhằm mục đích gì, và có thểđược thực hiện ở các giai đoạn nào?
4. Cho hai quan hệr và s như các bảng dưới đây:
r A B E s B C D E 1 4 1 4 6 7 1 2 5 2 5 7 7 2 3 6 3 4 8 9 3 4 7 4 5 9 9 4 5 8 5 a. Tính các kết nối r s ; s r b. Tính các nửa kết nôi: r s ; s r 5. Cho 3 quan hệ: r1 A B C r2 C D E r3 B C D F 1 3 5 5 7 2 3 5 7 1 1 4 5 5 8 4 4 6 8 2 2 3 6 5 9 6 3 5 9 3 2 4 6 6 8 8 4 6 8 4
a. Tính kết nối 3 quan hệ trên theo trình tự: (r1 r2) r3
b. Tính kết nối 3 quan hệ trên theo trình tự: (r1 r3) r2. c. Trình tự kết nối nào tốt hơn, tại sao?
6. Cho 2 quan hệ r và s như các bảng dưới đây. Tính kết nối 2 quan hệ bằng phương pháp kết nối trực tiếp và áp dụng chiến lược nửa kết nối. So sánh chi phí của 2 phương pháp:
r A B E s B C D E 1 4 1 5 6 7 1 2 5 2 4 7 7 1 3 6 3 5 8 9 2 4 7 4 4 9 9 2 5 8 5
7. Trình bày khái niệm về giao dịch, giao dịch phân tán, tính nguyên tố của giao dịch phân tán.
8. Thế nào là mục dữ liệu. Trình bày các khái niệm về một lịch biểu tuần tự, khả tuần tự và bất khả tuần tự?
9. Trình bày quy tắc điều khiển tương tranh bằng việc đặt khoá (locking): mô hình khóa cơ bản và mô hình phân biệt khoá đọc, khoá ghi. Thế nào là tình trạng khoá chết (dead lock) đối với một tập các giao dịch phân tán, cách khắc phục?
Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 55
10. Trình bày quy tắc điều khiển tương tranh bằng thời dấu, trong truờng hợp cơ bản và trường hợp phân biệt các thao tác đọc / ghi của các giao dịch phân tán.
11. Có hai giao dịch T1 và T2 truy xuất mục dữ liệu A theo lịch biểu dưới đây. Các thời dấu của các giao dịch và thời dấu đọc/ghi ban đầu của các mục dữ liệu cho trong bảng dưới đây. Các giao dịch đều cộng thêm giá trị vào mục dữ liệu khi thực hiện được thao tác WRITE.
Thời dấu T1 T2 A = 5 150 160 RT = WT = 0 Thứ tự: (1) READ A (2) READ A (3) A := A+1 (4) A := A+2 (5) WRITE A (6) WRITE A
a. Hãy xác định thời dấu mà mục dữ liệu A được gán sau mỗi bước (ghi vào cột cuối cùng, sau mỗi bước).
b. Giả sử giá trị ban đầu của A = 5, sau bước (6) giá trị của A bằng bao nhiêu?. c. Trong các giao dịch trên, có giao dịch nào bị hủy bỏ không?, tại sao?
d. Viết 1 lịch biểu tuần tự cho các giao dịch, tính giá trịlưu trữ trong các mục dữ liệu khi kết thúc lịch biểu tuần tự. Lịch biểu đã cho ban đầu có phải lịch biểu khả tuần tự không?
12. Cũng hỏi như bài tập 6, với giả thiết thời dấu ban đầu của giao dịch T1 là 180, còn thời dấu của T2 là 160.
13. Có ba giao dịch T1, T2, T3 truy xuất các mục dữ liệu A, B và C theo lịch biểu dưới đây. Các thời dấu của các giao dịch và thời dấu đọc/ghi ban đầu của các mục dữ liệu cho trong bảng. Giả sử các mục dữ liệu có giá trịban đầu bằng 5, các giao dịch đều cộng thêm 5 vào mục dữ liệu khi thực hiện được thao tác WRITE. Thời dấu T1 T2 T3 A = 5 B = 5 C = 5 40 30 50 RT = WT = 0 RT = WT = 0 RT = WT = 0 Thứ tự: (1) READ A (2) WRITE A (3) READ C (4) WRITE C (5) WRITE A (6) READ B (7) WRITEB
a. Trong lịch biểu trên, thao tác nào không thực hiện được và giao dịch nào bị huỷ bỏ? Tại sao?
b. Viết 1 lịch biểu tuần tự cho các giao dịch, tính giá trịlưu trữ trong các mục dữ liệu khi kết thúc lịch biểu.
c. Viết 1 lịch biểu khả tuần tự cho các giao dịch, tính giá trịlưu trữ trong các mục dữ liệu khi kết thúc lịch biểu.
14. Cũng hỏi như bài tập 8, với giả thiết ba giao dịch T1, T2 và T3 được gán các thời dấu lần lượt là 200, 250 và 300.
15. Có ba giao dịch T1, T2, T3 truy xuất các mục dữ liệu A, B và C theo lịch biểu dưới đây. Các thời dấu của các giao dịch và thời dấu đọc/ghi ban đầu của các mục dữ liệu cho trong bảng. Giả sử các mục dữ
Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 56
liệu có giá trịban đầu bằng 10, các giao dịch đều cộng thêm 5 vào mục dữ liệu khi thực hiện được thao tác WRITE. Thời dấu T1 T2 T3 A = 10 B =10 C = 10 70 50 60 RT = WT = 0 RT = WT = 0 RT = WT = 0 Thứ tự: (1) READ A (2) WRITE A (3) READ C (4) WRITE C (5) WRITE A (6) READ B (7) WRITE B
a. Trong lịch biểu trên, thao tác nào không thực hiện được và giao dịch nào bị huỷ bỏ? Tại sao?
b. Viết 1 lịch biểu tuần tự cho các giao dịch, tính giá trịlưu trữ trong các mục dữ liệu khi kết thúc lịch biểu.
c. Viết 1 lịch biểu khả tuần tự cho các giao dịch, tính giá trịlưu trữ trong các mục dữ liệu khi kết thúc lịch biểu.
16.Trình bày giao thức hợp thức hoá 2 pha cho một giao dịch phân tán. Giao thức hợp thức hóa 2 pha cho một giao dịch phân tán nhằm mục đích gì?.
Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 57
Chương 3
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU SUY DIỄN
3.1. NGUYÊN LÝ CỦA MỘT HỆCƠ SỞ DỮ LIỆU SUY DIỄN