intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng về Cơ sở dữ liệu nâng cao

Chia sẻ: EntrySKY ESIT's | Ngày: | Loại File: PDF | Số trang:45

219
lượt xem
88
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo - Bài giảng Cơ sở dữ liệu nâng cao

Chủ đề:
Lưu

Nội dung Text: Bài giảng về Cơ sở dữ liệu nâng cao

  1. TRƯỜNG ĐẠI HỌC HÀNG HẢI KHOA CÔNG NGH Ệ THÔNG TIN BÀI GIẢNG CƠ SỞ DỮ LIỆU NÂNG CAO Biên soạn: Th.S Nguyễn Trung Đức Hải Phòng – 2008
  2. http://www.ebook.edu.vn 1 BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC HÀNG HẢI BỘ MÔN: HỆ THỐNG THÔNG TIN KHOA: CÔNG NGHỆ 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 - 2008
  3. http://www.ebook.edu.vn 2 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 TS 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 0 0 Điều kiện tiên quyết: Sinh viên phải học và thi đạt các học phần sau mới được đăng ký học học phần này: Cơ sở dữ liệu. Mục tiêu của học phần: Cung cấp kiến thức nâng cao về mô hình cơ sở dữ liệu quan hệ, các phương pháp thiết kế cơ sở dữ liệu khác nhau. Nội dung chủ yếu: Giới thiệu về các hệ quản trị dữ liệu; Các mô h ình mạng, mô hình phân cấp; Điều khiển tương tranh trong hệ quản trị cơ sở dữ liệu; An toàn và xử lý sai sót; Mô hình cơ sở dữ liệu hướng đối tượng; Mô hình cơ sở dữ liệu phân tán. Nội dung chi tiết: PHÂN PHỐI SỐ TIẾT TÊN CHƯƠNG MỤC TS LT TH BT KT Chương 1. Hệ quản trị cơ sở dữ liệu và lịch sử phát 3 3 triển 1.1. Quan niệm về CSDL 1.2. Ứng dụng của hệ quản trị CSDL 1.3. Lịch sử của các hệ quản trị dữ liệu Chương 2. Mô hình mạng, mô hình phân cấp 3 3 2.1. Mô hình mạng 2.1.1. Giới thiệu 2.1.2. Các khái niệm 2.2. Mô hình phân cấp 2.2.1. Giới thiệu 2.2.2. Các khái niệm Chương 3. Thiết kế cơ sở dữ liệu khái niệm 3 3 3.1. Giới thiệu 3.2. Trừu tượng hoá trong thiết kế CSDL 3.3. Các thuộc tính tương xứng giữa các lớp 3.4. Các mô hình dữ liệu 3.5. Mô hình thực thể quan hệ Chương 4. Điều khiển khai thác tương tranh 3 3 4.1. Giới thiệu 4.2. Một số khái niệm 4.3. Đặc tính của khai thác không xung đột 4.3.1. Một số khái niệm 4.3.2. Khai thác có thứ tự 4.3.3. Đồ thị về thứ tự thực hiện các giao tác Chương 5. An toàn dữ liệu và xử lý sai sót 3 3 5.1. An toàn trong CSDL 5.1.1. Phạm vi an toàn dữ liệu 5.1.2. Các yêu cầu bảo vệ CSDL 5.1.3. Các dạng sai sót 5.2. Các điều khiển an toàn dữ liệu 5.2.1. Điều khiển luồng thông tin
  4. http://www.ebook.edu.vn 3 PHÂN PHỐI SỐ TIẾT TÊN CHƯƠNG MỤC TS LT TH BT KT 5.2.2. Điều khiển suy diễn 5.2.3. Điều khiển truy nhập Chương 6. Đánh giá câu hỏi 3 2 1 6.1. Phân tích câu hỏi 6.1.1. Phân tích cú pháp 6.1.2. Phân tích ngữ nghĩa 6.2. Cấu trúc đại số câu hỏi 6.2.1. Cây đại số quan hệ 6.2.2. Các luật biến đổi cây đại số quan hệ 6.2.3. Các bước tối ưu cây đại số quan hệ 6.3. Phân rã câu hỏi Chương 7. Cơ sở dữ liệu hướng đối tượng 12 5 6 1 7.1. Giới thiệu về hướng đối tượng 7.1.1. Các khái niệm hướng đối tượng 7.1.2. Mô hình hoá việc phân tích hướng đối tượng 7.1.3. Mô hình hóa dữ liệu 7.2. Nguyên tác của các mô hình hướng đối tượng 7.2.1. Mô hình hoá các đối tượng 7.2.2. Phương pháp 7.2.3. Xác định dạng dữ liệu 7.2.4. Các liên kết thừa kế giữa các lớp 7.2.5. Đa cấu và sự áp đặt 7.2.6. Xác định tập các đối tượng 7.2.7. Khía cạnh động 7.2.8. Lược đồ CSDL hướng đối tượng 7.3. Tính bền vững các các đối tượng 7.3.1. CSDL hướng đối tượng 7.3.2. Quản lý tính bền vững 7.3.3. Kế thừa tính bền vững 7.3.4. Tính bền vững do tham chiếu 7.3.5. Tích hợp với ngôn ngữ lập trình 7.4. Đại số với các đối tượng phức tạp 7.4.1. Mở rộng đại số quan hệ theo đ ường dẫn và các phương pháp 7.4.2. Các phép toán đại số 7.4.3. Các phép toán nhóm 7.4.4. Đồ thị các phép toán Chương 8. Cơ sở dữ liệu phân tán 15 5 9 1 8.1. Cấu trúc CSDL phân tán 8.2. Đánh giá CSDL phân tán 8.3. Thiết kế CSDL phân tán 8.3.1. Bản sao dữ liệu 8.3.2. Chia nhỏ dữ liệu 8.4. Tính thông suốt và tính tự trị của CSDL phân tán 8.5. Xử lý câu hỏi 8.6. Khôi phục sai sót trong CSDL phân tá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 kiểm tra giữa kỳ và bài thi kết thúc học phần theo đúng quy định.
  5. http://www.ebook.edu.vn 4 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. Nguyễn Xuân Huy-Lê Hoài Bắc, Bài tập cơ sở dữ liệu, Nhà xuất bản Thống kê, 2003. 3. Phạm Hữu Khang, Đoàn Thiện Ngân, Quản trị SQL Server 2000, Nhà xuất bản Thống kê, 2004. 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: dựa trên thái độ tham dự 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, các bài kiểm tra giữa kỳ 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
  6. http://www.ebook.edu.vn 5 MỤC LỤC Chương 1. Hệ quản trị cơ sở dữ liệu ................................ ................................ ............ 7 1.1. Quan niệm về CSDL ................................ ................................ ......................... 7 1.2. Các khả năng của một hệ quản trị c ơ sở dữ liệu. ................................ ............... 7 Chương 2. Cơ sở dữ liệu hướng đối tượng ................................ ................................ ... 9 2.1. Nhu cầu về hệ thống cơ sở dữ liệu hướng đối tượng ................................ ......... 9 2.1.1. Các đối tượng phức tạp ................................ ................................ .............. 9 2.1.2. Quản lý các tri thức ................................ ................................ .................... 9 2.1.3. Quản trị các dữ liệu phân tán ................................ ................................ .... 10 2.1.4. Nhu cầu về hệ thống cơ sở dữ liệu hướng đối tượng ................................ . 10 2.2. Khái niệm về hướng đối tượng................................ ................................ ........ 11 2.2.1. Đối tượng ................................ ................................ ................................ . 12 2.2.2. Lớp đối tượng ................................ ................................ .......................... 12 2.2.3. Cá thể................................ ................................ ................................ ....... 13 2.2.4. Kế thừa ................................ ................................ ................................ .... 13 2.3. Cơ sở dữ liệu hướng đối tượng................................ ................................ ........ 13 2.4. Thiết kế cơ sở dữ liệu hướng đối tượng ................................ ........................... 14 2.4.1. Phân lớp ................................ ................................ ................................ ... 14 2.4.2. Tổng quát hóa và đặc biệt hóa ................................ ................................ .. 14 2.4.3. Gộp ................................ ................................ ................................ .......... 15 2.5. Xây dựng cơ sở dữ liệu hướng đối tượng ................................ ........................ 15 Chương 3. Cơ sở dữ liệu phân tán................................ ................................ .............. 17 3.1. Các phương pháp phân tán d ữ liệu ................................ ................................ .. 17 3.1.1. Khái niệm về phân tán dữ liệu ................................ ................................ .. 17 3.1.1.1. Các lý do phân mảnh ................................ ................................ ......... 17 3.1.1.2. Các kiểu phân mảnh ................................ ................................ .......... 17 3.1.1.3. Mức độ phân mảnh ................................ ................................ ............ 19 3.1.1.4. Quy tắc phân mảnh đúng đắn ................................ ............................ 19 3.1.1.5. Các kiểu cấp phát ................................ ................................ .............. 19 3.1.1.6. Các yêu cầu thông tin ................................ ................................ ........ 19 3.1.2. Phân mảnh ngang ................................ ................................ ..................... 20 3.1.2.1. Yêu cầu thông tin của phân mảnh ngang. ................................ .......... 20 3.1.2.2. Phân mảnh ngang nguyên thủy. ................................ ......................... 21 3.1.2.3. Phân mảnh ngang dẫn xuất ................................ ................................ 23 3.1.3. Phân mảnh dọc. ................................ ................................ ........................ 24 3.1.4. Cấp phát. ................................ ................................ ................................ .. 24 3.2. Kiểm soát dữ liệu ngữ nghĩa ................................ ................................ ........... 26 3.2.1. Quản lý khung nhìn ................................ ................................ .................. 26 3.2.1.1. Khung nhìn trong quản lý tập trung ................................ ................... 26 3.2.1.2. Cập nhật qua các khung nhìn ................................ ............................. 26 3.2.1.3. Khung nhìn trong cơ sở dữ liệu phân tán ................................ ........... 27 3.2.2. An toàn dữ liệu ................................ ................................ ........................ 27 3.2.2.1. Kiểm soát cấp quyền tập trung ................................ .......................... 27 3.2.2.2. Kiểm soát cấp quyền phân tán ................................ ........................... 28 3.3. Quản lý giao dịch và điểu khiền đồng thời phân tán ................................ ........ 28 3.3.1. Các khái niệm cơ bản về giao dịch ................................ ........................... 28 3.3.1.1. Tính nguyên tử ................................ ................................ .................. 29 3.3.1.2. Mục dữ liệu ................................ ................................ ....................... 29
  7. http://www.ebook.edu.vn 6 3.3.1.3. Khóa ................................ ................................ ................................ . 30 3.3.1.4. Kiểm soát hoạt động đồng thời bằng khóa ................................ ......... 30 3.3.1.5. Khóa sống (livelock) ................................ ................................ ......... 31 3.3.1.6. Khóa “cứng” (deadlock) ................................ ................................ .... 31 3.3.1.7. Tính khả tuần tự của lịch biểu. ................................ .......................... 32 3.3.1.8. Bộ xếp lịch ................................ ................................ ........................ 33 3.3.1.9. Nghi thức ................................ ................................ .......................... 33 3.3.2. Mô hình giao dịch đơn giản................................ ................................ ...... 33 3.3.2.1. Ý nghĩa của giao dịch – hàm đặc trưng ................................ .............. 33 3.3.2.2. Kiểm tra tính khả tuần tự bằng đồ thị có h ướng. ................................ 35 3.3.3. Nghi thức khóa 2 pha ................................ ................................ ............... 35 3.3.4. Mô hình khóa đọc và khóa ghi ................................ ................................ . 36 3.3.4.1. Ý nghĩa của giao dịch với khóa đọc và khóa ghi ................................ 36 3.3.4.2. Đồ thị tuần tự hóa trong các giao dịch Rlock v à Wlock ..................... 36 Chương 4. Hệ trợ giúp ra quyết định ................................ ................................ ......... 38 4.1. Giới thiệu về hệ trợ giúp ra quyết định ................................ ............................ 38 4.2. Thiết kế cơ sở dữ liệu cho hệ trợ giúp ra quyết định ................................ ........ 39 4.2.1. Thiết kế logic. ................................ ................................ .......................... 39 4.2.2. Thiết kế vật lý ................................ ................................ .......................... 40 4.3. Kho dữ liệu và kho dữ liệu chuyên đề ................................ ............................. 40 4.3.1. Kho dữ liệu ................................ ................................ .............................. 41 4.3.2. Kho dữ liệu chuyên đề. ................................ ................................ ............ 41 4.3.3. Các lược đồ về chiều. ................................ ................................ ............... 42 4.4. Xử lý phân tích trực tuyến................................ ................................ ............... 43 4.4.1. Giới thiệu. ................................ ................................ ................................ 43 4.4.2. Bảng chéo ................................ ................................ ................................ 43 4.4.3. Cơ sở dữ liệu nhiều chiều ................................ ................................ ......... 44 4.5. Khai phá dữ liệu................................ ................................ .............................. 44
  8. http://www.ebook.edu.vn 7 Chương 1. Hệ quản trị cơ sở dữ liệu 1.1. Quan niệm về Cơ sở dữ liệu Cơ sở dữ liệu (CSDL) là gì? Định nghĩa: Một cơ sở dữ liệu (Database) là một tập hợp có cấu trúc các dữ liệu tác nghiệp đ ược lưu trữ lại và được các hệ ứng dụng cụ thể sử dụng. Ngày nay CSDL tồn tại trong hầu hết các ứng dụng, ví dụ: - Ứng dụng quản lý kho hàng; - Hệ thống đặt chỗ máy bay; - Quản lý nguồn nhân lực… Hệ quản trị cơ sở dữ liệu là gì? Định nghĩa: Hệ quản trị c ơ sở dữ liệu (Database Management System - DBMS) là một hệ thống phần mềm cho phép tạo lập CSDL và điều khiển mọi truy nhập đối với CSDL đó. Hệ cơ sở dữ liệu là gì? Hệ CSDL là một hệ thống bao gồm 4 thành phần: - CSDL hợp nhất: CSDL của hệ có hai tính chất tối thiểu hóa d ư thừa và được chia sẻ. - Những người sử dụng: Người sử dụng của hệ là bất kỳ một người nào có nhu cầu truy nhập vào CSDL, bao gồm tất cả những người sử dụng cuối, những người viết chương trình ứng dụng và những người điều khiển toàn bộ hệ thống hay còn gọi là người quản trị CSDL. - Phần mềm quản trị CSDL. - Phần cứng của hệ bao gồm các thiết bị nhớ thứ cấp đ ược sử dụng để lưu trữ CSDL. 1.2. Các khả năng của một hệ quản trị CSDL. Có hai khả năng cho phép phân biệt các hệ quản trị CSDL với các kiểu hệ thống lập tr ình khác: - Khả năng quản lý dữ liệu tồn tại lâu d ài; - Khả năng truy nhập các khối l ượng dữ liệu lớn một cách hiệu quả. Đặc điểm thứ nhất chỉ ra rằng có một CSDL tồn tại trong một thời gian d ài, nội dung của CSDL này là các dữ liệu mà một hệ quản trị CSDL truy nhập và quản lý. Đặc điểm thứ hai phân biệt m ột hệ quản trị với một hệ thống xử lý tệp cũng quản lý dữ liệu tồn tại lâu d ài nhưng nói chung không cung cấp các truy nhập nhanh chóng đến các bộ phận dữ liệu t ùy ý. Các khả năng của một hệ quản trị CSDL hầu hết l à cần thiết khi khối lượng dữ liệu cần lưu trữ là rất lớn, bởi vì các khối lượng dữ liệu nhỏ thì các kỹ thuật truy nhập đơn giản, chẳng hạn quét tuần tự các dữ liệu là thích hợp. Khi xem xét hai đặc điểm trên của một hệ quản trị CSDL l à cơ bản, còn một số các khả năng khác mà có thể thấy trong hầu hết các hệ quản trị CSDL thương mại, đó là: - Hỗ trợ ít nhất một mô hình dữ liệu hay một sự trừu t ượng toán học mà qua đó người sử dụng có thể quan sát dữ liệu.
  9. http://www.ebook.edu.vn 8 - Đảm bảo tính độc lập dữ liệu hay sự bất biến của các ch ương trình ứng dụng đối với các thay đổi về cấu trúc trong mô hình dữ liệu. - Hỗ trợ các ngôn ngữ cấp cao nhất định cho phép ng ười sử dụng định nghĩa cấu trúc của dữ liệu, truy nhập dữ liệu và thao tác dữ liệu. - Quản trị giao dịch, có nghĩa l à khả năng cung cấp các truy cập đồng thời, đúng đ ắn đối với CSDL từ nhiều người sử dụng tại cùng một thời điểm. - Điều khiển truy cập, có nghĩa l à khả năng hạn chế truy nhập đến dữ liệu bởi những ng ười sử dụng không được cấp phép và khả năng kiểm tra tính đúng đắn của dữ liệu. - Phục hồi dữ liệu, có nghĩa là khả năng phụ hồi, không làm mất mát dữ liệu đối với các lỗi của hệ thống.
  10. http://www.ebook.edu.vn 9 Chương 2. Cơ sở dữ liệu hướng đối tượng 2.1. Nhu cầu về hệ thống CSDL hướng đối tượng Nhìn chung hệ quản trị CSDL quan hệ đ ược sử dụng nhiều nhưng chưa đáp ứng được hết các yêu cầu của thực thế. Bên cạnh mô hình quan hệ, mô hình mạng và phân cấp vẫn tồn tại. Một số hạn chế của hệ quản trị CSDL quan hệ. 2.1.1. Các đối tượng phức tạp Một cách hình thức, một đối tượng nhằm xác định một cấu trúc phức tạp. Ví dụ: Các đối t ượng có cấu trúc phức tạp thường thấy là một siêu văn bản, một lược đồ, bức ảnh hay chương trình. Sự phức tạp của các đối tượng này thể hiện qua: - Cấu trúc của đối tượng; - Mô hình hóa các đối tượng; - Ngôn ngữ hỏi trên các đối tượng. Bình thường, CSDL quan hệ xử lý các loại dữ liệu quen thuộc nh ư số, chữ, ngày tháng, logic. Với các loại dữ liệu này, chưa thể thể hiện các loại dữ liệu định tính hay một danh sách. Chính vì vậy người ta đòi hỏi mô hình hóa các đối tượng phức tạp và xử lý chúng trong hệ quản trị nhờ ngôn ngữ chương trình. Các đối tượng phức tạp được coi như các kí tự, các dữ liệu phức. Trong chương trình, chúng được mô tả theo các kiểu đặc biệt. Giải pháp n ày đụng chạm đến các khái niệm cũng quan trọng khác l à hiện tượng dư thừa mã khi mô tả các đối tượng phức tạp trong chương trình ứng dụng, đụng chạm đến sự phụ thuộc ch ương trình/dữ liệu. Như vậy việc xử lý các dữ liệu phức, có kích thước lớn theo giải pháp đó là không hiệu quả. Hơn nữa, do cấu trúc dữ liệu hiện tại l à quá đơn giản, không thể dùng cho mô hình hóa các đối tượng phức tạp, thí dụ đối t ượng trong hệ thống phân cấp hay đồ thị. Ví dụ 2.1. Một đối tượng phức tạp, chẳng hạn trong CAD, th ường được phân rã và đặt trong các quan hệ nhỏ; chính vì vậy mà thông tin ngữ nghĩa sẵn có trong một vấn đ ề bị chia nhỏ ra, phân tán dưới dạng các giá trị trong các quan hệ. Điều n ày khiến người sử dụng phải nhìn thế giới của bài toán theo cách nhìn của CSDL quan hệ. Để có thể khôi phục các ngữ nghĩa ban đầu, không tránh được việc yêu cầu các phép kết nối quan hệ, là phép toán tốn kém tài nguyên để thực hiện. Ngoài việc mô hình hóa, việc truy vấn CSDL thông qua ngôn ngữ cũng cần phải xem xét. Khó có thể có ngôn ngữ lý tưởng trên các đối tượng phức tạp. Cũng có thể sử dụng các ngôn ngữ lập trình để giải quyết nhưng sẽ gặp khó khăn về sự khác biệt giữa kiểu dữ liệu v à cách khai thác dữ liệu của ngôn ngữ lập trình và ngôn ngữ CSDL. Ngôn ngữ truy vấn CSDL th ì dựa trên cơ sở tập hợp, trong khi ngôn ngữ lập trình dựa trên các thủ tục. Các ứng dụng về CSDL được nhìn nhận theo hai khía cạnh: - Khía cạnh tĩnh: thể hiện qua các dữ liệu. - Khía cạnh động: thể hiện qua các phép xử lý tác động l ên dữ liệu. Người ta thấy những đối t ượng được hệ quản trị CSDL quan hệ xử lý đặc biệt l à dữ liệu tĩnh. Phần tác động của chúng, tức các hoạt động, được mô tả riêng biệt thông qua các chương trình ứng dụng tác động lên các dữ liệu. Người lập trình phải biết cấu trúc quan hệ của các đối t ượng, bởi lẽ hệ quản trị CSDL quan hệ không đáp ứng những nhu cầu về các đối t ượng động. 2.1.2. Quản lý các tri thức
  11. http://www.ebook.edu.vn 10 Một quan hệ được tổ chức như một tập các n-bộ, thể hiện những sự kiện. Một hệ quản trị CSDL quan hệ cho phép xử lý các sự kiện, các tri thức d ưới dạng tổng quát và trừu tượng. Người ta sử dụng tri thức này theo hai khía cạnh, ứng với hai cách suy luận: - Đưa ra sự kiện mới, dựa trên các sự kiện và các tri thức đã biết. - Sử dụng để trả lời các câu hỏi cần đến suy luận. Do vậy việc quản lý các tri thức trong CSDL l à nhu cầu thực tế, nhất là đối với các ứng dụng cần đến các kiến thức chuyên gia. Hệ quản trị CSDL sử dụng các điều kiện to àn vẹn. Điều kiện ràng buộc dưới dạng các tri thức cần giới thiệu loại dữ liệu đặc biệt l à tri thức trong cả các chức năng quản trị v à ngôn ngữ người sử dụng. Khi đưa tri thức vào ngôn ngữ hỏi dữ liệu hay ngôn ngữ chương trình người ta cần giải quyết: - Tri thức được mã hóa trong chương trình ứng dụng thường hay mắc nhược điểm là mô tả dữ liệu trùng lặp. - Việc quản lý mối liên hệ giữa những người sử dụng có dùng tri thức khó có thể tốt như việc quản lý trong trường hợp chỉ sử dụng các dữ liệu định l ượng. - Việc suy luận với khối lượng lớn các thông tin nh ư các sự kiện và tri thức trong hệ quản trị CSDL có thể nặng nề, dẫn đến việc làm mất tính hiệu quả của toàn bộ hệ thống. 2.1.3. Quản trị các dữ liệu phân tán Một hệ quản trị CSDL thông th ường được tổ chức như một phần mềm cổ điển và được cài đặt trên một máy tính tập trung. Hiện nay môi tr ường tin học phục vụ các công tác đa dạng với các đối tượng phức tạp hơn, khiến người ta phải dùng đến hệ thống không tập trung và xử lý song song. Như vậy cần có công cụ khác là hệ quản trị CSDL phân tán. Hệ phân tán tạo lập do việc tập hợp các máy nối nhau theo mạng truyền thông d ùng cho một công việc tổng thể và được quản lý trên địa bàn rộng lớn. Yêu cầu đặt ra ở đây là quản trị và xử lý những dữ liệu phân tán tại các máy độc lập. Các trạm độc lập ấy đ ã có các hệ quản trị, nhưng không hoàn toàn giống nhau. Để khai thác dữ liệu theo hệ thống quản trị CSDL phân tán, ng ười ta không thể không thay đổi hệ quản trị cũ. Ít ra cũng phả i mở rộng hệ quản trị CSDL tập trung. Hệ thống phân tán cũng đ òi hỏi các chức năng xử lý song song. Các hệ thống với các chức năng xử lý song song đ ược thiết lập để khai thác các khả năng xử lý song song của máy đa bộ xử lý. Đi đôi với các thiết bị cho phé p xử lý dữ liệu một cách song song, cũng có các ngôn ngữ bậc cao cho phép mô tả dữ liệu phân tán v à mô tả song song các chức năng xử lý. Nhược điểm của các hệ quản trị CSDL thế hệ hai đ òi hỏi đưa ra các hệ thống tiên tiến. Đó là các CSDL hướng đối tượng, CSDL suy diễn và CSDL phân tán. 2.1.4. Nhu cầu về hệ thống CSDL hướng đối tượng Các thí dụ về CSDL thường lấy từ lĩnh vực xử lý dữ liệu truyền thống. Một ứng dụng xử lý dữ liệu có đặc trưng là dùng các tệp dữ liệu, xử lý dữ liệu tệp để đáp ứng các y êu cầu. Các công nghệ CSDL quan hệ, mạng hay phân cấp đều thể hiện các tiếp cận khác nhau nhằm tích hợp các tệp dữ liệu để đáp ứng nhu cầu ứng dụng. Các điểm mạnh của CSDL quan hệ đ ã khiến chúng chiếm ưu thế trên thị trường CSDL. Tuy nhiên việc tăng tính khái quát, trừu tượng của các kiểu dữ liệu do máy xử lý lại là điểm yếu của công nghệ quan hệ. Tr ước khi đề cập vấn đề hướng đối tượng trong
  12. http://www.ebook.edu.vn 11 CSDL, bên cạnh các hạn chế của CSDL quan hệ, ng ười ta còn thấy các hạn chế nêu trên về hệ thống CSDL nói chung, về phạm vi n gữ nghĩa, về cấu trúc dữ liệu, về tính chủ động v à tính toàn vẹn dữ liệu. 1. Phạm vi ngữ nghĩa: Lý thuyết quan hệ chỉ hỗ trợ một phần các khái niệm ngữ nghĩa. Nhiều khái niệm về ngữ nghĩa không thể hiện qua mô h ình quan hệ được. 2. Cấu trúc dữ liệu: Các hệ thống quan hệ bị hạn chế bớt về cấu trúc dữ liệu. Trong hệ thống quan hệ các dữ liệu được tổ chức thành bảng gồm các thuộc tính đ ơn. Nhiều kiểu thông tin không phù hợp với cách thể hiện này. 3. Tính thụ động của dữ liệu: Trong hệ thống quan hệ, dữ liệu hầ u hết là thụ động. Các chương trình ứng dụng có vai trò kích hoạt các dữ liệu này, để dữ liệu trở nên linh động. Trong mô hình hướng đối tượng, người ta có thể biết được hành vi cũng như cấu trúc dữ liệu. 4. Toàn vẹn ngữ nghĩa: Đảm bảo tính to àn vẹn ngữ nghĩa là có thể giữ được tính bền vững của ngữ nghĩa CSDL dưới tác động của các ch ương trình. Hệ thống quan hệ quản lý hành vi của dữ liệu theo các chương trình ứng dụng. Cùng một dữ liệu có thể mang các hành vi khác nhau, nên dữ liệu cần có ý nghĩa khác nhau tùy theo chương trình sử dụng, dễ gây nên tình trạng vi phạm tính toàn vẹn dữ liệu. Những tình huống kém khả năng như vậy của CSDL quan hệ sẽ đ ược CSDL hướng đối tượng khắc phục, nhất là đối với các đối tượng dữ liệu phức tạp và có khối lượng lớn các thông tin ngữ nghĩa. Các lĩnh vực điển h ình cần đến CSDL hướng đối tượng là: - CSDL đa phương tiện, cần lưu trữ khối lượng lớn các tín hiệu âm thanh, h ình ảnh và văn bản; cần liên kết nhiều kiểu dữ liệu. - Các hệ thống thông tin địa lý, cần xử lý nhiều loại d ữ liệu thống kê, bản đồ; các dữ liệu được thu thập từ nhiều vùng khác nhau. - Các CSDL phục vụ thiết kế gồm các s ơ đồ, nhiều thành phần dữ liệu phức tạp liên kết nhau. Một thiết kế đòi hỏi xử lý qua nhiều giai đoạn, nhiều thế hệ. 2.2. Khái niệm về hướng đối tượng Để thấy quan điểm về hướng đối tượng, hãy xét một vật trong thế giới thực l à chiếc ghế. Ghế là một phần tử, hay là một thể hiện của lớp rộng h ơn gọi là đồ đạc. Một tập các thuộc tính li ên kết với đối tượng trong lớp đồ đạc, chẳng hạn giá th ành, kích thước, trọng lượng, vị trí và mầu sắc. Những điều này được áp dụng mỗi khi người ta nói về cái bàn hay cái ghế, tủ…. Bởi vì ghế là thành viên của lớp đồ đạc, nó thừa kế tất cả các thuộc tính đ ã xác định cho lớp. Mỗi đối tượng trong lớp đồ đạc có thể đ ược xử lý theo nhiều cách. Mỗi phép xử lý n ày sẽ thay đổi một hay nhiều thuộc tính của đối t ượng và chúng được gọi là dịch vụ hay phương pháp trên đối tượng. Các đối tượng sẽ bao bọc: - Dữ liệu thông qua giá trị thuộc tính. - Các phép toán như các hoạt động có tác dụng thay đổi giá trị thuộc tính. - Các đối tượng khác, như là các đối tượng phức tạp. - Các hằng số, như các giá trị mặc định. - Các thông tin liên quan.
  13. http://www.ebook.edu.vn 12 Việc bao bọc thông tin của các đối t ượng có nghĩa là tất cả thông tin này được thu gọn lại dưới một tên và có thể được dùng như một đặc tả hay một thành phần chương trình. 2.2.1. Đối tượng Khái niệm về đối tượng là khái niệm sinh ra từ việc nhận thức thế giới thực. Một đối t ượng có các đặc tính sau: - Mang tên duy nhất, không thay đổi. - Thuộc về một lớp. - Có thể gửi các thông báo đến các đối t ượng khác. - Có trạng thái riêng. Định nghĩa 2.1. Đối tượng là một thực thể có vai trò xác định rõ ràng trong lĩnh vực ứng dụng, có trạng thái, hành vi và được xác định tên. Ví dụ về các đối tượng thuộc lớp Người. Chúng liên lạc với nhau thông qua thông báo. Thông báo là dạng các thao tác áp dụng l ên đối tượng. Thao tác trong môi trường hướng đối tượng được gọi là phương pháp. Chẳng hạn phương pháp kết hôn tác động lên đối tượng để biết đối tượng này kết hôn với ai. Định nghĩa 2.2. Trạng thái bao gồm tính chất của đối t ượng, như là thuộc tính và các mối quan hệ, và những giá trị gán cho các tính chất đó. Định nghĩa 2.3. Phép toán là một hàm số hay một dịch vụ mà tất cả các thể hiện của lớp đều chấp nhận. Định nghĩa 2.4. Phương pháp là việc thực hiện của một phép toán. Hành vi và cấu trúc của một đối tượng trong môi trường lập trình hướng đối tượng hoàn toàn do lớp đối tượng xác định. Lớp là khái niệm cơ bản trong tiếp cận hướng đối tượng. Định nghĩa 2.5. Hành vi là thể hiện cách thức tác động của một một đối t ượng. 2.2.2. Lớp đối tượng Một lớp đối tượng có giao diện và miền riêng. Giao diện của đối tượng là cái mà các đối tượng khác thấy được. Giao diện lớp đối tượng gồm hai thành phần sau: 1. Thuộc tính của lớp: Trong chừng mực nào đó các thuộc tính của lớp được coi tương đương với các thuộc tính của quan hệ. Đ ương nhiên thông qua thu ộc tính lớp người ta có thể thể hiện các liên kết giữa các đối tượng, hay trong lớp cũng có thuộc tính ảo, chẳng hạn thuộc tính tuổ i có giá trị tùy thuộc vào thuộc tính ngày sinh. Đối với lớp, không có hạn chế gì về cách thức cấu trúc thuộc tính hay cách liên kết với nhau. Các thuộc tính có thể l à đối tượng, dùng để tạo đối tượng phức tạp hơn. Người ta không xử lý trực tiếp các giá tr ị thuộc tính của đối t ượng mà xử lý thông qua các phương pháp liên kết với lớp đối tượng. 2. Phương pháp gắn với lớp đối tượng: Các thông báo chuyển đến lớp đối t ượng nhờ phương pháp gắn với lớp đối tượng. Chúng thường có dạng các phép toán, các h àm với các tham số. Các đối tượng trong một lớp chỉ có thể đ ược truy cập thông qua các ph ương pháp. Tại mức giao diện, phần hiện rõ là tên phương pháp và các tham số cần cho phương pháp này. Định nghĩa 2.6. Lớp đối tượng là tập các đối tượng có chung cấu trúc và hành vi.
  14. http://www.ebook.edu.vn 13 Định nghĩa 2.7. Sơ đồ lớp cho biết cấu trúc tĩnh của mô h ình hướng đối tượng, đó là các lớp đối tượng, cấu trúc bên trong của chúng, và mối quan hệ mà chúng tham gia. Miền riêng của lớp đối tượng là phần xác định lớp, nhưng không hiện ra cho đối tượng khác thấy. Miền này có thể gồm các thông tin chi tiết về cấu trúc của lớp đối t ượng. Trong chương trình người ta có thể cài đặt che giấu các giá trị, ngay cả các li ên kết cũng bị che giấu, cũng nh ư không thấy được các thông báo. Việc bảo vệ thông tin l àm việc bên trong cùng với các giá trị đối t ượng trước các sử dụng thông thường này được gọi là che dấu thông tin. Một khái niệm quan trọng trọng trong OOP l à bao bọc, có nghĩa mọi vấn đề về đối t ượng đều được nhận biết thông qua định nghĩa lớp đối t ượng. Người ta truy cập khái niệm nhờ giao diện lớp và xác định các hành vi thông qua việc xác định lớp. Định nghĩa 2.8. Sơ đồ đối tượng là đồ thị gồm các thể hiện của đối t ượng, tương thích với sơ đồ lớp. Định nghĩa 2.9. Bao gói, hay bao bọc l à kĩ thuật che giấu, làm ẩn những chi tiết về c ài đặt bên trong của đối tượng đối với các truy cập từ bên ngoài. 2.2.3. Cá thể Cá thể hóa là quá trình khẳng định sự tồn tại của các đối t ượng trong môi trường hướng đối tượng, bằng việc xác định lớp của chúng. Mỗi đối t ượng là một cá thể của lớp; thường được dùng với thuật ngữ thể hiện của lớp. 2.2.4. Kế thừa Khái niệm kế thừa là khái niệm quan trọng trong tiếp cận h ướng đối tượng. Người ta thường dụng thuật ngữ này khi chỉ định lớp đối tượng này tiếp thụ, thừa kế các thuộc tín h của lớp đối tượng khác. Tuy nhiên mỗi lớp con có thể mạng một số thuộc tính hay ph ương pháp riêng. Định nghĩa 2.l0. Kế thừa là tính chất cho phép các lớp con kế thừa những thuộc tính, phép toán của lớp cha. Việc kế thừa nhiều lần xẩy ra khi một lớp kế th ừa từ nhiều lớp. 2.3. CSDL hướng đối tượng Dù có nhiều ngôn ngữ hướng đối tượng, đa số CSDL hướng đối tượng dựa trên C++. Lựa chọn này là do tính hiệu quả và thông dụng của C++. Thực tế CSDL hướng đối tượng có các ưu điểm: - Cho phép xét các liên kết đối tượng dưới dạng các phép lưu trữ với các đối tượng. - Các đối tượng được phép dùng chung cho nhiều người sử dụng. - Khả năng phát triển kho tri thức bằng cách th êm các đối tượng mới và các phép xử lý kèm theo. - Phát triển hệ quản trị CSDL dựa tr ên việc xử lý các đối tượng phức tạp, thiết kế giao diện chương trình, mô tả đối tượng động và trừu tượng. Hệ quản trị CSDL hướng đối tượng là hệ quản trị cho phép lưu trữ và chia sẻ các đối tượng với nhiều ứng dụng. Hệ thống hướng đối tượng là sự mở rộng có ý nghĩa của lập trình hướng đối tượng. Trong môi trường OOP các đối tượng được coi như các biến chương trình, chỉ tồn tại với vòng đời của chương trình đã tạo ra và sử dụng đối tượng. Còn trong hệ thống CSDL hướng đối tượng, các đối tượng là bền vững hơn. Thuật ngữ bền vững được dùng với nghĩa đối tượng tồn tại không lệ
  15. http://www.ebook.edu.vn 14 thuộc vào vòng đời của chương trình tạo ra nó. Chương trình khác có thể truy cập hay hủy bỏ đối tượng này. Hệ thống CSDL hướng đối tượng có các nét đặc trưng sau: - Ngôn ngữ CSDL có khả năng mô tả lớp đối tượng, tao sinh, lưu trữ và xóa đối tượng. - Các đối tượng cho phép chương trình ứng dụng truy cập. Mỗi đối t ượng trong kho các đối tượng có tên duy nhất OID. Khái niệm OID khác với khái niệm khóa chính trong c ơ sở dữ liêu quan hệ. Khóa chính là tập các thuộc tính xác định duy nhất bộ dữ liệu, mang giá trị có thể thay đổi đ ược. Trong hệ thống hướng đối tượng, OID thường là chuỗi 64, 128bit hoặc cao hơn và mang giá trị không thay đổi.. Một đối tượng cũng có thể có các thuộc tính mang vai tr ò như khóa chính trong CSDL quan hệ. Điều này hoàn toàn phụ thuộc vào việc xác định lớp. Việc gán OID ho àn toàn do hệ quản trị CSDL hướng đối tượng thực hiện. Kho đối tượng là nơi chứa dữ liệu tạo nên CSDL hướng đối tượng. Hệ quản trị CSDL h ướng đối tượng cần có các chức năng cơ bản như hệ quản trị CSDL bình thường, như điều khiển tương tranh, an toàn dữ liệu, toàn vẹn dữ liệu… Thực ra, hệ quản trị CSDL h ướng đối tượng hoạt động như hệ quản trị thường, với sự tham giá của phần mềm h ướng đối tượng để truy cập các đối tượng. 2.4. Thiết kế CSDL hướng đối tượng Để xác định rõ việc thực hiện CSDL hướng đối tượng theo các dạng tiếp cần, tr ước hết cần xác định cách thức thiết kế một hệ thống h ướng đối tượng. Một CSDL hướng đối tượng gồm các đối tượng; tất cả các thứ thuộc về lớp. Để xây dựng mô hình khái niệm cho CSDL hướng đối tượng, người ta cần xác định tập các lớp đối t ượng. Lớp đối tượng được xác định nhờ các thuộc tính v à phương thức thức. Người ta cũng phải xác định sự tương tác giữa các lớp. Khái niệm về lớp cũng t ương tự như kiểu dữ liệu đã giới thiệu trước đây. 2.4.1. Phân lớp Quá trình phân lớp liên quan đến việc định tên đối tượng với các thuộc tính, h ành vi tương tự nhau và nhóm các đối tượng vào cùng một lớp. Theo thí dụ về sơ đồ người ta xác định sơ đồ với các thuộc tính tên, ngày tạo, hình vẽ. Các phép toán chung là lưu trữ tìm kiếm, vẽ. Trong đoạn chương trình trên, danh sách các trường và các kiểu dữ liệu đơn giản dùng cho các sơ đồ được liệt kê trong mục thuộc tính. Tiếp theo l à các phương thức, có tên và các tham số. Có một số phương thức như tạo mới, xóa… áp dụng cho tất cả các đối t ượng trong CSDL. Tất cả các định nghĩa về giao diện lớp đối t ượng cần có phép toán tạo mới v à hủy bỏ đối tượng. Quá trình phân lớp sẽ tạo ra lớp của các đối t ượng có các thuộc tính, phương thức chung, và một vài đối tượng có thuộc tính và phương thức riêng. Lúc đó người ta cần đến khái niệm tổng quát hóa v à chuyên biệt hóa. 2.4.2. Tổng quát hóa và đặc biệt hóa Tổng quát hóa là quá trình xác định lớp đối tượng mang các thuộc tính t ương tự và theo sự tương tự này người ta có thể trừu tượng hóa để được lớp cao hơn, hay lớp cha. Chẳng hạn ban đầu người ta xác định lớp hình tam giác, hình vuông, hình ch ữ nhật, và hình tròn rồi trừu tượng hóa thành lớp cao hơn về sơ đồ, gồm các thuộc tính chung của tất cả các sơ đồ. Định nghĩa 2.11. Lớp trừu tượng là lớp không có thể hiện trực tiếp, nh ưng các thành phân sau nó có thể có thể hiện trực tiếp. Định nghĩa 2.12. Lớp cụ thể là lớp có thể có các thể hiện trực tiếp.
  16. http://www.ebook.edu.vn 15 Sơ đồ Hình chữ nhật Hình tam giác Hình tròn Hình vuông Tam giác đều Chuyên biệt hóa là quá trịnh ngược lại với tổng quát hóa. Bắt đầu từ lớp s ơ đồ, người ta có thể xác định lớp con để phân biệt các loại s ơ đồ khác nhau; mỗi lớp con chia sẻ thuộc tính v à phương thức chung trong lớp sơ đồ nhưng có các thuộc tính và phương thức dùng riêng. Người ta dùng cây phân cấp để thể hiện quá trình tổng quát hóa. Phân cấp nả rất có ý nghĩa trong hệ thống hướng đối tượng, để chỉ ra dãy các thừa kế. Khi mô tả các lớp, người ta cần chỉ ra sự tham gia của lớp vào dãy kế thừa này. Hai định nghĩa lớp đối tượng này đều tham chiếu đến lớp đối tượng cha bằng câu lệnh kế thừa. Lớp tam giác thừa kế tất cả các thuộc tính v à phương thức của sơ đồ. Các thuộc tính bổ sung cũng được mô tả ngay. Phương thức tạo mới được mô tả lại, tính đến các đặc tr ưng riêng của hình tam giác. Phương thức Diện tích cũng là phương thức dùng riêng cho hình tam giác. Còn l ớp đối tượng Hình đều cạnh thì thừa kết tính chất củ lớp Tam giác. Điều n ày có nghĩa nó thừa kết các tính chất của lớp tam giác và lớp so đồ. Lớp đối tượng này cũng có thuộc tính riêng. Người ta mô tả lại các phương thức để phù hợp với loại hình này. 2.4.3. Gộp Gộp là quá trình liên kết các lớp đối tượng với nhau để tạo lên một lớp gộp. Chẳng hạn CSDL ngân hàng gồm khách hàng, tài khoản, chi nhánh và mối quan hệ giữa chúng. Khi thực h iện CSDL này theo kĩ thuật quan hệ, người ta tạo các các quan hệ tách biệt đối với mỗi thực thể v à dùng khái niệm khóa ngoài để thể hiện mối quan hệ 1 -n. Người ta cũng dùng quan hệ khác có khóa ngoài để thể hiện quan hệ m-n giữa khách hàng và tài khoản. Để thiết lập khung nhìn về tất cả thông tin liên quan đến một tài khoản nào đó, người ta cần nối 4 bảng c ơ sở. Trong CSDL hướng đối tượng người ta giải quyết vấn đề n ày nhở lớp đối tượng gộp. Lớp đăng ký được tạo, liên kết các đối tượng kiểu khác hàng, tài khoản, và chi nhánh. Mỗi đối tượng đăng ký sẽ liên kết một khách hàng với một tài khoản, có thuộc tính đặc biệt cho biết thời gian thực hiện đăng ký này. 2.5. Xây dựng CSDL hướng đối tượng Một số điều liên quan đến lược đồ CSDL hướng đối tượng xuất hiện khi phân lớp đối tượng, tổng quát hóa, đặc biệt hóa và gộp. Các vấn đề này xảy ra song song. Người ta không trình bày quá trình chuyển từ mô hình thực thể E/R sang mô hình hướng đối tượng bởi lẽ không có điểm t ương tự giữa một bên là thực thể và mối quan hệ, một bên là lớp đối tượng. Hơn nữa, mô hình E/R hầu như hướng dữ liệu chứ không cho biết về h ành vi của thực thể khi dựa vào hạng của quan hệ mà thực thể tham gia.
  17. http://www.ebook.edu.vn 16 Việc chuyển hóa mô hình đối tượng ngữ nghĩa sang CSDL h ướng đối tượng được thực hiện như sau: - Đối với mỗi đối tượng ngữ nghĩa, người ta tạo một lớp đối t ượng. - Khi có quan hệ cha con giữa hai đối t ượng ngữ nghĩa, người ta thực hiện liên kết thừa kế giữa lớp đối tượng thể hiện kiểu con và lớp đối tượng thể hiện kiểu cha. - Tiến hành gộp và liên kết các đối tượng ngữ nghĩa về kiểu đối t ượng để được các lớp đối tượng gộp. - Giữ tính toàn vẹn về hạng giữa các đối t ượng ngữ nghĩa, duy trì việc hợp nhóm của các đối tượng ngữ nghĩa và phân rã kiểu con bằng các phương thức. Vòng đời phát triển hướng đối tượng gồm ba pha: - Pha phân tích: người ta phát triển mô hình ứng dụng trên thế giới thực, chỉ ra các thuộc tính quan trọng. Cần xác định các khái niệm trừu t ượng về mô hình xuất phát từ lĩnh vực ứng dụng v à các mô tả về hệ thống. Người ta xác định các hành vi chức năng của hệ thống, độc lập với môi trường sẽ thực hiện hướng đối tượng. Pha thiết kế: Cho phép xác định cách thức sẽ thực hiện mô h ình phân tích hướng đối tượng. Pha thực hiện: Người ta xác định và khảo sát tất cả các kết quả của việc thực hiệ n thiết kế. Tất cả các quyết định thiết kế chiến l ược, như là cách thức tích hợp hệ quản trị CSDL, cách liên lạc giữa các đối tượng, cách xử lý sai sót… đều đ ược triển khai. Tiếp theo người ta tích hợp các quyết định này vào mô hình thiết kế ban đầu, rồi hình thức hóa mô hình thiết kế để các đối tượng có thể tương tác với các đối tượng khác theo các kịch bản.
  18. http://www.ebook.edu.vn 17 Chương 3. Cơ sở dữ liệu phân tán Thiết kế hệ thống thông tin có CSDL phân tán bao gồm: - Phân tán và chọn những vị trí đặt dữ liệu; - Các chương trình ứng dụng tại các điểm; - Thiết kế tổ chức khai thác hệ thống đó trên nền mạng. 3.1. Các phương pháp phân tán dữ liệu 3.1.1. Khái niệm về phân tán dữ liệu Khi thiết kế các hệ thống CSDL phân tán ng ười ta thường tập trung xoay quanh các câu hỏi? - Tại sao lại cần phải phân mảnh? - Làm thế nào để thực hiện phân mảnh? - Phân mảnh nên thực hiện đến mức độ nào? - Có cách gì kiểm tra tính đúng đắn của việc phân mảnh? - Các mảnh sẽ được cấp phát trên mạng như thế nào? - Những thông tin nào sẽ cần thiết cho việc phân mảnh và cấp phát? 3.1.1.1. Các lý do phân mảnh Trước tiên việc phân tán dữ liệu được thực hiện trên cơ sở cấp phát các tập tin cho các nút tr ên một mạng máy tính. Các nút mạng th ường nằm ở các vị trí địa lý khác nhau trải rộng tr ên một diện tích lớn. Do vậy để tối ưu việc khai thác thông tin th ì dữ liệu không thể để tập trung m à phải phân tán trên các nút của mạng. Hơn nữa một quan hệ không phải l à một đơn vị truy xuất dữ liệu tốt nhất. Ví dụ nh ư, nếu ứng dụng được thực hiện trên một bộ phận nhỏ các dữ liệu của quan hệ mà quan hệ đó nằm tại các vị trí khác nhau thì có thể gây ra những truy xuất thừa và hơn thế việc nhân bản các quan hệ làm tốn không gian bộ nhớ. Do vậy phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như một đơn vị sẽ cho phép thực hiện nhiều giao dịch đồng thời. Một câu truy vấn ban đầu có thể đ ược chia ra thành một tập các truy vấn con, các truy vấn n ày có thể được thực hiện song song trên các mảnh sẽ giúp cải thiện tốc độ hoạt động của hệ thống. Tuy nhiên chúng ta cũng sẽ gặp những rắc rối của việc phân mảnh, ví dụ nếu các ứng dụng có những xung đột sẽ ngăn cản hoặc gây khó khăn cho việc truy xuất dữ liệu. Phân r ã các mảnh nói chung làm tăng chi phí trong vi ệc truy xuất dữ liệu. Một vấn đề nữa li ên quan đến việc kiểm soát ngữ nghĩa và tính toàn vẹn dữ liệu. 3.1.1.2. Các kiểu phân mảnh Thể hiện của các quan hệ chính l à các bảng, vì thế vấn đề là tìm những cách khác nhau để chia một bảng thành nhiều bảng nhỏ hơn. Rõ ràng có hai phương pháp khác nhau: Chia bảng theo chiều dọc và chia bảng theo chiều ngang. Chia dọc ta đ ược các quan hệ con mà mỗi quan hệ chứa một tập con các thuộc tính của quan hệ gốc – gọi là phân mảnh dọc. Chia ngang một quan hệ ta đ ược các quan hệ con mà mỗi quan hệ chứa một số bộ của quan hệ gốc - gọi là phân mảnh ngang.
  19. http://www.ebook.edu.vn 18 Ngoài ra còn có một khả năng hỗn hợp, đó là phân mảnh kết hợp cách phân mảnh ngang v à dọc. Tất nhiên quá trình phân mảnh gắn liến với vấn đề cấp phát v à bài toán cụ thể. Ví dụ 3.1. Trong ví dụ này chúng ta sử dụng một CSDL của một công ty máy tí nh thực hiện các dự án phần mềm gồm các quan hệ: DuAn(MaDuAn, Ten, KinhPhi, ViTri); NhanVien(MaNV, Ten, ChucVu); TrachNhiem(MaNV, MaDuAn, TrachNhiem, ThoiGianTG); Luong(ChucVu, Luong). Hình 3.1. Dữ liệu của các bảng NhanVien TrachNhiem MaNV Ten ChucVu MaNV MaDuAn TrachNhiem ThoiGianTG E1 Hoàng Lan Ks Điện E1 P1 Quản lý 12 E2 Đình Vượng Phân tích hệ thống E2 P1 Phân tích 24 E3 Minh Tài Ks Máy E2 P2 Phân tích 6 E4 Dương Hà Lập trình viên E3 P3 Tư vấn 10 E5 Minh Hoa Phân tích hệ thống E3 P4 Kỹ sư 48 E6 Văn Hiền Ks Điện E4 P2 Lập trình viên 18 E7 Hoài Nam Ks Máy E5 P2 Quản lý 24 E8 Vân Dũng Phân tích hệ thống E6 P4 Quản lý 48 E7 P3 Kỹ sư 36 E8 P3 Quản lý 40 DuAn Luong MaDuAn Ten KinhPhi Vitri ChucVu Luong P1 Trang thiết bị 150000 Hà Nội Ks Điện 4000 P2 CSDL 135000 Hải Phòng Phân tích hệ thống 10000 P3 CAD/CAM 250000 Hà Nội Ks Máy 3500 P4 Bảo Trì 310000 Quảng Ninh Lập trình viên 4100 Người ta có thể chia ngang quan hệ DuAn Th ành các quan hệ con DuAn1, DuAn2. DuAn1 chứa những thông tin về các dự án có ngân sách d ưới 200000$, còn DuAn2 lưu các thông tin về các dự án có ngân sách trên 200000$. Hình 3.2. Phân mảnh ngang quan hệ DuAn DuAn1 MaDuAn Ten KinhPhi Vitri P1 Trang thiết bị 150000 Hà Nội P2 CSDL 135000 Hải Phòng DuAn2 MaDuAn Ten KinhPhi Vitri P3 CAD/CAM 250000 Hà Nội P4 Bảo Trì 310000 Quảng Ninh Ngoài ra cũng có thể phân mảnh dọc quan hệ DuAn th ành hai quan hệ DuAn3, DuAn4. DuAn3 chỉ chứa thông tin về ngân sách của các dự án, c òn DuAn4 lưu thông tin về tên và vị trí dự án. Điều cần lưu ý là khóa của quan hệ DuAn phải xuất hiện trong cả hai mảnh. Hình 3.3. Phân mảnh dọc quan hệ DuAn
  20. http://www.ebook.edu.vn 19 DuAn3 DuAn4 MaDuAn KinhPhi MaDuAn Ten Vitri P1 150000 P1 Trang thiết bị Hà Nội P2 135000 P2 CSDL Hải Phòng P3 250000 P3 CAD/CAM Hà Nội P4 310000 P4 Bảo Trì Quảng Ninh 3.1.1.3. Mức độ phân mảnh Phân mảnh CSDL đến mức độ nào là một quyết định rất quan trong có ảnh h ưởng đến hiệu năng thực hiện vấn tin. Mức độ phân mảnh có thể l à từ thái cực không phân mảnh n ào đến thái cực phân mảnh thành từng bộ hoặc từng thuộc tính. Tuy nhi ên nếu phân mảnh quá nhỏ sẽ có những tác động không tốt đến hoạt động khai thác CSDL. Vậy cần phải định ra đ ược một mức độ phân mảnh thích hợp. Mức độ này sẽ tùy thuộc vào từng CSDL và các ứng dụng CSDL cụ thể. 3.1.1.4. Quy tắc phân mảnh đúng đắn Chúng ta sẽ phải tuân thủ ba qui tắc trong khi phân mảnh m à chúng sẽ đảm bảo CSDL không có thay đổi nào về mặt ngữ nghĩa sau khi phân mảnh. 1. Tính đầy đủ: Nếu một quan hệ R đ ược phân mảnh thành các mảnh R1, R2,…, RN thì mỗi mục dữ liệu có trong R phải có mặt trong một hoặc nhiều mảnh R i. 2. Tính tái thiết được: Nếu một quan hệ R đ ược phân mảnh thành R1, R2,…, RN thì cần phải định nghĩa một toán tử tái thiết sao cho: R = Ri, i = 1..N. Toán tử thay đổi tùy theo từng loại phân mảnh; thông th ường khi phân mảnh ngang th ì là phép toán hợp còn phân mảnh dọc là phép toán kết nối. 3. Tính tách biệt: Nếu quan hệ R được phân mảnh ngang thành các mảnh R1, R2,…, RN và mục dữ liệu ti nằm trong mảnh ri, thì nó sẽ không nằm trong các mảnh Rk với k j. Tiêu chuẩn này đảm bảo rằng các mảnh ngang sẽ tách biệt với nhau. Nếu quan hệ đ ược phân mảnh dọc, các thuộc tính khóa chính phải được lặp lại trong mỗi mảnh. V ì thế trong trường hợp phân mảnh dọc, tính tách biệt chỉ được định nghĩa trên các trường không phải là khóa chính của một quan hệ. 3.1.1.5. Các kiểu cấp phát Giả sử CSDL đã được phân mảnh hợp lý và cần quyết định cấp phát các mảnh cho các vị trí tr ên mạng. Khi dữ liệu được cấp phát, nó có thể được nhân bản hoặc duy trì một bản duy nhất. Lý do cần phải nhân bản là nhằm đảm bảo độ tin cậy và hiệu quả cho các câu vấn tin chỉ đọc. Nếu có nhiều bản sao của một mục dữ liệu th ì chúng ta vẫn có cơ hội truy xuất được dữ liệu đố ngay cả khi hệ thống xẩy ra sự cố. H ơn nữa các câu vấn tin chỉ đọc truy xuất đến c ùng một mục dữ liệu có thể cho thực hiện song song bởi v ì các bản sao có mặt tại nhiều vị trí. Ng ược lại câu vấn tin cập nhật có thể gây ra nhiều rắc rối bởi v ì hệ thống phải bảo đảm rằng tất cả các bản sao phải đ ược cập nhật chính xác. Vì vậy quyết định nhân bản cần đ ược cân nhắc và phụ thuộc vào tỷ lệ giữa các câu vấn tin chỉ đọc và câu vấn tin cập nhật. Quyết định n ày có ảnh hưởng đến tất cả các thuộc toán của hệ quản trị CSDL phân tán và các chức năng kiểm soát khác. 3.1.1.6. Các yêu cầu thông tin Một điều cần lưu ý trong việc thiết kế phân tán là quá nhiều yếu tố có ảnh hưởng đến một thiết kế tối ưu. Tổ chức logic của CSDL, vị trí các ứng dụng, đặc tính truy xuất của các ứng dụng đến
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2