Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 2: Giao tác và lịch giao tác - Nguyễn Trường Sơn
Giới thiệu
§ Giao tác
– Khái niệm
– Tính
ACID
của giao tác
– Các thao tác của giao tác
– Các trạng thái của giao tác
§ Lịch thao tác
– Giới thiệu
– Khái niệm
– Lịch tuần tự
– Lịch khả tuần tự
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 2: Giao tác và lịch giao tác - Nguyễn Trường Sơn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 2: Giao tác và lịch giao tác - Nguyễn Trường Sơn
Read(A) Write(A) Write(B) Read(B) Read(B) Write(B) Write(A) Read(A) 1 2 3 4 5 6 7 8 41 Kiểm tra Conflict Serializability § Cho lịch S9: – S9 có con¦lict serializability hay không ? § Ý tưởng: – Các hành động xung đột trong lịch S được thực hiện theo thứ tự nào thì các giao tác thực hiện chúng trong S’ (kết quả sau hoán vị) cũng theo thứ tự đó. T2 T1 Read(A) Read(A) Write(A) Read(B) Write(B) Write(A) Read(B) Write(B) S9’ S9 T2 T1 Read(A) Write(A) Write(B) Read(B) Read(B) Write(B) Write(A) Read(A) 42 Kiểm tra Conflict Serializability § Cho lịch S có 2 giao tác T1 và T2: – T1 thực hiện hành động A1 – T2 thực hiện hành động A2 – Ta nói T1 thực hiện trước hành động T2 trong S, ký hiệu T1 <S T2, khi: • A1 được thực hiện trước A2 trong S – A1 không nhất thiết phải liên tiếp A2 • A1 và A2 là 2 hành động xung đột (A1 và A2 cùng thao tác lên 1 đơn vị dữ liệu và có ít nhất 1 hành động là ghi trong A1 và A2) 43 Kiểm tra Conflict Serializability Phương pháp Precedence Graph: § Cho lịch S bao gồm các thao tác T1, T2, , Tn § Đồ thị trình tự của S (Precedence graph) của S ký hiệu là P(S) có: – Đỉnh là các giao tác Ti – Cung đi từ Ti đến Tj nếu Ti <S Tj § S Con¦lict Serializable khi và chỉ khi P(S) không có chu trình § Thứ tự hình học các đỉnh là thứ tự của các giao tác trong lịch tuần tự tương đương với S. § Với 2 lịch S và S’ được lập từ cùng các giao tác, S và S’ con¦lict equivalent khi và chỉ khi P(S)=P(S’) 44 Kiểm tra Conflict Serializability § Ví dụ 1: S10 có Con¦lict Serializability hay không ? T2 T1 Read(A) Read(B) Write(A) Write(B) T3 Read(A) Write(A) Read(B) Write(B) 2 3 1 2 1 2 3 ¯ P(S10 ) không có chu trình ¯ S10 conlict-‐serializable theo thứ tự T1, T2, T3 S10 45 Kiểm tra Conflict Serializability § Ví dụ 1: S10 có Con¦lict Serializability hay không ? T2 T1 Read(A) Read(B) Write(A) Write(B) T3 Read(A) Write(A) Read(B) Write(B) T2 T1 Read(A) Read(B) Write(A) Write(B) T3 Read(A) Write(A) Read(B) Write(B) S10 S 46 Kiểm tra Conflict Serializability § Ví dụ 2: S11 có Con¦lict Serializability hay không ? T2 T1 Read(A) Read(B) Write(A) Write(B) S11 T3 Read(A) Write(A) Read(B) Write(B) ¯ P(S11) có chu trình ¯ S11 không conlict-‐serializable 2 3 2 1 1 2 1 2 3 S11: r2(A) r1(B) w2(A) r2(B) r3(A) w1(B) w3(A) w2(B) 47 Bài tập Conflict-Serializability § Cho các lịch S sau: 1. S: w1(A) r2(A) r3(A) w4 (A) 2. S: w3(A) w2(C) r1(A) w1(B) r1(C) w2(A) r4(A) w4(D) 3. S: r1(A) w2(A) w1(A) w3(A) 4. S: r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) 5. S: w1(X) w2(Y) w2(X) w1(X) w3(X) 6. S: r2(A) r1(B) w2(A) r3(A) w1(B) r2(B) w2(B) 7. S: r2(A) r1(B) w2(A) r2(B) r3(A) w1(B) w3(A) w2(B) § Vẽ P(S) § S có con¦lict-‐serializable không? Nếu có thì S tương đương với lịch tuần tự nào ? 48 Bài tập 1 § Cho lịch S: § Vẽ P(S) § S có con¦lict-‐serializable không? T2 T1 Read(A) Write(A) S T4 Read(A) Write(A) T3 S: w1(A) r2(A) r3(A) w4 (A) 49 Bài tập 2 § Cho lịch S: § Vẽ P(S) § S có con¦lict-‐serializable không? S: w3(A) w2(C) r1(A) w1(B) r1(C) w2(A) r4(A) w4(D) T2 T1 Read(A) Read(C) Write(A) Write(C) S T4 Read(A) Write(A) Write(D) Write(B) T3 50 Bài tập 3 § Cho lịch S: § Vẽ P(S) § S có con¦lict-‐serializable không? T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) S: r1(A) w2(A) w1(A) w3(A) 51 Bài tập 4 § Cho lịch S: § Vẽ P(S) § S có conflict-serializable không ? S: r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) 52 Bài tập 5 § Cho lịch S: § Vẽ đồ thị P(S) § S có conflict serializable hay không ? S: w1(X) w2(Y) w2(X) w1(X) w3(X) S 53 View-Serializability § Xét lịch S T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) 1 2 3 ¯ P(S) có chu trình ¯ S không conflict-serializable ¯ S khả tuần tự hay không ? 54 View-Serializability (tt) § So sánh lịch S và 1 lịch tuần tự S’ – Giả sử trước khi lịch S thực hiện, có giao tác Tb thực hiện việc ghi A và sau khi S thực hiện có giao tác Tf thực hiện việc đọc A. – Nhận xét lịch S và S’: • Đều có T1 thực hiện read(A) từ giao tác Tb à Kết quả đọc luôn giống nhau • Đều có T3 thực hiện việc ghi cuối cùng lên A. T2, T3 không có lệnh đọc A à Dù S hay S’ được thực hiện thì kết quả đọc A của Tf luôn giống nhau à Kết quả của S và S’ giống nhau à S vẫn khả tuần tự T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) Không con lict-‐serializable T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Serial 55 View-Serializability (tt) § Khả tuần tự View (View-serializability): – Một lịch S được gọi là khả tuần tự view nếu tồn tại một lịch tuần tự S’ được tạo từ các giao tác của S sao cho S và S’ đọc và ghi những giá trị giống nhau. – Lịch S được gọi là khả tuần tự view khi và chỉ khi nó tương đương view (view-equivalent) với một lịch tuần tự S’ 56 View-Serializability (tt) § Ví dụ: Cho lịch S và S’ như sau: S : r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) S’: r2(B) w2(A) w2(B) r1(A) w1(B) r3(A) w3(B) T2 T1 Read(B) S Read(A) T3 Read(A) Write(A) Write(B) Write(B) Write(B) T2 T1 Read(B) S Read(A) T3 Read(A) Write(A) Write(B) Write(B) Write(B) S khả tuần tự view 57 View-Serializability (tt) § View-‐equivalent: S và S’ là những lịch view-‐equivalent nếu thỏa các điều kiện sau: – Nếu trong S có Ti đọc giá trị ban đầu của A thì nó cũng đọc giá trị ban đầu của A trong S’. – Nếu Ti đọc giá trị của A được ghi bởi Tj trong S thì Ti cũng phải đọc giá trị của A được ghi bởi Tj trong S’. – Với mỗi dvdl A, giao tác thực hiện lệnh ghi cuối cùng lên A (nếu có) trong S thì giao tác đó cũng phải thực hiện lệnh ghi cuối cùng lên A trong S’. § Một lịch giao tác S là view-‐serializable: – Nếu S là view-‐equivalent với một Lịch giao tác tuần tự S’ nào đó § Nếu S là con¦lict-‐serializable à S view-‐serializable. ß 58 Chứng minh (*) View Serializability (/) Lịch thao tác View-‐Serializable Con lict-‐ Serializable 59 Kiểm tra View Serializability § Cho 1 Lịch giao tác S § Thêm 1 giao tác cuối Tf vào trong S sao cho Tf thực hiện việc đọc hết tất cả đơn vị dữ liệu ở trong S – S = w1(A)w2(A) rf(A) § Thêm 1 giao tác đầu tiên Tb vào trong S sao cho Tb thực hiện việc ghi các giá trị ban đầu cho tất cả đơn vị dữ liệu – S = wb(A) w1(A)w2(A) 60 Kiểm tra View-Serializability (tt) § Vẽ đồ thị phức (PolyGraph) cho S, ký hiệu G(S) với – Đỉnh là các giao tác Ti (bao gồm cả Tb và Tf) – Cung: • (1) Nếu giá trị mà ri(X) đọc được là do Tj ghi (ri(X) có gốc là Tj) thì vẽ cung đi từ Tj đến Ti • (2) Với mỗi wj(X) ri(X), xét wk(X) khác Tb sao cho Tk không chèn vào giữa Tj và Ti i j X 61 Kiểm tra View-Serializability (tt) • (2a) Nếu Tj ≠ Tb và Ti ≠ Tf thì vẽ cung Tk → Tj và Ti → Tk Tj Ti Write(X) Read(X) Tk Write(X) Tj Ti Write(X) Read(X) Tk Write(X) i j k X X i j k X X X X Tk có thể nằm trước Tj hoặc sau Ti 62 Kiểm tra View-Serializability (tt) • (2b) Nếu Tj = Tb thì vẽ cung Ti → Tk • (2c) Nếu Ti = Tf thì vẽ cung Tk → Tj Tj = Tb Ti Write(X) Read(X) Tk Write(X) Tj Ti = Tf Write(X) Read(X) Tk Write(X) i j k X X i j k X X 63 Ví dụ T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Tb Tf 1 2 3 b f Write(A) Read(A) A A 64 Ví dụ T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Tb Tf 1 2 3 b f Write(A) Read(A) A A A A 65 Ví dụ (tt) T2 T1 Write(A) S Write(A) T3 Read(A) Write(A) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Tb Tf 1 2 3 b f Write(A) Read(A) A A A A A A ¯ G(S) không có chu trình ¯ S view-serializable theo thứ tự Tb, T1, T2, T3, Tf 66 Ví dụ (tt) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Write(A) Tb Tf Read(A) 1 2 3 b f T2 T1 Write(A) S Read(A) T3 Read(A) Write(A) Write(A) Read(A) A A A 67 Ví dụ (tt) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Write(A) Tb Tf Read(A) 1 2 3 b f T2 T1 Write(A) S Read(A) T3 Read(A) Write(A) Write(A) Read(A) A A A A A 68 Ví dụ (tt) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Write(A) Tb Tf Read(A) 1 2 3 b f T2 T1 Write(A) S Read(A) T3 Read(A) Write(A) Write(A) Read(A) A A A A A A A Chọn 1 trong 2 cung sao cho không có chu trình 69 Ví dụ (tt) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Write(A) Tb Tf Read(A) 1 2 3 b f T2 T1 Write(A) S Read(A) T3 Read(A) Write(A) Write(A) Read(A) A A A A A A A A A ¯ G(S) có chu trình 70 Ví dụ (tt) T2 T1 Write(A) S’ Write(A) T3 Read(A) Write(A) Write(A) Tb Tf Read(A) 1 2 3 b f T2 T1 Write(A) S Read(A) T3 Read(A) Write(A) Write(A) Read(A) A A A A A A A A ¯ G(S) không có chu trình sau khỉ bỏ cung ¯ S view-‐serializable 71 Bài tập View-Serializability § Cho lịch S: 1. S: r2(B) w2(A) r1(A) r3(A) w1(B) w2(B) w3(B) 2. S: w1(A) r3(A) r2(A) w2(A) r1(A) w3(A) 3. S: r2(A) r1(A) w1(C) r3(C) w1(B) r4(B) w3(A) r4(C) w2(D) r2(B) w4(A) w4(B) 4. S: w1(A) r2(A) w2(A) r1(A) 5. S: r1(A) r3(D) w1(B) r2(B) w3(B) r4(B) w2(C) r5(C) w4(E) r5(E) w5(B) 6. S: w1(A) r2(A) w3(A) r4(A) w5(A) r6(A) 7. S: r1(X) r2(X) w1(X) w2(X) § Yêu cầu: – Vẽ G(S) – S có view-‐serializable hay không ? 72 TÓM TẮT CHƯƠNG 2 § Một số tình huống về tranh chấp § Khái niệm giao tác § Tính chất ACID của giao tác § Lịch thao tác: – Lịch tuần tự – Lịch đồng thời – Lịch Khả tuần tự – Lịch khả tuần tự xung đột (Con¦lict Serializability) – Kiểm tra khả tuần tự xung đột bằng đồ thị trình tự (Prcedence graph) – Lịch khả tuần tự view (View Serializability) – Kiểm tra khả tuần tự view bằng đồ thị phức (Poly graph) 73 Bài tập T2 T1 Write(A) S Read(A) T3 Read(B) Write(B) Read(A) Write(B) Write(B) ¯ Vẽ G(S) ¯ S có view-serializable? 74 Bài tập (tt) ¯ Vẽ G(S) ¯ S có view-serializable? T2 T1 Read(A) S Write(C) T3 Read(A) Write(B) Read(C) Write(D) Write(A) T4 Read(B) Read(C) Read(B) Write(A) Write(B) 75 TÀI LIỆU THAM KHẢO § [1] Database Management Systems, 3rd Edition, Raghu Ramakrishnan and Johannes Gehrke § [2] Fundamentals of Database Systems, 4th Edition, Elmasri Navathe § [3] Database System Concepts, 4th Edition, Silberschatz−Korth−Sudarshan § [4] Database Systems Implementation, Hector Garcia-‐Molina, D. Ullman, Jennifer D. Widom § [5] Database systems: the complete book, Hector Garcia-‐ Molina, Jeffrey D. Ullman, Jennifer Widom, Pearson Prentice Hall, 2009 76 TÀI LIỆU THAM KHẢO § ‐old.pdf § ‐english/Ch17_CC-‐95.pdf § ‐mscs/how-‐to-‐check-‐for-‐view-‐serializable-‐and-‐con¦lict-‐serializable/ § ‐6up.pdf § 77
File đính kèm:
- bai_giang_he_quan_tri_co_so_du_lieu_chuong_2_giao_tac_va_lic.pdf