Bài giảng Cơ sở dữ liệu nâng cao - ĐH Hàng Hải

60 738 13
Bài giảng Cơ sở dữ liệu nâng cao - ĐH Hàng Hải

Đ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

"Bài giảng Cơ sở dữ liệu nâng cao" trình bày các nội dung lưu trữ và tổ chức tệp tin, lập chỉ mục và băm, tối ưu hóa truy vấn, giao dịch trong cơ sở dữ liệu, điều khiển đồng thời và khôi phục hệ thống. Mời bạn đọc tham khảo.

TRƢỜNG ĐẠI HỌC HÀNG HẢI KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN *** BÀI GIẢNG SỞ DỮ LIỆU NÂNG CAO TÊN HỌC PHẦN : SỞ DỮ LIỆU NÂNG CAO MÃ HỌC PHẦN : 17406 TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY DÙNG CHO SV NGÀNH: CÔNG NGHỆ THÔNG TIN HẢI PHÕNG – 2011 2 MỤC LỤC CHƢƠNG 1: LƢU TRỮ VÀ TỔ CHỨC TỆP TIN 6 1.1. Tổng quan về phƣơng tiện lƣu trữ 6 1.2. Tổ chức tệp tin 7 1.2.1. Bản ghi với độ dài cố định (Fixed – Length Records) 7 1.2.2. Bản ghi với độ dài thay đổi (Variable – Length Records) 9 1.3. Tổ chức các bản ghi trong tệp tin 11 1.3.1. Tổ chức tệp tin Heap 11 1.3.2. Tổ chức tệp tin tuần tự 11 1.3.3. Tổ chức tệp tin băm 12 1.4. Câu hỏi ôn tập chƣơng 1 14 CHƢƠNG 2: LẬP CHỈ MỤC VÀ BĂM 15 2.1. Các khái niệm bản 15 2.2. Các chỉ mục thứ tự 15 2.2.1. Chỉ mục chính (Primary Indexes) 15 2.2.2. Chỉ mục cụm (Clustering Indexes) 17 2.2.3. Chỉ mục phụ (Secondary Indexes) 17 2.3. Chỉ mục cây B + 19 2.3.1. Tóm lược về cây tìm kiếm 19 2.3.2. Chỉ mục B – Tree 20 2.3.3. Chỉ mục B + – Tree 21 2.4. Băm tĩnh và băm động 23 2.4.1. Băm tĩnh (Static Hashing) 23 2.4.2. Băm động (Dynamic Hashing) 24 2.5. Câu hỏi ôn tập chƣơng 2 26 CHƢƠNG 3: TỐI ƢU HÓA TRUY VẤN 28 3.1. Giới thiệu 28 3.2. Các phép biến đổi tƣơng đƣơng 28 3.3. Thuật toán tối ƣu hóa cây đại số quan hệ 30 3.3.1. Thuật toán 30 3.3.2. Ví dụ 30 3.4. Câu hỏi ôn tập chƣơng 3 32 CHƢƠNG 4: GIAO DỊCH TRONG SỞ DỮ LIỆU 33 4.1. Giới thiệu 33 3 4.2. Các tính chất và trạng thái của giao dịch 33 4.2.1. Tính chất của giao dịch 33 4.2.2. Trạng thái của giao dịch 33 4.3. Lịch biểu 34 4.3.1. Khái niệm lịch biểu 34 4.3.2. Tính khả tuần tự của lịch biểu 35 4.4. Thuật toán kiểm tra tính khả tuần tự của lịch biểu 35 4.5. Câu hỏi ôn tập chƣơng 4 37 CHƢƠNG 5: ĐIỀU KHIỂN ĐỒNG THỜI VÀ KHÔI PHỤC HỆ THỐNG 38 5.1. Các giao thức dựa vào khóa 38 5.1.1. Mô hình khóa nhị phân 38 5.1.2. Mô hình khóa đọc – ghi (chia sẻ – độc quyền) 38 5.1.3. Giao thức khóa 2 pha 40 5.1.4. Deadlock 41 5.2. Giao thức thứ tự nhãn thời gian (Timestamp – Ordering protocol) 43 5.2.1. Nhãn thời gian (Timestamp) 43 5.2.2. Giao thức thứ tự nhãn thời gian (Timestamp – Ordering Protocol) 43 5.3. Phục hồi hệ thống dựa vào nhật ký giao dịch (Log-based) 44 5.3.1. Cập nhật trì hoãn sở dữ liệu (Deferred Database Modification) 44 5.3.2. Cập nhật tức thời (Immediate Database Modification) 45 5.4. Kỹ thuật phân trang bóng (Shadow Paging) 46 5.5. Câu hỏi ôn tập chƣơng 5 49 MỘT SỐ ĐỀ THI MẪU 50 4 Tên học phần: sở dữ liệu nâng cao Loại học phần: 2 Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Khoa phụ trách: CNTT. Mã học phần: 17406 Tổng số TC: 2 Tổng số tiết Lý thuyết Thực hành/Xemina Tự học Bài tập lớn Đồ án môn học 45 30 15 0 không không Học phần học trƣớc: sở dữ liệu. Học phần tiên quyết: sở dữ liệu. Học phần song song: Không yêu cầu. Mục tiêu của học phần: Cung cấp cho sinh viên những kiến thức nâng cao về sở dữ liệu quan hệ. Nội dung chủ yếu: Các vấn đề nâng cao về sở dữ liệu quan hệ: Lưu trữ và tổ chức tệp tin; Lập chỉ mục và băm; Tối ưu hóa truy vấn; Quản lý giao dịch trong sở dữ liệu; Điều khiển tương tranh; Phục hồi hệ thống. Nội dung chi tiết: TÊN CHƢƠNG MỤC PHÂN PHỐI SỐ TIẾT TS LT TH BT KT Chƣơng 1: Lƣu trữ và tổ chức tệp tin 2 2 1.1. Tổng quan về phương tiện lưu trữ 1.2. Tổ chức tệp tin 1.3. Tổ chức các bản ghi trong tệp tin Chƣơng 2: Lập chỉ mục và băm 12 6 5 1 2.1. Các khái niệm bản 2.2. Các chỉ mục thứ tự 2.3. Chỉ mục cây B+ 2.4. Băm tĩnh 2.5. Băm động Chƣơng 3: Tối ƣu hóa truy vấn 7 6 1 3.1. Giới thiệu 3.2. Các phép biến đổi tương đương 3.4. Thuật toán tối ưu hóa cây đại số quan hệ Chƣơng 4: Giao dịch trong sở dữ liệu (Transactions) 12 6 5 1 4.1. Giới thiệu 4.2. Các tính chất của giao dịch 5 TÊN CHƢƠNG MỤC PHÂN PHỐI SỐ TIẾT TS LT TH BT KT 4.3. Các trạng thái của giao dịch 4.4. Lịch biểu (Schedule) 4.5. Tính khả tuần tự của lịch biểu (Serializability) 4.6. Thuật toán kiểm tra tính khả tuần tự của lịch biểu Chƣơng 5: Điều khiển đồng thời và khôi phục hệ thống 12 7 5 5.1. Các giao thức dựa vào khóa (Lock-based) 5.2. Giao thức thứ tự nhãn thời gian 5.3. Phục hồi hệ thống dựa vào nhật ký giao dịch (Log-based) 5.4. Kỹ thuật phân trang bóng (Shadow Paging) Nhiệm vụ của sinh viên: Tham dự các buổi học lý thuyết và thực hành, làm các bài tập được giao, làm các bài thi giữa học phần và bài thi kết thúc học phần theo đúng quy định. Tài liệu học tập: 1. Avi Silberschatz, Henry F. Korth, S. Sudarshan, Database System Concepts, 6 th ed, McGraw-Hill. Hình thức và tiêu chuẩn đánh giá sinh viên: Hình thức thi: tự luận hoặc trắc nghiệm. Tiêu chuẩn đánh giá sinh viên: căn cứ vào sự tham gia học tập của sinh viên trong các buổi học lý thuyết và thực hành, kết quả làm các bài tập được giao, kết quả của các bài thi giữa học phần và bài thi kết thúc học phần. Thang điểm: Thang điểm chữ A, B, C, D, F. Điểm đánh giá học phần: Z = 0,3X + 0,7Y. Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Hệ thống Thông tin, Khoa Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên. Ngày phê duyệt: __/__/____ Trƣởng Bộ môn Ngƣời biên soạn 6 CHƢƠNG 1: LƢU TRỮ VÀ TỔ CHỨC TỆP TIN 1.1.Tổng quan về phƣơng tiện lƣu trữ một vài kiểu lưu trữ dữ liệu tồn tại trong hầu hết các hệ thống máy tính. Các thiết bị lưu trữ này được phân loại theo tốc độ truy cập dữ liệu, giá trên một đơn vị dữ liệu và độ tin cậy của thiết bị: Cache: Là thiết bị lưu trữ nhanh nhất và cũng giá đắt nhất. Bộ nhớ cache tương đối nhỏ, được quản lý bởi phần cứng của hệ thống máy tính. Main Memory: Dung lượng thể lên tới vài Gigabytes trên máy tính cá nhân và hàng trăm Gigabytes trên các máy Server. Tuy nhiên vẫn là quá nhỏ để lưu toàn bộ sở dữ liệu. Dữ liệu lưu trữ trên Main Memory sẽ mất khi mất nguồn hay lỗi hệ thống. Flash Memory: Khác với Main Memory, dữ liệu lưu trên thiết bị lưu trữ loại này vẫn còn ngay cả khi mất nguồn hay lỗi hệ thống. Flash Memory giá thấp hơn Main Memory, thường sử dụng rộng rãi để lưu trữ dữ liệu trên các thiết bị như camera, máy nghe nhạc, điện thoại, USB, Magnetic – disk storage: Là phương tiện chủ yếu lưu trữ dữ liệu lâu dài, thường toàn bộ sở dữ liệu được lưu trữ trên đĩa từ. Để xử lý dữ liệu trên đĩa từ, dữ liệu phải được chuyển sang bộ nhớ chính (Main Memory). Hiện nay, dung lượng của đĩa từ thể từ vài chục Gigabytes đến hàng Terabyte. Optical storage: Các đĩa CD (Compact Disk) với dung lượng khoảng 700 Megabytes là dạng phổ biến nhất của các thiết bị lưu trữ loại này. Và khoảng 4.7 đến 8.5 Gigabytes với đĩa DVD (Digital Video Disk). Đĩa hai mặt dung lượng lên tới 17 Gigabytes. Tape storage: Là thiết bị chủ yếu dùng để sao lưu dữ liệu. Thiết bị lưu trữ loại này giá rẻ hơn đĩa từ nhưng tốc độ truy xuất chậm do phải đọc tuần tự. Khả năng lưu trữ của băng từ là rất lớn (40 – 300 Gigabytes). Các thiết bị lưu trữ được tổ chức như hình sau phân cấp theo tốc độ và giá cả: Ở mức cao là các thiết bị lưu trữ khả năng truy xuất nhanh hơn nhưng giá đắt hơn. 7 Hình 1.1: Phân cấp các thiết bị lưu trữ 1.2. Tổ chức tệp tin 1.2.1. Bản ghi với độ dài cố định (Fixed – Length Records) Xem xét các bản ghi trong file instructor, mỗi bản ghi được định nghĩa như sau: Giả sử mỗi ký tự chiếm một byte và kiểu numeric(8, 2) chiếm 8 bytes như vậy một bản ghi instructor sẽ độ dài là 53 byte. Một cách tiếp cận đơn giản để lưu trữ các bản ghi này là dùng 53 byte đầu tiên lưu bản ghi đầu tiên, 53 byte tiếp theo cho bản ghi thứ hai, Hình 1.2: File chứa các bản ghi Instructor Tuy nhiên với các tiếp cận này sẽ hai vấn đề nảy sinh: Nếu kích thước của một khối không chia hết cho 53 thì một số bản ghi sẽ vượt quá một khối đĩa, nghĩa là một bản ghi thể nằm trong hai khối đĩa. Như vậy thể phải truy xuất tới hai khối đĩa để đọc hay ghi một bản ghi. 8 Khó khăn khi xóa một bản ghi với cấu trúc lưu trữ kiểu này. Khoảng trống bị chiếm bởi bản ghi đã xóa hoặc là phải được lấp đầy bởi bản ghi khác hoặc là phải được đánh dấu xóa. Để giải quyết vấn đề đầu tiên, chúng ta chỉ lưu mỗi bản ghi trong một khối. Phần khoảng trống lại ở cuối khối sẽ bị bỏ quả. Với vấn đề thứ hai, khi một bản ghi bị xóa và để lại khoảng trống trên khối đĩa, ta thể giải quyết bằng một số cách như sau: Dịch chuyển các bản ghi sau bản ghi bị xóa về trước: Hình 1.3: File Instructor trong hình 1.2 sau khi đã xóa bản ghi thứ 3 và dịch chuyển các bản ghi sau về trước Với cách tiếp cận này thì khoảng không gian còn trống luôn ở cuối khối, tuy nhiên nhược điểm của nó là phải dịch chuyển một lượng lớn bản ghi để thực hiện thao tác xóa. Một cách tiếp cận đơn giản hơn là di chuyển bản ghi cuối cùng: Hình 1.4: File Instructor trong hình 1.2 sau khi đã xóa bản ghi thứ 3 và dịch chuyển bản ghi cuối cùng Sử dụng phương pháp đánh dấu các bản ghi bị xóa: Thực tế ta không mong muốn phải di chuyển các bản ghi khi thực hiện thao tác xóa, hơn nữa những thao tác thêm một bản ghi được thực hiện thường xuyên hơn những thao tác xóa. Do vậy, một cách tiếp cận hợp lý hơn là đánh dấu vị trí các bản ghi bị xóa và chờ thao tác thêm bản ghi tiếp theo sẽ sử dụng lại khoảng không gian bị trống đó. 9 Một phương pháp đơn giản để đánh dấu các bản ghi bị xóa là sử dụng một số byte ở phần đầu của tệp tin (ta gọi là file header) để lưu địa chỉ của bản ghi đầu tiên bị xóa, rồi sử dụng bản ghi đầu tiên bị xóa để lưu địa chỉ của bản ghi thứ hai bị xóa, Như vậy ta sẽ một danh sách các bản ghi được đánh dấu xóa. Hình 1.5: File Instructor trong hình 1.2 với các bản ghi 1, 4, 6 đã đánh dấu xóa Khi thêm mới một bản ghi, ta sử dụng con trỏ đầu danh sách được chứa trong file header để xác định danh sách, nếu danh sách không rỗng ta xen bản ghi mới vào nơi được trỏ bởi con trỏ đầu danh sách nếu không ta xen bản ghi mới vào cuối file. Ta thấy rằng với cấu trúc bản ghi độ dài cố định việc cài đặt các thao tác thêm hay xóa bản ghi là đơn giản do khoảng không gian để lại bởi bản ghi bị xóa cũng vừa bằng khoảng không gian cần thiết cho bản ghi thêm vào. Nhưng nếu cho phép bản ghi độ dài thay đổi thì vấn đề trở nên phức tạp hơn nhiều. 1.2.2. Bản ghi với độ dài thay đổi (Variable – Length Records) Lưu trữ nhiều kiểu bản ghi trong một tệp tin. Các kiểu bản ghi với độ dài thay đổi trên một hay nhiều thuộc tính. Các kiểu bản ghi cho phép các trường được lặp lại, như mảng hay tập hợp. Biểu diễn một bản ghi với các thuộc tính độ dài thay đổi thường gồm hai phần. Phần đầu chứa các thuộc tính độ dài cố định và phần sau là các thuộc tính với độ dài thay đổi. Các thuộc tính với độ dài cố định như các giá trị số, ngày tháng, hoặc các xâu với độ dài cố định. Các thuộc tính với độ dài thay đổi như các thuộc tính kiểu varchar được biểu diễn với một cặp (offset, length), trong đó offset cho biết vị trí bắt đầu của dữ liệu và length là độ dài (số byte) dữ liệu. Ví dụ với một bản ghi instructor thì các thuộc tính: ID, name và dept_name là các xâu với độ dài thay đổi, và thuộc tính salary là kiểu số với độ dài cố định. Giả sử mỗi giá trị offset và length được lưu trữ trong hai byte và kiểu số được lưu trong 8 byte: 10 Hình 1.6: Biểu diễn bản ghi độ dài thay đổi Với các thuộc tính trong bản ghi giá trị null, ta sử dụng cấu trúc null bitmap để đánh dấu các giá trị null. Với bản ghi instructor bốn thuộc tính: ID, name, dept_name và salary, nếu thuộc tính salary nhận giá trị null thì bít thứ tư của bitmap được gán là 1 và giá trị trong các byte từ 12 đến 19 bị bỏ qua. Do bản ghi instructor chỉ bốn thuộc tính nên chỉ cần một byte để lưu thông tin về null bitmap. Trong một số cách biểu diễn, null bitmap được lưu trử ở phần đầu của bản ghi. Cách biểu diễn này rất hữu dụng khi số lượng thuộc tính trong một bản ghi, và số lướng thuộc tính null là lớn. Trên đây đã trình bày vấn đề tổ chức các thuộc tính độ dài thay đổi trong một bản ghi. Sau đây ta xem xét vấn đề lưu các bản ghi độ dài thay đổi trong một khối. Cấu trúc slotted – page thường được sử dụng để lưu trữ các bản ghi với độ dài thay đổi trong khối đĩa: Hình 1.7: Cấu trúc Slotted – page Phần đầu mỗi khối (Block Header) chứa thông tin về: Số lượng bản ghi. Phần cuối khoảng không gian trống trong khối. Mảng chứa vị trí và kích thước mỗi bản ghi. Các bản ghi được lưu trữ liên tiếp trong khối và bắt đầu từ cuối khối. Khoảng khôi gian trống trong khối là liên tiếp nhau và nằm giữa mục cuối cùng trong mảng header và và bản ghi đầu tiên. Khi một bản ghi được thêm vào khối, nó sẽ được lưu ở phần cuối cùng trong không gian trống của khối, sau đó một mục chứa vị trí và kích thước của bản ghi đó sẽ được thêm vào phần Block Header. Nếu một bản ghi bị xóa, khoảng không gian chứa nó sẽ được giải phóng và mục thông tin về bản ghi đó trong phần Block Header sẽ được xóa (ví dụ kích thước được gán bằng -1). Sau đó các [...]... ngữ xử lý dữ liệu bậc cao hoặc ngôn ngữ lập trình (vd: SQL, C++, Java) Mục dữ liệu (data item) là đơn vị dữ liệu trong CSDL Bản chất, kích thước của các mục dữ liệu do nhà thiết kế chọn Chúng được lựa chọn sao cho việc truy xuất dữ liệu đạt hiệu quả nhất Ví dụ trong mô hình dữ liệu quan hệ, ta thể chọn mục dữ liệu là: các quan hệ, các bộ, hay các thành phần của bộ Kích thước của các mục dữ liệu mà... Tính chất của giao dịch Để đảm bảo tính toàn vẹn của dữ liệu, hệ sở dữ liệucần duy trì các tính chất sau của giao dịch: Tính nguyên tử (Atomicity): Hoặc toàn bộ các thao tác của giao dịch được phản ánh đúng đắn trong cơ sở dữ liệu hoặc không gì cả Tính nhất quán (Consistency): Sự thực hiện của một giao dịch phải bảo đảm tính nhất quán của cơ sở dữ liệu Tính lập (Isolation): Nhiều giao dịch có... đều được phản ánh trong cơ sở dữ liệu) , khi đó giao dịch được “bàn giao” (commited).Tuy nhiên, trong thực tế một giao dịch thể không hoàn tất sự thực hiện của nó.Giao dịch như vậy được gọi là bị bỏ dở (abort).Để đảm bảo được tính nguyên tử, một giao dịch bị bỏ dở không được phép làm ảnh hưởng tới trạng thái của sở dữ liệu. Như vậy, tất cả thay đổi được tạo ra trước đó phải bị huỷ bỏ (rollback)... thức để truy cập nhanh tới file dữ liệu trên trường không được sắp thứ tự Chỉ mục phụ thể áp dụng trên trường khóa ứng cử (có giá trị duy nhất với mỗi bản ghi trong file dữ liệu) hoặc trên trường không khóa (có giá trị giống nhau với những bản ghi khác nhau trong file dữ liệu) Nếu chỉ mục được thiết lập trên trường khóa không được sắp xếp thì mỗi bản ghi trên file dữ liệu sẽ tương ứng một bản ghi... được thực hiện Failed: Sau khi phát hiện rằng sự thực hiện không thể tiếp tục được nữa Aborted: Sau khi rollback và cơ sở dữ liệu ã phục hồi lại trạng thái của nó trước khi khởi động giao dịch Committed: Giao dịch hoàn tất thành công(tất cả các thao tác được phản ánh đầy đủ trong cơ sở dữ liệu) đồ trạng thái tương ứng với một giao dịch như sau: Hình 4.1: Các trạng thái của giao dịch 4.3.Lịch biểu 4.3.1... Các kết quả trung gian của giao dịch phải được che giấu trước các giao dịch khác Tính lâu bền (Durability): Sau khi giao dịch hoàn thành, các thay đổi đã được tạo ra đối với sở dữ liệu vẫn còn ngay cả khi xảy ra sự cố hệ thống 4.2.2 Trạng thái của giao dịch Khi giao dịch bắt đầu thực hiện nó vào trạng thái active và thể thực hiện thao tác đọc, ghi các mục dữ liệu. Khi kết thúc thao tác cuối cùng... . liệu. Học phần song song: Không yêu cầu. Mục tiêu của học phần: Cung cấp cho sinh viên những kiến thức nâng cao về cơ sở dữ liệu quan hệ. Nội dung chủ yếu: Các vấn đề nâng cao về cơ sở dữ. LIỆU NÂNG CAO TÊN HỌC PHẦN : CƠ SỞ DỮ LIỆU NÂNG CAO MÃ HỌC PHẦN : 17406 TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY DÙNG CHO SV NGÀNH: CÔNG NGHỆ THÔNG TIN HẢI PHÕNG – 2011 . nhớ chính (Main Memory). Hiện nay, dung lượng của đĩa từ có thể từ vài chục Gigabytes đến hàng Terabyte. Optical storage: Các đĩa CD (Compact Disk) với dung lượng khoảng 700 Megabytes là dạng

Ngày đăng: 25/05/2014, 16:53

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