bài giảng hệ quản trị cơ sở dữ liệu - ths. nguyễn minh vi

113 800 0
bài giảng hệ quản trị cơ sở dữ liệu  - ths. nguyễn minh vi

Đ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

Quản lý truy xuất đồng thời Nội dung  Các vấn đề trong truy xuất đồng thời  Kỹ thuật khóa (Locking)  Kỹ thuật nhãn thời gian (Timestamps)  Kỹ thuật xác nhận hợp lệ (Validation) Nội dung  Các vấn đề trong truy xuất đồng thời  Kỹ thuật khóa (Locking)  Kỹ thuật nhãn thời gian (Timestamps)  Kỹ thuật xác nhận hợp lệ (Validation) Các vấn đề trong truy xuất đồng thời  Mất dữ liệu đã cập nhật (lost updated)  Không thể đọc lại (unrepeatable read)  Bóng ma (phantom)  Đọc dữ liệu chưa chính xác (dirty read) Mất dữ liệu đã cập nhật (lost updated)  Xét 2 giao tác  Giả sử T1 và T2 được thực hiện đồng thời T 2 Read(A) A:=A+20 Write(A) T 1 Read(A) A:=A+10 Write(A) t 1 t 2 t 3 t 4 t 5 t 6 Read(A) A=50 T 2 T 1 Read(A) A:=A+10 Write(A) A:=A+20 Write(A) A=60 A=70 Dữ liệu đã cập nhật tại t 4 của T 1 bị mất vì đã bị ghi chồng lên ở thời điểm t 6 Không thể đọc lại (unrepeatable read)  Xét 2 giao tác  Giả sử T1 và T2 được thực hiện đồng thời T 2 Read(A) Print(A) Read(A) Print(A) T 1 Read(A) A:=A+10 Write(A) t 1 t 2 t 3 t 4 t 5 t 6 Read(A) A=50 T 2 T 1 Read(A) A:=A+10 Write(A) Print(A) Read(A) t 7 Print(A) A=50 A=50 A=60 A=60 T 2 tiến hành đọc A hai lần thì cho hai kết quả khác nhau Bóng ma (phantom)  Xét 2 giao tác T1 và T2 được xử l{ đồng thời  A và B là 2 tài khoản  T1 rút 1 số tiền ở tài khoản A rồi đưa vào tài khoản B  T2 kiểm tra đã nhận đủ tiền hay chưa? mất 50 ??? t 1 t 2 t 3 t 4 t 5 t 6 Read(A) T 2 T 1 Read(A) A:=A-50 Write(A) Read(B) Print(A+B) t 7 Read(B) A=70 A=20 A+B=70 A=70, B=50 A=20 B=50 B:=B+50 Write(B) t 8 t 9 Đọc dữ liệu chưa chính xác (dirty read)  Xét 2 giao tác T1 và T2 được xử l{ đồng thời t 1 t 2 t 3 t 4 t 5 t 6 Read(A) T 2 T 1 Read(A) A:=A+10 Write(A) Print(A) Abort T 2 đã đọc dữ liệu được ghi bởi T 1 nhưng sau đó T 1 yêu cầu hủy việc ghi Nội dung  Các vấn đề trong truy xuất đồng thời  Kỹ thuật khóa (Locking)  Khóa 2 giai đoạn  Khóa đọc viết  Khóa đa hạt  Nghi thức cây  Kỹ thuật nhãn thời gian (Timestamps)  Kỹ thuật xác nhận hợp lệ (Validation) Kỹ thuật khóa  Làm thế nào để bộ lập lịch ép buộc 1 lịch phải khả tuần tự?  Bộ lập lịch với cơ chế khóa (locking scheduler)  Có thêm 2 hành động • Lock • Unlock Scheduler Lock table Lịch khả tuần tự T 1 T 2 … T n [...]... trước khi muốn đọc /vi t lên 1 đơn vị dữ liệu phải phát ra 1 yêu cầu xin khóa (lock) đơn vị dữ liệu đó  Lock(A) hay l(A)  Yêu cầu này được bộ phận quản l{ khóa xử l{  Nếu yêu cầu được chấp thuận thì giao tác mới được phép đọc/ghi lên đơn vị dữ liệu T1: Lock(A) Lock Manager  Lock table Element Transaction A T1 … … Sau khi thao tác xong thì giao tác phải phát ra lệnh giải phóng đơn vị dữ liệu (unlock)... đơn vi dữ liệu A  ULock(A) Kỹ thuật khóa đọc vi t  Qui tắc  (1) Giao tác đúng đắn Ti : … rl(A) … r(A) … u(A) … Ti : … wl(A) … w(A) … u(A) … Kỹ thuật khóa đọc vi t  Vấn đề: Các giao tác đọc và ghi trên cùng 1 T đơn vị dữ liệu 1 Read(B) Write(B)?  Giải quyết  Cách 1: yêu cầu khóa độc quyền Ti : … wl(A) … r(A) … w(A) … u(A) …  Cách 2: nâng cấp khóa Ti : … rl(A) … r(A) … wl(A) … w(A) … u(A) … Bài. .. thuật khóa 2 giai đoạn  Định l{ S thỏa qui tắc (1), (2), (3)  S conflict-serializable  Chứng minh  Giả sử G(S) có chu trình  T1  T2  … Tn  T1  T1 thực hiện lock những đơn vị dữ liệu được unlock bởi Tn  T1 có dạng … lock … unlock … lock  Điều này vô l{ vì T1 là giao tác thỏa 2PL  G(S) không thể có chu trình  S conflict-serializable Kỹ thuật khóa 2 giai đoạn  Chú ý S T1 T2 Lock(A) Read(A,t)... Hãy suy nghĩ và cho biết cách nào là hợp l{  Xin khóa thứ 2 cho đơn vị dữ liệu muốn ghi?  Xin khóa độc quyền ngay từ đầu?  Cho ví dụ và giải thích Kỹ thuật khóa đọc vi t  Qui tắc  (2) - Lịch thao tác hợp lệ S: … rli(A) ……………… ui(A) … không có wlj(A) S: … wli(A) ……………… ui(A) … không có wlj(A) không có rlj(A) Kỹ thuật khóa đọc vi t  Ma trận tương thích (compatibility matrices) Yêu cầu lock Share... (Write lock, Exclusive lock) • WLock(A) hay wl(A)  Giải phóng khóa • Unlock(A) hay u(A) Kỹ thuật khóa đọc vi t  Cho 1 đơn vị dữ liệu A bất kz  WLock(A) • Hoặc có 1 khóa ghi duy nhất lên A • Hoặc không có khóa ghi nào lên A  RLock(A) • Có thể có nhiều khóa đọc được thiết lập lên A Kỹ thuật khóa đọc vi t  Giao tác muốn Write(A)  Yêu cầu WLock(A)  WLock(A) sẽ được chấp thuận nếu A tự do • Sẽ không có... vi t  Qui tắc  (3) - Giao tác 2PL • Ngoại trừ trường hợp nâng cấp khóa, các trường hợp còn lại đều giống với nghi thức khóa • Nâng cấp xin nhiều khóa hơn S: … rli(A) … wli(A) ……………… ui(A) … không có unlock không có lock • Nâng cấp giải phóng khóa đọc S: … rli(A) … uli(A) … wli(A) ………… ui(A) … vẫn chấp nhận trong pha lock Kỹ thuật khóa đọc vi t  Định l{  S thỏa qui tắc (1), (2), (3)  S conflic-serializable... trong truy xuất đồng thời  Kỹ thuật khóa (Locking)  Khóa 2 giai đoạn  Khóa đọc vi t  Khóa đa hạt  Nghi thức cây  Kỹ thuật nhãn thời gian (Timestamps)  Kỹ thuật xác nhận hợp lệ (Validation) Kỹ thuật khóa 2 giai đoạn (2PL: 2 phase lock)  Qui tắc  Giao tác 2PL S: … li(A) ………………… ui(A) … không có unlock Đơn vị dữ liệu giữ lock của Ti BOT không có lock Thực hiện xong hết tất cả các yêu cầu lock... Lock(A) Không xin được lock  Chờ Nội dung  Các vấn đề trong truy xuất đồng thời  Kỹ thuật khóa (Locking)  Khóa 2 giai đoạn  Khóa đọc vi t  Khóa đa hạt  Nghi thức cây  Kỹ thuật nhãn thời gian (Timestamps)  Kỹ thuật xác nhận hợp lệ (Validation) Kỹ thuật khóa đọc vi t  Vấn đề Ti Tj Lock(A) Read(A) Unlock(A) Lock(A) Read(A) Unlock(A)  Bộ lập lịch có các hành động  Khóa đọc (Read lock, Shared lock)... của đồ thị  Nếu một giao tác Tj phát ra Lock(A) sau một giao tác Ti phát ra Unlock(A) thì sẽ vẽ cung từ Ti đến Tj, i≠j  S khả tuần tự nếu G không có chu trình Kỹ thuật khóa S T1 T2 Lock(A) Read(A) A:=A-10 Write(A) Unlock(A) Lock(A) Read(A) Print(A) Read(A) Print(A) Unlock(A) B1 T1 B2 T1 B3 T2 T2 G G không có chu trình => S khả tuần tự theo thứ tự T1 thực hiện trước rồi tới T2 Kỹ thuật khóa S T1 T2 Lock(A)... đoạn T1 Lock(A) Read(A) Lock(B) Read(B) B:=B+A Write(B) Unlock(A) Unlock(B) T2 Lock(B) Read(B) Lock(A) Read(A) Unlock(B) A:=A+B Write(A) Unlock(A) Thỏa nghi thức khóa 2 giai đoạn T3 Lock(B) Read(B) B=B-50 Write(B) Unlock(B) Lock(A) Read(A) A=A+50 Write(A) Unlock(A) T4 Lock(A) Read(A) Unlock(A) Lock(B) Read(B) Unlock(B) Print(A+B) Không thỏa nghi thức khóa 2 giai đoạn Kỹ thuật khóa 2 giai đoạn T1 S Lock(A);Read(A,t) . mất 50 ??? t 1 t 2 t 3 t 4 t 5 t 6 Read(A) T 2 T 1 Read(A) A:=A -5 0 Write(A) Read(B) Print(A+B) t 7 Read(B) A=70 A=20 A+B=70 A=70, B =50 A=20 B =50 B:=B +50 Write(B) . xuất đồng thời  Mất dữ liệu đã cập nhật (lost updated)  Không thể đọc lại (unrepeatable read)  Bóng ma (phantom)  Đọc dữ liệu chưa chính xác (dirty read) Mất dữ liệu đã cập nhật (lost. Lock(A); Read(A,t) Lock(A); Read(A,s) Lock(B); Read(B,s) Lock(B); Read(B,t) A B 25 25 1 25 50 250 150 Kỹ thuật khóa  Kiểm tra tính khả tuần tự  Input : Lịch S được lập từ n giao tác

Ngày đăng: 02/07/2014, 17:44

Từ khóa liên quan

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

Tài liệu liên quan