Bài tập transactions_Hệ quản trị Cơ sở dữ liệu

10 2.4K 9
Bài tập transactions_Hệ quản trị Cơ sở dữ liệu

Đang tải... (xem toàn văn)

Thông tin tài liệu

1. Transaction là gì? Nó khác gì khi so với một chương trình thông thường (chẳng hạn một chương trình viết bằng ngôn ngữ C) 2. Định nghĩa các thuật ngữ sau: atomicity, consistency, isolation, durability, schedule, blide write, dirty read, unrepeatable read, serializable schedule, recoverable schedule, avoidscascadingaborts schedule. 3. Mô tả Strict 2PL. Bài làm: 1. Transaction (giao dịch)là một thực thi của một chương trình người dùng, và được DBMS xem như một chuỗi các thao tác(lệnh). Các thao tác này có thể được thực hiện bằng một giao dịch nào đó bao gồm: các phép đọc và viết lên các đối tượng cơ sở dữ liệu, trong khi đó các thao tác trong một chương trình thông thường có thể bao gồm dữ liệu đầu vào của người dùng, truy cập các thiết bị mạng, xây dựng giao diện người dùng. Sự khác biệt của Transaction(T) so với các phần mềm viết bằng ngôn ngữ khác là : T phải thực thi trên DBMS, kích hoạt thực hiện trong quá trình thực hiện chương trình.

