Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 3 - Nguyễn Trường Sơn
lượt xem 5
download
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 3 Điều khiển truy xuất đồng thời cung cấp cho người học những kiến thức như: Phân loại các vấn đề của truy xuất đồng thời; Các kỹ thuật điều khiển đồng thời; Vấn đề khoá chết; Các vấn đề khác.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 3 - Nguyễn Trường Sơn
- LOGO HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Chương 3: ĐIỀU KHIỂN TRUY XUẤT ĐỒNG THỜI GVLT: Nguyễn Trường Sơn 1
- Nội dung trình bày § Phân loại các vấn đề của truy xuất đồng thời § Các kỹ thuật điều khiển đồng thời: – Kỹ thuật khoá (Locking) – Kỹ thuật nhãn thời gian (Timestamp) – Kỹ thuật xác nhận hợp lệ (Validation) § Vấn đề khoá chết § Các vấn đề khác 2
- Nội dung trình bày § Phân loại các vấn đề của truy xuất đồng thời: – Mất dữ liệu cập nhật – Không đọc lại được dữ liệu – Bóng ma – Đọc phải dữ liệu rác § Các kỹ thuật điều khiển đồng thời: – Kỹ thuật khoá – Kỹ thuật nhãn thời gian – Kỹ thuật xác nhận hợp lệ § Vấn đề khoá chết § Các vấn đề khác 3
- Vấn đề mất dữ liệu đã cập nhật § Xét 2 giao tác T1 và T2 và đơn vị dữ liệu A vốn có giá trị ban đầu là 50: – T1: Read(A); A:=A+10; Write(A) – T2: Read(A); A:=A+20; Write(A) A=50 T1 T2 t1 Read(A) « Nếu T1 và T2 thực hiện tuần tự t2 Read(A) (T1 rồi T2 hoặc T2 rồi T1) thì t3 A:=A+10 cuối cùng A = 80 t4 A:=A+20 « Nếu T1 và T2 thực hiện đồng t5 Write(A) thời như lịch bên: A = 70 t6 Write(A) Nhận xét: ² Dữ liệu do T1 ghi đã bị T2 làm mất ² Lỗi: MẤT DỮ LIỆU CẬP NHẬT (LOST UPDATE) 4
- Vấn đề không thể đọc lại § Xét 2 giao tác T1 và T2 và đơn vị dữ liệu A vốn có giá trị ban đầu là 50 « Kết quả quan sát: A=50 T1 T2 ² Nếu T1 và T2 thực hiện t1 Read(A) tuần tự thì các lần đọc A của t2 Read(A) A=50 T2 giống nhau. t3 A:=A-‐10 ² Nếu T1 và T2 thực hiện t4 Print(A) A=50 đồng thời như lịch bên à 2 t5 Write(A) lần đọc dữ liệu của T2 có t6 Read(A) A=40 kết quả khác nhau t7 Print(A) A=40 « Lỗi không đọc lại được dữ liệu: ² Trong một giao tác mà các lần đọc cùng 1 đơn vị dữ liệu cho kết quả khác nhau 5
- Vấn đề “bóng ma” § Xét 2 giao tác T1 và T2 được xử lý đồng thời – A là một tập các đơn vị dữ liệu a1, a2, a3, a4, … – T1 xử lý trên toàn bộ tập A – Khi T1 đang xử lý, T2 thêm hay xóa một hay một số phần tử trong tập A T1 T2 t1 Read(A) t2 Xử lý 1 trên A t3 Thêm ai vào A t4 Xử lý 2 trên A t5 Xoá aj khỏi A t6 Xử lý 3 trên A 6
- Vấn đề đọc dữ liệu rác § Xét 2 giao tác T1 và T2 được xử lý đồng thời – T2 đã đọc dữ liệu được ghi bởi T1 nhưng sau đó T1 yêu cầu hủy việc ghi A=50 T1 T2 t1 Read(A) t2 A:=A+10 t3 Write(A) t4 Read(A) t5 Print(A) t6 Abort 7
- Nhận xét § Các lỗi truy xuất đồng thời của các giao tác T1, …, Tn là do: – Kết quả của lịch tuần tự được lập từ các giao tác T1, …, Tn và lịch đồng thời S từ các giao đó khác nhau: Không đảm bảo tính nhất quán dữ liệu. – Lịch đồng thời S không phải là một lịch khả tuần tự. § Câu hỏi: – Làm sao bộ lập lịch có thể tạo được một lịch S khả tuần tự ? Các kỹ thuật điều khiển đồng thời 8
- Các kỹ thuật điều khiển đồng thời § Là những kỹ thuật cho phép bộ lập lịch sử dụng để tạo một lịch khả tuần tự từ n giao tác thực hiện đồng thời. T1 T2 … Tn Kỹ thuật khoá Bộ lập lịch Kỹ thuật nhãn thời gian Kỹ thuật xác nhận hợp lệ Lịch khả tuần tự 9
- Nội dung trình bày § Các vấn đề của truy xuất đồng thời § Các kỹ thuật điều khiển đồng thời: – Kỹ thuật khoá Khoá đơn giản Khoá đọc ghi Khoá đa hạt – Kỹ thuật nhãn thời gian Nhãn thời gian toàn phần Nhãn thời gian riêng phần Nhãn thời gian nhiều phiên bản – Kỹ thuật lạc quan § Vấn đề khoá chết § Các vấn đề khác 10
- Kỹ thuật khoá đơn giản § Kỹ thuật khoá đơn giản còn gọi khoá nhị phân (Binary locks) § Bộ lập lịch với cơ chế khóa đơn giản (locking scheduler) – Là bộ lập lịch với thêm 2 hành động : Lock : Phát khoá Unlock : Giải phóng khóa – Các khóa được ghi nhận trong bảng khóa (Lock Table) T1 T2 … Tn Bảng Bộ lập lịch khóa Lịch khả tuần tự 11
- Kỹ thuật khóa đơn giản § Quy định: – Các giao tác trước khi muốn đọc/ghi 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 đó Ký hiệu: Lock(A) hay l(A) – Yêu cầu này được bộ phận quản lý khóa xử lý (Lock Manager) 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 Yêu cầu xin khóa được bộ cấp phát chấp thuận nếu đơn vị dữ liệu chưa bị khóa bởi một giao tác nào khác – 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) Ký hiệu: Unlock(A) hay u(A) BẢNG KHÓA Element Transaction Bảng khóa ghi nhận giao tác T1 đang giữ khóa A T1 trên đơn vị dữ liệu A 12
- Kỹ thuật khóa đơn giản (tt) § Quy tắc: – 1. Giao tác đúng đắn: Việc giao tác Ti đọc hay ghi lên đơn vị dữ liệu A phải sau khi Ti phát khoá trên A và trước khi Ti giải phóng khoá trên A. Phát khoá và giải phóng khoá phải đi đôi với nhau (lock trước, unlock sau) Ti: … l(A) … r(A) / w(A) … u(A) … – 2. Lịch thao tác hợp lệ: Khi Ti đang giữ khoá trên một đơn vị dữ liệu A thì không Ti nào khác được phát khoá trên A. S: … li(A) ……………………ui(A) … Không được có lj(A) 13
- Kỹ thuật khóa đơn giản (tt) T1 T2 S Lock(A) § Ví dụ: Read(A, t) – Giao tác T1 và T2 có đúng t := t + 100 Write(A, t) đắn hay không ? Unlock(A) Lock(A) Read(A, s) – Lịch S có hợp lệ hay không ? s := s * 2 Write(A, s) Unlock(A) Lock(B) Read(B, s) s := s * 2 Write(B, s) Unlock(B) Lock(B) Read(B, t) t := t + 100 Write(B, t) Unlock(B) 14
- Kỹ thuật khóa đơn giản (tt) § Ví dụ S1 T1 T2 T3 S2 T1 T2 T3 Lock(A) Lock(A) Lock(B) Read(A) Read(A) Write(B) Write(B) Unlock(A) Lock(B) Unlock(B) Unlock(A) Lock(B) Unlock(B) Read(B) Read(B) Write(B) Write(B) Lock(B) Unlock(B) Read(B) Lock(B) Unlock(B) Read(B) Unlock(B) Cho biết lịch nào hợp lệ? Giao tác nào là đúng đắn ? 15
- Kỹ thuật khóa đơn giản (tt) § Ví dụ: S1 T1 T2 T3 S2 T1 T2 T3 Lock(A) Lock(A) Lock(B) Read(A) Read(A) Write(B) Write(B) Unlock(A) Lock(B) Unlock(B) Unlock(A) Lock(B) Unlock(B) Read(B) Read(B) Write(B) Write(B) Lock(B) Unlock(B) Read(B) Lock(B) Unlock(B) Read(B) Unlock(B) Cho biết lịch nào hợp lệ? Giao tác nào là đúng đắn ? 16
- Kỹ thuật khóa đơn giản (tt) § Bài toán: Kiểm tra tính khả tuần tự của lịch S – Input: Lịch S được lập từ n giao tác xử lý đồng thời T1, T2, …, Tn theo kỹ thuật khóa đơn giản – Output: S khả tuần tự hay không? § Phương pháp: Xây dựng 1 đồ thị có hướng G – B1: Mỗi giao tác Ti là 1 đỉnh của đồ thị – B2: Nếu một giao tác Tj phát ra Lockj(A) sau một giao tác Ti phát ra Unlocki(A) thì sẽ vẽ cung từ Ti đến Tj , i ≠ j – B3: S khả tuần tự nếu G không có chu trình 17
- Kỹ thuật khóa đơn giản (tt) T1 T2 S Lock(A) Read(A, t) Lịch S có khả tuần tự hay không ? t := t + 100 Write(A, t) Unlock(A) Lock(A) Read(A, s) s := s * 2 Write(A, s) Unlock(A) Lock(B) Read(B, s) s := s * 2 Write(B, s) Unlock(B) Lock(B) Read(B, t) t := t + 100 Write(B, t) Unlock(B) 18
- Kỹ thuật khóa đơn giản (tt) T1 T2 S Lock(A) Read(A, t) Lịch S có khả tuần tự hay không ? t := t + 100 Write(A, t) Unlock(A) Lock(A) Read(A, s) s := s * 2 Write(A, s) B1 T1 T2 G Unlock(A) Lock(B) B2 Read(B, s) s := s * 2 B3 G có chu trình à S không khả tuần Write(B, s) tự Unlock(B) Lock(B) Read(B, t) t := t + 100 Write(B, t) Unlock(B) 19
- Kỹ thuật khóa đơn giản (tt) § Mục tiêu: Vậy làm sao để kỹ thuật khóa cho ta lịch khả tuần tự § Giải pháp : Tuân theo quy tắc sau: – (1) và (2): Giống như cũ – (3) Giao tác phải thỏa nghi thức khóa 2 giai đoạn (2PL: two phases locking) : Trong 1 giao tác, tất cả các thao tác phát khóa đều xảy ra trước tất cả các thao tác giải phóng khóa. T : ………….l(A) l(B)…………………u(A) u(B)…………… Không có giải Không có phát phóng bất kỳ ra bất kỳ khóa nào khóa nào § Định lý: – Nếu lịch S thoả nghi thức 2PL thì S con£lict-‐serializable 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ quản trị cơ sở dữ liệu Oracle: Chương 1 - Ngô Thùy Linh
31 p | 182 | 25
-
Bài giảng Hệ quản trị cơ sở dữ liệu Oracle: Chương 5 - Ngô Thùy Linh
34 p | 95 | 18
-
Bài giảng Hệ quản trị cơ sở dữ liệu Access - ĐH Phạm Văn Đồng
159 p | 112 | 17
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Tổng quan hệ quản trị CSDL SQL Server - TS. Lại Hiền Phương
50 p | 111 | 13
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 - ĐH Công nghiệp Thực phẩm
92 p | 145 | 11
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - ĐH Công nghiệp Thực phẩm
31 p | 99 | 10
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Giới thiệu - Phạm Thọ Hoàn
14 p | 157 | 9
-
Bài giảng Hệ quản trị cơ sở dữ liệu Oracle - Trường ĐH Đồng Tháp
119 p | 35 | 8
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Nguyễn Thị Uyên Nhi
33 p | 83 | 6
-
Bài giảng Hệ quản trị cơ sở dữ liệu (Database Management Systems) - Bài 1.1: Tổng quan về Hệ quản trị cơ sở dữ liệu
5 p | 16 | 6
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Nguyễn Trường Sơn
29 p | 45 | 5
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 2 - Phạm Nguyên Thảo
39 p | 77 | 5
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 1 - Lê Thị Minh Nguyện
14 p | 72 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Các tác vụ quản trị hệ thống - TS. Lại Hiền Phương (Phần 3)
61 p | 53 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Các tác vụ quản trị hệ thống - TS. Lại Hiền Phương (Phần 1)
32 p | 51 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 6 - Nguyễn Thị Mỹ Dung
33 p | 58 | 4
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 6 - Phạm Nguyên Thảo
44 p | 51 | 3
-
Bài giảng Hệ quản trị cơ sở dữ liệu MSSQL 2005: Chương 7 - Hồ Thị Anh Đào
24 p | 61 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn