Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Giáo trình hệ quản trị cơ sở dữ liệu Microsoft Word CHNG Istand doc HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG I GIỚI THIỆU (Introduction) MỤC ĐÍCH Chương này trình bày một cái nhìn bao quát về cơ sở dữ liệu (CSDLDB), về hệ quản trị cơ sở dữ liệu.
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG I GIỚI THIỆU (Introduction) MỤC ĐÍCH Chương trình bày nhìn bao quát sở liệu (CSDL/DB), hệ quản trị sở liệu (HQTCSDL/DBMS) hệ sở liệu (HCSDL/DBS) Các đòi hỏi xây dựng HQTCSDL chức mà HCSDL cần phải có Một khái niệm quan trọng khái niệm giao dịch (Transaction) Các tính chất giao dịch phải có để đảm bảo HQTCSDL, xây dựng HCSDL tương ứng, suốt q trình hoạt động ln cho CSDL tin cậy (dữ liệu quán) Quản trị giao dịch nhằm đảm bảo giao dịch hệ thống có tính chất mà giao dịch phải có Một điều cần ý tính chất giao dịch, tính chất quán trước hết phải đảm bảo người lập trìnhngười viết giao dịch YÊU CẦU Hiểu khái niệm Hiểu vấn đề đặt xây dựng HQTCSDL: thiết kế CSDL, đảm bảo tính quán CSDL suốt sống nó, tảng phần cứng HQTCSDL xây dựng Hiểu cấu trúc hệ thống tổng thể Hiểu vai trò người sử dụng hệ thống MỘT SỐ KHÁI NIỆM • Một sở liệu (CSDL/ DB: DataBase) tập hợp tập tin có liên quan với nhau, thiết kế nhằm làm giảm thiểu lặp lại liệu • Một hệ quản trị sở liệu (HQTCSDL/ DBMS: DataBase Management System) hệ thống gồm CSDL thao tác CSDL đó, thiết kế tảng phần cứng, phần mềm với kiến trúc định • Một hệ sở liệu (HCSDL/ DBS: DataBase System) phần mềm cho phép xây dựng HQTCSDL CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ CƠ SỞ DỮ LIỆU Một số điểm bất lợi việc lưu giữ thơng tin có tổ chức hệ thống xử lý file thơng thường: • Dư thừa liệu tính khơng qn (Data redundancy and inconsistency): Do file trình ứng dụng tạo người lập trình khác nhau, nên file có định dạng khác nhau, chương trình viết ngơn ngữ lập trình khác nhau, thơng tin lưu giữ file khác Tính khơng thống dư thừa làm tăng chi phí truy xuất lưu trữ, nũa, dẫn đến tính khơng quán liệu: liệu khơng qn • Khó khăn việc truy xuất liệu: Môi trường hệ thống xử lý file thông thường không cung cấp công cụ cho phép truy xuất thông tin cách hiệu thuận lợi • Sự lập liệu (Data isolation): Các giá trị liệu lưu trữ sở liệu phải thoả mãn số ràng buộc tính quán liệu ( ràng buộc quán/consistency contraints ) Trong hệ thống xử lý file thơng thường, khó khăn việc thay đổi chương trình để thoả mãn yêu cầu thay đổi ràng buộc Vấn đề trở nên khó khăn ràng buộc liên quan đến hạng mục liệu nằm file khác • Các vấn đề tính ngun tử (Atomicity problems): Tính nguyên tử hoạt động (giao dịch) là: hồn tất trọn vẹn khơng có Điều có nghĩa hoạt động (giao dịch) làm thay đổi liệu bền vững hồn tất (kết thúc thành công) không, giao dịch không để lại dấu vết CSDL Trong hệ thống xử lý file thơng thường khó đảm bảo tính chất • Tính bất thường truy xuất cạnh tranh: Một hệ thống cho phép nhiều người sử dụng cập nhật liệu đồng thời, dẫn đến kết liệu khơng qn Điều địi hỏi giám sát Hệ thống xử lý file thông thường khơng cung cấp chức • Vấn đề an toàn (Security problems): người sử dụng hệ sở liệu khơng cần thiết khơng có quyền truy xuất tất liệu Vấn đề địi hỏi hệ thống phải đảm bảo tính phân quyền, chống truy xuất trái phép Các bất lợi nêu gợi mở phát triển DBMS Phần sau giáo trình đề cập đến quan niệm thuật toán sử dụng để phát triển hệ sở liệu nhằm giải vấn đề nêu Một số khái niệm CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU GĨC NHÌN DỮ LIỆU Tính hiệu hệ thống đòi hỏi phải thiết kế cấu trúc liệu phức tạp để biểu diễn liệu sở liệu Các nhà phát triển che dấu phức tạp thông qua mức trừu tượng nhằm đơn giản hóa trao đổi người sử dụng với hệ thống: • Mức vật lý ( Physical level ): Mức thấp trừu tượng, mô tả liệu lưu trữ Ở mức này, cấu trúc liệu mức thấp, phức tạp mơ tả chi tiết • Mức luận lý ( Logical level ): Mức kế cao trừu tượng, mơ tả liệu lưu trữ sở liệu mối quan hệ liệu Mức logic trừu tượng dùng người quản trị sở liệu • Mức view ( view level ): Mức cao trừu tượng, mô tả phần sở liệu toàn thể Một người sử dụng sở liệu liên quan đến phận sở liệu Như trao đổi họ với hệ thống làm đơn giản việc định nghĩa view Hệ thống cung cấp nhiều mức view sở liệu Mức view view view view n mức luận lý mức vật lý Figure • Thể sơ đồ (instances and schemas): Tập hợp thông tin lưu trữ sở liệu thời điểm gọi thể (instance) sở liệu Thiết kế tổng thể sở liệu gọi sơ đồ (schema) Một hệ sở liệu có vài sơ đồ, phân tương ứng với mức trừu tượng mức thấp sơ đồ vật lý (physical schema), mức trung gian sơ đồ luận lý (logical schema), mức cao sơ đồ (subschema) Nói chung hệ sở liệu hỗ trợ sơ đồ vật lý, sơ đồ luận lý vài sơ đồ • Khả sửa đổi định nghĩa mức không ảnh hưởng định nghĩa sơ đồ mức cao gọi độc lập liệu (data independence) Có hai mức độc lập liệu: - Độc lập liệu vật lý (Physical data independence) khả sửa đổi sơ đồ vật lý khơng làm cho chương trình ứng dụng phải viết lại Các sửa đổi mức vật lý cần thiết để cải thiện hiệu CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU - Độc lập liệu luận lý (Logical data independence) khả sửa đổi sơ đồ luận lý khơng làm cho chương trình ứng dụng phải viết lại Các sửa đổi mức luận lý cần thiết cấu trúc luận lý sở liệu bị thay MƠ HÌNH DỮ LIỆU Nằm cấu trúc sở liệu mô hình liệu: cơng cụ quan niệm để mô tả liệu, quan hệ liệu, ngữ nghĩa liệu ràng buộc quán Có ba nhóm mơ hình: Các mơ hình luận lý dựa đối tượng (Object-based logical models), mơ hình luận lý dựa mẩu tin (record-based logical models), mô hình vật lý (physical models) - Các mơ hình luận lý dựa đối tượng dùng mô tả liệu mức luận lý mức view Chúng đặc trưng việc chúng cung cấp khả cấu trúc linh hoạt cho phép ràng buộc liệu xác định cách tường minh Dưới vài mơ hình biết rộng rãi: Mơ hình thực thể - quan hệ (entity-relationship model), mơ hình hướng đối tượng ( object-oriented model ), mơ hình liệu ngữ nghĩa ( semantic data model ), mơ hình liệu hàm ( function data model ) - Các mơ hình luận lý dựa mẩu tin dùng để miêu tả liệu mức luận lý hay mức view Chúng dùng để xác định cấu trúc luận lý toàn thể sở liệu cung cấp mô tả mức cao việc thực Cơ sở liệu cấu trúc dạng mẩu tin định dạng cố định (fixed format record): mẩu tin xác định số cố định trường, mối trường thường có độ dài cố định Một vài mơ hình biết rộng rãi là: Mơ hình quan hệ, mơ hình mạng, mơ hình phân cấp - Mơ hình liệu vật lý dùng để mơ tả liệu mức thấp Hai mơ hình liệu vật lý biết rộng rãi mô hình hợp (unifying model) mơ hình khung-bộ nhớ ( frame-memory model ) NGÔN NGỮ CƠ SỞ DỮ LIỆU Một hệ sở liệu cung cấp hai kiểu ngôn ngữ khác nhau: để xác định sơ đồ sở liệu, để biểu diễn vấn tin sở liệu cập nhật - Ngôn ngữ định nghĩa liệu (Data Definition Language: DDL) cho phép định nghĩa sơ đồ sở liệu Kết biên dịch lệnh DDL tập hợp bảng lưu trữ file đặc biệt gọi tự điển liệu (data dictionary) hay thư mục liệu (data directory) Tự điển liệu file chứa metadata File tra cứu trước liệu hành đọc hay sửa đổi Cấu trúc lưu trữ phương pháp truy cập sử dụng hệ sở liệu xác định tập hợp định nghĩa kiểu đặc biệt DDL gọi ngôn ngữ định nghĩa lưu trữ liệu (data storage and definition language) Kết biên dịch định nghĩa tập hợp thị xác định thực chi tiết sơ đồ sở liệu (thường che dấu) - Ngôn ngữ thao tác liệu (Data manipulation language: DML) ngôn ngữ cho phép người sử dụng truy xuất thao tác liệu Có hai kiểu ngơn ngữ thao tác liệu: DML thủ tục (procedural DML) yêu cầu người sử dụng đặc tả liệu cần làm để nhận DML khơng thủ tục (Nonprocedural DML) yêu cầu người sử dụng đặc tả liệu cần không cần đặc tả làm để nhận Một vấn tin (query) lệnh yêu cầu tìm lại liệu (information CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU retrieval) Phần ngôn ngữ DML liên quan đến tìm lại thơng tin gọi ngơn ngữ vấn tin (query language) QUẢN TRỊ GIAO DỊCH Thông thường, số thao tác sở liệu tạo thành đơn vị logic công việc Ta xét ví dụ chuyển khoản, số tiền x chuyển từ tài khoản A ( A:=A-x ) sang tài khoản B ( B:=B+x ) Một yếu tố cần thiết hai thao tác xảy không hoạt động xảy Việc chuyển khoản phải xảy tính tồn thể khơng Địi hỏi tồn thể-hoặc-khơng gọi tính nguyên tử (atomicity) Một yếu tố cần thiết khác thực việc chuyển khoản bảo tồn tính quán sở liệu: giá trị tổng A + B phải bảo tồn Địi hỏi tính xác gọi tính quán (consistency) Cuối cùng, sau thực thành công hoạt động chuyển khoản, giá trị tài khoản A B phải bền vững cho dù có cố hệ thống Địi hỏi tính bền vững gọi tính lâu bền (durability) Một giao dịch tập hoạt động thực chức logic ứng dụng sở liệu Mỗi giao dịch đơn vị mang tính nguyên tử lẫn tính qn Như vậy, giao dịch phải khơng vi phạm ràng buộc quán nào: Nếu sở liệu quán giao dịch khởi động phải quán giao dịch kết thúc thành công Tuy nhiên, thực giao dịch, phải cho phép không quán tạm thời Sự không quán tạm thời cần thiết lại dẫn đến khó khăn xảy cố Trách nhiệm người lập trình xác định đắn giao dịch cho bảo tồn tính quán sở liệu Đảm bảo tính nguyên tử tính lâu bền trách nhiệm hệ sở liệu nói chung thành phần quản trị giao dịch ( transaction-management component ) nói riêng Nếu khơng có cố, tất giao dịch hồn tất thành cơng tính ngun tử hoàn thành dễ dàng Tuy nhiên, diện cố, giao dich khơng hồn tất thành cơng thực Nếu tính nguyên tử đảm bảo, giao dịch thất bại không gây hiệu đến trạng thái sở liệu Như vậy, sở liệu phải hồn lại trạng thái trước giao dịch bắt đầu Hệ sở liệu phải có trách nhiệm phát cố hệ thống trả lại sở liệu trạng thái trước xảy cố Khi số giao dịch cạnh tranh cập nhật sở liệu, tính qn liệu khơng bảo tồn, giao dịch xác Bộ quản trị điều khiển cạnh tranh (concurency-control manager) có trách nhiệm điều khiển trao đổi giao dịch cạnh tranh để đảm bảo tính thống CSDL QUẢN TRỊ LƯU TRỮ Các CSDL đòi hỏi khối lượng lớn khơng gian lưu trữ, lên đến nhiều terabytes ( terabyte=103 Gigabytes=106 Megabytes ) Các thông tin phải lưu trữ lưu trữ (đĩa) Dữ liệu di chuyển lưu trữ đĩa nhớ cần thiết Do việc di chuyển liệu từ lên đĩa tương đối chậm so với tốc độ đơn vị xử lý trung tâm, điều ép buộc hệ CSDL phải cấu trúc liệu cho tối ưu hóa nhu cầu di chuyển liệu đĩa nhớ CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Mục đích hệ CSDL làm đơn giản dễ dàng việc truy xuất liệu Người sử dụng hệ thống khơng cần quan tâm đến chi tiết vật lý thực thi hệ thống Phần lớn họ quan đến hiệu hệ thống (thời gian trả lời câu vấn tin ) Bộ quản trị lưu trữ ( storage manager ) module chương trình cung cấp giao diện liệu mức thấp lưu trữ CSDL với chương trình ứng dụng câu vấn tin đệ trình cho hệ thống Bộ quản trị lưu trữ có trách nhiệm trao đổi với quản trị file (file manager) Dữ liệu thô lưu trữ đĩa sử dụng hệ thống file (file system), hệ thống thường cung cấp hệ điều hành Bộ quản trị lưu trữ dịch câu lệnh DML thành lệnh hệ thống file mức thấp Như vậy, quản trị lưu trữ có nhiệm vụ lưu trữ, tìm lại cập nhật liệu CSDL NHÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU Một lý việc sử dụng DBMS có điều khiển trung tâm cho liệu lẫn chương trình truy cập liệu Người điều khiển trung tâm toàn hệ thống gọi nhà quản trị sở liệu (DataBase Administrator - DBA) Các chức DBA sau: • Định nghĩa sơ đồ: DBA tạo sơ đồ CSDL gốc cách viết tập định nghĩa mà dịch trình biên dịch DDL thành tập bảng lưu trữ thường trực tự điển liệu • Định nghĩa cấu trúc lưu trữ phương pháp truy xuất: DBA tạo cấu trúc lưu trữ thích hợp phương pháp truy xuất cách viết tập hợp định nghĩa mà dịch trình biên dịch lưu trữ liệu ngôn ngữ định nghĩa liệu • Sửa đổi sơ đồ tổ chức vật lý • Cấp quyền truy xuất liệu: Việc cấp dạng quyền truy cập khác cho phép DBA điều hoà phần CSDL mà nhiều người truy xuất Thơng tin quyền lưu giữ cấu trúc hệ thống đặc biệt, tham khảo hệ CSDL có truy xuất liệu hệ thống • Đặc tả ràng buộc toàn vẹn ( integrity-contraint ): Các giá trị liệu lưu trữ CSDL phải thoả mãn số ràng buộc quán định Ví dụ số làm việc nhân viên tuần vượt giới hạn 80 chẳng hạn Một ràng buộc phải đặc tả cách tường minh DBA Các ràng buộc toàn vẹn lưu giữ cấu trúc hệ thống đặc biệt tham khảo hệ CSDL có cập nhật liệu NGƯỜI SỬ DỤNG CSDL Mục đích hệ CSDL cung cấp mơi trường để tìm lại thơng tin lưu thông tin CSDL Các người sử dụng sở liệu phân thành bốn nhóm tuỳ theo cách thức họ trao đổi với hệ thống • Các người lập trình ứng dụng: Là nhà chun mơn máy tính người trao đổi với hệ thống thơng qua lời gọi DML nhúng chương trình viết ngôn ngữ chủ - host language (Pascal, C, Cobol ) Các chương trình thường tham khảo chương trình ứng dụng Vì cú pháp DML thường khác với cú pháp ngôn ngữ chủ, lời gọi DML thường bắt đầu ký tự đặc biệt mã thích hợp sinh Một tiền xử lý đặc biệt, gọi tiền CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU biên dịch (precompiler) DML, chuyển lệnh DML thành lời gọi thủ tục chuẩn ngôn ngữ chủ Bộ biên dịch ngôn ngữ chủ sinh mã đối tượng thích hợp Có ngơn ngữ lập trình phối hợp cấu trúc điều khiển ngôn ngữ giống Pascal với cấu trúc điều khiển để thao tác đối tượng CSDL Các ngôn ngữ (đôi gọi ngôn ngữ hệ thứ tư) thường bao gồm đặc điểm đặc biệt để làm dễ dàng việc sinh dạng hiển thị liệu hình • Các người sử dụng thành thạo ( Sophisticated users ): Trao đổi với hệ thống không qua viết trình Thay vào họ đặt u cầu họ ngôn ngữ truy vấn CSDL ( Database query language ) Mỗi câu vấn tin đệ trình cho xử lý vấn tin, chức xử lý vấn tin "dịch" lệnh DML thành thị mà quản trị lưu trữ hiểu Các nhà phân tích đệ trình câu vấn tin thăm dò liệu sở liệu thuộc vào phạm trù • Các người sử dụng chuyên biệt ( Specialized users ): Là người sử dụng thành thạo, họ viết ứng dụng CSDL chuyên biệt không nằm khung xử lý liệu truyền thống Trong đó, phải kể đến hệ thống thiết kế trợ giúp máy tính (computer-aided design systems), Cơ sở tri thức (knowledge-base) hệ chuyên gia (expert systems), hệ thống lưu trữ liệu với kiểu liệu phức tạp (dữ liệu đồ họa, hình ảnh, âm thanh) hệ thống mơ hình mơi trường (environment-modeling systems) • Các người sử dụng ngây thơ ( Naive users ): người sử dụng không thành thạo, họ trao đổi với hệ thống cầu dẫn chương trình ứng dụng thường trực viết sẵn CẤU TRÚC HỆ THỐNG TỔNG THỂ Một hệ CSDL phân thành module, thực trách nhiệm hệ thống tổng thể Một số chức hệ CSDL cung cấp hệ điều hành Trong hầu hết trường hợp, hệ điều hành cung cấp dịch vụ sở nhất, hệ CSDL phải xây dựng sở Như vậy, thiết kế hệ CSDL phải xem xét đến giao diện hệ CSDL hệ điều hành Các thành phần chức hệ CSDL chia thành thành phần xử lý vấn tin (query processor components) thành phần quản trị lưu trữ (storage manager components ) Các thành phần xử lý vấn tin gồm: • Trình biên dịch DML ( DML compiler ): dịch lệnh DML ngôn ngữ vấn tin thành thị mức thấp mà engine định giá vấn tin ( query evaluation engine ) hiểu Hơn nữa, Trình biên dịch DML phải biến đổi yêu cầu người sử dụng thành đích tương đương dạng hiệu có nghĩa tìm chiến lược tốt để thực câu vấn tin • Trình tiền biên dịch DML nhúng ( Embedded DML Precompiler ): biến đổi lệnh DML nhúng chương trình ứng dụng thành lời gọi thủ tục chuẩn ngôn ngữ chủ Trình tiền biên dịch phải trao đổi với trình biên dịch DML để sinh mã thích hợp • Bộ thông dịch DDL ( DDL interpreter ): thông dịch lệnh DDL ghi chúng vào tập hợp bảng chứa metadata CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU • Engine định giá vấn tin ( Query evaluation engine ): Thực thị mức thấp sinh trình biên dịch DML Các thành phần quản trị lưu trữ cung cấp giao diện liệu mức thấp lưu trữ CSDL chương trình ứng dụng, vấn tin đệ trình cho hệ thống Các thành phần quản trị lưu trữ gồm: • Bộ quản trị quyền tính tồn vẹn ( Authorization and integrity manager ): kiểm tra thoả mãn ràng buộc toàn vẹn kiểm tra quyền truy xuất liệu người sử dụng • Bộ quản trị giao dịch ( Transaction manager ): Đảm bảo CSDL trì trạng thái quán cho dù hệ thống có cố đảm bảo thực giao dịch cạnh tranh tiến triển khơng xung đột • Bộ quản trị file ( File manager ): Quản trị cấp phát không gian lưu trữ đĩa cấu trúc liệu dùng để biểu diễn thông tin lưu trữ đĩa • Bộ quản trị đệm ( Buffer manager ): có trách nhiệm đem liệu từ lưu trữ đĩa vào nhớ định liệu trữ nhớ Hơn nữa, số cấu trúc liệu cần đến phận thực thi hệ thống vật lý: • Các file liệu: Lưu trữ CSDL • Tự điển liệu ( Data Dictionary ): lưu metadata cấu trúc CSDL • Chỉ mục ( Indices ): cung cấp truy xuất nhanh đến hạng mục liệu chứa giá trị tìm kiếm • Dữ liệu thống kê ( Statistical data ): lưu trữ thông tin thống kê liệu sở liệu Thông tin dùng xử lý vấn tin để chọn phương pháp hiệu thực câu vấn tin Sơ đồ thành phần nối kết chúng Naive users Application programmer Sophisticated users application application query interfaces programs Database administrator database scheme embedded DML application programs object code query DDL compiler interpreter Query processor precompiler DML evaluation engine CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU buffer authorization and manager manager integrity manager file manager storage manager transaction Figure KIẾN TRÚC HỆ CƠ SỞ DỮ LIỆU Kiến trúc hệ CSDL bị ảnh hưởng nhiều hệ thống máy Các sắc thái kiến trúc máy mạng, song song phân tán phản ánh kiến trúc hệ CSDL • Mạng máy tính cho phép thực số công việc hệ thống server, số công việc hệ thống client Việc phân chia công việc dẫn đến phát triển hệ CSDL client-server • Xử lý song song hệ thống máy tính làm tăng tốc độ hoạt động hệ CSDL, trả lời giao dịch nhanh Các vấn tin xử lý theo cách khai thác tính song song Sự cần thiết xử lý vấn tin song song dẫn tới phát triển hệ CSDL song song • Dữ liệu phân tán site phận quan cho phép liệu thường trú nơi chúng sinh truy xuất chúng từ site khác hay phận khác Việc lưu nhiều CSDL site khác cho phép tổ chức lớn tiếp tục hoạt động hay vài site bị cố Hệ CSDL phân tán phát triển để quản lý liệu phân tán, phương diện địa lý hay quản trị, trải rộng nhiều hệ CSDL HỆ THỐNG TẬP TRUNG Các hệ CSDL tập trung chạy máy đơn không trao đổi với máy khác Các hệ thống trải từ hệ CSDL người sử dụng chạy máy cá nhân (PC) đến hệ CSDL hiệu cao chạy hệ mainframe Một hệ máy tính mục đích chung đại gồm một vài CPU số điều khiển thiết bị nối với thông qua bus CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU chung, cho phép truy xuất đến nhớ chia sẻ CPU có nhớ cache cục lưu số phần nhớ nhằm tăng tốc độ truy xuất liệu Mỗi điều khiển thiết bị phụ trách kiểu thiết bị xác định Các CPU điều khiển thiết bị thực đồng thời, canh tranh truy cập nhớ Bộ nhớ cache giúp làm giảm tranh chấp truy xuất nhớ Ta phân biệt hai cách máy tính sử dụng: Hệ thống người dùng hệ thống nhiều người dùng Hệ CSDL thiết kế cho hệ thống người dùng không hỗ trợ điều khiển cạnh tranh, chức phục hồi thiếu chép dự phòng đơn giản HỆ THỐNG CLIENT-SERVER Các máy tính cá nhân ( PC ) ngày trở nên mạnh hơn, nhanh hơn, rẻ Có chuyển dịch hệ thống tập trung Các đầu cuối (terminal) nối với hệ thống tập trung chỗ máy tính cá nhân Chức giao diện người dùng (user interface) thường quản lý trực tiếp hệ thống tập trung quản lý máy tính cá nhân Như vậy, hệ thống tập trung ngày hoạt động hệ thống server làm thoả mãn địi hỏi client Chức CSDL chia thành hai phần: phần trước (front-end) phần sau (back-end) Phần sau quản trị truy xuất cấu trúc, định giá câu vấn tin tối ưu hoá, điều khiển xảy đồng thời phục hồi Phần trước hệ CSDL gồm công cụ như: tạo mẫu (form), soạn báo cáo (report writer), giao diện đồ hoạ người dùng (graphical user interface) Giao diện phần trước phần sau thông qua SQL chương trình ứng dụng Các hệ thống server phân thành phạm trù : server giao dịch (transaction server), server liệu (data server) Client Client Client Client Network Server Figure • Hệ thống server giao dịch (transaction-server systems): gọi hệ thống server vấn tin (query-server system), cung cấp giao diện mà client gửi đến yêu cầu thực hành động Để đáp ứng yêu cầu, hệ thống thực hành động gửi lại client kết Các người sử dụng đặc tả yêu cầu SQL giao diện trình ứng dụng sử dụng chế gọi thủ tục xa ( remote-procedure-call ) o Các servers giao dịch ( Transaction servers ): Trong hệ thống tập trung, phần trước (front-end) phần sau (back-end) thực hệ thống Kiến trúc server giao dịch cho phép chia chức phần trước phần sau Chức phần trước hỗ trợ máy tính cá nhân (PC) Các PC hành động khách hàng hệ thống server nơi lưu trữ khối lượng lớn liệu hỗ trợ chức phần sau Các clients gửi giao dịch đến hệ thống server giao dịch thực CHƯƠNG I GIỚI THIỆU Trang 10 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 q 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 q 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 hồn tồn: Thơng tin chuyển đến đích an tồn • Bị lỗi phần: Có lỗi xuất q trình chuyển liệu khối đích chứa thơng tin khơng • Bị lỗi hồn tồ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 q 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 q 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 khơng có 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 khơng có 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ị xố 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 khơng có 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 khơng có 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 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 cịn 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 NGUN 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 hồn thành Giải pháp nhằm đạt tính ngun 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ì hỗn đảm bảo tính ngun 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ì hỗ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ì hỗ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ì hỗ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ì hỗ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 Ngồ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, khơng có hành động “thực lại giao dịch” cần phải làm, khơng có 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 khơng có 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, khơng có 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 tồn nội dung sổ ghi để có định Hướng tiếp cận gặp phải hai khó khăn lớn: Q 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 khơng có 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 q trình khơi phục Trong q 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 số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 số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 số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 số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à khơng có 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ì hỗ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 q 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ộ ¹ ý 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 xố 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 khơng có cạnh tranh nên giải pháp V.4.3 xét đến giao dịch sau q 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 số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 số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 tố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 xi 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 khơng thể 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ì hỗ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 số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 ... cho nhà quản lý công ty First Bank lên 10% 16 Xố tất thơng tin liên quan tới cong ty Bad Bank CHƯƠNG II SQL trang 33 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG II SQL trang 34 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG... phát triển hệ sở liệu nhằm giải vấn đề nêu Một số khái niệm CHƯƠNG I GIỚI THIỆU Trang HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU GĨC NHÌN DỮ LIỆU Tính hiệu hệ thống đòi hỏi phải thiết kế cấu trúc liệu phức tạp...HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU HỆ CƠ SỞ DỮ LIỆU Một số điểm bất lợi việc lưu giữ thơng tin có tổ chức hệ thống xử lý file thơng thường: • Dư thừa liệu tính khơng qn (Data