intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Chương II: Quản lý truy xuất đồng thời

Chia sẻ: Vũ Tấn Phát | Ngày: | Loại File: PDF | Số trang:140

145
lượt xem
27
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương II: Quản lý truy xuất đồng thời

  1. Chương II. Quản lý truy xuất đồng thời 1
  2. 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
  3. 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
  4. 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
  5. Đị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
  6. Ví dụ 6
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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 đó.
  15.  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
  16. 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
  17.  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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2