Bài giảng CSDL Nâng cao

58 720 17
Bài giảng CSDL Nâng cao

Đ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

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 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 2 MỤC LỤC CHƢƠNG 1: CÁC MÔ HÌNH DỮ LIỆU 7 1.1. Các mô hình dữ liệu 7 1.1.1. Mô hình thực thể - quan hệ 7 1.1.2. Mô hình mạng 8 1.1.3. Mô hình phân cấp 8 1.2. Tóm tắt về cơ sở dữ liệu quan hệ 9 1.2.1. Các khái niệm 9 1.2.2. Tóm tắt các phép toán đại số quan hệ 10 1.2.3. Phương pháp xây dựng cơ sở dữ liệu quan hệ 10 1.3. Một số mô hình cơ sở dữ liệu mở rộng 11 1.3.1. Mô hình cơ sở dữ liệu thời gian 11 1.3.2. Mô hình cơ sở dữ liệu tích cực 12 1.4. Câu hỏi ôn tập chương 1 14 CHƢƠNG 2: TỐI ƢU HÓA TRUY VẤN 15 2.1. Giới thiệu 15 2.2. Các phép biến đổi tương đương 15 2.3. Thuật toán tối ưu hóa cây đại số quan hệ 17 2.3.1. Thuật toán 17 2.3.2. Ví dụ 17 2.4. Câu hỏi ôn tập chương 2 19 CHƢƠNG 3: GIAO DỊCH TRONG CƠ SỞ DỮ LIỆU 20 3.1. Giới thiệu 20 3.2. Các tính chất của giao dịch 20 3.3. Các trạng thái của giao dịch 21 3.4. Lịch biểu 21 3.5. Tính khả tuần tự của lịch biểu 22 3.6. Thuật toán kiểm tra tính khả tuần tự của lịch biểu 23 3.7. Câu hỏi ôn tập chương 3 24 CHƢƠNG 4: ĐIỀU KHIỂN ĐỒNG THỜI VÀ KHÔI PHỤC HỆ THỐNG 25 4.1. Các giao thức dựa vào khóa 25 4.1.1. Mô hình khóa nhị phân 25 4.1.2. Mô hình khóa đọc – ghi (chia sẻ – độc quyền) 25 3 4.1.3. Giao thức khóa 2 pha 27 4.1.4. Deadlock 29 4.2. Giao thức thứ tự nhãn thời gian (Timestamp – Ordering protocol) 31 4.2.1 Nhãn thời gian (Timestamp) 31 4.2.2. Giao thức thứ tự nhãn thời gian (Timestamp – Ordering Protocol) 31 4.3. Phục hồi hệ thống dựa vào nhật ký giao dịch (Log-based) 32 4.3.1 Cập nhật trì hoãn cơ sở dữ liệu (Deferred Database Modification) 32 4.3.2. Cập nhật tức thời (Immediate Database Modification) 34 4.4. Kỹ thuật phân trang bóng (Shadow Paging) 34 4.5. Câu hỏi ôn tập chương 4 37 CHƢƠNG 5: CƠ SỞ DỮ LIỆU PHÂN TÁN 38 5.1. Giới thiệu 38 5.2. Ưu nhược điểm của cơ sở dữ liệu phân tán 39 5.3. Cấu trúc chung của một cơ sở dữ liệu phân tán 39 5.4. Phân đoạn dữ liệu (Fragmentation) 40 5.4.1. Phân đoạn ngang 42 5.4.2. Phân đoạn ngang dẫn xuất 42 5.4.3. Phân đoạn dọc 43 5.4.4. Phân đoạn hỗn hợp 43 5.5. Thiết kế định vị dữ liệu 44 5.6. Biến đổi truy vấn toàn cục thành truy vấn đoạn 45 5.7. Câu hỏi ôn tập chương 5 47 MỘT SỐ ĐỀ THI MẪU 48 4 Tên học phần: Cơ 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: Cơ sở dữ liệu. Học phần tiên quyết: Cơ 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ề cơ sở dữ liệu quan hệ, kiến thức về hệ cơ sở dữ liệu phân tán. Nội dung chủ yếu: Các vấn đề nâng cao về cơ sở dữ liệu: Các mô hình dữ liệu mở rộng, tối ưu hóa câu hỏi truy vấn, quản lý giao dịch trong cơ sở dữ liệu, điều khiển tương tranh và phục hồi hệ thống; Các vấn đề về cơ sở dữ liệu phân tán: kiến trúc hệ cơ sở dữ liệu phân tán, thiết kế cơ sở dữ liệu phân tán, xử lý truy vấn phân tán. 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: Các mô hình dữ liệu 6 4 2 1.1. Các mô hình dữ liệu 1.2. Tóm tắt về cơ sở dữ liệu quan hệ 1.3. Một số mô hình cơ sở dữ liệu mở rộng Chƣơng 2: Tối ƣu hóa truy vấn 6 5 1 2.1. Giới thiệu 2.2. Các phép biến đổi tương đương 2.3. Thuật toán tối ưu hóa cây đại số quan hệ Chƣơng 3: Giao dịch trong cơ sở dữ liệu 7 3 3 1 3.1. Giới thiệu 5 TÊN CHƢƠNG MỤC PHÂN PHỐI SỐ TIẾT TS LT TH BT KT 3.2. Các tính chất của giao dịch 3.3. Các trạng thái của giao dịch 3.4. Lịch biểu 3.5. Tính khả tuần tự của lịch biểu 3.6. Thuật toán kiểm tra tính khả tuần tự của lịch biểu Chƣơng 4: Điều khiển đồng thời và khôi phục hệ thống 6 6 4.1. Các giao thức dựa vào khóa 4.2. Giao thức thứ tự nhãn thời gian 4.3. Phục hồi hệ thống dựa vào nhật ký giao dịch (Log-based) 4.4. Kỹ thuật phân trang bóng (Shadow Paging) Chƣơng 5: Cơ sở dữ liệu phân tán 20 9 10 1 5.1. Giới thiệu 5.2. Ưu nhược điểm của cơ sở dữ liệu phân tán 5.3. Cấu trúc chung của một cơ sở dữ liệu phân tán 5.4. Phân đoạn dữ liệu (Fragmentation) 5.5. Thiết kế định vị dữ liệu 5.6. Biến đổi truy vấn toàn cục thành truy vấn đoạn 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. Nguyễn Xuân Huy, Giáo trình về cơ sở dữ liệu, Đại học Quốc Gia Hà Nội, 2000. 2. Raghu Ramakrishnan, Database Management Systems, McGraw – Hill, 1998. 3. Silberschatz, Korth, Sudarshan, Database System Concepts, 4 th Edition, McGraw-Hill, 2001. 6 Hình thức và tiêu chuẩn đánh giá sinh viên: - Hình thức thi: thi viết. - 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 7 CHƢƠNG 1: CÁC MÔ HÌNH DỮ LIỆU 1.1. Các mô hình dữ liệu Mô hình dữ liệu là sự trừu tượng hóa môi trường thực, đó là tập hợp các mô tả dữ liệu ở mức cao mà không quan tâm đến chi tiết lưu trữ dữ liệu ở mức thấp. Trong phạm vi môn học ta xét các mô hình dữ liệu sau: Mô hình thực thể - quan hệ, mô hình mạng, mô hình phân cấp, mô hình hướng đối tượng. 1.1.1. Mô hình thực thể - quan hệ Mô hình thực thể - liên kết (ER Model) là thể hiện logic của dữ liệu trong tổ chức hay trong công tác kinh doanh. Nó mô tả thế giới thực gồm những đối tượng cơ bản được gọi là các thực thể và những quan hệ giữa chúng. Sơ đồ thực thể quan hệ (Entity Relationship Diagram - ERD) là thể hiện đồ họa của ER.  Thực thể là thành phần của thế giới thực, có khả năng tồn tại độc lập. Ví dụ một tài khoản ngân hàng là một thực thể (Entity). Một nhóm các thực thể cùng chung một số tính chất, một số đặc trưng cơ bản tạo ra một tập thực thể (Entity Set). Ví dụ tập các nhân viên trong một cơ quan.  Thuộc tính dùng để mô tả thực thể, ví dụ: Với thực thể khách hàng thì thuộc tính là: tên khách hàng, địa chỉ, số điện thoại, … Thuộc tính có thể nhận một hoặc nhiều giá trị.  Các tập thực thể có thể liên kết với nhau theo mối liên kết 1 – 1, 1 – n, n – m. Hình 1.1: Ví dụ mô hình ER (Crow’s Foot) 8 1.1.2. Mô hình mạng Mô hình mạng (Network Model) là mô hình thực thể - quan hệ trong đó các mối liên hệ bị hạn chế trong kiểu nhị phân và nhiều – một. Như vậy chúng ta có thể dùng một đồ thị có hướng cho các dữ liệu. Ở vị trí của các tập thực thể, mô hình mạng đưa ra kiểu bản ghi (record type). Một kiểu bản ghi là tên gán cho một tập các bản ghi (record). Bản ghi được cấu tạo bởi các trường (field) chứa các giá trị cơ bản như số nguyên, chuỗi kí tự, … Tập các tên trường và kiểu của chúng tạo nên khuôn dạng bản ghi (record format). Nếu so sánh với mô hình quan hệ ta thấy sự tương ứng như sau: Mô hình mạng Mô hình quan hệ Kiểu bản ghi Tên quan hệ Bản ghi Bộ của quan hệ Khuôn dạng bản ghi Lược đồ quan hệ  Đường nối (Link): dùng để biểu diễn mối quan hệ nhiều – một giữa hai đối tượng. Chúng ta dùng đồ thị có hướng, gọi là mạng, đó thực sự là một sơ đồ thực thể - quan hệ đã được đơn giản hóa để biểu diễn các kiểu bản ghi và đường nối giữa chúng. Các nút tương ứng với các kiểu bản ghi.  Biểu diễn tập thực thể trong mô hình mạng: Các tập thực thể được biểu diễn bằng các kiểu bản ghi; thuộc tính của tập thực thể trở thành các trường của khuôn dạng bản ghi.  Biểu diễn các mối quan hệ: Chỉ những mối quan hệ một – nhiều mới có thể biểu diễn trực tiếp bằng các đường nối. Tuy nhiên ta có thể dùng một số phương pháp để biểu diễn một mối quan hệ bất kỳ. 1.1.3. Mô hình phân cấp Trong mô hình này dữ liệu được tổ chức thành cấu trúc cây, các nút (node) là tập các thực thể, các cành là các mối quan hệ giữa hai nút theo mối quan hệ nhẩt định, cứng nhắc. Mô hình phân cấp:  Là mô hình dữ liệu trong đó các bản ghi được sắp xếp theo cấu trúc top-down(tree).  Một nút con chỉ liên kết tới một nút cha. Tập dữ liệu được tổ chức theo cấu trúc của mô hình dữ liệu phân cấp gọi là CSDL phân cấp. Hình 1.2 là một ví dụ về mô hình phân cấp quản lý nhân sự của một công ty. 9 Hình 1.2: Ví dụ mô hình phân cấp trong quản lý nhân sự 1.2. Tóm tắt về cơ sở dữ liệu quan hệ 1.2.1. Các khái niệm Cho Ω ={A1,A2,… ,An} là một tập hữu hạn các thuộc tính, khác rỗng và các phần tử không nhất thiết phân biệt nhau. Mỗi thuộc tính Ai có một miền giá trị xác định D(Ai) = Dom(Ai).Tích Đề các của các miền Dom(A1), Dom(A2), …, Dom(An) được biểu diễn như sau: Dom(A1) × Dom(A2) × … × Dom(An) = {(a1, a2, …, an) | ai Ai, i = 1 ÷ n}. Nói rằng R là một quan hệ trên tập Ω ↔ R  Dom(A1) × Dom(A2) × … × Dom(An). Ví dụ: Ω = {A1, A2}, Dom(A1) = {0, 1} và Dom(A2) = {a, b, c} Như vậy tích Đề các Dom(A1) × Dom(A2) = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}. Khi đó tập R = {(0,a),(0,b)} là một quan hệ trên tập Ω. Trong mô hình cơ sở dữ liệu quan hệ người ta thường biểu diễn một quan hệ trên tập các thuộc tính Ω bằng một bảng hai chiều. Các thuộc tính của quan hệ là các cột A1,A2,… ,An. Các hàng của quan hệ gọi là các bộ, kí hiệu r R(Ω).  Ví dụ: Bảng sau thể hiện quan hệ Can_bo bao gồm các thuộc tính Ma_So, Ho_ten, Ngay_sinh, Que_quan, Chuc_vu Cán Bộ Ma_so Ho_ten Ngay_sinh Que_quan Chuc_vu t1 0001 Lê Thanh Hằng 12/04/1970 Quảng Ninh Trưởng phòng t2 0002 Hoàng Văn Cảnh 15/10/1981 Nam Định Nhân viên t3 0003 Trần Bình Dương 20/01/1979 Ninh Bình Nhân viên Khoá của một quan hệ là một hoặc một tập thuộc tính dùng để định tên duy nhất các bộ trong quan hệ. Phòng ban Nhân viên Dự Án Kỹ Năng Người Thân Thiết Bị 10 Khoá ngoại: Trong cơ sở dữ liệu có thể có rất nhiều các quan hệ, và đôi khi quan hệ này có những thuộc tính lấy dữ liệu từ một quan hệ khác, hay nói các khác là các thuộc tính này có miền giá trị là những giá trị được lưu tại một hoặc nhiều trường trong quan hệ khác hoặc chính nó. 1.2.2. Tóm tắt các phép toán đại số quan hệ  Phép chọn (Selection):  E (R)= {t | t R & t[E]= “True”}  Phép chiếu (Projection):  X (R) = {t[X] | t R}  Phép hợp (Union): R 1 R 2 ={t | t  R 1  t  R 2 }  Phép giao (Intersection): R 1 R 2 ={t | t  R 1  t  R 2 }  Phép trừ (Minus): R 1 – R 2 = {t | t  R 1  t  R 2 }  Tích đề các (Cartesian Product): R × S = {t | t = (a,b)  a  R  b  S}  Phép kết nối  (Join):            Kết nối tự nhiên (Natural Join): R * S = P(Ω  ∑) = { t[Ω  ∑] | t[Ω  ∑] R = t[Ω  ∑] S }  Phép chia (Division): R ÷ S = {t | sS, (t,s)  R} 1.2.3. Phƣơng pháp xây dựng cơ sở dữ liệu quan hệ 1.2.3.1. Phương pháp Top – Down  Phân tích thực tiễn: o Xác định các đối tượng có trong cơ sở dữ liệu o Các mối liên hệ giữa chúng o Các quy tắc quản lý  Xây dựng lược đồ liên kết thực thể - ER: o Kiểu thực thể: Một lớp đối tượng o Kiểu liên kết: Một lớp các mối liên hệ: 1 – 1, 1 – n, n – m o Dùng thuật toán chuyển đổi từ lược đồ ER sang lược đồ quan hệ. 1.2.3.2. Phương pháp Bottom – Up  Tạo ra lược đồ phổ quát R(A 1 , A 2 , …, A n )  Tìm ra tập phụ thuộc hàm F  Tách R thành các R i đều ở dạng chuẩn BC (BCNF) [...]... hoãn là trì hoãn việc cập nhật thực sự vào csdl cho đến khi giao dịch đạt tới trạng thái commit 32  Một giao dịch không thể thay đổi csdl trên đĩa cho đến khi nó đạt tới trạng thái commit  Một giao dịch không thể đạt tới trạng thái commit cho đến khi tất cả các thao tác cập nhật của nó được ghi lại trên file log (WAL: write – ahead logging)  Các thao tác CSDL sẽ không được cập nhật cho đến khi giao... tài khoản A (có X không?)  A = A – X  B = B + X Thường giao dịch được tạo ra bởi các chương trình người dùng được viết trong ngôn 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... động trong trả lời để giám sát các sự kiện và đảm bảo tính toàn vẹn của dữ liệu Ví dụ một CSDL tích cực có thể được sử dụng để giám sát nhiệt độ của ngành công nghiệp luyện kim: o Làm tăng dự tích hợp các ràng buộc o Tự động bảo vệ dữ liệu nhận được o Bảo vệ các bảng sao nhất quán  Cơ sở dữ liệu tích cực là một CSDL chứa các qui tắc tích cực (hoặc các qui tắc gây nên), chủ yếu là các qui tắc dạng ECA... o Bộ tạo mã sẽ tạo ra chương trình bằng ngôn ngữ trong để thực hiện truy vấn o Thực thi chương trình để lấy về kết quả 2.2 Các phép biến đổi tƣơng đƣơng  Các truy vấn được viết bằng các ngôn ngữ bậc cao, ví dụ SQL, sau bước 1 của quá trình xử lý truy vấn, truy vấn được biểu diễn bằng biểu thức đại số quan hệ Ví dụ:  SELECT FROM WHERE * R E  SELECT FROM R A1, A2, …, Ai  SELECT * E(R) ↔ F (R) ↔... gian sự việc xảy ra trong thực tế  VST: Valid Start Time: Thời gian bắt đầu có hiệu lực  VET: Valid End Time: Thời gian kết thúc hiệu lực o Transaction Time: Thời gian khi sự thay đổi được lưu trong CSDL  TST: Transaction Start Time: Thời gian giao dịch được tạo ra  TET: Transaction End Time: Thời gian giao dịch bị hủy bỏ o Bitemporal time: Valid time + Transaction time  Các kiểu cập nhật: o Proactive:... 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à hệ thống sử dụng gọi là độ mịn của hệ thống (granularity) Bộ lập lịch (Scheduler) là một thành phần của hệ thống CSDL chịu trách nhiệm tạo ra một lịch biểu (thứ tự thực hiện) các thao tác trong các giao dịch 3.2 Các tính chất của giao dịch Để đảm bảo tính toàn vẹn của dữ liệu, hệ cơ sở dữ liệu cần duy trì các tính... tự của hai giao dịch T1 và T2 Hình 3.3: Lịch biểu tuần tự  Lịch biểu gọi là khả tuần tự (Serializable): nếu nó tương đương với một lịch biểu tuần tự Tương đương theo nghĩa cho ra cùng một trạng thái CSDL sau khi kết thúc việc thực hiện lịch biểu)  Lịch biểu bất khả tuần tự nếu nó không tương đương với một lịch biểu tuần tự 22 3.6 Thuật toán kiểm tra tính khả tuần tự của lịch biểu  Input: S {T1,... protocol) 4.2.1 Nhãn thời gian (Timestamp) Ta kết hợp với mỗi giao dịch Ti trong hệ thống với một nhãn thời gian cố định Nhãn thời gian của giao dịch Ti, kí hiệu TS(Ti) Nhãn thời gian này được gán bởi hệ CSDL khi giao dịch Ti bắt đầu thực hiện Giả sử một giao dịch Ti đã được gán nhãn thời gian TS(Ti) và một giao dịch mới Tj đi vào hệ thống, khi đó TS(Ti) < TS(Tj) Nhãn thời gian có thể được tạo ra theo...1.3 Một số mô hình cơ sở dữ liệu mở rộng 1.3.1 Mô hình cơ sở dữ liệu thời gian  Cơ sở dữ liệu thời gian (Temporal database) là cơ sở dữ liệu được xây dựng dựa trên khía cạnh thời gian Ví dụ: o CSDL chăm sóc sức khỏe: bệnh án, lịch sử bệnh o Bảo hiểm: bảo hiểm xe, liên quan đến đền bù, sửa chữa o Các hệ thống đặt vé, giữ chỗ …  Valid time, transaction time, bitemporal time: o Valid Time: Thời... hiện thao tác ghi, cơ sở dữ liệu sẽ được cập nhật tức thời mà không cần đợi đến khi giao dịch đạt tới trạng thái commit Các thao tác cập nhật vẫn phải được ghi lại trong file log trước khi ghi lại trong csdl Bảng sau chỉ ra các loại bản ghi được tạo ra trong file log: Thao tác của giao dịch Bản ghi trong file Log Giao dịch Ti bắt đầu Ti, Start Ti Write(X) Ti, X, Old_Value, New_Value Giao dịch Ti hoàn

Ngày đăng: 18/09/2014, 13:32

Từ khóa liên quan

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

Tài liệu liên quan