Họ Tên: Trần Thị Thơm – MSSV: 14110192 BÀI TẬP CHƯƠNG Câu Trả lời câu hỏi sau: Transaction gì? Nó khác so với chương trình thông thường (chẳng hạn chương trình viết ngôn ngữ C) Định nghĩa thuật ngữ sau: atomicity, consistency, isolation, durability, schedule, blide write, dirty read, unrepeatable read, serializable schedule, recoverable schedule, avoids-cascading-aborts schedule Mô tả Strict 2PL Bài làm: Transaction (giao dịch)là thực thi chương trình người dùng, DBMS xem chuỗi thao tác(lệnh) Các thao tác thực giao dịch bao gồm: phép đọc viết lên đối tượng sở liệu, thao tác chương trình thông thường bao gồm liệu đầu vào người dùng, truy cập thiết bị mạng, xây dựng giao diện người dùng Sự khác biệt Transaction(T) so với phần mềm viết ngôn ngữ khác : T phải thực thi DBMS, kích hoạt thực trình thực chương trình STT Thuật ngữ atomicity Định nghĩa Tính nguyên tử - Tất thao tác nằm giao dịch thực thành công thất bại hoàn toàn Người dùng lo lắng ảnh hưởng giao dịch chưa thành công (giả sử, cố xảy giao dịch trình thực hiện) consistency Tính quán - Mỗi giao dịch thực thi không tranh chấp với giao dịch khác, phải đảm bảo tính chất quán sở liệu DBMS thừa nhận tính quán đảm bảo giao dịch Việc đảm bảo tính chất giao dịch trách nhiệm người dùng isolation Tính lập - Người dùng nên hiểu giao dịch mà không cần xem xét ảnh hưởng giao dịch tương tranh khác chạy, chí DBMS chèn vào thao tác khác lý thực thi Tính chất nói tới tính chấtcô lập.Các giao dịch lập, hay gọi bảo vệ từ ảnh hưởng giao dịch tương tranh khác Tính bền vững - Khi DBMS thông báo cho người dùng biết giao dịch thành công hoàn toàn, ảnh hưởng nên trì hệ thống gặp cố trước tất thay đổi kịp lưu lại đĩa durability Schedule blide write dirty read Đọc bẩn: xảy giao dịch đọc đối tượng mà đối tượng thay đổi giao dịch chưa thành công khác unrepeatable read Đọc lặp lại: xảy giao dịch đọc giá trị đối tượng nhiều lần, chí giao dịch không phép thay đổi giá trị Giả sử giao dịch T2 thay đổi giá trị đối tượng A – đối tượng đọc giao dịch T1 T1 trình xử lý Nếu T1 cố gắng đọc giá trị A lần nữa, kết khác, không thay đổi A Lược trình – chuỗi giao dịch (có thể xếp xen kẽ với nhau) Viết mù việc giao dịch viết lên đối tượng mà chí không đọc đối tượng 9 serializable schedule 10 recoverable schedule 11 Lượt biểu - tập S giao dịch lịch trình mà giống với lịch trình hoàn toàn tập giao dịch thành công S Lịch trình phục hồi lịch trình mà giao dịch thành công sau tất giao dịch khác đọc thành công avoidsLịch trình tránh hủy bỏ chồng số cascading-aborts giao dịch đọc thay đổi schedule giao dịch thành công Một lịch trình khả phục hồi, việc hủy bỏ giao dịch hoàn thành mà không hủy bỏ chồng giao dịch khác Strict 2PL giao thức khóa sử dụng rộng rãi Một giao dịch yêu cầu khóa chia sẻ/ độc quyền đối tượng trước đọc/ sửa đối tượng 2.Tất khóa mà giao dịch nắm bắt giải phóng giao dịch thành công Câu Xét hành động thực transaction T1 hai đối tượng CSDL sau: R(X), W(X), R(Y), W(Y) Hãy cho ví dụ transaction T2 cho thực đồng thời hai transaction mà chế kiểm soát đồng thời ngăn cản việc thực T1 T1 R(X) W(X) T2 R(Y) W(Y) R(Y) Aborted W(Y) Giải thích Strict 2PL thực việc ngăn cản ảnh hưởng hai transaction Vì Strict 2PL cấp cho T1, T2 khóa chia sẻ/độc quyền, T1, T2 không làm ảnh hưởng Vậy sử dụng strict 2PL thực việc ngăn cản ảnh hưởng hai transaction Strict 2PL sử dụng nhiều hệ CSDL Hãy nêu hai lý sao? Vì Strict 2PL cho giao dịch yêu cầu khóa chia sẻ/độc quyền đối tượng trước đọc/sửa đổi đối tượng đó.Bên cạnh đó, tất mà giao dịch nắm bắt giải phóng giao dịch thành công Câu Xét CSDL hai đối tượng X Y Giả sử hai transaction T1 T2 Transaction T1 thực : R( X), R(Y) W(X) Transaction T2 thực : R(X), R(Y), W(X), W(Y) Hãy cho lịch biểu với hành động T1 T2 đối tượng X Y mà gây xung đột ghi- đọc (write-read conflict) Hãy cho lịch biểu với hành động T1 T2 đối tượng X Y mà gây xung đột đọc-ghi (read- write conflict) Hãy cho lịch biểu với hành động T1 T2 đối tượng X Y mà gây xung đột đọc-ghi (write- write conflict) Hãy lý giải Strict PL không cho phép lịch biểu thực thi Bài làm: write-read conflict T1 R(X) R(Y) W(X) T2 R(X) R(Y) W(X) W(Y) read- write conflict T1 R(X) T2 R(X) R(Y) W(X) R(Y) W(Y) W(X) write- write conflict T1 R(X) T2 R(X) R(Y) R(Y) W(X) W(X) W(Y) Strict 2PL không cho lịch biểu gây xung đột Write-Write Write-Read Read-Write thực hiện, (vì Write hệ thống cấp cho thẻ X – độc quyền, tiến trình T1 thực xong tới T2 thực nên không ảnh hưởng, xung đột Write-Write Write-Read Read-Write xảy ra) - Write-write: T1 or T2 thực Write hệ thống cấp cho Xlock cho T1 T2 Và trước commit không cấp Xlock cho tiến trình khác nên không Write Vậy Strict 2PL không cho lịch biểu thực thi - Write-Read : : T1 or T2 thực Write hệ thống cấp cho Xlock cho T1 T2 Và trước commit không cấp Slock cho tiến trình khác nên không Write Vậy Strict 2PL không cho lịch biểu thực thi Câu Xét lịch biểu S (chưa đầy đủ) sau : T1: R(X), T1: R(Y), T1: W(X), T2: R(Y), T3: W(Y), T1: W(X), T2: R(Y) Với yêu cầu đây, chỉnh sửa S để tạo lịch biểu đầy đủ thỏa mãn điều kiện cho Nếu chỉnh sửa thực giải thích lý Nếu dùng số lượng hành động nhỏ (Read, Write, Commit hay Abort) Bạn tùy ý thêm hành động chỗ lịch biểu S Bài làm Lịch biểu cho kết tránh đươc việc hủy bỏ dây chuyền (cascading abort) phục hồi (not recorverable) T1 R(X) R(Y) W(X) T2 T3 R(Y) W(Y) W(X) R(Y) commit Lịch biểu cho kết phục hồi T1 R(X) R(Y) W(X) T2 T3 R(Y) W(Y) Commit W(X) R(Y) Commit Lịch biểu cho kết xung đột-khả (conflict-serializable) Không thực lịch biểu Vì T2: R(Y) xung đột với T3: W(Y) đổi chỗ cho Câu Định nghĩa thuật ngữ sau: conflict-serializable schedule, Viewserializable schedule, strict schedule Mô tả hai nghi thức lock sau: 2PL, conservative 2PL Tại Lock Unlock phải thao tác atomic Vấn đề phantom (phantom problem) gì? phải xảy CSDL mà tập đối tượng CSDL cố định giá trị đối tượng thay đổi Trình bày điểm khác biệt thời biểu (timestamps) gán cho transaction khởi động lại thời biểu dùng để ngăn cản deadLock so với thời biểu dùng để kiểm soát đồng thời Bài làm: Hai nghi thức lock sau: 2PL, conservative 2PL: - Nghi thức lock 2PL cung cấp loại khoá Slock Xlock + Khóa X: transaction T1 yêu cầu khóa X để truy cập đối tượng, transaction T2 thực đối tượng mà transaction T1 giữ khóa X Đây gọi khóa dùng chung +Khóa S: transaction T1 yêu cầu khóa S để truy cập đối tượng, transaction T2 thực đối tượng mà transaction T1 giữ khóa S Đây gọi khóa dùng chung - Nghi thức conservative 2PL: Transaction yêu cầu lock (khóa)/unlock(không khóa) tất mục liệu cần thiết trước transaction bắt đầu thực Tại Lock Unlock phải thao tác atomic Lock unlock phải thao tác atomic thao tác yêu cầu trạng thái thành công thất bại Không phép thực nửa chừng vật định cấp quyền không cấp quyền truy cập liệu cho transaction 3 Vấn đề phantom (phantom problem) gì? phải xảy CSDL mà tập đối tượng CSDL cố định giá trị đối tượng thay đổi Plantom problem vấn đề xảy lúc thực lệnh transaction xảy transaction tiến trình thay đổi giá trị đối tượng (write) không đồng khiến kết tổng không Câu Xác định lớp lịch biểu thuộc lớp lịch biểu lớp lịch biểu: serializable, conflict-serializable, view-serializable, recoverable, avoids-cascading-aborts, strict Nếu bạn xác định lịch biểu thuộc lớp dựa danh sách hành động, giải thích lý Các hành động liệt kê theo thứ tự chúng lập lịch Nếu lịch hành động commit hay abort lịch không đầy đủ Giả sử hành động abort/commit phải đứng sau hành động liệt kê Bài làm View-serializable Conflict-serializable Conflict-serializable Conflict-serializable Serializable, Conflict-serializable, View-serializable, recoverable and avoid cascading Aborts Recoverable Không xác định tất tính chất Avoids – cascading – aborts 10 Avoids – cascading – aborts 11 Không xác định tất tính chất 12 strict Câu Xét chuỗi hành động liệt kê theo thứ tự đệ trình tới DBMS sau: Với chuỗi với chế kiểm soát đồng thời (Wait-die policy, deadLock detection, Conservative and strict 2PL, Optimistic concurrency control), mô tả chế kiểm soát đồng thời xử lý chuỗi hành động Bài làm: Với S1 T1 yêu cầu S(X) nhận để đọc liệu từ X T2 yêu cầu X(X), X(Y) nhận để ghi liệu X, Y vào hệ thống T3 yêu cầu khóa X(Y) T2 trả khóa X(Y) để T3 ghi liệu T3 nhận khóa X(Y) T1 yêu cầu khóa X(Y) T3 trả khóa X(Y) để T1 ghi liệu T1 nhận khóa X(Y) Khi T1 commit, T1 trả S(X) X(Y) T2 commit, T3 commit Với S2 T1 yêu cầu S(X) nhận để đọc liệu từ X T2 yêu cầu X(X), X(Y) nhận để ghi liệu X, Y vào hệ thống T3 yêu cầu khóa X(Y) T2 trả khóa X(Y) để T3 ghi liệu T3 nhận khóa X(Y) T1 yêu cầu khóa X(Y) T3 trả khóa X(Y) để T1 ghi liệu T1 nhận khóa X(Y) Khi T1 commit, T1 trả S(X) X(Y) T2 commit, T3 commit ... tượng 9 serializable schedule 10 recoverable schedule 11 Lượt biểu - tập S giao dịch lịch trình mà giống với lịch trình hoàn toàn tập giao dịch thành công S Lịch trình phục hồi lịch trình mà giao... xung đột đọc-ghi (write- write conflict) Hãy lý giải Strict PL không cho phép lịch biểu thực thi Bài làm: write-read conflict T1 R(X) R(Y) W(X) T2 R(X) R(Y) W(X) W(Y) read- write conflict T1 R(X)... số lượng hành động nhỏ (Read, Write, Commit hay Abort) Bạn tùy ý thêm hành động chỗ lịch biểu S Bài làm Lịch biểu cho kết tránh đươc việc hủy bỏ dây chuyền (cascading abort) phục hồi (not recorverable)

Ngày đăng: 06/05/2017, 11:26

Từ khóa liên quan

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

Tài liệu liên quan