Bài giảng Chương II: Quản lý truy xuất đồng thời
lượt xem 28
download
Bài giảng "Chương II: Quản lý truy xuất đồng thời" cung cấp những kiến thức như: giới thiệu về quản lý truy xuất đồng thời, khái niệm về giao tác, các vấn đề truy xuất đồng thời, lịch thao tác, các kỹ thuật khóa dữ liệu, kỹ thuật nhãn thời gian và các kỹ thuật khác.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Chương II: Quản lý truy xuất đồng thời
- Chương II. Quản lý truy xuất đồng thời 1
- Nội dung Giới thiệu Khái niệm về giao tác Các vấn đề truy xuất đồng thời Lịch thao tác Các kỹ thuật khóa dữ liệu Kỹ thuật nhãn thời gian Các kỹ thuật khác 2
- Giới thiệu Thực tế, CSDL được khai thác một cách đồng thời bởi nhiều người sử dụng. Thậm chí còn có nhiều tiến trình trong một chương trình cũng có thể được thực hiện đồng thời. Ví dụ: hệ thống đặt chỗ trên các chuyến bay của một hãng hàng không. Nhiều đại lý có thể cùng bán vé. Hành khách có thể mua vé, đổi vé, trả vé do đó danh sách khách hàng và số ghế của các chuyến bay sẽ bị thay đổi. Chuyện gì sẽ xảy ra nếu hai hay nhiều đại lý cùng bán một ghế cho nhiều khách hàng? Hệ quản trị CSDL này phải có khả năng giải quyết vấn đề tranh chấp đó để không một ghế nào trên một chuyến bay có thể bán nhiều hơn một lần. 3
- Khái niệm về giao tác (Transaction) Định nghĩa Tính chất ACID của giao tác Các thao tác của giao tác Trạng thái của giao tác 4
- Định nghĩa Giao tác là 1 đơn vị xử lý nguyên tố gồm 1 chuỗi các hành động tương tác lên CSDL. Khi thực hiện một giao tác hoặc phải thực hiện tất cả các hành động của nó hoặc thì không thực hiện hành động nào hết. CSDL nhất quán 1 Giao tác CSDL nhất quán 2 5
- Ví dụ 6
- Tính chất ACID của giao tác Tính Nguyên tố (Atomicity) Hoặc là toàn bộ hoạt động của giao dịch được phản ánh đúng đắn trong CSDL hoặc không có hoạt động nào cả. Nói cách khác, tác dụng của các câu lệnh trong một giao tác phải như là một câu lệnh đơn. Không chia nhỏ ra được. 7
- Ví dụ 1 T:Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t); A=100, B=200 (A+B=300) Tại thời điểm sau khi write(A,t) A=50, B=200 (A+B=250) - CSDL không nhất quán Tại thời điểm sau khi write(B,t) A=50, B=250 (A+B=300) - CSDL nhất quán Nếu T không bao giờ bắt đầu thực hiện hoặc T được đảm bảo phải hoàn tất thì trạng thái không nhất quán sẽ không xuất hiện 8
- Tình huống Đặt Ti là một giao dịch chuyển 50 USD từ tài khoản A đến tài khoản B. giao dịch này được định nghĩa như sau: Ti: Read(A); A:=A-50; Write(A); Read(B); B:=B+50; Write(B); 9
- Tình huống Giả sử trước khi thực hiện giao dịch Ti, các giá trị của các tài khoản A và B tương ứng là 1000USD và 2000USD. Trong khi thực hiện giao dịch Ti, một lỗi xảy ra (phần cứng, phần mềm,, mất điện,…) ngăn chặn Ti hoàn thành thực hiện giao dịch chuyển khoản. Giả sử lỗi này xảy ra sau khi thao tác Write(A) đã được thực hiện và trước khi thao tác Write(B) được thực hiện. Trong trường hợp này, giá trị cùa tài khoản A và B được ghi nhận trong CSDL là 950USD và 2000 USD. Hệ thống đã hủy 50USD do lỗi này tong A+B không còn được bảo toàn 10
- Tính chất ACID của giao tác (tt) Tính Nhất quán (Consistency) Bất kỳ CSDL nào thì mọi ràng buộc tòan vẹn phải thỏa. Tại bất kỳ thời điểm mà mọi RBTV được thỏa gọi là tính nhất quán. Một giao tác phải biến CSDL từ trạng thái nhất quán này sang trạng thái nhất quán khác không được phá vở trạng thái nhất quán. E1 T E2 (E1nhất quán thì E2 phải nhất quán). Ví dụ:phái là nam hoặc nữ, nhưng gõ đến phái Enter đi qua mà cho phép thì không còn trạng thái nhất quán. 11
- Ví dụ 2 T: Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t); Consistency Tổng A+B là không đổi Nếu CSDL nhất quán trước khi T được thực hiện thì sau khi T hoàn tất CSDL vẫn còn nhất quán 12
- Tính chất ACID của giao tác (tt) Tính Cô lập (Isolation) Một giao tác không quan tâm đến các giao tác khác xử lý đồng thời với nó Khi có n giao tác xử lý đồng thời phải làm sao bảo đảm là tôi có tính độc lập của riêng tôi, mà tôi chạy giống như tôi chạy một mình, không biết xung quanh tôi có n người khác đang chạy. Hệ thống làm sao bảo đảm khi có n người chạy 1 lúc hệ thống làm sao bảo đảm n người này chạy một mình. 13
- Ví dụ 3 T:Read(A,t); t:=t-50; T’ Write(A,t); Read(B,t); t:=t+50; Write(B,t); Giả sử có 1 giao tác T’ thực hiện phép toán A+B và chen vào giữa thời gian thực hiện của T T’ kết thúc: A+B=50+200=250 T kết thúc: A+B=50+250=300 Hệ thống của các giao tác thực hiện đồng thời có trạng thái tương đương với trạng thái hệ thống của các giao tác 14 thực hiện tuần tự theo 1 thứ tự nào đó.
- Như ví dụ trên, khi CSDL ở trạng thái không toàn vẹn trong giao dịch chuyển tiền từ A đến B đang thực hiện, ở đó tài khoản A đã giảm đi nhưng chưa tăng tài khoản B. Nếu một giao dịch thứ hai chạy đồng thời đọc A và B tại thời điểm trung gian này và tính tổng A+B, nó sẽ quan sát thấy một giá trị không đúng đắn. Hơn nữa, nếu giao dịch thứ hai thực hiện. Việc cập nhật trên A và B và dựa vào những giá trị không đúng đắn mà nó nhận được, CSDL có thể để lại một trạng thái không toàn vẹn sau khi cả hai giao 15 dịch đã hoàn thành
- Tính chất ACID của giao tác (tt) Tính Bền vững (Durability) Mọi thay đổi mà giao tác thực hiện trên CSDL phải được ghi nhận bền vững T:Read(A,t); t:=t-50; Write(A,t); Read(B,t); t:=t+50; Write(B,t); Khi T kết thúc thành công Dữ liệu sẽ không thể nào bị mất bất chấp có sự cố hệ thống xảy ra 16
- Tính bền vững đảm bảo rằng một khi giao dịch được hoàn thành, tât cả các cập nhật trên CSDL là bền vững thậm chí nếu có lỗi hệ thống sau khi giao dịch hoàn thành thực hiện. Giả sử một lỗi hệ thống có thể dẫn đến mất mát dữ liệu trong bộ nhớ chính, nhưng dữ liệu được ghi vào đĩa không bao giờ bị mất. 17
- Các thao tác của giao tác Giả sử CSDL gồm nhiều đơn vị dữ liệu Một đơn vị dữ liệu (element) Có một giá trị Được truy xuất và sửa đổi bởi các giao tác Quan hệ (relation) - Lớp (class) Khối dữ liệu trên đĩa (block) / trang (page) Bộ (tuple) - Đối tượng (object) 18
- Các thao tác của giao tác (tt) Input(X) Read(X, t) X t X Bufffer manager Buffer Disk Input Output Write(X, t) Transaction Output(X) Read Write X t X 19 Buffer Disk
- Ví dụ Giả sử CSDL có 2 đơn vị dữ liệu A và B với ràng buộc A=B trong mọi trạng thái nhất quán Giao tác T thực hiện 2 bước A:=A*2 B:=B*2 Biểu diễn T Read(A,t) ; t=t*2; Write(A,t); Read(B,t) ; t=t*2; Write(B,t); 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
CHỨNG CHỈ QUẢN TRỊ MẠNG LINUX - BÀI 4
6 p | 241 | 81
-
Bài giảng: Kỹ thuật máy tính - Nguyên lý hệ điều hành
57 p | 243 | 40
-
Bài giảng hệ thống thông tin kinh tế và quản lý - Phần 6
0 p | 91 | 14
-
Bài giảng Hệ điều hành mạng nâng cao: Chương II - TS. Hoàng Xuân Dậu
45 p | 117 | 13
-
Giáo trình tin học 12 Chương 1:Khái niệm về cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu Tiết 3
11 p | 155 | 12
-
Chương 1:Khái niệm về cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu
5 p | 94 | 9
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