Tin Học Quản Trị - Hệ Cơ Sở Dữ Liệu phần 7 ppt

12 514 1
Tin Học Quản Trị - Hệ Cơ Sở Dữ Liệu phần 7 ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

71 Bài giảng tóm tắt Hệ quản trị sở liệu hoạt động giao dịch tác động lẫn Vì lý này, ta khơng giải thích kiểu hoạt động mà giao dịch thực mục liệu Thay vào đó, ta xét hai hoạt động: Read Write Ta giả thiết thị Read(Q) thị Write(Q) mục liệu Q, giao dịch thực dãy tuỳ ý hoạt động Q lưu trú buffer cục giao dịch Vì ta nêu thị Read Write thời lịch, biểu diễn với quy ước thời lịch là: T2 T1 Read(A); Write(A); Read(A); Write(A); Read(B); Write(B); Read(B); Write(B); Tuần tự xung đột (Conflict Serializability) Xét thời lịch S có hai thị liên tiếp Ii Ij giao dịch Ti , Tj tương ứng (i ≠ j) Nếu Ii Ij tham khảo đến mục liệu khác nhau, ta đổi chỗ Ii Ij mà không làm ảnh hưởng đến kết thị thời lịch Tuy nhiên, Ii Ij tham khảo mục liệu Q, thứ tự hai bước quan trọng Do ta thực chỉ thị Read Write, nên ta có bốn trường hợp cần phải xét sau: Ii = Read(Q); Ij = Read(Q): Thứ tự Ii Ij không gây vấn đề nào, Ti Tj đọc giá trị Q đến thứ tự Ii Ij Ii = Read(Q); Ij = Write(Q): thứ tự thực Ii Ij quan trọng Ii = Write(Q); Ij = Read(Q): thứ tự thực Ii Ij quan trọng Ii = Write(Q); Ij = Write(Q): Cả hai thị hoạt động Write, thứ tự hai thị không ảnh hưởng đến hai giao dịch T T Tuy nhiên, giá trị nhận i j thị Read kế S bị ảnh hưởng kết phụ thuộc vào thị Write thực sau hai thị Write Nếu khơng cịn thị Write sau Ii Ij S, thứ tự thứ tự thực Ii Ij ảnh hưởng trực tiếp đến giá trị cuối Q trạng thái CSDL kết (của thời lịch S) 72 Bài giảng tóm tắt Hệ quản trị sở liệu Như trường hợp I I thị Read, thứ tự thực hai i j thị (trong S) khơng gây vấn đề Ta nói Ii Ij xung đột hoạt động nằm giao dịch khác nhau, tiến hành mục liệu có hoạt động Write Ví dụ, thời lịch schedule - 3: Chỉ thị Write(A) T1 xung đột với Read(A) T2 Tuy nhiên, thị Write(A) T2 không xung đột với thị Read(B) T1 thị truy xuất mục liệu khác Ii Ij hai thị liên tiếp thời lịch S Nếu Ii Ij thị giao dịch khác khơng xung đột, ta đổi thứ tự chúng mà khơng làm ảnh hưởng đến kết xử lý ta nhận thời lịch S’ tương đương với S Chẳng hạn, thị Write(A) T2 không xung đột với thị Read(B) T1, ta đổi chỗ thị để thời lịch tương đương – thời lịch T1 T2 Read(A); Write(A); Read(A); Read(B); Write(A); Write(B); Read(B); Write(B); Thời lịch Ta tiếp tục đổi chỗ thị không xung đột sau: • Đổi chỗ thị Read(B) T1 với thị Read(A) T2 • Đổi chỗ thị Write(B) T1 với thị Write(A) T2 • Đổi chỗ thị Write(B) T1 với thị Read(A) T2 Kết cuối bước đổi chỗ thời lịch (thời lịch –thời lịch tuần tự) tương đương với thời lịch ban đầu (thời lịch 3): 73 Bài giảng tóm tắt Hệ quản trị sở liệu T1 Read(A); Write(A); Read(B); Write(B); T2 Read(A); Write(A); Read(B); Write(B); Thời lịch Sự tương đương cho ta thấy: bất chấp trạng thái hệ thống ban đầu, thời lịch-3 sinh trạng thái cuối thời lịch Tương đương xung đột (conflict equivalent):Nếu thời lịch S biến đổi thành thời lịch S’ dãy thao tác đổi chỗ thị khơng xung đột, ta nói S S’ tương đương xung đột Ví dụ, thời lịch nêu trên, ta thấy thời lịch-1 tương đương xung đột với thời lịch-3 Khả xung đột (conflict serializable): Một thời lịch S khả xung đột (conflict serializable) tương đương xung đột với thời lịch Ví dụ, thời lịch khả xung đột cịn thời lịch khơng tương đương xung đột với thời lịch khơng khả xung đột: T3 Read(Q); T4 Write(Q); Write(Q); Thời lịch Có thể có hai thời lịch sinh kết quả, khơng tương đương xung đột Ví dụ, giao dịch T5 chuyển 10$ từ tài khoản B sang tài khoản A Ta xét thời lịch đây, thời lịch không tương đương xung đột với thời lịch < T1, T5 > thời lịch thị Write(B) T5 xung đột với thị Read(B) T1 ta di chuyển tất thị T1 trước thị T5 việc hoán đổi liên tiếp thị không xung đột Tuy nhiên, giá trị sau tài khoản A B sau thực thời lịch sau thực thời lịch A 74 Bài giảng tóm tắt Hệ quản trị sở liệu 960 B 2040 tương ứng Qua ví dụ ta thấy cần thiết phải phân tích tính tốn thực giao dịch mà không hoạt động Read Write Tuy nhiên phân tích nặng nề phải trả giá tính tốn cao T1 T5 Read(A); A:=A-50; Write(A); Read(B); B:=B-10; Write(B); Read(B); B:=B+50; Write(B); Read(A); A:=A+10 Write(A); Schedule - Tuần tự View (View Serializability) Xét hai thời lịch S S’, tập hợp giao dịch tham gia vào hai thời lịch Các thời lịch S S’ gọi tương đương view ba điều kiện sau thỏa mãn: Đối với mục liệu Q, giao dịch Ti đọc giá trị khởi đầu Q thời lịch S, giao dịch Ti phải đọc giá trị khởi đầu Q thời lịch S’ Đối với mục liệu Q, giao dịch Ti thực Read(Q) thời lịch S giá trị sản sinh giao dịch Tj Ti phải đọc giá trị Q sinh giao dịch Tj S’ Đối với mục liệu Q, giao dịch thực hoạt động Write(Q) sau thời lịch S, phải thực hoạt động Write(Q) sau thời lịch S’ Điều kiện đảm bảo giao dịch đọc giá trị hai thời lịch thực tính tốn Điều kiện cặp với điều kiện đảm bảo hai thời lịch cho kết trạng thái cuối hệ thống Trong ví dụ trước, thời lịch-1 khơng tương đương view với thời lịch thời lịch-1, giá trị 75 Bài giảng tóm tắt Hệ quản trị sở liệu tài khoản A đọc giao dịch T2 sinh T1, điều không xảy thời lịch-2 Thời lịch-1 tương đương view với thời lịch-3 giá trị tài khoản A B đọc T2 sinh T1 hai thời lịch Quan niệm tương đương view đưa đến quan niệm view Ta nói thời lịch S khả view (view serializable) tương đương view với thời lịch Ta xét thời lịch sau: T3 Read(Q); T4 T6 Write(Q); Write(Q); Write(Q); Thời lịch Nó tương đương view với thời lịch < T3, T4, T6 > thị Read(Q) đọc giá trị khởi đầu Q hai thời lịch T6 thực Write sau hai thời lịch thời lịch khả view Mỗi thời lịch khả xung đột khả view, có thời lịch khả view không khả xung đột (ví dụ thời lịch 9) Trong thời lịch giao dịch T4 T6 thực hoạt động Write(Q) mà không thực hoạt động Read(Q), Các Write dạng gọi Write mờ (blind write) Các Write mờ xuất thời lịch khả view không khả xung đột Tính khả phục hồi (Recoverability) Ta nghiên cứu thời lịch chấp nhận quan điểm qn CSDL với giả thiết khơng có giao dịch thất bại Ta xét hiệu thất bại giao dịch thực tương tranh Nếu giao dịch Ti thất bại lý đó, ta cần hủy bỏ hiệu giao dịch để đảm bảo tính nguyên tử giao dịch Trong hệ thống cho phép thực tương tranh, cần thiết đảm bảo giao dịch phụ thuộc vào Ti phải bị bỏ Để thực chắn này, ta cần bố trí hạn chế kiểu thời lịch phép hệ thống Thời lịch khả phục hồi (Recoverable Schedule) Xét thời lịch 10 T9 giao dịch thực thị Read(A) Giả sử hệ thống cho phép T9 bàn giao sau thực thị Read(A) Như T9 bàn 76 Bài giảng tóm tắt Hệ quản trị sở liệu giao trước T8 Giả sử T8 thất bại trước bàn giao, T9 đọc giá trị mục giữ liệu A viết T8 , ta phải bỏ dở T9 để đảm bảo tính nguyên tử giao dịch Tuy nhiên T9 bàn giao bỏ dở Ta có tình khơng thể khôi phục sau thất bại T8 T8 Read(A); Write(A); T9 Read(A); Read(B) Thời lịch 10 Thời lịch 10 ví dụ thời lịch khơng phục hồi không phép Hầu hết hệ CSDL đòi hỏi tất thời lịch phải phục hồi Một thời lịch khả phục hồi thời lịch đó, cặp giao dịch Ti , Tj , Tj đọc mục liệu viết Ti hoạt động bàn giao Tj phải xảy sau hoạt động bàn giao Ti Thời lịch cascadeless (Cascadeless Schedule) Ngay thời lịch khả phục hồi, để phục hồi sau thất bại giao dịch Ti ta phải cuộn lại vài giao dịch Tình xảy giao dịch đọc liệu viết Ti Ta xét thời lịch 11 sau T10 Read(A); Read(B) Write(A); T11 T12 Read(A); Write(A); Read (A) Thời lịch 11 Giao dịch T10 viết giá trị đọc T11 Giao dịch T12 đọc giá trị viết T11 Giả sử điểm T10 thất bại T10 phải cuộn lại, T11 phụ thuộc vào T10 nên T11 phải cuộn lại với T12 Hiện tượng giao dịch thất bại kéo theo dãy giao dịch phải cuộn lại gọi cuộn lại hàng loạt (cascading rollback) Cuộn lại hàng loạt dẫn đến việc huỷ bỏ khối lượng công việc đáng kể Phải hạn chế thời lịch để việc cuộn lại hàng loạt xảy Các thời lịch gọi thời lịch cascadeless Bài giảng tóm tắt Hệ quản trị sở liệu 77 Một thời lịch cascadeless thời lịch cặp giao dịch Ti , Tj Tj đọc mục liệu viết trước Ti, hoạt động bàn giao Ti phải xuất trước hoạt động đọc Tj Một thời lịch cascadeless khả phục hồi Thực thi cô lập (Implementation of Isolation) Có nhiều sơ đồ điều khiển tương tranh sử dụng để đảm bảo tính chất thời lịch phải có (nhằm giữ CSDL trạng thái quán, cho phép quản lý giao dịch ), nhiều giao dịch thực tương tranh, thời lịch chấp nhận sinh ra, hệ điều hành chia sẻ thời gian tài nguyên giao dịch Ví dụ ta xét sơ đồ điều khiển tương tranh sau: giao dịch cấp khóa (lock) tồn CSDL trước khởi động tháo khóa bàn giao Trong giao dịch giữ khóa, khơng giao dịch khác cấp khóa phải chờ đến tận khóa tháo Trong chế khóa, giao dịch thực thời điểm thời lịch sinh Sơ đồ điều khiển tương tranh cho hiệu tương tranh thấp Ta nói cung cấp bậc tương tranh thấp (poor degree of concurrency) Mục đích sơ đồ điều khiển tương tranh cung cấp bậc cạnh tranh cao đảm bảo thời lịch sinh khả xung đột khả view cascadeless Thuật tốn kiểm tra tính khả Thuật tốn kiểm tra xung đột tương đương (Tính khả xung đột) Cho S thời lịch Ta dùng đồ thị định hướng, gọi đồ thị trình tự (precedence graph), biểu diễn từ S=(V, E) Trong đó: V tập đỉnh E tập cung Tập đỉnh V bao gồm tất giao dịch tham gia vào thời lịch Tập cung E bao gồm tất cung dạng Ti → Tj cho điều kiện sau thoả mãn: (i) Ti thực Write(Q) trước Tj thực Read(Q) (ii) Ti thực Read(Q) trước Tj thực Write(Q) (iii) Ti thực Write(Q) trước Tj thực Write(Q) Nếu cung Ti → Tj tồn đồ thị trình tự, thời lịch S’ tương đương với S, Ti phải xuất trước Tj Bài giảng tóm tắt Hệ quản trị sở liệu 78 Ví dụ: Thời lịch biểu diễn đồ thị tất thị T1 thực trước thị T2 Thời lịch biểu diễn đồ thị tất thị T2 thực trước thị T1 Thời lịch biểu diễn đồ thị chứa cung T1 → T2 T1 thực Read(A) trước T2 thực Write(A) Nó chứa cung T2→ T1 T2 thực Read(B) trước T1 thực Write(B): Nếu đồ thị trình tự S có chu trình, thời lịch S khơng khả xung đột Như tốn kiểm tra tính khả xung đột thời lịch S đưa tốn kiểm tra chu trình đồ thị trình tự biểu diễn S Thuật toán kiểm tra khả view Khơng có thuật tốn hiệu để kiểm tra tính khả view thời lịch Một cách tiếp cận cải tiến thuật toán kiểm tra xung đột tương đương để kiểm tra tính khả view Giả sử S thời lịch gồm giao dịch {T1 , T2 , , Tn} Tb Tf hai giao dịch giả cho: Tb bắt nguồn lệnh Write(Q) mục liệu Q truy xuất S, Tf bắt nguồn lệnh Read(Q) mục liệu Q truy xuất S Ta xây dựng thời lịch S’ từ S cách xen Tb bắt đầu S Tf cuối S Biểu diễn S’ đồ thị trình tự có gán nhãn cung xây dựng dựa quy tắc: Gán nhãn cho cung Ti → Tj , Tj đọc giá trị mục liệu Q viết Ti Xóa tất cung liên quan tới giao dịch không dùng Một giao dịch Ti gọi khơng dùng khơng có đường đồ thị trình tự dẫn từ Ti đến Tf Đối với mục liệu Q cho Tj đọc giá trị Q viết (Write) Ti Tk thực Write(Q), Tk ≠ Tb tiến hành bước sau : a Nếu Ti = Tb Tj ≠ Tf, gán nhãn cho cung Tj →Tk đồ thị trình tự gán 79 Bài giảng tóm tắt Hệ quản trị sở liệu nhãn b Nếu Ti ≠ Tb Tj = Tf gán nhãn cho cung Tk → Ti đồ thị trình tự gán nhãn c Nếu Ti ≠ Tb Tj ≠ Tf gán nhãn p cho hai cung Tk → Ti Tj → Tk đồ thị trình tự gán nhãn, p số nguyên > mà chưa sử dụng trước để gán nhãn cung Quy tắc 3c phản ánh Ti viết mục liệu đọc Tj giao dịch Tk viết mục liệu phải trước Ti sau Tj Quy tắc 3a 3b trường hợp đặc biệt kết kiện Tb Tf cần thiết giao dịch cuối tương ứng Ví dụ: xét thời lịch T3 Read(Q); T4 T6 Write(Q); Write(Q); Write(Q); Thời lịch Biểu diễn đồ thị S sau: Và đồ thị trình tự có gán nhãn biểu diễn S’ sau: Bài giảng tóm tắt Hệ quản trị sở liệu 80 Nếu đồ thị trình tự gán nhãn khơng chứa chu trình, thời lịch tương ứng khả view, thời lịch khả view Tuy nhiên, đồ thị S’ chứa chu trình, điều kiện khơng kéo theo thời lịch tương ứng không khả view Bây ta giả sử có n cặp cung tách biệt, ta áp dụng n lần quy tắc 3c xây dựng đồ thị trình tự Khi có 2n đồ thị khác nhau, đồ thị chứa cung cặp Nếu đồ thị đồ thị phi chu trình, thời lịch tương ứng khả view Thuật tốn địi hỏi phép kiểm thử vét cạn đồ thị riêng biệt, thuộc lớp toán NP-đầy đủ Điều khiển tương tranh dựa khóa Một phương pháp để đảm bảo tính khả yêu cầu việc truy xuất đến mục liệu tiến hành theo kiểu loại trừ tương hỗ; có nghĩa giao dịch truy xuất mục liệu, không giao dịch khác sửa đổi mục liệu Phương pháp chung dùng để thực thi yêu cầu cho phép giao dịch truy xuất mục liệu giữ khóa mục liệu Khóa (Lock) Có nhiều phương thức khóa mục liệu Ta hạn chế việc nghiên cứu hai phương thức: Shared: Nếu giao dịch Ti nhận khóa phương thức shared (ký hiệu S) mục Q, Ti đọc, khơng viết Q Exclusive Nếu giao dịch Ti nhận khóa phương thức Exclusive (ký hiệu X), Ti đọc lẫn viết Q Hàm tương thích 81 Bài giảng tóm tắt Hệ quản trị sở liệu Mỗi giao dịch địi hỏi khóa phương thức thích hợp mục liệu Q, phụ thuộc vào kiểu hoạt động mà thực Q Giả sử giao dịch Ti địi hỏi khóa phương thức A mục Q mà giao dịch Tj (Tj ≠ Ti) giữ khóa phương thức B Nếu giao dịch Ti cấp khóa Q ngay, bất chấp diện khóa phương thức B, ta nói phương thức A tương thích với phương thức B Hàm tương thích hai phương thức khóa biểu diễn ma trận Quan hệ cho ma trận comp sau: S S X True False X False False Comp(A, B) = True có nghĩa phương thức A B tương thích Các thủ tục cấp thu hồi khóa sau: • lock-S(Q): yêu cầu khóa shared mục liệu Q • lock-X(Q): u cầu khóa exclusive mục liệu Q • unlock(Q): thu hồi khóa mục liệu Q Để truy xuất mục liệu, giao dịch Ti phải khóa mục Nếu mục bị khóa giao dịch khác phương thức khơng tương thích, điều khiển tương tranh khơng cấp khóa tận tất khóa khơng tương thích bị giữ giao dịch khác tháo Như Ti phải chờ đến tận tất khóa khơng tương thích bị giữ giao dịch khác giải phóng Giao dịch Ti tháo khóa mục liệu mà khóa trước Một giao dịch cần thiết phải giữ khóa mục liệu chừng mà cịn truy xuất mục Hơn nữa, giao dịch việc tháo khóa sau truy xuất cuối đến mục liệu khơng ln ln điều mong muốn tính khả khơng đảm bảo Để minh hoạ cho tình này, ta xét ví dụ sau: A B hai tài khoản truy xuất giao dịch T1 T2 Giao dịch T1 chuyển 50$ từ tài khoản B sang tài khoản A xác định sau: T1 : Lock-X(B); Read(B); B:=B-50; Write(B); Unlock(B); Lock-X(A); Read(A); 82 Bài giảng tóm tắt Hệ quản trị sở liệu A:=A+50; Write(A); Unlock(A); Giao dịch T2 hiển thị tổng số lượng tiền tài khoản A B (A + B) xác định sau: T2 : Lock-S(A); Read(A); Unlock(A); Lock-S(B); Read(B); Unlock(B); Display(A+B); Giả sử giá trị tài khoản A B tương ứng 100$ 200$ Nếu hai giao dịch thực tuần tự, theo thứ tự T1, T2 theo thứ tự T2 , T1 , dó T2 hiển thị giá trị 300$ Tuy nhiên giao dịch thực tương tranh, giả sử theo thời lịch schedule-1, trường hợp giao dịch T2 hiển thị giá trị 250$, kết khơng giao dịch T1 tháo khóa mục B sớm T2 tham khảo trạng thái không quán Thời lịch 12 cho thấy hoạt động thực giao dịch thời điểm khóa cấp quản trị điều khiển tương tranh Giao dịch đưa u cầu khóa khơng thể thực hành động kế đến tận khóa cấp quản trị điều khiển tương tranh; đó, khóa phải cấp khoảng thời gian hoạt động yêu cầu khóa hành động sau giao dịch Sau ta giả thiết khóa cấp cho giao dịch trước hành động kế ta bỏ qua cột quản trị điều khiển tương tranh bảng T1 T2 Bộ quản trị điều khiển tương tranh Lock-X(B) Grant-X(B,T ) Read(B) B:=B-50 Write(B) Unlock(B) Lock-S(A) Grant-S(A,T ) Read(A) ... thời lịch-1 không tương đương view với thời lịch thời lịch-1, giá trị 75 Bài giảng tóm tắt Hệ quản trị sở liệu tài khoản A đọc giao dịch T2 sinh T1, điều không xảy thời lịch-2 Thời lịch-1 tương... tương tranh bảng T1 T2 Bộ quản trị điều khiển tương tranh Lock-X(B) Grant-X(B,T ) Read(B) B:=B-50 Write(B) Unlock(B) Lock-S(A) Grant-S(A,T ) Read(A) ... dịch T1 chuyển 50$ từ tài khoản B sang tài khoản A xác định sau: T1 : Lock-X(B); Read(B); B:=B-50; Write(B); Unlock(B); Lock-X(A); Read(A); 82 Bài giảng tóm tắt Hệ quản trị sở liệu A:=A+50; Write(A);

Ngày đăng: 11/07/2014, 15:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan