1. Trang chủ
  2. » Giáo Dục - Đào Tạo

GIÁO TRÌNH CƠ SỞ DỮ LIỆU

1K 326 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 1.042
Dung lượng 11,76 MB

Nội dung

Khi đọc qua tài liệu này, phát sai sót nội dung chất lượng xin thông báo để sửa chữa thay tài liệu chủ đề tác giả khác Tài li u bao g m nhi u tài li u nh có ch đ bên Ph n n i dung b n c n có th n m gi a ho c cu i tài li u này, s d ng ch c Search đ tìm chúng Bạn tham khảo nguồn tài liệu dịch từ tiếng Anh đây: http://mientayvn.com/Tai_lieu_da_dich.html Thông tin liên hệ: Yahoo mail: thanhlam1910_2006@yahoo.com Gmail: frbwrthes@gmail.com CƠ SỞ DỮ LIỆU ◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊◊ PHẦN I ♦♦♦♦♦♦♦♦♦♦ o Các khái niệm o Kiến trúc hệ thống sở liệu o Mô hình quan hệ thực thể o Mô hình quan hệ o Chuẩn hoá quan hệ o Thiết kế sở liệu vật lý GV Phạm Thị Hoàng Nhung Bộ môn Công nghệ phần mềm Đại học Thủy lợi MỤC LỤC MỤC LỤC Chương CÁC KHÁI NIỆM CƠ BẢN .5 1.1 Tại phải có sở liệu 1.2 Định nghĩa sở liệu .5 1.2.1 Khái niệm 1.2.2 Ưu điểm 1.2.3 Vấn đề cần giải 1.3 Hệ quản trị sở liệu (DataBase Management System_DBMS) 1.3.1 Ví dụ 1.3.2 Khái niệm .7 1.4 Hệ thống sở liệu (Database System) 1.5 Các đối tượng sử dụng CSDL 1.5.1 Đối tượng trực tiếp 1.5.2 Đối tượng gián tiếp 1.6 Lợi ích việc sử dụng HQTCSDL Chương NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU 11 2.1 Mô hình liệu, lược đồ trường hợp (Data Models, Schemas, Instances) 11 2.1.1 Phân loại mô hình liệu .11 2.1.2 Lược đồ(Schema) , minh hoạ (instances), trạng thái (State) 14 2.2 Lược đồ kiến trúc hệ quản trị sở liệu (DBMS Architecture) độc lập liệu (Data Independence) .15 2.2.1 Lược đồ kiến trúc mức HQTCSDL .16 2.2.2 Độc lập liệu 17 2.3 Ngôn ngữ HQTCSDL 17 2.4 Các tính HQTCSDL 17 2.5 Phân loại HQTCSDL 17 Chương MÔ HÌNH QUAN HỆ - THỰC THỂ (Entity – Relationship Model) 19 3.1 Sử dụng mô hình liệu khái niệm mức cao để thiết kế sở liệu 19 3.2 Mục đích mô hình khái niệm ER(Entity – Relationship Model) 20 PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn MỤC LỤC 3.3 Ví dụ sở liệu ứng dụng 20 3.4 Kiểu thực thể(Entity Type), Thuộc tính (Attributes), Khoá (Keys) 22 3.4.1 Thực thể (Entities) thuộc tính (Attributes) .22 3.4.2 Kiểu thực thể, Khoá tập giá trị 25 3.5 Liên kết, Kiểu liên kết Ràng buộc liên kết 25 3.5.1 Định nghĩa liên kết kiểu liên kết 25 3.5.2 Bậc kiểu liên kết .26 3.5.3 Ràng buộc liên kết 27 3.6 Kiểu thực thể yếu(Weak Entity) 29 3.7 Tổng quát hóa chuyên biệt hóa 29 3.7.1 Thực thể thực thể .30 3.7.2 Các thực thể loại trừ 30 3.8 Các ký hiệu quy ước đặt tên mô hình ER 31 3.8.1 Các ký hiệu 31 3.8.2 Quy tắc đặt tên 31 3.9 Xây dựng mô hình ER .32 3.9.1 Các bước xây dựng sơ đồ ER 32 3.9.2 Mô hình ER cho sở liệu COMPANY 33 3.9.3 Bài tập .34 Chương MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ .37 4.1 Khái niệm mô hình quan hệ 37 4.2 Các thành phần mô hình 37 4.2.1 Một số khái niệm mô hình quan hệ 37 4.2.2 Quan hệ: 37 4.2.3 Các tính chất quan hệ 38 4.2.4 Các ràng buộc toàn vẹn quan hệ 38 4.2.5 Các phép toán CSDL quan hệ 41 Chương CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ 48 Chương PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ .55 6.1 Một số hướng dẫn thiết kế sở liệu quan hệ .55 6.2 Phụ thuộc hàm(Functional Dependencies) .56 6.2.1 Định nghĩa phụ thuộc hàm 56 PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn MỤC LỤC 6.2.2 Hệ tiên đề Armstrong 57 6.2.3 Bao đóng tập phụ thuộc hàm 57 6.2.4 Bao đóng tập thuộc tính X F .57 6.2.5 Khoá quan hệ 58 6.2.6 Tập phụ thuộc hàm tương đương 59 6.2.7 Tập phụ thuộc hàm tối thiểu 59 6.3 Các dạng chuẩn quan hệ .60 6.3.1 Định nghĩa dạng chuẩn .60 6.3.2 Phép phân rã lược đồ quan hệ 66 6.4 Chuẩn hoá quan hệ .70 6.4.1 BCNF Thuật toán phân rã lược đồ quan hệ thành lược đồ quan hệ 70 6.4.2 Thuật toán phân rã lược đồ quan hệ thành lược đồ 3NF 72 Chương THIẾT KẾ CƠ SỞ DỮ LIỆU VẬT LÝ (Tham khảo) 75 7.1 Nội dung thiết kế file vật lý sở liệu vật lý 75 7.1.1 Quá trình thiết kế 75 7.1.2 Sản phẩm thiết kế 76 7.2 Thiết kế trường 77 7.2.1 Yêu cầu thiết kế trường 77 7.2.2 Chọn kiểu cách biểu diễn liệu .78 7.3 Thiết kế ghi vật lý 80 7.3.1 Phi chuẩn .80 7.3.2 Quản lý trường có độ dài cố định 81 7.3.3 Quản lý trường có độ dài biến đổi 81 7.4 Thiết kế file vật lý 82 7.4.1 Các loại file .82 7.4.2 Các phương pháp truy cập 82 7.4.3 Tổ chức file .83 7.4.4 Ví dụ thiết kế file 87 PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn Chương CÁC KHÁI NIỆM CƠ BẢN Chương CÁC KHÁI NIỆM CƠ BẢN Trong nhiều năm gần đây, thuật ngữ Cơ sở liệu - Database trở nên quen thuộc nhiều lĩnh vực Các ứng dụng tin học vào quản lý ngày nhiều đa dạng, hầu hết lĩnh vực kinh tế, xã hội… ứng dụng thành tựu tin học vào phục vụ công tác chuyên môn Chính lẽ mà ngày nhiều người quan tâm đến thiết kế, xây dựng ứng dụng sở liệu (CSDL) Trong chương này, tìm hiểu sở liệu khái niệm liên quan đến Trước hết, tìm hiểu lý cần phải quản lý liệu CSDL? 1.1 Tại phải có sở liệu Hệ thống tệp tin cổ điển Cho đến số đơn vị kinh tế, hành nghiệp… sử dụng mô hình hệ thống tệp tin cổ điển: chúng tổ chức riêng rẽ, phục vụ cho mục đích đơn vị hay đơn vị trực thuộc cụ thể - Ưu điểm: Việc xây dựng hệ thống tệp tin riêng đơn vị quản lý tốn thời gian khối lượng thông tin cần quản lý khai thác nhỏ, không đòi hỏi đầu tư vật chất chất xám nhiều, triển khai ứng dụng nhanh Thông tin khai thác phục vụ mục đích hẹp nên khả đáp ứng nhanh chóng, kịp thời - Nhược điểm: Thông tin tổ chức riêng rẽ nhiều nơi nên việc cập nhật dễ làm tính quán liệu Hệ thống thông tin tổ chức thành hệ thống file riêng lẻ nên thiếu chia sẻ thông tin nơi Qua phân tích trên, nhận thấy việc tổ chức liệu theo hệ thống tệp tin hoàn toàn không phù hợp với hệ thống thông tin lớn Việc xây dựng hệ thống thông tin đảm bảo tính quán liệu, đáp ứng nhu cầu khai thác đồng thời nhiều người thực cần thiết 1.2 Định nghĩa sở liệu 1.2.1 Khái niệm CSDL công nghệ CSDL có tác động to lớn việc phát triển sử dụng máy tính Có thể nói CSDL ảnh hưởng đến tất nơi có sử dụng máy tính: Kinh doanh (thông tin sản phẩm, khách hàng, … ) Giáo dục (thông tin sinh viên, điểm, ) Thư viện (thông tin tài liệu, tác giả, độc giả…) Y tế (thông tin bệnh nhân, thuốc….)… PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn Chương CÁC KHÁI NIỆM CƠ BẢN Như vậy, sở liệu gì? CSDL tập hợp liệu có cấu trúc liên quan với lưu trữ máy tính, nhiều người sử dụng tổ chức theo mô hình Ví dụ: Danh bạ điện thoại ví dụ CSDL - Là thông tin có ý nghĩa - Là tập hợp thông tin có cấu trúc - Các thông tin có liên quan với hệ thống Trong khái niệm này, cần nhấn mạnh, CSDL tập hợp thông tin có tính chất hệ thống, thông tin rời rạc, liên quan với Các thông tin phải có cấu trúc tập hợp thông tin phải có khả đáp ứng nhu cầu khai thác nhiều người sử dụng cách đồng thời Đó đặc trưng CSDL 1.2.2 Ưu điểm Từ khái niệm trên, ta thấy rõ ưu điểm bật CSDL là: Giảm trùng lặp thông tin xuống mức thấp đảm bảo tính quán toàn vẹn liệu (Cấu trúc sở liệu định nghĩa lần Phần định nghĩa cấu trúc gọi meta-data, Catalog HQTCSDL lưu trữ) Đảm bảo độc lập liệu chương trình ứng dụng (Insulation between programs and data): Cho phép thay đổi cấu trúc, liệu sở liệu mà không cần thay đổi chương trình ứng dụng Trừu tượng hoá liệu (Data Abstraction): Mô hình liệu sử dụng để làm ẩn lưu trữ vật lý chi tiết liệu, biểu diễn cho người sử dụng mức khái niệm sở liệu Nhiều khung nhìn (multi-view) cho đối người dùng khác nhau: Đảm bảo liệu truy xuất theo nhiều cách khác Vì yêu cầu đối tượng sử dụng CSDL khác nên tạo nhiều khung nhìn vào liệu cần thiết Đa người dùng (multi-user): Khả chia sẻ thông tin cho nhiều người sử dụng nhiều ứng dụng khác 1.2.3 Vấn đề cần giải Để đạt ưu điểm trên, CSDL đặt vấn đề cần giải Đó là: Tính chủ quyền liệu: Do tính chia sẻ CSDL nên chủ quyền CSDL dễ bị xâm phạm Tính bảo mật quyền khai thác thông tin người sử dụng: Do có nhiều người phép khai thác CSDL nên cần thiết phải có chế bảo mật phân quyền hạn khai thác CSDL Tranh chấp liệu: Nhiều người phép truy cập vào CSDL với mục đích khác nhau: Xem, thêm, xóa sửa liệu Cần phải có chế ưu PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn Chương CÁC KHÁI NIỆM CƠ BẢN tiên truy cập liệu giải tình trạng xung đột trình khai thác cạnh tranh Cơ chế ưu tiên thực việc cấp quyền (hay mức độ) ưu tiên cho người khai thác Đảm bảo liệu có cố: Việc quản lý liệu tập trung làm tăng nguy mát sai lệnh thông tin có cố điện đột xuất đĩa lưu trữ bị hỏng Một số hệ điều hành mạng có cung cấp dịch vụ lưu ảnh đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng - RAID), tự động kiểm tra khắc phục lỗi có cố Tuy nhiên, bên cạnh dịch vụ hệ điều hành, để đảm bảo an toàn cho CSDL, thiết phải có chế khôi phục liệu có cố xảy 1.3 Hệ quản trị sở liệu (DataBase Management System_DBMS) 1.3.1 Ví dụ Như biết, kích thước độ phức tạp CSDL khác Ví dụ: Danh bạ điện thoại quốc gia, thành phố chứa tới hàng triệu số thông tin cần thiết khách hàng Trong trường đại học có tới hàng ngàn sinh viên Nhà trường phải quản lý tất thông tin liên quan đến sinh viên như: tên, ngày sinh, quê quán, địa chỉ, kết học tập… Xét Ví dụ CSDL quản lý tài liệu độc giả thư viện quốc gia Giả sử có 100 triệu sách, sách cần lưu 10 thông tin liên quan, thông tin chứa tối đa 400 kí tự CSDL phải có tối thiểu 100 *106 * 400 *10 kí tự (bytes) Như vậy, dung lượng nhớ cần dùng là: 100 *106 * 400 *10= 400 GB Ta thấy, nhớ vấn đề cần phải giải Tuy nhiên, vấn đề quan trọng lại cách thức tổ chức liệu sở liệu để phục vụ cho việc truy cập, tìm kiếm, cập nhật,….nhanh chóng an toàn Việc tổ chức liệu thực thông qua Hệ quản trị sở liệu(HQTCSDL) Vậy hệ quản trị sở liệu (HQTCSDL) gì? 1.3.2 Khái niệm HQTCSDL tập hợp phần mềm cho phép định nghĩa cấu trúc để lưu trữ thông tin máy, nhập liệu, thao tác liệu đảm bảo an toàn bí mật liệu Định nghĩa cấu trúc: Định nghĩa cấu trúc CSDL bao gồm việc xác định kiểu liệu, cấu trúc ràng buộc cho liệu lưu trữ CSDL Nhập liệu: Là việc lưu trữ liệu vào thiết bị lưu trữ trung gian điều khiển HQTCSDL Thao tác liệu: thao tác CSDL bao gồm chức truy xuất sở liệu để tìm kiếm thông tin cần thiết, cập nhật sở liệu tổng hợp báo cáo từ liệu PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn Chương CÁC KHÁI NIỆM CƠ BẢN 1.4 Hệ thống sở liệu (Database System) Là phần mềm HQTCSDL với liệu thân sở liệu Hình 1.1 Môi trường hệ thống sở liệu đơn giản 1.5 Các đối tượng sử dụng CSDL Đối với sở liệu nhỏ, mang tính cá nhân lịch làm việc, danh bạ điện thoại cá nhân… cần người để tạo thao tác Tuy nhiên, CSDL lớn như: quản lý tài ngân hàng nhà nước, điều hành chuyến bay cho sân bay quốc tế… cần phải có nhiều người tham gia thiết kế, xây dựng, bảo trì CSDL hàng trăm người sử dụng Trong phần này, tìm hiểu xem người thao tác với CSDL hàng ngày Và phần sau, xem xét người không trực tiếp tham gia CSDL cụ thể, họ người trì môi trường hệ thống CSDL 1.5.1 Đối tượng trực tiếp 1.5.1.1 Quản trị sở liệu Trong tổ chức có nhiều người sử dụng chung nguồn liệu thiết phải có người đứng đầu quản lý, chịu trách nhiệm nguồn liệu Đó người quản trị sở liệu (Database Administrators _ DBA ) DBA có nhiệm vụ tổ chức nội dung sở liệu, tạo phân quyền cho người sử dụng, đưa yêu cầu phần cứng phần mềm… cần thiết DAB chịu trách nhiệm bảo vệ an toàn, Backup thông tin…khi có cố 1.5.1.2 Thiết kế sở liệu Người thiết kế CSDL chịu trách nhiệm: - Xác định liệu cần lưu trữ CSDL - Lựa chọn cấu trúc thích hợp để biểu diễn lưu trữ liệu PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn Chương CÁC KHÁI NIỆM CƠ BẢN - Phỏng vấn tất người sử dụng CSDL sau để hiểu yêu cầu họ CSDL - Tiến hành phân tích thiết kế hệ thống sau thống tất yêu cầu người sử dụng 1.5.1.3 Người sử dụng cuối Người sử dụng cuối người truy cập CSDL để: - Truy vấn - Cập nhật - Thống kê, báo cáo 1.5.1.4 Phân tích hệ thống Lập trình ứng dụng Phân tích hệ thống để định rõ yêu cầu người sử dụng cuối cùng, thống để đưa khung nhìn cho đối tượng người sử dụng, quản lý giao tác (transactions)… Lập trình ứng dụng: - Thực yêu cầu thông qua lập trình ngôn ngữ phù hợp - Chạy thử chương trình (test) - Chữa lỗi gỡ rối chương trình (debug) - Viết tài liệu, hướng dẫn sử dụng - Bảo trì hệ thống 1.5.2 Đối tượng gián tiếp Ngoài đối tượng trực tiếp tham gia vào CSDL cụ thể nói trên, có đội ngũ người phân tích, phát triển, thực tạo môi trường hệ thống phần mềm hệ quản trị sở liệu Những người không trực tiếp thao tác hệ quản trị CSDL cụ thể Họ là: - Người phân tích thực tạo hệ thống HQTCSDL - Những nhà phát triển hệ công cụ (Tool developers) - Người kiểm thử bảo trì hệ thống 1.6 Lợi ích việc sử dụng HQTCSDL - Hạn chế dư thừa liệu - Ngăn cản truy cập liệu bất hợp pháp (bảo mật phân quyền sử dụng) - Cung cấp khả lưu trữ lâu dài cho đối tượng cấu trúc liệu - Cho phép suy dẫn liệu (từ liệu suy liệu khác) sử dụng Rules - Cung cấp giao diện đa người dùng - Cho phép biểu diễn mối quan hệ phức tạp liệu PHẦN I – CƠ SỞ DỮ LIỆU http://www.ebook.edu.vn HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN LỚP HỎNG HÓC: Có nhiều kiểu hỏng hóc xảy đến với hệ thống, chúng cần ứng xử cách riêng biệt Trong chương ta xét kiểu hỏng hóc sau: • Hỏng hóc giao dịch: Có hai loại lỗi làm cho giao dịch bị hỏng hóc: Lỗi luận lý: Giao dịch tiếp tục thực bình thường số điều kiện bên không thoả ví dụ như: liệu đầu vào không đúng, không tìm thấy liệu, trào liệu việc sử dụng tài nguyên vượt hạn định Lỗi hệ thống: Hệ thống rơi vào trạng thái không mong muốn ví dụ trạng thái deadlock • Hệ thống bị hư hỏng: Có phần cứng sai chức có sai sót phần mềm sở liệu hay hệ điều hành • Đĩa bị hư hỏng: Một khối đĩa bị nội dung Để hệ thống đề chiến lược phục hồi lỗi phù hợp, trước tiên cần phải xác định loại hỏng hóc thiết bị lưu trữ liệu Sau đó, cần xác định hỏng hóc ảnh hưởng đến nội dung sở liệu Nhiệm vụ quan trọng sau đề giải pháp nhằm đảm bảo tính quán sở liệu tính nguyên tử giao dịch hỏng hóc phát sinh Các giải pháp thường gọi giải thuật phục hồi ( recovery algorithms ) Các giải thuật phục hồi gồm có hai phần: Các hành động thực suốt trình hoạt động bình thường giao dịch nhằm đảm bảo có đầy đủ thông tin cho việc phục hồi sau Các hành động thực sau lỗi phát sinh Nhằm khôi phục nội dung sở liệu trở trạng thái trước đó, trạng thái thoã mãn yêu cầu tính quán sở liệu, tính bền tính nguyên tử giao dịch CẤU TRÚC LƯU TRỮ: Như xét chương II, hạng mục liệu khác sở liệu lưu nhiều phương tiện lưu trữ khác Để nắm cách thức đảm bảo tính nguyên tử tính lâu bền giao dịch, cần phải có nhìn sâu loại thiết bị lưu trữ liệu cách thức truy xuất chúng CÁC LOẠI LƯU TRỮ: • • Lưu trữ không ổn định ( volatile storage ): Thông tin lưu thiết bị lưu trữ không ổn định bị hệ thống bị hỏng hóc Ví dụ thiết bị lưu trữ không ổn định là: nhớ chính, nhớ cache Sự truy cập đến thiết bị lưu trữ không ổn định cực nhanh Lý do: là: tính chất nhớ cho phép vậy; hai là: truy xuất trực tiếp hạng mục liệu chứa Lưu trữ ổn định ( nonvolatile storage ): Thông tin lưu trữ thiết bị lưu trữ ổn định thường không bị hệ thống bị cố Tuy nhiên, nguy thân thiết bị lưu trữ ổn định bị hỏng xảy Ví dụ thiết bị lưu trữ ổn định là: đĩa từ băng từ Trong hầu hết hệ sở liệu, thiết bị lưu trữ ổn định thường dùng đĩa từ Các loại thiết bị lưu trữ ổn định khác dùng để lưu trữ phòng hờ ( back up ) liệu CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 119 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • Lưu trữ bền ( stable storage ): Theo lý thuyết thông tin chứa thiết bị lưu trữ bền không bị hệ thống bị hư hỏng Tuy nhiên, thực tế, ta khó lòng tạo thiết bị đạt tính chất lý tưởng Chỉ có giải pháp tăng cường độ bền mà THỰC THI LƯU TRỮ BỀN: Tiêu chí để thực việc lưu trữ bền nhân thông tin cần thiết vài phương tiện lưu trữ ổn địng khác với phương thức hỏng hóc độc lập cập nhật phiên thông tin cách có tổ chức, cho dù có lỗi xuất trình chuyển liệu, thông tin không bị hư hại • Các hệ thống RAID đảm bảo việc hỏng hóc đĩa không gây liệu Dạng thức đơn giản nhanh RAID dùng đĩa gương ( mirrored disk ) Các dạng thức khác giúp tiết kiệm chi phí, giá phải trả thời gian đọc ghi chậm • Tuy nhiên hệ thống RAID không đảm bảo tính an toàn liệu gặp phải tai họa như: cháy nổ, lụt lội Người ta đề nghị hệ thống lưu trữ an toàn hoạt động theo nguyên tắc sau: Sao lưu liệu sang vài vị trí địa lý khác thông qua mạng máy tính Sau cách thức đảm bảo thông tin lưu trữ không bị lỗi trình đọc ghi liệu: Việc chuyển khối liệu nhớ đĩa dẫn đến kết quả: • Thành công hoàn toàn: Thông tin chuyển đến đích an toàn • Bị lỗi phần: Có lỗi xuất trình chuyển liệu khối đích chứa thông tin không • Bị lỗi hoàn toàn: Lỗi xuất giai đoạn đầu trình truyền liệu Khối đích giữ nguyên ban đầu Nếu có lỗi xuất trình truyền liệu, hệ thống phải phát thực thi thủ tục phục hồi lỗi Để làm vậy, hệ thống phải trì hai khối liệu vật lý cho mỗ khối liệu luận lý (Trong tình dùng hệ thống đĩa gương hai khối vật lý địa điểm, tình dùng hệ thống lưu từ xa, hai khối hai địa điểm khác nhau) Một thao tác ghi liệu thực thi sau: Viết thông tin lên khối vật lý thứ Khi hành động ghi thứ thành công, tiếp tục ghi phần thông tin lên khối vật lý thứ hai Thao tác ghi coi thành công thao tác ghi thứ hai thành công Trong trình phục hồi, cặp khối vật lý kiểm tra: Nếu nội dung hai lỗi phát hiện, không cần làm thêm Nếu hai khối có lỗi phát được, thay khối bị lỗi nội dung khối lại Nếu hai khối lỗi phát được, nội dung chúng khác nhau, thay khối thứ khối thứ hai Yêu cầu phải so sánh cặp khối vật lý đòi hỏi phải nhiều thời gian Người ta cải thiện tình cách lưu vết thao tác viết khối tiến trình thực thi Khi phục hồi, khối thao tác ghi tiến trình thực thi cần đem so sánh Giao thức để viết khối đến site xa tương tự viết khối hệ thống đĩa gương CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 120 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU TRUY CẬP DỮ LIỆU Như xét chương II, hệ sở liệu nằm thường trực thiết bị lưu trữ ổn định (thường đĩa từ) thường phân thành đơn vị lưu trữ kích thước cố định gọi khối (blocks) Khối đơn vị truyền nhận liệu từ/ra đĩa Một khối chứa vài hạng mục liệu Ta giả thiết hạng mục liệu trải nhiều khối Các giao dịch nhập ( input ) thông tin từ đĩa vào nhớ xuất ( output ) thông tin theo chiều ngược lại Các thao tác nhập/xuất thực theo đơn vị khối Khối nằm đĩa gọi khối vật lý (physical block), khối trữ tạm nhớ gọi khối đệm (buffer block) Vùng nhớ tạm chứa khối liệu gọi vùng đệm đĩa (disk buffer) Việc di chuyển khối đĩa nhớ thực thông qua hai thao tác: Input(B) chuyển khối vật lý B vào nhớ Output(B) chuyển khối đệm B đĩa thay cho khối vật lý tương ứng Hình mô cho hai thao tác A B Bộ nhớ input(A) output(B ) Các thao tác đọc ghi khối A B Đĩa figure VI- Mỗi giao dịch Ti có vùng làm việc riêng cùa tất hạng mục liệu truy xuất cập nhật lưu giữ Vùng làm việc tạo giao dịch khởi động Nó bị xoá giao dịch bàn giao ( commit) huỷ bỏ (abort) Mỗi hạng mục liệu x trữ vùng làm việc giao dịch Ti ký hiệu xi Giao dịch Ti trao đổi với hệ sở liệu cách chuyển liệu đến/ra vùng làm việc sang vùng đệm hệ thống Hai thao tác dùng để chuyển liệu: read(X) gán giá trị hạng mục liệu X cho biến cục xi Thao tác thực sau: a Nếu khối BX chứa X nhớ thực thao tác input(BX) b Gán cho xi giá trị X khối đệm write(X) gán giá trị biến cục xi cho hạng mục liệu X khối đệm Thao tác thực sau: a Nếu khối BX chứa X nhớ thực thao tác input(BX) b Gán giá trị xi cho X vùng đệm BX Chú ý hai thao tác đòi hỏi chuyển khối từ đĩa vào nhớ không yêu cầu chuyển khối từ nhớ đĩa Đôi khối đệm bị ghi bắt buộc đĩa quản lý vùng đệm cần không gian nhớ cho mục đích khác hệ sở liệu muốn phản ánh thay đổi khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 121 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU liệu B đĩa Khi hệ sở liệu thực thao tác Output(B) ta nói xuất bắt buộc khối đệm B đĩa Khi giao dịch cần truy xuất hạng mục liệu X lần đầu, phải thực Read(X) Khi tất cập nhật X thực xi Sau giao dịch truy xuất X lần cuối, thực Write(X) để ghi lại thay đổi X CSDL Không thiết phải thực thao tác Output(BX) sau thao tác write(X) hoàn thành Lý là: khối đệm BX chứa hạng mục liệu khác truy xuất Nếu hệ thống bị hư hỏng sau thao tác write(X) hoàn thành, trước thực thao tác Output(BX), giá trị X không ghi đĩa, đó, bị mất! B PHỤC HỒI VÀ TÍNH NGUYÊN TỬ: Trở lại với ví dụ đơn giản hệ thống ngân hàng: Giao dịch Ti thực việc chuyển $50 từ tài khoản A sang tài khoản B Giả sử giá trị ban đầu tài khoản A B $1000 $2000 Giả sử hệ thống bị hư hỏng Ti thực thi: sau thao tác output(BA) thực trước thực thao tác output(BB) (BA BB hai khối đệm chứa hai hạng mục A B) Người ta thực hai giải pháp phục hồi sau: Thực lại Ti Thủ tục dẫn đến kết quả: giá trị A $900 thay phải $950 Do đó, hệ thống trạng thái không quán Không thực lại Ti Kết quả: giá trị A B tương ứng $950 $2000 Hệ thống trạng thái không quán Vấn đề phát sinh chỗ: Ti thực nhiều thao tác sửa đổi nội dung sở liệu, cần nhiều thao tác xuất liệu đĩa, lỗi phát sinh không cho phép tất thao tác xuất liệu hoàn thành Giải pháp nhằm đạt tính nguyên tử là: trước thực thao tác sửa đổi sở liệu, cần ghi thiết bị lưu trữ bền thông tin mô tả sửa đổi Cụ thể giải pháp trình bày phần V.4, V.5 V.6 B B PHỤC HỒI DỰA TRÊN SỔ GHI LỘ TRÌNH (Log-based recovery) Một cấu trúc thường dùng để ghi lại thay đổi sở liệu sổ ghi lộ trình (log) Log dãy mẩu tin lộ trình (log records) Một thao tác cập nhật sở liệu ghi nhận log record Một log record kiểu mẫu chứa trường sau: • Định danh giao dịch ( transaction identifier ): định danh giao dịch thực hoạt động write • Định danh hạng mục liệu ( Data-item identifier ): định danh hạng mục liệu viết ( thường vị trí hạng mục liệu đĩa ) • Giá trị cũ ( Old value ): giá trị hạng mục liệu trước viết • Giá trị ( New value ): giá trị hạng mục liệu có sau viết Có vài log record đặc biệt mang ý nghĩa riêng Bảng sau số loại log record ý nghĩa chúng: LOẠI LOG RECORD < Ti start > < Ti, Xj, V1, V2 > < Ti commit > < Ti abort > Ý NGHĨA Giao dịch Ti khởi động Giao dịch Ti thực thao tác ghi hạng mục liệu Xj, Xj có giá trị V1 trước ghi nhận giá trị V2 sau ghi Giao dịch Ti bàn giao Giao dịch Ti huỷ bỏ CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 122 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Mỗi giao dịch thực thao tác ghi, trước tiên phải tạo log record cho thao tác ghi ( log file ), trước giao dịch thay đổi sở liệu Như vậy, hệ thống có sở để huỷ bỏ ( undo ) thay đổi làm sở liệu cách sử dụng trường Old-value log record log phải lưu thiết bị lưu trữ bền Mỗi log record ngầm định thêm vào cuối tập tin log CẬP NHẬT TRÌ HOÃN CƠ SỞ DỮ LIỆU (Deferred Database Modification): Kỹ thuật cập nhật trì hoãn đảm bảo tính nguyên tử giao dịch cách ghi lại tất sửa đổi sở liệu vào sổ ghi lộ trình (log), trì hoãn thực tất thao tác viết liệu đĩa giao dịch giao dịch bàn giao phần (partially commits ) Nhắc lại rằng: giao dịch gọi bàn giao phần hành động cuối thực xong Kỹ thuật cập nhật trì hoãn trình bày phần giả thiết giao dịch thực cách Khi giao dịch bàn giao phần, thông tin log kết hợp với giao dịch sử dụng việc viết trì hoãn Nếu hệ thống có cố trước giao dịch hoàn thành việc thực giao dịch bị bỏ dở thông tin log bị bỏ lơ Sự thực thi giao dịch tiến triển sau: • Trước giao dịch Ti bắt đầu thực hiện, mẫu tin < Ti start > ghi sổ lộ trình • Trước Ti thực thao tác write(X), mẫu tin < Ti, X, V2 > ghi sổ lộ trình • Cuối cùng, giao dịch Ti bàn giao phần, mẫu tin < Ti commit > ghi sổ lộ trình Khi giao dịch bàn giao phần, mẫu tin sổ lộ trình kết hợp với giao dịch sử dụng để thực việc ghi trì hoãn hạng mục liệu đĩa Nhà thiết kế phải đảm bảo rằng, trước hoạt động ghi hạng mục liệu diễn ra, mẫu tin log ghi thành công thiết bị lưu trữ bền Ngoài cần để ý: kỹ thuật cập nhật trì hoãn cần ghi lại giá trị hạng mục liệu (V2) mà Để minh hoạ, ta sử dụng ví dụ hệ thống ngân hàng đơn giản Gọi T0 giao dịch có nhiệm vụ chuyển $50 từ tài khoản A sang tài khoản B, T1 giao dịch có nhiệm vụ rút $100 từ tài khoản C Giả sử giá trị ban đầu tài khoản A, B, C $1000, $2000 $700 Hành động T0 T1 mô tả sau: T0 read(A) A:=A-50 write(A) read(B) B:=B+50 write(B) T1 Read(C) C:=C-100 write(C) Giả thiết giao dịch thực tuần tự: T0 tới T1 Một phần sổ lộ trình ghi lại thông tin liên quan đến hoạt động hai giao dịch cho bảng đây: CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 123 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU figure VI- Sau có cố xảy ra, hệ thống phục hồi tham khảo sổ lộ trình để chọn giao dịch cần làm lại (redo) Giao dịch Ti cần làm lại sổ nhật ký có chứa hai mẫu tin Thủ tục làm lại giao dịch Ti sau: • redo(Ti) đặt giá trị cho tất hạng mục liệu cập nhật giao dịch Ti Các giá trị tìm thấy sổ lộ trình (log) Hoạt động redo phải đồng hiệu lực ( idempotent ) có nghĩa việc thực nhiều lần tương đương với việc thực lần Trở lại ví dụ vừa nêu, ta có bảng mô tả trạng thái sổ ghi lộ trình sở liệu sau: LOG CƠ SỞ DỮ LIỆU < T0 ,B, 2050> A=950 B=2050 C=600 figure VI- Sau số tình mô phỏng: Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(B) giao dịch T0 vừa ghi thiết bị lưu trữ bền Khi hệ thống khởi động trở lại, hành động “thực lại giao dịch” cần phải làm, mẫu tin ghi commit xuất sổ lộ trình Nghĩa giá trị A,B C giữ nguyên $1000, $2000 $700 Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(C) giao dịch T1 vừa ghi thiết bị lưu trữ bền Khi hệ thống hoạt động trở lại, thủ tục redo(T0) thực có xuất mẫu tin sổ lộ trình Sau thủ tục thực thi, giá trị A B $950 $2050 CẬP NHẬT TỨC THỜI CƠ SỞ DỮ LIỆU (Immediate Database Modification): Kỹ thuật cập nhật tức thời cho phép thao tác sửa đổi sở liệu có quyền xuất liệu tức thời đĩa giao dịch trạng thái hoạt động ( active state ) Hành động thay đổi nội dung liệu tức thời giao dịch hoạt động gọi “những thay đổi chưa bàn giao” ( uncommitted modifications) Sự thực thi giao dịch tiến hành sau: • Trước giao dịch Ti bắt đầu thực hiện, mẫu tin < Ti start > ghi sổ lộ trình CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 124 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • • Trước Ti thực thao tác write(X), mẫu tin < Ti, X, V1, V2 > ghi sổ lộ trình Cuối cùng, giao dịch Ti bàn giao phần, mẫu tin < Ti commit > ghi sổ lộ trình Cần phải đảm bảo rằng, trước hoạt động ghi hạng mục liệu diễn ra, mẫu tin log ghi thành công thiết bị lưu trữ bền Ngoài ra, cần ý mẫu tin log cho hành động write(X) giao dịch Ti, tức mẫu tin có chứa hai giá trị (V2) cũ (V1) hạng mục liệu X Trở lại với ví dụ phần V.4.1, ta có phần sổ lộ trình liên quan đến hoạt động T0 T1 sau: figure VI- Bảng mô tả trạng thái sổ ghi lộ trình sở liệu sau: LOG < T0 , B, 2000, 2050> CƠ SỞ DỮ LIỆU A=950 B=2050 C=600 figure VI- Kỹ thuật cập nhật tức thời sử dụng hai thủ tục khôi phục sau lỗi: • undo(Ti) đặt lại giá trị cũ cho tất hạng mục liệu cập nhật giao dịch Ti Các giá trị cũ tìm thấy sổ lộ trình ( log ) • redo(Ti) đặt giá trị cho tất hạng mục liệu cập nhật giao dịch Ti Các giá trị tìm thấy sổ lộ trình (log) Sau lỗi xuất hiện, hệ thống phục hồi tham khảo sổ ghi để định giao dịch cần làm lại (redo) giao dịch cần huỷ bỏ (undo) • Giao dịch Ti cần huỷ bỏ sổ ghi chứa mẫu tin mẫu tin • Giao dịch Ti cần làm lại sổ ghi có chứa mẫu tin lẫn mẫu tin Sau số tình mô phỏng: CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 125 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(B) giao dịch T0 vừa ghi thiết bị lưu trữ bền Khi hệ thống khởi động trở lại, tìm thấy mẫu tin sổ ghi, mẫu tin tương ứng Do giao dịch T0 cần phải huỷ bỏ Nghĩa thủ tục undo(T0) gọi giá trị A,B C giữ nguyên $1000, $2000 $700 Giả sử lỗi hệ thống xảy sau mẫu tin log cho hành động write(C) giao dịch T1 vừa ghi thiết bị lưu trữ bền Khi hệ thống hoạt động trở lại, hai thủ tục redo(T0) undo(T1) thực Do có xuất mẫu tin , , sổ lộ trình Sau hai thủ tục thực thi, giá trị A, B, C $950,ì $2050 $700 ĐIỂM KIỂM SOÁT (Checkpoint): Khi lỗi hệ thống xuất hiện, hệ thống phục hồi phải tham khảo sổ ghi lộ trình để định giao dịch cần làm lại giao dịch cần huỷ bỏ Theo nguyên lý cần phải tìm kiếm toàn nội dung sổ ghi để có định Hướng tiếp cận gặp phải hai khó khăn lớn: Quá trình tìm kiếm nhiều thời gian Theo giải thuật vừa nêu, hầu hết giao dịch cần làm lại ghi liệu cập nhật sở liệu Việc làm lại chúng hại gì, lại làm cho tiến trình khôi phục trở nên lâu Công cụ “điểm kiểm soát” (checkpoint) sử dụng để cải thiện hiệu trình khôi phục Trong trình hoạt động mình, hệ thống trì sổ ghi lộ trình cách sử dụng hai kỹ thuật giới thiệu phần V.4.1 V.4.2 Ngoài ra, hệ thống phải thực cách chu kỳ hành động đặt điểm kiểm soát Hành động đòi hỏi dãy thao tác sau: Xuất lưu trữ bền tất mẫu tin ghi nhận lộ trình ( log record ) nằm nhớ Xuất đĩa tất khối đệm cập nhật Xuất thiết bị lưu trữ bền log-record Các giao dịch không phép thực thao tác cập nhật liệu (ví dụ ghi khối đệm, ghi mẫu tin log) hành động đặt điểm kiểm soát thực Sự diện điểm kiểm soát sổ ghi cho phép hệ thống tổ chức trình phục hồi tốt Xét giao dịch Ti bàn giao (commit) trước điểm kiểm soát Ta có mẫu tin xuất trước mẫu tin Có nghĩa tất thay đổi mà Ti làm sở liệu phải thực trước người ta đặt điểm kiểm soát Vì vậy, giai đoạn phục hồi sau lỗi, người ta không cần phải làm lại (redo) giao dịch Ti Dựa điểm cải tiến này, ta cải tiến lại kỹ thuật trình bày phần V.4.1 V.4.2 sau: Sau lỗi hệ thống xuất hiện, hệ thống phục hồi kiểm tra lại sổ lộ trình (log) để tìm giao dịch Ti thoả điều kiện: giao dịch gần khởi động trước điểm kiểm soát gần Qui trình tìm Ti sau: dò ngược sổ ghi lộ trình tìm thấy mẫu tin Từ điểm kiểm soát này, lại tiếp tục dò ngược sổ ghi tìm thấy mẫu tin Mẫu tin giao dịch Ti Khi xác định giao dịch Ti rồi, thủ tục undo redo áp dụng cho giao dịch Ti giao dịch diễn sau Ti Chúng ta ký hiệu tập giao dịch vừa nói T Với kỹ thuật “Cập nhật tức thời sở liệu”, tiến trình phục hồi sau: CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 126 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • Với giao dịch Tk∈T mà mẫu tin sổ ghi lộ trình, thực thi undo(Tk) Với giao dịch Tk∈T mà có mẫu tin sổ ghi lộ trình, thực thi redo(Tk) Không cần thực thi thao tác undo sử dụng kỹ thuật “Cập nhật có trì hoãn sở liệu” • PHÂN TRANG BÓNG ( Shadow Paging ): Kỹ thuật “Phân trang bóng” kỹ thuật cho phép phục hồi sau lỗi, ý tưởng thực khác với kỹ thuật dựa sổ ghi lộ trình vừa trình bày phần Sau số khái niệm cần giải trình: • Trang (page) gì? Như trình bày phần trước, sở liệu lưu vào thiết bị lưu trữ không phai thành nhiều khối có kích thước cố định Người ta gọi khối trang (page) • Bảng trang ý nghĩa nó: Khái niệm trang nói mượn từ lý thuyết Hệ điều hành Cách quản lý trang thừa kế từ Giả sử sở liệu phân thành n trang phân bố đĩa chúng không theo thứ tự cụ thể Tuy nhiên, phải có cách để tìm nhanh trang thứ i sở liệu (1 ≤ i ≤ n) Người ta dùng bảng trang (được mô hình 5.2) cho mục đích Bảng trang có n đầu vào (entry) Mỗi đầu vào ứng với trang Một đầu vào chứa trỏ, trỏ đến trang đĩa Đầu vào đến trang sở liệu, đầu vào thứ hai đến trang thứ hai Ý tưởng then chốt kỹ thuật “Phân trang bóng” người ta trì hai bảng trang suốt chu kỳ sống giao dịch, bảng trang gọi “bảng trang hành” (current page table), bảng trang lại gọi “bảng trang bóng” (shadow page table) Khi giao dịch khởi động, hai bảng trang giống Bảng trang bóng không thay đổi suốt trình hoạt động giao dịch Bảng trang hành bị thay đổi giao dịch thực tác vụ write Tất tác vụ input output sử dụng bảng trang hành để định vị trang đĩa Điểm quan trọng khác nên lưu bảng trang bóng vào thiết bị lưu trữ bền n Bảng trang CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang đĩa Trang 127 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU figure VI- Giả sử giao dịch thực tác vụ write(X) hạng mục liệu X chứa trang thứ i Tác vụ write thực thi sau: n thứ i chưa có nhớ chính, thực input(X) Nếu trang Nếu lệnh ghi thực lần trang thứ i giao dịch, sửa đổi bảng trang hành sau: a Tìm trang chưa dùng đĩa b Xoá trang vừa tìm xong bước 2.a khỏi danh sách khung trang tự c Sửa lại bảng trang hành cho đầu vào thứ i trỏ đến trang vừa tìm bước 2.a Gán giá trị xi cho X trang đệm (buffer page) Để bàn giao giao dịch, cần làm bước sau: Đảm bảo tất trang đệm nhớ giao dịch sửa đổi phải xuất đĩa Xuất bảng trang hành đĩa ý không viết đè lên trang bóng Xuất địa đĩa bảng trang hành vị trí cố định thiết bị lưu trữ bền Vị trí nơi chứa địa bảng trang bóng Hành động ghi đè lên địa bảng trang bóng cũ Như vậy, bảng trang hành trở thành bảng trang bóng giao dịch bàn giao Nếu cố xảy trước hoàn thành bước thứ 3, hệ thống trở trạng thái trước giao dịch thực Nếu cố xảy sau bước thứ hoàn thành, hiệu giao dịch bảo tồn; không cần thực thao tác redo Ví dụ hình 5.3 mô lại trạng thái bảng trang hành bảng trang bóng giao dịch thực thao tác ghi lên trang thứ tư sở liệu có 10 trang 1 2 3 4 5 6 7 8 9 10 10 Bảng trang hành Bảng trang bóng Các trang đĩa figure VI- Ví dụ bảng trang bóng bảng trang hành CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 128 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • • • • Kỹ thuật phân trang bóng có số điểm lợi so với kỹ thuật dựa sổ ghi: Không thời gian ghi log record Khôi phục sau cố nhanh hơn, không cần thao tác undo redo Tuy nhiên kỹ thuật phân trang bóng lại có nhiều nhược điểm: Tổng phí bàn giao Xuất nhiều khối đĩa: khối liệu tại, bảng trang hành, địa bảng trang hành Trong kỹ thuật dựa vào sổ ghi, cần xuất log record, mà thông thường, log record vừa đủ chứa khối Sự phân mảnh liệu Trong chương II có trình bày chiến lược gom cụm vật lý trang liệu có liên quan với Sự gom cụm cho phép việc vận chuyển liệu nhanh Kỹ thuật phân trang bóng lại đổi vị trí trang trang bị sửa đổi Điều dẫn đến tính gom cụm liệu không còn, phải dùng giải pháp gom cụm lại thời gian Phải thu nhặt rác Mỗi giao dịch bàn giao, trang chứa giá trị liệu cũ bị sửa đổi giao dịch trở thành không truy xuất Vì chúng không thuộc danh sách trang tự không chứa liệu hữu dụng Ta gọi chúng “rác” Cần thiết phải định kỳ tìm kiếm thêm trang rác vào danh sách trang tự Hành động gọi “thu nhặt rác” Ngoài ra, kỹ thuật phân trang bóng gặp nhiều khó khăn kỹ thuật dựa vào sổ ghi cần tinh chỉnh để đáp ứng cho yêu cầu phục vụ song song cho nhiều giao dịch Vì lý trên, kỹ thuật phân trang bóng không sử dụng rộng rãi PHỤC HỒI VỚI CÁC GIAO DỊCH CẠNH TRANH Cho dến bây giờ, ta xét kỹ thuật phục hồi áp dụng cho giao dịch thực thi Bây tìm cách cải tiến kỹ thuật dựa vào sổ ghi nhằm đáp ứng yêu cầu phục vụ đồng thời cho nhiều giao dịch cạnh tranh Ý tưởng thực là: Không quan tâm đến số lượng giao dịch cạnh tranh, hệ thống sử dụng vùng đệm đĩa sổ ghi lộ trình Các khối đệm chia sẻ tất giao dịch Chúng ta cho phép việc cập nhật tức thời sở liệu cho phép khối đệm có nhiều hạng mục liệu cập nhật nhiều giao dịch TRAO ĐỔI VỚI ĐIỀU KHIỂN CẠNH TRANH Cơ chế phục hồi phụ thuộc nhiều vào chế điều khiển cạnh tranh sử dụng Để cuộn lại giao dịch thất bại ( failed transaction ), người ta phải huỷ bỏ ( undo) cập nhật thực giao dịch Giả sử giao dịch T0 phải bị cuộn lại hạng mục liệu Q bị T0 thay đổi giá trị cần phải đặt lại giá trị cũ Bằng cách sử dụng kỹ thuật dựa vào sổ ghi lộ trình, ta trả lại giá trị cũ cho Q cách sử dụng log record Giả thiết lại có giao dịch thứ hai T1 vừa cập nhật Q xong, trước T0 bị cuộn lại Như vậy, cập nhật thực T1 bị T0 bị cuộn lại Biện pháp khắc phục là: giao dịch T cập nhật hạng mục liệu Q, không giao dịch khác có quyền cập nhật lên hạng mục liệu T chưa bàn giao chưa bị cuộn lại Chúng ta đảm bảo yêu cầu thoả cách sử dụng kỹ thuật ”chốt hai kỳ nghiêm ngặt” (strict two-phase locking) CUỘN LẠI GIAO DỊCH: Phương pháp để cuộn lại (rollback) giao dịch Ti, sử dụng sổ ghi, môi trường cạnh tranh sau: Dò ngược sổ ghi lộ trình để tìm log record có dạng CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 129 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Hạng mục liệu Xj trả lại giá trị cũ V1 Việc dò tìm kết thúc tìm thấy mẫu tin Việc dò ngược sổ ghi lộ ¹eó ý nghĩa quan trọng, giao dịch cập nhật hạng mục liệu nhiều lần Một ví dụ: Xét cặp log records sau: Cặp mẫu tin thể hai hành động cập nhật hạng mục liệu A giao dịch Ti Nếu dò ngược sổ ghi lộ trình, A trả giá trị 10 Ngược lại, A nhận giá trị sai 20 Nếu kỹ thuật strict two-phase locking sử dụng để điều khiển cạnh tranh, việc trả giá trị cũ cho hạng mục liệu không xoá tác động giao dịch khác lên hạng mục liệu CÁC ĐIỂM KIỂM SOÁT Ở phần V.4.3, người ta sử dụng điểm kiểm soát (checkpoint) để làm giảm số lượng log record mà hệ thống phục hồi phải dò tìm sổ ghi giai đoạn phục hồi sau lỗi Nhưng, giả thiết cạnh tranh nên giải pháp V.4.3 xét đến giao dịch sau trình khôi phục lỗi: • Những giao dịch khởi động sau điểm kiểm soát gần • Một giao dịch (nếu có) trạng thái hoạt động (active) thời điểm người ta đặt điểm kiểm soát gần Tình phức tạp giao dịch thực thi cạnh tranh Có nghĩa thời điểm đặt điểm kiểm soát, có nhiều giao dịch trạng thái hoạt động Trong hệ thống xử lý giao dịch cạnh tranh, ta yêu cầu rằng: mẫu tin ghi dấu kiểm soát (checkpoint log record) phải có dạng sau: Trong L danh sách giao dịch hoạt động thời điểm đặt điểm kiểm soát Một lần nữa, ta qui ước rằng: hành động đặt điểm kiểm soát diễn ra, giao dịch không phép thực thao tác cập nhật liệu khối đệm lẫn sổ ghi lộ trình Tuy nhiên, qui ước lại gây phiền toái, giao dịch phải ngừng hoạt động đặt điểm kiểm soát Một kỹ thuật nâng cao giải điểm phiền toái “Điểm kiểm soát mờ” (fuzzy checkpoint) PHỤC HỒI KHỞI ĐỘNG LẠI ( Restart Recovery ) Khi hệ thống phục hồi sau lỗi, tạo hai danh sách: undo-list bao gồm giao dịch cần phải huỷ bỏ redo-list bao gồm danh sách giao dịch cần làm lại Qui trình tạo lập hai danh sách redo-list, undo-list thực sau: Đầu tiên, chúng rỗng Dò ngược sổ ghi lộ trình, kiểm tra mẫu tin tìm mẫu tin đầu tiên: a Với mẫu tin tìm thấy theo dạng , ta thêm Ti vào redolist b Với mẫu tin tìm thấy theo dạng , Ti không thuộc redo-list thêm Ti vào undo-list c Khi tất log record xem xét, ta kiểm tra danh sách L mẫu tin Với giao dịch Ti L, Ti không thuộc redo-list thêm Ti vào undo-list CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 130 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Khi hai danh sách redo-list, undo-list thiết lập xong, tiến trình phục hồi tiến hành sau: Dò ngược lại sổ ghi thực thủ tục undo log record thuộc giao dịch Ti undo-list Các log record giao dịch nằm danh sách redo-list bị bỏ qua giai đoạn Việc dò ngược ngưng mẫu tin tìm thấy cho giao dịch Ti thuộc danh sách undo-list Định vị mẫu tin gần log Dò sổ ghi theo chiều xuôi mẫu tin gần thực thủ tục redo log record thuộc giao dịch Ti nằm danh sách redo-list Trong giai đoạn này, bỏ qua log record giao dịch thuộc danh sách undo-list Việc xử lý ngược bước quan trọng, nhằm đảm bảo kết trả sở liệu Sau tất giao dịch danh sách undo-list bị huỷ bỏ, tất giao dịch danh sách redo-list làm lại Sau tiến trình phục hồi thành công, xử lý giao dịch tiếp tục Việc thực huỷ bỏ giao dịch undo-list trước làm lại giao dịch redo-list có ý nghĩa quan trọng Nếu làm ngược lại, vấn đề sau phát sinh: Giả sử hạng mục liệu A có giá trị khởi đầu 10 Giao dịch Ti đổi A thành 20 sau Ti bị huỷ bỏ Sau đó, giao dịch khác Tj cập nhật A thành 30 Đến hệ thống bị lỗi ngừng hoạt động Hiện trạng sổ ghi thời điểm hệ thống bị lỗi sau: Nếu thực redo trước, A đặt giá trị 30 Sau thực undo, A đặt giá trị 10, mà giá trị sai Giá trị cuối A phải 30 ĐIỂM KIỂM SOÁT MỜ (fuzzy checkpoint): Kỹ thuật fuzzy checkpoint cho phép giao dịch cập nhật liệu khối đệm checkpoint-record viết xong trước thời điểm khối đệm sửa đổi ghi đĩa Ý tưởng thực fuzzy checkpoint sau: Thay phải dò ngược sổ ghi để tìm mẫu tin checkpoint, ta lưu vị trí mẫu tin checkpoint cuối sổ ghi vào chỗ cố định đĩa gọi last_checkpoint Tuy nhiên, thông tin không cập nhật mẫu tin checkpoint ghi đĩa Thay vào đó, trước mẫu tin checkpoint ghi sổ ghi, ta tạo danh sách khối đệm bị sửa đổi Thông tin last_checkpoint cập nhật sau tất khối đệm bị sửa đổi ghi đĩa last_checkpoint dùng cho mục đích undo CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 131 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU BÀI TẬP CHƯƠNG VI VI.1 Trình bày điểm khác kiểu lưu trữ: lưu trữ không ổn định, lưu trữ ổn định lưu trữ bền theo tiêu chuẩn đánh giá chi phí cài đặt VI.2 Thực tế, lưu trữ bền thực Giải thích sao? Hệ sở liệu giải vấn đề nào? VI.3 So sánh kỹ thuật cập nhật tức thời cập nhật có trì hoãn sơ đồ phục hồi dựa vào sổ ghi lộ trình theo tiêu chuẩn: tính dễ cài đặt tổng chi phí thực VI.4 Giả sử kỹ thuật cập nhật tức thời sử dụng hệ thống Bằng ví dụ, rằng: tình trạng không quán liệu xảy log record không ghi thiết bị lưu trữ bền trước giao dịch bàn giao (commit) VI.5 Giải thích mục đích chế điểm kiểm soát (checkpoint) Hành động đặt điểm kiểm soát nên thực theo chu kỳ hợp lý? VI.6 Khi hệ thống phục hồi sau lỗi, xây dựng danh sách: undo-list redo-list Giải thích log record giao dịch danh sách undo-list phải xử lý theo thứ tự ngược, log record danh sách redo-list lại xử lý theo chiều xuôi? VI.7 So sánh sơ đồ phục hồi phân trang bóng sơ đồ phục hồi sử dụng sổ ghi lộ trình theo tiêu chuẩn: tính dễ cài đặt tổng chi phí thực VI.8 Giả sử sở liệu có 10 khối đĩa liên tiếp (khối 1, 2, 3, , 10) Hãy thể trạng thái buffer thứ tự vật lý có khối sau thao tác cập nhật sau, giả sử: kỹ thuật phân trang bóng sử dụng, buffer nhớ đủ chứa khối, chiến lược quản lý buffer LRU (Least Recently Used) Đọc khối Đọc khối Đọc khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 132 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đọc khối Đọc khối Sửa đổi khối Đọc khối 10 Sửa khối CHƯƠNG VI HỆ THỐNG PHỤC HỒI Trang 133

Ngày đăng: 04/11/2016, 12:21

TỪ KHÓA LIÊN QUAN

w