CHƯƠNG IV GIAO DỊCH
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG IV GIAO DỊCH (Transaction) MỤC ĐÍCH Giới thiệu khái niệm giao dịch, tính chất giao dịch cần phải có để hoạt động mơi trường có "biến động" đảm bảo cho CSDL trạng thái quán Giới thiệu khái niệm khả tuần tự, khả xung đột, khả view, khả phục hồi cascadeless, thuật tốn kiểm thử tính khả xung đột khả view YÊU CẦU Hiểu khái niệm giao dịch, tính chất cần phải có giao dịch "ai" người đảm bảo tính chất Hiểu khái niệm khả tuần tự, khả phục hồi mối tương quan chúng Hiểu vận dụng thuật toán kiểm thử CHƯƠNG IV GIAO DỊCH Trang 72 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU KHÁI NIỆM Một giao dịch đơn vị thực chương trình truy xuất cập nhật nhiều hạng mục liệu Một giao dịch thường kết thực chương trình người dùng viết ngôn ngữ thao tác liệu mức cao ngơn ngữ lập trình (SQL, COBOL, PASCAL ), phân cách câu lệnh (hoặc lời gọi hàm) có dạng begin transaction end transaction Giao dịch bao gồm tất hoạt động thực begin end transaction Để đảm bảo tính tồn vẹn liệu, ta yêu cầu hệ CSDL trì tính chất sau giao dịch: • Tính nguyên tử (Atomicity) Hoặc toàn hoạt động giao dịch phản ánh đắn CSDL khơng có • Tính qn (consistency) Sự thực giao dịch cô lập (Không có giao dịch khác thực đồng thời) để bảo tồn tính qn CSDL • Tính lập (Isolation) Cho dù nhiều giao dịch thực đồng thời, hệ thống phải đảm bảo cặp giao dịch Ti, Tj , Tj kết thúc thực trước Ti khởi động Tj bắt đầu thực sau Ti kết thúc Như giao dịch không cần biết đến giao dịch khác thực đồng thời hệ thống • Tính bền vững (Durability) Sau giao dịch hồn thành thành cơng, thay đổi tạo CSDL xảy cố hệ thống Các tính chất thường gọi tính chất ACID (Các chữ đầu bốn tính chất) Ta xét ví dụ: Một hệ thống nhà băng gồm số tài khoản tập giao dịch truy xuất cập nhật tài khoản Tại thời điểm tại, ta giả thiết CSDL nằm đĩa, vài phần nằm tạm thời nhớ Các truy xuất CSDL thực hai hoạt động sau: • READ(X) chuyển hạng mục liệu X từ CSDL đến buffer giao dịch thực hoạt động READ • WRITE(X) chuyển hạng mục liệu X từ buffer giao dịch thực WRITE đến CSDL Trong hệ CSDL thực, hoạt động WRITE không thiết dẫn đến cập nhật trực tiếp liệu đĩa; hoạt động WRITE lưu tạm thời nhớ thực đĩa muộn Trong ví dụ, ta giả thiết hoạt động WRITE cập nhật trực tiếp CSDL Ti giao dịch chuyển 50 từ tài khoản A sang tài khoản B Giao dịch xác định sau: Ti : READ(A); A:=A - 50; WRITE(A) READ(B); B:=B + 50; WRITE(B); CHƯƠNG IV GIAO DỊCH Trang 73 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU figure IV- Ta xem xét yêu cầu ACID • Tính qn: Địi hỏi qn tổng A B không thay đổi thực giao dịch Nếu khơng có u cầu quán, tiền tạo hay bị phá huỷ giao dịch Dễ dàng kiểm nghiệm CSDL quán trước thực giao dịch, quán sau thực giao dịch Đảm bảo tính quán cho giao dịch trách nhiệm người lập trình ứng dụng người viết giao dịch Nhiệm vụ làm cho dễ dàng kiểm thử tự động ràng buộc tồn vẹn • Tính ngun tử: Giả sử trước thực giao dịch Ti, giá trị tài khoản A B tương ứng 1000 2000 Giả sử thực giao dịch Ti, cố xảy cản trở Ti hồn tất thành cơng thực Ta giả sử cố xảy sau hoạt động WRITE(A) thực hiện, trước hoạt động WRITE(B) thực Trong trường hợp giá trị tài khoản A B 950 2000 Ta phá huỷ 50$ Tổng A+B khơng cịn bảo tồn Như vậy, kết cố trạng thái hệ thống không phản ánh trạng thái giới mà CSDL giả thiết nắm giữ Ta gọi trạng thái trạng thái không quán Ta phải đảm bảo tính bất khơng xuất hệ CSDL Chú ý rằng, cho dù vài thời điểm, hệ thống phải trạng thái không quán Ngay giao dịch Ti , trình thực tồn thời điểm giá trị tài khoản A 950 tài khoản B 2000 – trạng thái không quán Trạng thái thay trạng thái quán giao dịch hồn tất Như vậy, giao dịch khơng khởi động đảm bảo hoàn tất, trạng thái không quán không xảy Đó lý có u cầu tính nguyên tử: Nếu tính chất nguyên tử cung cấp, tất hành động giao dịch phản ánh CSDL khơng có ý tưởng sở để đảm bảo tính nguyên tử sau: hệ CSDL lưu vết (trên đĩa) giá trị cũ liệu giao dịch thực viết, giao dịch khơng hồn tất, giá trị cũ khơi phục để đặt trạng thái hệ thống trở lại trạng thái trước giao dịch diễn Đảm bảo tính nguyên tử trách nhiệm hệ CSDL, quản lý thành phần gọi thành phần quản trị giao dịch (transaction-management component) • Tính bền vững: Tính chất bền vững đảm bảo giao dịch hoàn tất, tất cập nhật thực sở liệu cịn đó, xảy có hệ thống sau giao dịch hoàn tất Ta giả sử cố hệ thống gây việc liệu nhớ chính, liệu đĩa khơng Có thể đảm bảo tính bền vững việc đảm bảo cập nhật thực giao dịch viết lên đĩa trước giao dịch kết thúc thông tin cập nhật thực giao dịch viết lên đĩa đủ cho phép CSDL xây dựng lại cập nhật hệ CSDL khởi động lại sau cố Đảm bảo tính bền vững trách nhiệm thành phần hệ CSDL gọi thành phần quản trị phục hồi (recoverymanagement component) Hai thành phần quản trị giao dịch quản trị phục hồi quan hệ mật thiết với • Tính lập: Ngay tính qn tính nguyên tử đảm bảo cho giao dịch, trạng thái khơng qn xảy hệ thống có số giao dịch thực đồng thời hoạt động chúng đan xen theo cách khơng mong muốn Ví dụ, CSDL không quán tạm thời giao dịch chuyển khoản từ A sang B thực hiện, giao dịch khác thực đồng thời đọc A B CHƯƠNG IV GIAO DỊCH Trang 74 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU thời điểm trung gian nàyvà tính A+B, tham khảo giá trị khơng qn, sau thực cập nhật A B dựa giá trị không quán này, CSDL trạng thái không quán hai giao dịch hồn tất thành cơng Một giải pháp cho vấn đề giao dịch thực đồng thời thực giao dịch, nhiên giải pháp làm giả hiệu hệ thống Các giải pháp khác cho phép nhiều giao dịch thực cạnh tranh phát triển ta thảo luận chúng sau Tính lập giao dịch đảm bảo thực đồng thời giao dịch dẫn đến trạng thái hệ thống tương đương với trạng thái nhận thực giao dịch thời điểm theo thứ Đảm bảo tính lập trách nhiệm thành phần hệ CSDL gọi thành phần quản trị cạnh tranh (concurrency-control component) TRẠNG THÁI GIAO DỊCH Nếu khơng có cố, tất giao dịch hồn tất thành cơng Tuy nhiên, giao dịch thực tế khơng thể hồn tất thực Giao dịch gọi bị bỏ dở Nếu ta đảm bảo tính nguyên tử, giao dịch bị bỏ dở không phép làm ảnh hưởng tới trạng thái CSDL Như vậy, thay đổi mà giao dịch bị bỏ dở phải bị huỷ bỏ Mỗi thay đổi giao dịch bị bỏ dở bị huỷ bỏ, ta nói giao dịch bị cuộn lại (rolled back) Việc trách nhiệm sơ đồ khôi phục nhằm quản trị giao dịch bị bỏ dở Một giao dịch hoàn tất thành cơng thực gọi bàn giao (committed) Một giao dịch bàn giao (committed), thực cập nhật biến đổi CSDL sang trạng thái quán bền vững có cố Mỗi giao dịch bàn giao (committed), ta huỷ bỏ hiệu bỏ dở Cách để huỷ bỏ hiệu giao dịch bàn giao (committed) thực giao dịch bù (compensating transaction); ln ln tạo giao dịch bù Do trách nhiệm viết thực giao dịch bù thuộc người sử dụng không quản lý hệ CSDL Một giao dịch phải trong trạng thái sau: ○ Hoạt động (Active) Trạng thái khởi đầu; giao dịch giữ trạng thái thực ○ bàn giao phận (Partially Committed) Sau lệnh cuối thực ○ Thất bại (Failed) Sau phát thực tiếp tục ○ Bỏ dở (Aborted) Sau giao dịch bị cuộn lại CSDL phục hồi lại trạng thái trước khởi động giao dịch ○ bàn giao (Committed) Sau hoàn thành thành cơng giao dịch Ta nói giao dịch bàn giao (committed) di vào trạng thái Committed, tương tự, giao dịch bị bỏ dở vào trạng thái Aborted Một giao dịch gọi kết thúc committed Aborted Một giao dịch khởi đầu trạng thái Active Khi kết thúc lệnh sau nó, chuyển sang trạng thái partially committed Tại thời điểm này, giao dịch hoàn thành thực nó, bị bỏ dở đầu trú tạm thời nhớ cố phần cứng ngăn cản hồn tất giao dịch Hệ CSDL kịp viết lên đĩa đầy đủ thông tin giúp việc tái tạo cập nhật thực trình thực giao dịch, hệ thống tái CHƯƠNG IV GIAO DỊCH Trang 75 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU khởi động sau cố Sau hhi thông tin sau viết lên đĩa, giao dịch chuyển sang trạng thái committed Biểu đồ trạng thái tương ứng với giao dịch sau: Partially Committed Committed Active Failed Aborted figure IV- Với giả thiết cố hệ thống không gây liệu đĩa, Một giao dịch vào trạng thái Failed sau hệ thống xác định giao dịch khơng thể tiến triển bình thường (do lỗi phần cứng phần mềm) Như vậy, giao dịch phải cuộn lại chuyển sang trạng thái bỏ dở Tại điểm này, hệ thống có hai lựa chọn: • Khởi động lại giao dịch, giao dịch bị bở dở lỗi phần cứng phần mềm khơng liên quan đến logic bên giao dịch Giao dịch khởi động lại xem giao dịch • Giết giao dịch thường tiến hành lỗi logic bên giao dịch, lỗi cần chỉnh sửa viết lại chương trình ứng dụng đầu vào xấu liệu mong muốn khơng tìm thấy CSDL Ta phải thận trọng thực viết khả quan sát (observable external Write - viết terminal hay máy in) Mỗi viết xẩy ra, khơng thể bị xố phải giao tiếp với bên ngồi hệ CSDL Hầu hết hệ thống cho phép viết xẩy giao dịch di vào trạng thái committed Một cách để thực thi sơ đồ cho hệ CSDL lưu trữ tạm thời giá trị kết hợp với viết ngồi lưu trữ khơng hay thay đổi thực viết sau giao dịch vào trạng thái committed Nếu hệ thống thất bại sau giao dịch vào trạng thái committed trước hoàn tất viết ngoài, hệ CSDL làm viết (sử dụng liệu lưu trữ không hay thay đổi) hệ thống khởi động lại Trong số ứng dụng, muốn cho phép giao dịch hoạt động trình bày liệu cho người sử dụng, đặc biệt giao dịch kéo dài vài phút hay vài Ta cho phép xuất liệu khả quan sát ta buộc phải làm tổn hại tính nguyên tử giao dịch Hầu hết hệ thống giao dịch hành đảm bảo tính nguyên tử cấm dạng trao đổi với người dùng THỰC THI TÍNH NGUYÊN TỬ VÀ TÍNH BỀN VỮNG Thành phần quản trị phục hồi hệ CSDL hỗ trợ tính nguyên tử tính bền vững Trước tiên ta xét sơ đồ đơn giản (song thiếu hiệu quả) Sơ đồ giả thiết giao dịch hoạt động thời điểm dựa tạo CSDL gọi CHƯƠNG IV GIAO DỊCH Trang 76 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU bóng (shadow copies) Sơ đồ giả thiết CSDL file đĩa Một trỏ gọi db_pointer trì đĩa; trỏ tới hành CSDL Trong sơ đồ CSDL bóng (shadow-database), giao dịch muốn cập nhật CSDL, tạo đầy đủ CSDL Tất cập nhật làm này, không đụng chạm tới gốc (bản bóng) Nếu thời điểm giao dịch bị bỏ dở, bị xoá Bản cũ CSDL không bị ảnh hưởng Nếu giao dịch hồn tất, được bàn giao (committed) sau Đầu tiên, Hỏi hệ điều hành để đảm bảo tất trang viết lên đĩa (flush) Sau flush trỏ db_pointer cập nhật để trỏ đến mới; trở thành hành CSDL Bản cũ bị xoá Giao dịch gọi được bàn giao (committed) thời điểm cập nhật trỏ db_pointer ghi lên đĩa Ta xét kỹ thuật quản lý cố giao dịch cố hệ thống sao? Trước tiên, ta xét cố giao dịch Nếu giao dịch thất bại thời điểm trước trỏ db_pointer cập nhật, nội dung cũ CSDL khơng bị ảnh hưởng Ta bỏ dở giao dịch xoá Mỗi giao dịch được bàn giao (committed), tất cập nhật mà thực CSDL trỏ db_pointer Như vậy, tất cập nhật giao dịch phản ánh không hiệu phản ánh, bất chấp tới cố giao dịch Bây ta xét cố hệ thống Giả sử cố hệ thống xảy thời điểm trước db_pointer cập nhật viết lên đĩa Khi đó, hệ thống khởi động lại, đọc db_pointer thấy nội dung gốc CSDL – không hiệu giao dịch nhìn thấy CSDL Bây lại giả sử cố hệ thống xảy sau db_pointer cập nhật lên đĩa Trước trỏ cập nhật, tất trang cập nhật viết lên đĩa Từ giả thiết file đĩa không bị hư hại cố hệ thống Do vậy, hệ thống khởi động lại, đọc db_pointer thấy nội dung CSDL sau tất cập nhật thực giao dịch Sự thực thi phụ thuộc vào việc viết lên db_pointer, việc viết phải nguyên tử, có nghĩa tất byte viết không byte viết Nếu số byte trỏ cập nhật việc viết byte khác khơng trỏ trở thành vô nghĩa cũ lẫn CSDL tìm thấy hệ thống khởi động lại May mắn thay, hệ thống đĩa cung cấp cập nhật nguyên tử toàn khối đĩa sector đĩa Như hệ thống đĩa đảm bảo việc cập nhật trỏ db_pointer nguyên tử Tính nguyên tử tính bền vững giao dịch đảm bảo việc thực thi bóng thành phần quản trị phục hồi Sự thực thi thiếu hiệu ngữ cảnh CSDL lớn, thực giao dịch địi hỏi phải tồn CSDL Hơn thực thi không cho phép giao dịch thực đồng thời với giao dịch khác Phương pháp thực thi tính nguyên tử tính lâu bền mạnh đỡ tốn trình bày chương hệ thống phục hồi CÁC THỰC HIỆN CẠNH TRANH Hệ thống xử lý giao dịch thường cho phép nhiều giao dịch thực đồng thời Việc cho phép nhiều giao dịch cập nhật liệu đồng thời gây khó khăn việc bảo đảm quán liệu Bảo đảm quán liệu mà không đếm xỉa tới thực cạnh tranh giao dịch cần thêm công việc phụ Một phương pháp dễ tiến hành cho giao dịch thực tuần tự: đảm bảo giao dịch khởi động sau giao dịch trước hồn tất Tuy nhiên có hai lý hợp lý để thực cạnh tranh là: • Một giao dịch gồm nhiều bước Một vài bước liên quan tới hoạt động I/O; bước khác liên quan đến hoạt động CPU CPU đĩa hệ thống hoạt động song song Do hoạt động I/O tiến hành song song với xử lý CPU Sự song song hệ thống CPU I/O khai thác để chạy nhiều giao dịch song song Trong giao dịch tiến hành hoạt động đọc/viết đĩa, giao dịch khác chạy CPU, giao dịch thứ ba thực đọc/viết CHƯƠNG IV GIAO DỊCH Trang 77 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU đĩa khác tăng lượng đầu vào hệ thống có nghĩa tăng số lượng giao dịch thực lượng thời gian cho, có nghĩa hiệu suất sử dụng xử lý đĩa tăng lên • Có thể có trộn lẫn giao dịch chạy hệ thống, dài ngắn Nếu thực tuần tự, q trình ngắn phải chờ q trình dài đến trước hồn tất, mà điều dẫn đến trì hỗn không lường trước việc chạy giao dịch Nếu giao dịch hoạt động phần khác CSDL, tốt ta cho chúng chạy đồng thời, chia sẻ chu kỳ CPU truy xuất đĩa chúng Thực cạnh tranh làm giảm trì hỗn khơng lường trước việc chạy giao dịch, đồng thời làm giảm thời gian đáp ứng trung bình: Thời gian để giao dịch hồn tất sau đệ trình Động để sử dụng thực cạnh tranh CSDL giống động để thực đa chương hệ điều hành Khi vài giao dịch chạy đồng thời, tính qn CSDL bị phá huỷ cho dù giao dịch Một giải pháp để giải vấn đề sử dụng định thời Hệ CSDL phải điều khiển trao đổi giao dịch cạnh tranh để ngăn ngừa chúng phá huỷ quán CSDL Các chế cho điều gọi sơ đồ điều khiển cạnh tranh (concurrency-control scheme) Xét hệ thống nhà băng đơn giản, có số tài khoản có tập hợp giao dịch, chúng truy xuất, cập nhật tài khoản Giả sử T1 T2 hai giao dịch chuyển khoản từ tài khoản sang tài khoản khác Giao dịch T1 chuyển 50$ từ tài khoản A sang tài khoản B xác định sau: T1 : Read(A); A:=A-50; Write(A); Read(B); B:=B+50; Write(B); figure IV- sau: Giao dịch T2 chuyển 10% số dư từ tài khoản A sang tài khoản B, xác định T2 : Read(A); Temp:=A*0.1; A:=A-temp; Write(A); Read(B); B:=B+temp; Write(B); figure IV- Giả sử giá trị A B tương ứng 1000$ 2000$ Giả sử hai giao dịch thực thời điểm theo thứ tự T1 tới T2 Như vậy, dãy thực hình bên dưới, dãy bước thị thứ tự thời gian từ đỉnh xuống đáy, thị T1 nằm cột trái thị T2 nằm cột phải: CHƯƠNG IV GIAO DỊCH Trang 78 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU T1 T2 Read(A); A:=A-50; Write(A); Read(B); B:=B+50; Write(B); Read(A); Temp:=A*0.1; A:=A-temp; Write(A); Read(B); B:=B+temp; Write(B); Schedule-1 figure IV- Giá trị sau tài khoản A B, sau thực dãy thị theo trình tự 855$ 2145$ tương ứng Như vậy, tổng giá trị hai tài khoản (A + B) bảo tồn sau thực hai giao dịch Tương tự, hai giao dịch thực thời điểm song theo trình tự T2 đến T1 , dãy thực là: T1 T2 Read(A); Temp:=A*0.1; A:=A-temp; Write(A); Read(B); B:=B+temp; Write(B); Read(A); A:=A-50; Write(A); Read(B); B:=B+50; Write(B); CHƯƠNG IV GIAO DỊCH Trang 79 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Schedule-2 figure IV- Và kết giá trị cuối tài khoản A B tương ứng 850$ 2150$ Các dãy thực vừa mô tả gọi lịch trình (schedules) Chúng biểu diễn trình tự thời gian thị thực hệ thống Một lịch trình tập giao dịch phải bao gồm tất thị giao dich phải bảo tồn thứ tự thị xuất giao dịch Ví dụ, giao dịch T1 , thị Write(A) phải xuất trước thị Read(B), lịch trình hợp lệ Các lịch trình schedule-1 schedule-2 Mỗi lịch trình gồm dãy thị từ giao dịch, thị thuộc giao dịch xuất lịch trình Như vậy, tập n giao dịch, có n! lịch trình hợp lệ khác Khi số giao dịch thực đồng thời, lịc trình tương ứng khơng thiết Nếu hai giao dịch chạy đồng thời, hệ điều hành thực giao dịch khoảng ngắn thời gian, sau chuyển đổi ngữ cảnh, thực giao dịch thứ hai khoảng thời gian sau lại chuyển sang thực giao dịch thứ khoảng (hệ thống chia sẻ thời gian) Có thể có vài dãy thực hiện, nhiều thị giao dịch đan xen Nói chung, khơng thể dự đốn xác thị giao dịch thực trước CPU chuyển cho giao dịch khác Do vậy, số lịch trình tập n giao dịch lớn n! nhiều T1 T2 Read(A); A:=A-50; Write(A); Read(A); Temp:=A*0.1; A:=A-temp; Write(A); Read(B); B:=B+50; Write(B); Read(B); B:=B+temp; Write(B); Schedule-3 - lịch trình cạnh tranh tương đương schedule-1 figure IV- Không phải tất thực cạnh tranh cho trạng thái Ví dụ schedule-4 sau cho ta minh hoạ nhận định này: Sau thực giao dịch này, ta đạt tới trạng thái giá trị cuối A B tương ứng 950$ 2100$ Trạng thái trạng thái không quán (A+B trước thực giao dịch 3000$ sau giao dịch 3050$) Như vậy, giao phó việc điều khiển thực cạnh tranh cho hệ điều hành, dẫn tới trạng thái không quán Nhiệm vụ CHƯƠNG IV GIAO DỊCH Trang 80 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU hệ CSDL đảm bảo lịch trình phép thực đưa CSDL sang trạng thái quán Thành phần hệ CSDL thực nhiệm vụ gọi thành phần điều khiển cạnh tranh (concurrency-control component) Ta đảm bảo quán CSDL với thực cạnh tranh cách nắm lịch trình thực có hiệu lịch trình T1 T2 Read(A); A:=A-50; Read(A); Temp:=A*0.1; A:=A-temp; Write(A); Read(B); Write(A); Read(B); B:=B+50; Write(B); B:=B+temp; Write(B); Schedule-4 - lịch trình cạnh tranh figure IV- TÍNH KHẢ TUẦN TỰ (Serializability) Hệ CSDL phải điều khiển thực cạnh tranh giao dịch để đảm bảo trạng thái CSDL giữ nguyên trạng thái quán Trước ta kiểm tra hệ CSDL thực nhiệm vụ nào, ta phải hiểu lịch trình đảm bảo tính qn lịch trình khơng Vì giao dịch chương trình, nên thật khó xác định hoạt động xác thực giao dịch hoạt động hoạt động giao dịch tác động lẫn Vì lý này, ta khơng giải thích kiểu hoạt động mà giao dịch thực hạng mục liệu Thay vào đó, ta xét hai hoạt động: Read Write Ta giả thiết thị Read(Q) thị Write(Q) hạng mục liệu Q, giao dịch thực dãy tuỳ ý hoạt động Q lưu trú buffer cục giao dịch Vì ta nêu thị Read Write lịch trình, biểu diễn với quy ước schedule-3 đây: T1 T2 Read(A); Write(A); Read(A); Write(A); Read(B); Write(B); Read(B); CHƯƠNG IV GIAO DỊCH Trang 81 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Write(B); Schedule-3 ( viết dạng thoả thuận) figure IV- TUẦN TỰ XUNG ĐỘT (Conflict Serializability) Xét lịch trình S có hai thị liên tiếp Ii Ij giao dịch Ti , Tj tương ứng (i ≠ j) Nếu Ii Ij tham khảo đến hạng mục liệu khác nhau, ta đổi chỗ Ii Ij mà không làm ảnh hưởng đến kết thị lịch trình Tuy nhiên, Ii Ij tham khảo hạng mục liệu Q, thứ tự hai bước quan trọng Do ta thực chỉ thị Read Write, nên ta có bốn trường hợp cần phải xét sau: Ii = Read(Q); Ij = Read(Q): Thứ tự Ii Ij không gây vấn đề nào, Ti Tj đọc giá trị Q đến thứ tự Ii Ij Ii = Read(Q); Ij = Write(Q): Nếu Ii thực trước Ij, Khi Ti khơng đọc giá trị viết Tj thị Ij Nếu Ij thực trước Ii , Ti đọc giá trị Q viết Ij , thứ tự Ii Ij quan trọng Ii = Write(Q); Ij = Read(Q): Thứ tự Ii Ij quan trọng lý trường hợp trước Ii = Write(Q); Ij = Write(Q): Cả hai thị hoạt động Write, thứ tự hai thị không ảnh hưởng đến hai giao dịch Ti Tj Tuy nhiên, giá trị nhận thị Read kế S bị ảnh hưởng kết phụ thuộc vào thị Write thực sau hai thị Write Nếu khơng cịn thị Write sau Ii Ij S, thứ tự Ii vf Ij ảnh hưởng trực tiếp đến giá trị cuối Q trạng thái CSDL kết (của lịch trình S) Như trường hợp Ii Ij thị Read, thứ tự thực hai thị (trong S) khơng gây vấn đề Ta nói Ii Ij xung đột hoạt động nằm giao dịch khác nhau, tiến hành hạng mục liệu có hoạt động Write Ta xét lịch trình schedule-3 ví dụ minh hoạ cho thị xung đột T2 T1 Read(A); Write(A); Read(A); Write(A); Read(B); Write(B); Read(B); Write(B); figure IV- 10 Chỉ thị Write(A) T1 xung đột với Read(A) T2 Tuy nhiên, thị Write(A) T2 không xung đột với thị Read(B) T1 thị truy xuất hạng mục liệu khác CHƯƠNG IV GIAO DỊCH Trang 82 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Ii Ij hai thị liên tiếp lịch trình S Nếu Ii Ij thị giao dịch khác khơng xung đột, ta đổi thứ tự chúng mà khơng làm ảnh hưởng đến kết xử lý ta nhận lịch trình S’ tương đương với S Do thị Write(A) T2 không xung đột với thị Read(B) T1, ta đổi chỗ thị để lịch trình tương đương – schedule-5 T1 T2 Read(A); Write(A); Read(A); Read(B); Write(A); Write(B); Read(B); Write(B); figure IV- 11 Ta tiếp tục đổi chỗ thị không xung đột sau: ○ Đổi chỗ thị Read(B) T1 với thị Read(A) T2 ○ Đổi chỗ thị Write(B) T1 với thị Write(A) T2 ○ Đổi chỗ thị Write(B) T1 với thị Read(A) T2 Kết cuối bước đổi chỗ lịch trình (schedule-6 –lịch trình tuần tự) tương đương với lịch trình ban đầu (schedule-3): T1 T2 Read(A); Write(A); Read(B); Write(B); Read(A); Write(A); Read(B); Write(B); Schedule-6 figure IV- 12 Sự tương đương cho ta thấy: bất chấp trạng thái hệ thống ban đầu, schedule-3 sinh trạng thái cuối lịch trình Nếu lịch trình S biến đổi thành lịch trình S’ dãy đổi chỗ thị khơng xung đột, ta nói S S’ tương đương xung đột (conflict equivalent) Trong schedule nêu trên, ta thấy schedule-1 tương đương xung đột với schedule-3 CHƯƠNG IV GIAO DỊCH Trang 83 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Khái niệm tương đương xung đột dẫn đến khái niệm xung đột Ta nói lịch trình S khả xung đột (conflict serializable) tương đương xung đột với lịch trình Như vậy, schedule-3 khả xung đột Như ví dụ, lịch trình schedule-7 khơng tương đương xung đột với lịch trình khơng khả xung đột: T3 T4 Read(Q) Write(Q) Write(Q) Schedule-7 figure IV- 13 Có thể có hai lịch trình sinh kết quả, khơng tương đương xung đột Ví dụ, giao dịch T5 chuyển 10$ từ tài khoản B sang tài khoản A Ta xét lịch trình schedule-8 đây, lịch trình khơng tương đương xung đột với lịch trình < T1, T5 > lịch trình schedule-8 thị Write(B) T5 xung đột với thị Read(B) T1 ta di chuyển tất thị T1 trước thị T5 việc hoán đổi liên tiếp thị không xung đột Tuy nhiên, giá trị sau tài khoản A B sau thực lịch schedule-8 sau thực lịch trình - 960 2040 tương ứng Qua ví dụ ta thấy cần thiết phải phân tích tính tốn thực giao dịch mà khơng hoạt động Read Write Tuy nhiên phân tích nặng nề phải trả giá tính tốn cao T1 T2 Read(A); A:=A-50; Write(A); Read(B); B:=B-10; Write(A); Read(B); B:=B+50; Write(B); Read(A); A:=A+50; Write(A); Schedule-8 figure IV- 14 CHƯƠNG IV GIAO DỊCH Trang 84 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU TUẦN TỰ VIEW (View Serializability) Xét hai lịch trình S S’, tập hợp giao dịch tham gia vào hai lịch trình Các lịch trình S S’ gọi tương đương view ba điều kiện sau thoả mãn: Đối với hạng mục liệu Q, giao dịch Ti đọc giá trị khởi đầu Q lịch trình S, giao dịch Ti phải đọc giá trị khởi đầu Q lịch trình S’ Đối với hạng mục liệu Q, giao dịch Ti thực Read(Q) lịch trình S giá trị sản sinh giao dịch Tj Ti phải đọc giá trị Q sinh giao dịch Tj S’ Đối với hạng mục liệu Q, giao dịch thực hoạt động Write(Q) sau lịch trình S, phải thực hoạt động Write(Q) sau lịch trình S’ Điều kiện đảm bảo giao dịch đọc giá trị hai lịch trình thực tính tốn Điều kiện cặp với điều kiện đảm bảo hai lịch trình cho kết trạng thái cuối hệ thống Trong ví dụ trước, schedule-1 khơng tương tương view với lịch trình do, schedule-1, giá trị tài khoản A đọc giao dịch T2 sinh T1 , điều không xảy schedule-2 Schedule1 tương đương view với schedule-3 giá trị tài khoản A B đọc T2 sinh T1 hai lịch trình Quan niệm tương đương view đưa đến quan niểm view Ta nói lịch trình S khả view (view serializable) tương dương view với lịch trình Ta xét lịch trình sau: T3 T4 T6 Read(Q) Write(Q) Write(Q) Write(Q) Schedule-9 figure IV- 15 Nó tương đương view với lịch trình < T3, T4, T6 > thị Read(Q) đọc giá trị khởi đầu Q hai lịch trình T6 thực Write sau hai lịch trình schedule-9 khả view Mỗi lịch trình khả xung đột khả view, có lịch trình khả view khơng khả xung đột (ví dụ schedule-9) Trong schedule-9 giao dịch T4 T6 thực hoạt động Write(Q) mà không thực hoạt động Read(Q), Các Write dạng gọi Write mù (blind write) Các Write mù xuất lịch trình khả view không khả xung đột CHƯƠNG IV GIAO DỊCH Trang 85 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU TÍNH KHẢ PHỤC HỒI (Recoverability) Ta nghiên cứu lịch trình chấp nhận quan điểm nhát quán CSDL với giả thiết khơng có giao dịch thất bại Ta xét hiệu thất bại giao dịch thực cạnh tranh Nếu giao dịch Ti thất bại lý đó, ta cần huỷ bỏ hiệu giao dịch để đảm bảo tính nguyên tử giao dịch Trong hệ thống cho phép thực cạnh tranh, cần thiết đảm bảo giao dịch phụ thuộc vào Ti phải bị bỏ Để thực chắn này, ta cần bố trí hạn chế kiểu lịch trình phép hệ thống LỊCH TRÌNH KHẢ PHỤC HỒI (Recoverable Schedule) Xét lịch trình schedule-10 T9 giao dịch thực thị Read(A) Giả sử hệ thống cho phép T9 bàn giao (commit) sau thực thị Read(A) Như T9 bàn giao trước T8 Giả sử T8 thất bại trước bàn giao, T9 T9 đọc giá trị hạng mục giữ liệu A viết T8 , ta phải bỏ dở T9 để đảm bảo tính nguyên tử giao dịch Song T9 bàn giao khơng thể bỏ dở Ta có tình khơng thể khơi phục sau thất bại T8 T8 T9 Read(A) Write(A) Read(A) Read(B) Schedule-10 figure IV- 16 Lịch trình schedule-10 ví dụ lịch trình khơng phục hồi khơng dược phép Hầu hết hệ CSDL đòi hỏi tất lịch trình phải phục hồi Một lịch trình khả phục hồi lịch trình đó, cặp giao dịch Ti , Tj , Tj đọc hạng mục liệu viết Ti hoạt động bàn giao Tj phải xảy sau hoạt động bàn giao Ti LỊCH TRÌNH CASCADELESS (Cascadeless Schedule) Ngay lịch trình khả phục hồi, để phục hồi sau thất bại giao dịch Ti ta phải cuộn lại vài giao dịch Tình xảy giao dịch đọc liệu viết Ti Ta xét lich trình schedule-11 sau T10 T11 T12 Read(A) Read(B) Write(A) Read(A) Write(A) CHƯƠNG IV GIAO DỊCH Trang 86 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Read(A) Schedule-11 figure IV- 17 Giao dịch T10 viết giá trị đọc T11 Giao dịch T12 đọc giá trị viết T11 Giả sử điểm T10 thất bại T10 phải cuộn lại, T11 phụ thuộc vào T10 nên T11 phải cuộn lại với T12 Hiện tượng giao dịch thất bại kéo theo dãy giao dịch phải cuộn lại gọi cuộn lại hàng loạt (cascading rollback) Cuộn lại hàng loạt dẫn đến việc huỷ bỏ khối lượng công việc đáng kể Phải hạn chế lịch trình để việc cuộn lại hàng loạt xảy Các lịch trình gọi lịch trình cascadeless Một lịch trình cascadeless lịch trình cặp giao dịch Ti , Tj Tj đọc hạng mục liệu viết trước Ti, hoạt động bàn giao Ti phải xuất trước hoạt động đọc TJ Một lịch trình cascadeless khả phục hồi THỰC THI CÔ LẬP (Implementation of Isolation) Có nhiều sơ đồ điều khiển cạnh tranh sử dụng để đảm bảo tính chất lịch trình phải có (nhằm giữ CSDL trạng thái quán, cho phép quản lý giao dịch ), nhiều giao dịch thực cạnh tranh, lịch trình chấp nhận sinh ra, hệ điều hành chia sẻ thời gian tài nguyên giao dịch Như ví dụ, ta xét sơ đồ điều khiển cạnh tranh sau: Một giao dịch tậu chốt (lock) tồn CSDL trước khởi động tháo chốt bàn giao Trong giao dịch giữ chốt không giao dịch khác phép tậu chốt phải chờ đến tận chốt tháo Trong đối sách chốt, giao dịch thực thời điểm lịch trình sinh Sơ đồ điều khiển cạnh tranh cho hiệu cạnh tranh nghèo nàn Ta nói cung cấp bậc cạnh tranh nghèo (poor degree of concurrency) Mục đích sơ đồ điều khiển cạnh tranh cung cấp bậc canh tranh cao đảm bảo lịch trình sinh khả xung đột khả view cascadeless ĐỊNH NGHĨA GIAO DỊCH TRONG SQL Chuẩn SQL đặc tả bắt đầu giao dịch cánh không tường minh Các giao dịch kết thúc hai lệnh SQL sau: ○ Commit work bàn giao giao dịch hành bắt đầu giao dịch ○ Rollback work gây huỷ bỏ giao dịch hành Từ khoá work chọn lựa hai lệnh Nếu chương trình kết thúc thiếu hai lệnh này, cập nhật bàn giao bị cuộn lại thực phụ thuộc Chuẩn đặc tả hệ thống phải đảm bảo tính khả tính tự từ việc cuộn lại hàng loạt Định nghĩa tính khả ding chuẩn lịch trình phải có hiệu lịch trình tính khả xung đột view chấp nhận Chuẩn SQL-92 cho phép giao dịch đặc tả thực theo cách mà làm cho trở nên khơng khả với tơn trọng giao dịch khác Ví dụ, giao dịch hoạt động mức Read uncommitted, cho phép giao dịch đọc mẩu tin them chí chúng không bàn giao Đặc điểm cung cấp cho giao dich dài CHƯƠNG IV GIAO DỊCH Trang 87 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU kết chúng khơng thiết phải xác Ví dụ, thơng tin xấp xỉ thường đủ cho thống kê dùng cho tối ưu hoá vấn tin Các mức quán đặc tả SQL-92 là: ○ Serializable : ○ Repeatable read : cho phép đọc record bàn giao, yêu cầu hai Read record giao dịch không giao dịch khác phép cập nhật record Tuy nhiên, giao dịch khơng khả với tơn trọng giao dịch khác Ví dụ, tìm kiếm record thoả mãn điều kiện đó, giao dịch tìm thấy vài record xen giao dịch bàn giao, ○ Read committed: Chỉ cho phép đọc record bàn giao, khơng có u cầu thêm Read khả lặp Ví dụ, hai Read record giao dịch, mẩu tin cập nhật giao dịch bàn giao khác ○ Read uncommitted: Cho phép đọc record chưa bàn giao Đây mức quán thấp phép SQL-92 KIỂM THỬ TÍNH KHẢ TUẦN TỰ Khi thiết kế sơ đồ điều khiển cạnh tranh, ta phải chứng tỏ lịch trình sinh sơ đồ khả Để làm điều đó, trước tiên ta phải biết làm để xác định, với lịch trình cụ thể cho, có khả hay khơng KIỂM THỬ TÍNH KHẢ TUẦN TỰ XUNG ĐỘT Giả sử S lịch trình Ta xây dựng đồ thị định hướng, gọi đồ thị trình tự (precedence graph), từ S Đồ thị gồm cặp (V, E) V tập đỉnh E tập cung Tập đỉnh bao gồm tất giao dịch tham gia vào lịch trình Tập cung bao gồm tất cung dạng Ti → Tj cho điều kiện sau thoả mãn: Ti thực Write(Q) trước Tj thực Read(Q) Ti thực Read(Q) trước Tj thực Write(Q) Ti thực Write(Q) trước Tj thực Write(Q) Nếu cung Ti → Tj tồn đồ thị trình tự, lịch trình S’ tương đương với S, Ti phải xuất trước Tj Đồ thị trình tự schedule-1 là: T1 thực trước thị T2 T1 T2 tất thị Đồ thị trình tự schedule-2 là: T2 thực trước thị T1 T2 T1 tất thị Đồ thị trình tự schedule-4 chứa cung T1 → T2 T1 thực Read(A) trước T2 thực Write(A) Nó chứa cung T2 → T1 T2 thực Read(B) trước T1 thực Write(B): T1 CHƯƠNG IV GIAO DỊCH T2 Trang 88 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Nếu đồ thị trình tự S có chu trình, lịch trình S khơng khả xung đột Nếu đồ thị khơng chứa chu trình, lịch trình S khả xung đột Thứ tự khả nhận thơng qua xếp topo (topological sorting), xác định thứ tự tuyến tính quán với thứ tự phận đồ thị trình tự Nói chung, có vài thứ tự tuyến tính nhận qua xếp topo Ví dụ, đồ thị sau: Ti Tj Tk Tm Có hai thứ tự tuyến tính chấp nhận là: Ti Ti Tj Tk Tk Tj Tm Tm figure IV- 18 Như vậy, để kiểm thử tính khả xung đột, ta cần xây dựng đồ thị trình tự gọi thuật tốn phát chu trình Ta nhận sơ đồ thực nghiệm để xác định tính khả xung đột Như ví dụ, schedule-1 schedule-2, đồ thị trình tự chúng khơng có chu trình, chúng chu trình khả xung đột, đồ thị trình tự schedule-4 chứa chu trình khơng khả xung đột KIỂM THỬ TÍNH KHẢ TUẦN TỰ VIEW Ta sửa đổi phép kiểm thử đồ thị trình tự tính khả xung đột dể kiểm thử tính khả view Tuy nhiên, phép kiểm thử phải trả giá cao thời gian chạy Xét lịch trình schedule-9, ta tuân theo quy tắc phép kiểm thử tính khả xung đột để tạo đồ thị trình tự, ta nhận đồ thị sau: T3 T4 T6 figure IV- 19 Đồ thị có chu trình, schedule-9 không khả xung đột Tuy nhiên, đã thấy khả view (do tương đương với lịch trình < T3, T4 , T6 >) CHƯƠNG IV GIAO DỊCH Trang 89 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Cung T3 →T4 khơng xen vào đồ thị giá trị hạng mục Q sản sinh T3 T4 không dùng giao dịch khác T6 sản sinh giá trị cuối Q Các thị Write(Q) T3 T4 gọi Write vô dụng (Useless Write) Điều sử dụng đơn sơ đồ đồ thị trình tự dể kiểm thử tính khả view Cần thiết phát triển sơ đồ cho việc định cung cần phải xen vào đồ thị trình tự Xét lịch trình S Giả sử giao dịch Tj đọc hạng mục liệu Q viết Ti Rõ ràng S khả view, đó, lịch trình S’ tương đương với S, Ti phải trước Tj Bây giả sử rằng, lịch trình S, giao dịch Tk thực Write(Q), đó, lịch trình S’, Tk phải trước Ti sau Tj Nó khơng thể xuất Ti Tj Tj không đọc giá trị Q viết Ti S không tương đương view với S’ Các ràng buộc biểu diễn thuật ngữ mơ hình đồ thị trình tự đơn giản nêu lên trước Như ví dụ trước, khó khăn nảy sinh chỗ ta biết hai cung Tk → Ti Tj → Tk phải xen vào đồ thị ta chưa tạo quy tắc để xác định lựa chọn thích hợp Để tạo quy tắc này, ta cần mở rộng đồ thị định hướng để bao hàm cung gán nhãn, ta gọi đồ thị đồ thị trình tự gán nhãn (Label precedence graph) Cũng trước đây, nút đồ thị tất giao dịch tham gia vào lịch trình Các quy tắc xen cung gán nhãn diễn giải sau: Giả sử S lịch trình gồm giao dịch { T1 , T2 , , Tn } Tb Tf hai giao dịch giả: Tb phát Write(Q) Q truy xuất S, Tf phát Read(Q) Q truy xuất S Ta xây dựng lich trình S’ từ S cách xen Tb bắt đầu S Tf cuối S Đồ thị trình tự gán nhãn đố với S’ xây dung dựa quy tắc: Thêm cung Ti →0 Tj , Tj đọc giá trị hạng mục liệu Q viết Ti Xoá tất cung liên quan tới giao dịch vô dụng Một giao dịch Ti gọi vơ dụng khơng có đường đồ thị trình tự dẫn từ Ti đến Tf Đối với hạng mục liệu Q cho Tj đọc giá trị Q viết Ti Tk thực Write(Q), Tk ≠ Tb tiến hành bước sau a Nếu Ti = Tb Tj ≠ Tf, xen cung Tj →0 Tk vào đồ thị trình tự gán nhãn b Nếu Ti ≠ Tb Tj = Tf xen cung Tk →0 Ti vào đồ thị trình tự gán nhãn c Nếu Ti ≠ Tb Tj ≠ Tf xen hai cung Tk →p Ti Tj →p Tk vào đồ thị trình tự gán nhãn, p số nguyên lớn mà chưa sử dụng trước để gán nhãn cung Quy tắc 3c phản ánh Ti viết hạng mục liệu đọc Tj giao dịch Tk viết hạng mục liệu phải trước Ti sau Tj Quy tắc 3a 3b trường hợp đặc biệt kết kiện Tb Tf cần thiết giao dịch cuối tương ứng Như ví dụ, ta xét schedule-7 Đồ thị trình tự gán nhãn xây dựng qua bước là: T3 0 Tf Tb T4 CHƯƠNG IV GIAO DỊCH Trang 90 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đồ thị sau (cung T3 → T4 kết 3a, cung T4 → T3 kết 3b) : T3 0 Tb 0 Tf T4 Đồ thị trình tự gán nhãn schedule-9 là: T3 0 Tb T4 Tf T6 figure IV- 20 Cuối cùng, ta xét lịch trình schedule-10: T3 T3 T7 Read(Q) Write(Q) Read(Q) Write(Q) Write(Q) Đồ thị trình tự gán nhãn schedule-10 là: T3 CHƯƠNG IV GIAO DỊCH Trang 91 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Tb T4 Tf 0 T7 figure IV- 21 Đồ thị trình tự gán nhãn schedule-7 chứa chu trình tối tiểu : T3 → T4 → T3 Đồ thị trình tự gán nhãn schedule-10 chứa chu trình tối tiểu: T3 → T1 → T3 Đồ thị trình tự gán nhãn schedule-9 khơng chứa chứa chu trình Nếu đồ thị trình tự gán nhãn khơng chứa chu trình, lịch trình tương ứng khả tuàn tự view, schedule-9 khả view Tuy nhiên, đồ thị chứa chu trình, điều kiện khơng kéo theo lịch trình tương ứng khơng khả view Đồ thị trình tự gán nhãn schedule-7 chứa chu trình lịch trình khơng khả view Bên cạnh đó, lịch trình schedule-10 khả view, đồ thị trình tự gán nhãn có chứa chu trình Bây ta giả sử có n cặp cung tách biệt, ta áp dụng n lần quy tắc 3c xây dựng đồ thị trình tự Khi có 2n đồ thị khác nhau, chứa cung cặp Nếu đồ thị đồ thị phi chu trình, lịch trình tương ứng khả view Thuật toán đòi hỏi phép kiểm thử vét cạn đồ thị riêng biệt, thuộc lớp vấn đề NP-complet !!! Ta xét đồ thị schedule-10 có cặp tách biệt Hai đồ thị triên biệt là: T3 0 Tb T4 Tf 0 T7 T3 0 Tb T4 Tf T7 figure IV- 22 Đồ thị thứ khơng chứa chu trình, lịch trình khả view CHƯƠNG IV GIAO DỊCH Trang 92 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU BÀI TẬP CHƯƠNG IV IV.1 Liệt kê tính chất ACID Giải thích hữu ích chúng IV.2 Trong thực hiện, giao dịch trải qua vài trạng thái đến tận bàn giao bỏ dở Liệt kê tất dãy trạng thái giao dịch trải qua Giải thích bắc cầu trạng thái xảy IV.3 Giải thích khác biệt lịch trình (Serial schedule) lịch trình khả (Serializable schedule) IV.4 Xét hai giao dịch sau: T1 : Read(A); Read(B); If A=0 then B:=B+1; Write(B) T2 : Read(B); Read(A); If B=0 then A:=A+1; Write(A) Giả thiết yêu cầu quán A=0 V B=0 với A=B=0 giá trị khởi đầu a Chứng tỏ thự bao gồm hai giao dịch bảo tồn tính quán CSDL b Nêu thực cạnh tranh T1 T2 sinh lịch trình khơng khả c Có thực cạnh tranh T1 T2 sinh lịch trình khả khơng ? IV.5 Do lịch trình khả xung đột lịch trình khả view Tại ta lại nhấn mạnh tính khả xung đột tính khả view? CHƯƠNG IV GIAO DỊCH Trang 93 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU IV.6 Xét đồ thị trình tự sau: T1 T2 T4 T3 T5 Lịch trình tương ứng khả xung đột khơng? Giải thích IV.7 Xét đồ thị trình tự gán nhãn sau: 0 T1 T2 Tb 1 T3 T4 0 Tf Lịch trình tương ứng khả view khơng? Giải thích IV.8 Lịch trình khả phục hồi gì? Tại cần thiết tính khả phục hổi lịch trình? IV.9 Lịch trình cascadeless gì? Tại cần thiết tính cascadeless lịch trình? CHƯƠNG IV GIAO DỊCH Trang 94 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG IV GIAO DỊCH Trang 95 ... đọc/viết đĩa, giao dịch khác chạy CPU, giao dịch thứ ba thực đọc/viết CHƯƠNG IV GIAO DỊCH Trang 77 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU đĩa khác tăng lượng đầu vào hệ thống có nghĩa tăng số lượng giao dịch thực... thực giao dịch 3000$ sau giao dịch 3050$) Như vậy, giao phó việc điều khiển thực cạnh tranh cho hệ điều hành, dẫn tới trạng thái khơng qn Nhiệm vụ CHƯƠNG IV GIAO DỊCH Trang 80 HỆ QUẢN TRỊ CƠ SỞ DỮ... vài giao dịch Tình xảy giao dịch đọc liệu viết Ti Ta xét lich trình schedule-11 sau T10 T11 T12 Read(A) Read(B) Write(A) Read(A) Write(A) CHƯƠNG IV GIAO DỊCH Trang 86 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU