Bài giảng Hệ quản trị cơ sở dữ liệu

1.3K 309 0
Bài giảng Hệ quản trị cơ sở dữ liệu

Đ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

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 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 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KHOA  Bài giảng Hệ quản trị sở liệu GV: Chu Thị Hường Bài giảng Hệ quản trị CSDL MỤC LỤC MỤC LỤC .1 Chương 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CSDL 1.1 Ðịnh nghĩa: 1.2 Các khả hệ quản trị CSDL 1.3 Đặc điểm hệ quản trị CSDL 1.3.1 Sự trừu tượng hoá liệu: 1.3.2 Ngôn ngữ sở liệu 1.3.3 Xử lý câu hỏi .6 1.3.4 Quản trị giao dịch 1.3.5 Quản lý lưu trữ 1.4 Kiến trúc hệ quản trị CSDL 1.5 Các chức hệ quản trị CSDL quan hệ 1.5.1 Các khái niệm mô hình liệu quan hệ 1.5.2 Các chức hệ quản trị CSDL quan hệ 11 Chương 2: CÁC CÂU LỆNH SQL CƠ BẢN .14 2.1 CÁC CÂU LỆNH ĐỊNH NGHĨA DỮ LIỆU 14 2.1.1 Lệnh CREATE 14 2.1.2 Lệnh thay sửa đổi ALTER 15 2.1.3 Xoá cấu trúc DROP 16 2.2 CÁC CÂU LỆNH CẬP NHẬT DỮ LIỆU .16 2.2.1 Lệnh Insert 16 2.2.2 Lệnh Update .16 2.2.2 Lệnh Delete 17 2.3 KIỂM SOÁT DỮ LIỆU 17 2.3.1 Trao quyền GRANT 17 2.3.2 Thu hồi quyền REVOTE 17 2.4 TRUY VẤN DỮ LIỆU 18 2.4.1 Tìm kiếm theo câu hỏi đơn giản 18 2.4.2 Sử dụng hàm thư viện 19 2.4.3 Tìm kiếm nhờ mệnh đề 20 2.4.4 Câu hỏi phức tạp 21 Chương 3: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 24 3.1 TỔNG QUAN VỀ HỆ QUẢN TRỊ SQL SERVER 24 3.1.1 Giới thiệu hệ quản trị SQL Server .24 3.1.2.Các thành phần SQL Server 24 3.1.2.1 Các thành phần SQL Server 2000 24 3.1.2.2 Các thành phần SQL Server 2005 28 3.1.3 Quản lý dịch vụ SQL Server .32 3.1.3.1 Quản lý dịch vụ SQL Server 2000 32 3.1.3.2 Quản lý dịch vụ SQL Server 2005 36 3.2 LÀM VIỆC VỚI CÁC ĐỐI TƯỢNG TRONG SQL SERVER 44 3.2.1 Cơ sở liệu - Database 45 3.2.2.Bảng - Table 59 3.2.3 View 67 Biên soạn: Chu Thị Hường Bộ môn: Các hệ thống thông tin Khoa Công nghệ Thông tin Bài giảng Hệ quản trị CSDL 3.2.4 Chỉ mục - Index 80 3.2.5 Lược đồ - Diagrams 92 3.3 BẢO ĐẢM DỮ LIỆU TRONG SQL SERVER .99 3.3.1 Phân quyền bảo mật SQL Server .99 3.3.2 Sao lưu - phục hồi CSDL .127 Chương LẬP TRÌNH TRÊN SQL SERVER 141 4.1 Giới thiệu ngôn ngữ T-SQL 141 4.1.1 Khái niệm .141 4.1.2 Phát biểu truy vấn liệu nâng cao .141 4.1.3 Lập trình cấu trúc SQL Server .149 4.2 Các store procedure – Các thủ tục 168 4.2.1 Khái niệm .168 4.2.2 Tạo store procedure 168 4.2.3.Thay đổi, xóa, xem nội dung store procedure 174 4.3 Các store function – Các hàm 176 4.3.1 Các khái niệm 176 4.3.2 Tạo hàm .176 4.3.3 Các ví dụ tạo hàm 178 4.3.4.Thay đổi, xóa, xem nội dung store function .181 4.4 Trigger 182 4.4.1 Khái niệm .182 4.4.2 Tạo trigger 184 4.4.3 Các thao tác quản lý trigger .193 Chương SQL SERVER VÀ LẬP TRÌNH ỨNG DỤNG .197 5.1 Mô hình kết nối ứng dụng đến SQL server 197 5.1.1 Mô hình ADO 197 5.1.2 Mô hình ADO.NET 199 5.1.3 Điểm khác ADO ADO.NET 204 5.2 Các lớp SqlClient mô hình ADO.NET 204 5.2.1 Class SqlConnection 205 5.2.2 Class SqlCommand 208 5.2.3 Class SqlDataAdapter 213 5.2.4 Class DataSet 219 5.2.5 DataView 220 5.3 Ví dụ minh họa .223 5.3.1 CSDL ví dụ minh họa 224 5.3.2 Xây dựng Form nhập DSSinhVien 225 5.3.3 Xây dựng Form nhập DSLop 233 5.3.4 Xây dựng Form hiển thị danh sách sinh viên .235 5.3.5 Xây dựng báo cáo dùng Report 241 5.3.6 Xây dựng report dùng Crystal Report 255 Biên soạn: Chu Thị Hường Bộ môn: Các hệ thống thông tin Khoa Công nghệ Thông tin Bài giảng Hệ quản trị CSDL hệ quản trị sở liệu quan hệ, siêu liệu bao gồm tên quan hệ, tên thuộc tính quan hệ, kiểu liệu thuộc tính - Bộ quản lý lưu trữ: Nhiệm vụ quản lý lưu trữ lấy thông tin yêu cầu từ thiết bị lưu trữ liệu thay đổi thông tin yêu cầu mức hệ thống - Bộ xử lý câu hỏi: Bộ xử lý câu hỏi điều khiển không câu hỏi mà yêu cầu thay đổi liệu hay siêu liệu Nhiệm vụ tìm cách tốt thao tác yêu cầu phát lệnh quản lý lưu trữ thực thi thao tác - Bộ quản trị giao dịch: Bộ quản trị giao dịch có trách nhiệm đảm bảo tính toàn vẹn hệ thống Nó phải đảm bảo số thao tác thực đồng thời không cản trở thao tác khác hệ thống không liệu chí lỗi hệ thống xảy + Nó tương tác với xử lý câu hỏi, phải biết liệu thao tác thao tác thời để tránh đụng độ thao tác cần thiết làm trễ số truy vấn định hay số thao tác cập nhật để đụng độ xảy + Nó tương tác với quản lý lưu trữ sơ đồ việc bảo vệ liệu thường kéo theo việc lưu trữ nhật ký thay đổi liệu Hơn nữa, việc thứ tự thao tác cách thực nhật ký chứa ghi thay đổi gặp lỗi hệ thống, thay đổi chưa ghi vào đĩa thực lại - Các kiểu thao tác hệ quản trị CSDL: Tại đỉnh kiến trúc, ta thấy có kiểu thao tác: + Các truy vấn: Ðây thao tác hỏi đáp liệu lưu trữ CSDL Chúng sinh theo hai cách sau: ƒ Thông qua giao diện truy vấn chung Ví dụ: Hệ quản trị CSDL quan hệ cho phép người sử dụng nhập câu Biên soạn: Chu Thị Hường Bộ môn: Các hệ thống thông tin Khoa Công nghệ Thông tin Bài giảng Hệ quản trị CSDL 10 + Mỗi thuộc tính nhận tập số giá trị định gọi domain thuộc tính - Một quan hệ (Relation): Định nghĩa cách đơn giản, quan hệ bảng liệu có cột thuộc tính hàng liệu cụ thể quan hệ - Các liên kết: Một liên kết kết hợp số thực thể (hay quan hệ) Ví dụ: Mối liên kết phòng ban nhân viên thể hiện: Một nhân viên A thuộc phòng ban B + Các liên kết – một: dạng liên kết đơn giản, liên kết hai thực thể – một, có nghĩa thực thể tập thực thể có nhiều thực thể tập thực thể kết hợp với ngược lại + Các liên kết – nhiều: Trong liên kết – nhiều, thực thể tập thực thể A kết hợp với không hay nhiều thực thể tập thực thể B Nhưng thực thể tập thực thể B kết hợp với nhiều thực thể tập thực thể A + Các liên kết nhiều – nhiều: Ðây dạng liên kết mà thực thể tập thực thể liên kết với không hay nhiều thực thể tập thực thể ngược lại Ví dụ 1.1 Các mối liên kết thực thể: LOP(MaLop, TenLop, Khoa), SINHVIEN(MaSV, Hoten, NgSinh, MaLop), MONHOC(MaMon, TenM, SDVHT) KETQUA (MaSV, MaMon, Diem) Ta có mối quan hệ thực thể là: LOP SINHVIEN KETQUA MONHOC MaSV Hoten NgSinh MaLop MaSV MaMon Diem MaMon TenM SDVHT MaLop TenLop Khoa Biên soạn: Chu Thị Hường Bộ môn: Các hệ thống thông tin Khoa Công nghệ Thông tin Bài giảng Hệ quản trị CSDL 12 Quản lý khung nhìn bao gồm việc phiên dịch câu vấn tin người dùng liệu thành liệu khái niệm Nếu câu vấn tin người dùng diễn tả phép toán quan hệ, câu vấn tin áp dụng cho liệu khái niệm giữ nguyên dạng - Tầng điều khiển (Control Layer): chịu trách nhiệm điều khiển câu vấn tin cách đưa thêm vị từ toàn vẹn ngữ nghĩa vị từ cấp quyền - Tầng xử lý vấn tin (Query processing layer): chịu trách nhiệm ánh xạ câu vấn tin thành chuỗi thao tác tối ưu mức thấp Tầng liên quan đến vấn đề hiệu Nó phân rã câu vấn tin thành biểu thị phép toán đại số quan hệ thử tìm thứ tự “tối ưu” cho phép toán Kết xuất tầng câu vấn tin diễn tả đại số quan hệ dạng mã mức thấp - Tầng thực thi (Execution layer): Có trách nhiệm hướng dẫn việc thực hoạch định truy xuất, bao gồm việc quản lý giao dịch (uỷ thác, tái khởi động) động hoá phép đại số quan hệ Nó thông dịch phép toán đại số quan hệ cách gọi tầng truy xuất liệu qua yêu cầu truy xuất cập nhật - Tầng truy xuất liệu (data access layer): Quản lý cấu trúc liệu dùng để cài đặt quan hệ (tập tin, mục) Nó quản lý vùng đệm cách lưu tạm liệu thường truy xuất đến nhiều Sử dụng tầng làm giảm thiểu việc truy xuất đến đĩa - Tầng trì quán (Consistency layer): chịu trách nhiệm điều khiển hoạt động đồng thời việc ghi vào nhật ký yêu cầu cật nhật Tầng cho phép khôi phục lại giao dịch, hệ thống thiết bị sau bị cố Biên soạn: Chu Thị Hường Bộ môn: Các hệ thống thông tin Khoa Công nghệ Thông tin Bài giảng Hệ quản trị CSDL 13 Hình 1.3 Các chức hệ quản trị CSDL quan hệ Biên soạn: Chu Thị Hường Bộ môn: Các hệ thống thông tin Khoa Công nghệ Thông tin Bài giảng Hệ quản trị CSDL 22 Where a.MaMT=b.MaMT; + SELECT a.SoBD, TenSV, a.Diem From Tam a, THISINH b Where a.SoBD=b.SoBD Ví dụ 2.21 Liên kết nhiều bảng authors, titleauthor title SELECT au_lname, au_fname, title, price FROM authors JOIN titleauthor ON authors.au_id = titleauthor.au_id JOIN titles ON titleauthor.title_id = titles.title_id ORDER BY au_lname, au_fname - Ánh xạ lồng Ví dụ 2.22 Cho quan hệ: S(S#, SNAME, STATUS, CITY) SP(S#, P#, QTY) P(P#, PNAME, COLOR, WEIGH) Hãy cho biết mã tên hãng có bán sản phẩm màu đỏ SELECT S#, SNAME From S Where S# IN (SELECT S# From SP Where P# IN (Select P# From P Where COLOR='Red')); - Sử dụng lượng từ: EXISTS, ANY, ALL,… Ví dụ 2.23 Cho bảng ví dụ 2.22 Tìm nhà cung cấp cung cấp mặt hàng SELECT * From S Where EXISTS (SELECT * From SP Where SP.S# =S.S#); Ta thay câu lệnh: SELECT * From S Where < (SELECT Count(*) From SP Where SP.S#=S.S#); Ví dụ 2.24 Tìm tên mặt hàng có mã số mặt hàng mà mặt hàng mà hãng S1 bán SELECT PNAME From P Where S# = ANY Biên soạn: Chu Thị Hường Bộ môn: Các hệ thống thông tin Khoa Công nghệ Thông tin 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: 20/10/2016, 07:06

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan