SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
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
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
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
triển
3 3
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
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.
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
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
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
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.
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.
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
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
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 ngữ 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.
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.
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ính 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ệ
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.
http://www.ebook.edu.vn 15
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 hiệ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.
Sơ đồ
Hình chữ nhật Hình tam giác Hình tròn
Hình vuông Tam giác đều
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.
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.
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
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 Ri.
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
http://www.ebook.edu.vn 20
CSDL, và các đặc tính của hệ thống máy tính tại mỗi vị trí đều có ảnh hưởng đến các quyết định
phân tán.
3.1.2. Phân mảnh ngang
Trong phần ngày chúng ta sẽ bàn đến hai chiến lược phân mảnh:
- Phân mảnh ngang nguyên thủy: Phân mảnh ngang nguyên thủy của một quan hệ được thực
hiện dựa trên các vị từ được định nghĩa trên quan hệ đó.
- Phân mảnh ngang dẫn xuất: Là phân mảnh một quan hệ dựa vào các vị từ được định nghĩa trên
một quan hệ khác.
3.1.2.1. Yêu cầu thông tin của phân mảnh ngang.
1. Thông tin về CSDL
Thông tin về CSDL là lược đồ toàn cục và các quan hệ gốc. Trong ngữ cảnh này chúng ta cần
biết được các quan hệ sẽ kết lại với nhau bằng phép kết nối hay phép tính khác. Để thể hiện người
ta thường dụng mô hình thực thể để biểu diễn các quan hệ với các mỗi liên kết giữa chúng.
Thông tin định lượng cần có là lực lượng của mỗi quan hệ R, đó là số bộ có trong R được ký
hiệu là card(R).
2. Thông tin về ứng dụng
Để phân tán ngoài thông tin định lượng Card(R) ta còn cần thông tin định tính cơ bản gồm các
vị từ được dùng trong các câu vấn tin. Lượng thông tin này phụ thuộc vào bài toán cụ thể.
Cho lược đồ quan hệ R(U), U = A1, A2,…, AN trong đó mỗi Ai là một thuộc tính có miền giá trị
dom(Ai). Một vị từ đơn giản P được định nghĩa trên R có dạng:
P: Ai  <giá trị>
Trong đó   {=, <, <=, >=, >, <>}, Ai là một thuộc tính, <giá trị>  dom(Ai).
Như vậy cho trước một lược đồ R, nếu các miền giá trị dom(Ai) là hữu hạn chúng ta có thể xác
định được tập tất cả các vị từ đơn giản trên R.
Ví dụ: Với hình 3.1. các vị từ đơn giản của quan hệ DuAn:
P1: Ten = “Bảo trì”
P2: KinhPhi <= 200000
Trong các bài toán thức tế các câu vấn tin thường chứa nhiều vị từ phức tạp hơn, là tổ hợp của
các vị từ đơn giản. Ví dụ vị từ hội sơ cấp của các vị từ đơn giản. Bởi một biểu thức boolean luôn có
thê biến đổi được thành dạng chuẩn hội cho nên chúng ta sử dụng hội sơ cấp để biểu diễn các vị từ
phức tạp.
Cho lược đồ quan hệ R(U), U = A1, A2,…, AN trong đó mỗi Ai là một thuộc tính có miền giá trị
dom(Ai). Pr = {p1, p2,…, pt}. Tập các vị từ hội sơ cấp M = {m1, m2,…, mk} được định nghĩa như
sau:
mi =  p’
j với 1  j  t
Trong đó p’
j = pj hoặc p’
j = pj
Lưu ý: Phép lấy phủ định một vị từ không phải lúc nào cũng thực hiện được.
Theo những thông tin định tính về các ứng dụng chúng ta cần biết hai tập dữ liệu:
http://www.ebook.edu.vn 21
1.. Số lượng các bộ có quan hệ sẽ được truy xuất bởi câu vấn tin được đặc tả theo một vị từ
hội sơ cấp đã cho.
3. Tần số truy xuất và trong một số trường hợp là số truy xuất. Nếu Q = {q1, q2,…, qN} là các
câu vấn tin, acc(qi) biểu thị cho số truy xuất của qi trong một khoảng thời gian đã cho hoặc trong
quan hệ cụ thể.
3.1.2.2. Phân mảnh ngang nguyên thủy.
Phân mảnh ngang nguyên thủy được định nghĩa bằng một phép toán chọn trên các quan hệ chủ
của một lược đồ CSDL. Vì thế cho quan hệ R, các mảnh ngang của R là các Ri với Ri = R(Ei), 1  i
 k
Trong đó Ei là công thức chọn (hội sơ cấp) được sử dụng để có thể có được mảnh Ri. Chú ý rằng
nếu Ei có dạng chuẩn hội, nó là một vị từ hội sơ cấp mi. Ri là các bộ của R thỏa mãn Ei.
Ví dụ:
Phân rã quan hệ DuAn thành các mảnh ngang DuAn1, DuAn2 trong hình 3.1. được định nghĩa
như sau:
DuAn1 = DuAn(KinhPhi  200000)
DuAn2 = DuAn(KinhPhi > 200000)
Một mảnh ngang Ri của quan hệ R có chứa tất cả các bộ R thỏa vị từ hội sơ cấp mi. Vì vậy cho
một tập các vị từ hội sơ cấp M, số lượng các mảnh ngang cũng bằng số lượng các vị từ hội sơ cấp
(tất nhiên một mảnh ngang có thể rỗng nếu vị từ không truy xuất đến bộ nào của quan hệ, các mảnh
ngang có thể bằng nhau nếu các vị từ tương đương). Tập các mảnh ngang này cũng thường được
gọi là tập các mảnh hội sơ cấp.
Rõ ràng việc định nghĩa các mảnh ngang phụ thuộc vào cá vị từ hội sơ cấp. Vì thế bước đầu tiên
của mọi thuật toán phân mảnh là phải xác định tập các vị từ đơn giản sẽ tạo ra các vị từ hội sơ cấp.
Tập vi từ này nói chung phụ thuộc vào mục tiêu và yêu cầu của bài toán.
Một số khái niệm quan trọng của các vị từ đơn giản là tính đầy đủ và cực tiểu của tập các vị từ.
Tập các vị từ đơn giản Pr được gọi là đầy đủ nếu và chỉ nếu xác suất của mỗi bộ của R(hoặc của
các mảnh Ri) được truy xuất bởi các vị từ p  Pr đều bằng nhau.
Lý do cần phải bảo đảm tính đầy đủ là vì các mảnh thu được theo tập vị từ đầy đủ sẽ nhất quán
về mặt logic do tất cả chúng đều thỏa vị từ hội sơ cấp. Chúng cũng đồng nhất và đầy đủ về mặt
thống kê theo cách mà ứng dụng truy xuất chúng.
Đặc tính thứ hai của tập vị từ là tính cực tiểu. Đây là một đặc tính cảm tính. Vị từ đơn giản phái
có liên đới trong việc xác định một phân mảnh. Một vị từ mà không tham gia vào một tập phân
mảnh nào thì có thể coi vị từ đó là thừa. Nếu tất cả các vị từ của Pr đều có liên đới và không có các
vị từ tương đương thì Pr là cựu tiểu.
Chúng ta quy ước:
Thuật toán 3.1. COM-MIN Thuật toán tìm tập vị từ đầy đủ và cực tiểu
Vào: Quan hệ R, tập các vị từ đơn giản Pr
Ra: Pr’ – tập các vị từ đơn giản đầy đủ và cực tiểu
Phương pháp:
http://www.ebook.edu.vn 22
0. Gọi F tập các mảnh hội sơ cấp
Pr’ = , F = 
1. p  Pr, nếu p phân hoạch R theo quy tắc 1
- Pr’ = Pr’  {p}
- Pr = Pr – {p}
- F = F  {f} với f là một mảnh hội sơ cấp theo p
2. p  Pr nếu p phân hoạch một mảnh f  F theo quy tắc 1
- Pr’ = Pr’  {p}
- Pr = Pr – {p}
- F = F  {f} với f là một mảnh hội sơ cấp theo p
Lặp lại bước 2 cho đến khi nào không p  Pr’ phân hoạch một mảnh f  F
3. p  Pr’ nếu p’ mà p tương đương với p’
- Pr’ = Pr’ – {p}
- F = F – {f} với f là một mảnh hội sơ cấp theo p
Sau bước 3 Pr’ là tập vị từ đầy đủ và tối thiểu cần tìm.
Bước tiếp theo của thiết kế phân mảnh ngang nguyên thủy là suy dẫn ra tập các vị từ hội sơ cấp
có thể được định nghĩa trên các vị từ trong tập Pr’. Các vị từ hội sơ cấp này xác định các mảnh cho
bước cấp phát.
Bước cuối của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa. Điều này được thực hiện bằng
cách xác định những vị từ mâu thuẫn với tập các phép kéo theo I. Chẳng hạn, nếu Pr’ = (P1, P2),
trong đó
P1: A = giá trị 1
P2: A = giá trị 2
Và miền biến thiên của A là {giá trị 1, giá trị 2} rõ ràng I chứa hai phép kéo theo với khẳng
định:
i1: (A = giá trị 1)   (A = giá trị 2)
i2: (A = giá trị 1)  (A = giá trị 2)
Bốn vị từ hội sơ cấp sau đây được định nghĩa theo Pr’
m1: (A = giá trị 1)  (A = giá trị 2)
m2: (A = giá trị 1)  (A = giá trị 2)
m3: (A = giá trị 1)  (A = giá trị 2)
m4: (A = giá trị 1)  (A = giá trị 2)
Trong trường hợp này các vị từ hội sơ cấp m1 và m4 mâu thuẫn với phép kéo theo I và vì thế bị
loại khỏi M
Thuật toán 3.2. Thuật toán phân mảnh ngang nguyên thủy
http://www.ebook.edu.vn 23
Vào: Quan hệ R, tập các vị từ đơn giản Pr
Ra: M – tập các vị từ hội sơ cấp
Phương pháp:
0. Pr’ = COM-MIN(R,Pr)
Xác định tập M các vị từ hội sơ cấp
Xác định tập I các phép kéo theo giữa các Pi  Pr’
1. mi  M nếu mi mâu thuẫn với I
M = M – {mi}
Sau bước này M là tập các vị từ hội sơ cấp.
3.1.2.3. Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của một đường nối dựa
theo phép toán chọn trên quan hệ chủ nhân của đường nối đó. Như thế nếu cho trước một liên kết L,
trong đó owner(L) = S và member(L) = R, các mảnh ngang dẫn xuất của R được định nghĩa là:
Ri = R Si, 1  i  k
Trong đó k là số lượng các mảnh được định nghĩa trên R, và Si = S(Ei), với Ei là công thức định
nghĩa phân mảnh ngang nguyên thủy Si.
Ví dụ: Xét liên kết giữa bảng Luong và NhanVien. Chúng ta có thể nhóm các nhân viên thành
hai nhóm tùy theo lương. Giả sử nhóm có lượng từ 4000$ trở xuống và nhóm lương trên 4000$. Hai
mảnh NhanVien1 và NhanVien2 được định nghĩa như sau:
NhanVien1 = NhanVien Luong1
NhanVien2 = NhanVien Luong2
Trong đó
Luong1 = Luong(Luong  4000)
Luong2 = Luong(Luong > 4000)
Kết quả thu được như sau:
NhanVien1 NhanVien2
MaNV Ten ChucVu MaNV Ten ChucVu
E1 Hoàng Lan Ks Điện E2 Đình Vượng Phân tích hệ thống
E3 Minh Tài Ks Máy E4 Dương Hà Lập trình viên
E6 Văn Hiền Ks Điện E5 Minh Hoa Phân tích hệ thống
E7 Hoài Nam Ks Máy E8 Vân Dũng Phân tích hệ thống
Muốn thực hiện phân mảnh ngang dẫn xuất chúng ta cần ba nguyên liệu: Tập các phân hoạch
của quan hệ chủ (chẳng hạn Luong1 và Luong2 trong ví dụ trên), quan hệ thành viên, và tập các vị
từ nối giữa quan hệ chủ và quan hệ thành viên (chẳng hạn NhanVien.ChucVu = Luong.ChucVu).
Cũng có một vấn đề phức tạp phải chú ý, trong lược đồ CSDL chúng ta hay gặp nhiều đường nối
đến một quan hệ R. Như thế có thể có nhiều cách phân mảnh ngang dẫn xuất cho R. Quyết định
chọn cách phân mảnh nào cần dựa trên hai tiêu chuẩn sau:
1. Phân mảnh có đặc tính nối tốt hơn;
2. Phân mảnh được sử dụng trong nhiều ứng dụng hơn.
http://www.ebook.edu.vn 24
3.1.2.4. Kiểm tra tính đúng đắn của phân mảnh ngang
1. Tính đầy đủ
Tính đầy đủ của một phân mảnh ngang nguyên thủy dựa vào các vị từ chọn được dùng. Với
điều kiện các vị từ chọn là đầy đủ, phân mảnh thu được cung được bảo đảm là đầy đủ, bởi vì cơ sở
của thuật toán phân mảnh là một tập các vị từ cực tiểu và đầy đủ. Tính đầy đủ sẽ được bảo đảm với
điều kiện là không có sai sót xẩy ra khi định nghĩa tập vị từ đầy đủ và cực tiểu Pr. Tính đầy đủ của
phân mảnh ngang dẫn xuất có hơi khác. Khó khăn là do vị từ định nghĩa phân mảnh có liên quan
đến hai quan hệ.
Gọi R là quan hệ thành viên của một liên kết mà chủ là quan hệ S được phân mảnh thành Fs =
{S1, S2,…, SN}. A là thuộc tính nối giữa R và S. Vậy đối với mỗi bộ t của R, phải có một bộ t’ sao
cho t.A = t’.A
Quy tắc này được gọi là ràng buộc toàn vẹn hay toàn vẹn tham chiếu, bảo đảm mọi bộ trong các
mảnh của quan hệ thành viên đều nằm trong quan hệ chủ.
2. Tính tái thiết được
Tái thiết một quan hệ toàn cục từ các mảnh được thực hiện bằng toán tử hợp trong cả phân
mảnh ngang nguyên thủy lẫn dẫn xuất. Vì thế một quan hệ R với phân mảnh FR = {R1, R2,…, RN},
chúng ta có R =  Ri, Ri  FR.
3. Tính tách biệt
Chúng ta có thể dễ dạng thấy rằng tính tách rời của phân mảnh nguyên thủy là rõ ràng theo cách
phân mảnh của ta. Với phân mảnh dẫn xuất, tính tách rời sẽ được bảo đảm nếu các vị từ hội sơ cấp
xác đinh phân mảnh có tính loài trừ lẫn nhau.
3.1.3. Phân mảnh dọc.
Phân mảnh dọc một quan hệ r sẽ sinh ra các mảnh r1, r2,…, rN mỗi mảnh chứa một tập con thuộc
tính của R và cả khóa của r. Mục đích của phân mảnh dọc là phân hoạch một quan hệ thành một tập
các quan hệ nhỏ hơn để nhiều ứng dụng có thể chỉ chạy trên một quan hệ. Trong ngữ cảnh này, một
phân mảnh tối ưu là một phân mảnh sinh ra một lược đồ phân mảnh cho phép giảm đến tối da thời
gian thực thi các ứng dụng chạy trên các mảnh đó.
Phân mảnh dọc đã được nghiên cứu trong ngữ cảnh của các hệ CSDL tập trung. Lý do chính là
sử dụng nó làm một công cụ thiết kế cho phép các vấn tin làm việc trên các quan hệ nhỏ hơn vì thế
giảm bớt số truy xuất và tiết kiệm bộ nhớ. Một trong số các phương pháp phân mảnh dọc đã nghiên
cứu trong mô hình CSDL quan hệ là việc chuẩn hóa các quan hệ về các dạng chuẩn cấp cao.
Bên cạnh phương pháp chuẩn hóa các quan hệ còn có những phương pháp khác và chúng
thường gắn với mục tiêu của bài toán.
3.1.4. Cấp phát.
Bài toán cấp phát:
Giả sử rằng có một tập các mảnh F = {F1, F2,…, FN} và một mạng máy tính bao gồm các vị trị S
= {S1, S2,…, SM} trên đó có một tập các ứng dụng dạng Q = {q1, q2,…, qk} đang chạy. Bài toán cấp
phát là tìm một phân phối “tối ưu” của F cho S.
Tính tối ưu có thể được định nghĩa ứng với hai số đo:
http://www.ebook.edu.vn 25
- Chi phí nhỏ nhất: Hàm chi phí gồm có chi phí lưu mỗi mảnh Fi tại vị trí Sj, chi phí vấn tin Fi
tại vị trí Sj, chi phí cập nhật Fi tại tất cả mọi vị trí chứa nó và chi phí truyền dữ liệu. Vì thế bài toán
cấp phát cố gắng tìm một lược đồ cấp phát với hàm chi phí tổ hợp thấp nhất.
- Hiệu quả: Chiến lược cấp phát được thiết kế nhằm duy trì một hiệu quả lớn nhất đó là hạ thấp
thời gian đáp ứng và tăng tối đa lưu lượng hệ thống tại mỗi vị trí.
Nói chung bài toán cấp phát tổng quát là bài toán phức tạp, vì thế các nghiên cứu đều tập trung
tìm ra các giải thuật heuristic tốt để có thể có được các lời giải tối ưu. Để phân biệt bài toán cấp
phát tập tin truyền thống với cấp phát mảnh trong các thiết kế CSDL phân tán, chúng ta gọi bài toán
thứ nhất là bài toán cấp phát tập tin, và bài toán sau là bài toán cấp phát CSDL.
Hiện không có một mô hình heuristic tổng quát nào nhận một tập các mảnh và sinh ra một chiến
lược cấp phát gần tối ưu ứng với các loại ràng buộc. Các mô hình đã được phát triển chỉ mới đưa ra
một số giả thiết đơn giản hóa và dễ áp dụng cho một số cách đặt vấn đề cụ thể.
Thông tin cho cấp phát:
Thông tin về CSDL:
Để thực hiện phân mảnh ngang, chúng ta đã định nghĩa độ tuyển hội sơ cấp. Bây giờ chúng ta
cần mở rộng định nghĩa đó cho các mảnh và định nghĩa độ tuyển của một mảnh Fj ứng với câu vấn
tin qi. Đây là số lượng các bộ của Fj cần được truy xuất để xử lý qi. Giá trị này được ký hiệu là
Seli(Fj).
Một loại thông tin khác trên các mảnh là kích thước của chúng. Kích thước một mảnh Fj được
cho bởi: size(Fj) = card(Fj) * Length(Fj)
Trong đó length(Fj) là chiều dài tính theo byte của một bộ trong mảnh Fj
Thông tin về ứng dụng:
Phần lớn các thông tin có liên quan đến ứng dụng đều đã được biên dịch trong khi thực hiện
phân mảnh nhưng cung cần một số ít nữa cho mô hình cấp phát. Hai số liệu quan trọng là số truy
xuất đọc do câu vấn tin qi thực hiện trên mảnh Fj trong mỗi lần chạy của nó – ký hiệu là RRij. Và
tương ứng là các truy xuất cập nhật – ký hiệu là URij.
Chúng ta định nghĩa hai ma trận UM và RM với các phần tử tương ứng uij và rij được đặc tả như
sau
- uij = 1 nếu vấn tin qi có cập nhật mảnh Fj, ngược lại sẽ bằng 0
- rij = 1 nếu vần tin qi cần đọc mảnh Fj, ngược lại sẽ băng 0.
Một vectơ O gồm các giá trị 0(i) cũng được định nghĩa, với 0(i) đặc tả vị trí đưa ra câu vấn tin
qi. Cuối cúng để định nghĩa ràng buộc thời gian đáp ứng, thời gian đáp ứng tối đa được phép của
mỗi ứng dụng cũng cần phải được đặc tả.
Thông tin về vị trí:
Với mỗi vị trí chúng ta cần biết về khả năng lưu trữ và xử lý của nó. Hiển nhiên là những giá trị
này có thể được tính bằng các hàm thích hợp hoặc bằng các phương pháp đánh giá đơn giản. Chi
phí đơn vị để lưu trữ dữ liệu tại các vị trị Sj được ký hiệu là USCj. Cũng cần phải đặc tả số đo chi
phí LPCj là chi phí xử lý một đơn vị công việc tại vị trí Sj. Đơn vị công việc cần phải giống với đơn
vị của RR và UR.
Thông tin về mạng:
http://www.ebook.edu.vn 26
Trong mô hình đang xét, chúng ta giả sử có tồn tại một mạng đơn giản, trong đó chi phí
truyền mỗi bó giữa hai vị trí Si và Sj. Để có thể tính được số lượng thông báo, chúng ta dùng fsize
làm kích thước (tính theo byte) của một bó dữ liệu.
3.2. Kiểm soát dữ liệu ngữ nghĩa
3.2.1. Quản lý khung nhìn
Một trong những ưu điểm của mô hình quan hệ là nó cung cấp được tính độc lập dữ liệu logic
Trong một hệ thống quan hệ, khung nhìn được định nghĩa như là kết quả vấn tin trên quan hệ cơ sở
hoặc quan hệ thực, nhưng không được vật chất hóa như một quan hệ cơ sở, nghĩa là không được lưu
thực sự trong CSDL. Một khung nhìn là một cửa sổ động theo nghĩa là nó phản ánh tất cả mọi cập
nhật trên CSDL. Một lược đồ ngoài có thể được định nghĩa là một tập các khung nhìn. Bên cạnh
việc sử dụng chúng trong lược đồ ngoài, các khung nhìn còn có tác dụng bảo đảm được tính an toàn
dữ liệu bằng một cách rất đơn giản. Nhờ chọn ra một tập con của CSDL, các khung nhìn đã che dấu
đi một số dữ liệu. Nếu người sử dụng chỉ được phép truy xuất CSDL qua các khung nhìn, họ không
thể thấy hoặc thao tác trên các dữ liệu ẩn vì thế chúng được bảo vệ.
Cần chú ý trong môi trường phân tán, một khung nhìn có thể lấy dữ liệu từ các quan hệ phân tán
và việc truy xuất một khung nhìn đòi hỏi phải thực thi câu vấn tin phân tán tương ứng với định
nghĩa khung nhìn.
Khung nhìn trong CSDL phân tán
Các khung nhìn trong hệ thống phân tán có thể được dẫn xuất từ các quan hệ đã phân mảnh
được lưu ở nhiều vị trí khác nhau. Bởi vì khung nhìn có thể được sử dụng làm quan hệ cơ sở trong
các ứng dụng, định nghĩa của chúng phải được lưu trong các thư mục giống như các mô tả của quan
hệ cơ sở. Tùy vào mức độ tự trị của vị trí được đưa ra bởi hệ thống, các định nghĩa khung nhìn có
thể được tập trung tại một vị trí, được nhân bản một phần hoặc toàn bộ. Trong mỗi trường hợp,
thông tin liên kết khung nhìn với vị trí định nghĩa của nó phải được nhân bản. Nếu định nghĩa
khung nhìn không có tại vị trí đưa ra câu vấn tin thì sẽ phải truy xuất từ xa đến vị trí có định nghĩa
khung nhìn đó.
Trong phần trước chúng ta đã xem xét các phân mảnh của quan hệ, xét theo một khía cạnh nào
đó các phân mảnh thực sự rất giống định nghĩa các khung nhìn cụ thể.
3.2.1.1. Khung nhìn trong quản lý tập trung
Phần lớn các hệ quản trị CSQL quan hệ đều sử dụng cơ chế khung nhìn. Một khung nhìn là một
quan hệ được dẫn xuất từ các quan hệ cơ sở như kết quả của một vấn tin quan hệ. Nó được định
nghĩa bằng cách gán tên của khung nhìn cho câu vấn tin.
Ví dụ: Khung nhìn SYSAN (nhân viên phân tích hệ thống) được dẫn xuất từ quan hệ NhanVien
có thể được định nghĩa như sau:
CREATE VIEW SYSAN
AS SELECT MaNV, TenNv FROM NhanVien WHERE ChucVu = “Phân tích hệ thống”
Tác dụng của câu lệnh này là định nghĩa khung nhìn SYSAN, và nó có thể được sử dụng như
một quan hệ cơ sở (bảng).
3.2.1.2. Cập nhật qua các khung nhìn
Khung nhìn có thể được định nghĩa bằng các câu truy vấn phức tạp với các phép chọn, chiếu,
kết nối, các hàm gộp… Và tất cả các khung nhìn có thể được truy xuất như một quan hệ cơ sở,
http://www.ebook.edu.vn 27
nhưng không phải tất cả chúng có khả năng cập nhật. Cập nhật qua khung nhìn chỉ được xử lý tự
động nếu chúng có thể được lan truyền chính xác đến các quan hệ cơ sở. Hiện nay hầu hết các hệ
quản trị CSDL quan hệ hiện đại đều hỗ trợ cập nhật dữ liệu qua khung nhìn bằng cách sử dụng các
cơ chế xử lý ngầm, ví dụ như trigger.
3.2.1.3. Khung nhìn trong CSDL phân tán
Định nghĩa khung nhìn đều giống nhau trong các hệ quản trị CSDL tập trung hay phân tán. Tuy
nhiên khung nhìn trong các hệ thống phân tán có thể được dẫn xuất từ các quan hệ đã được phân
mảnh được lưu ở nhiều vị trí khác nhau. Khi một khung nhìn được định nghĩa, tên và câu vấn tin
truy xuất của nó sẽ được lưu hồ sơ cấu trúc của CSDL.
Bởi vì khung nhìn có thể được sử dụng làm quan hệ cơ sở trong các ứng dụng, định nghĩa của
chúng phải được lưu trong CSDL giống như các quan hệ cơ sở. Tùy thuộc vào mức độ tự trị của vị
trí được đưa ra bởi hệ thống, các định nghĩa khung nhìn có thể được tập trung tại một vị trí, được
nhân bản một phần hoặc toàn bộ. Trong mỗi trường hợp, thông tin liên kết tên khung nhìn với vị trí
định nghĩa của nó phải được nhân bản. Nếu định nghĩa khung nhìn không có tại vị trí định nghĩa
của nó phải được nhân bản. Nếu định nghĩa khung nhìn không có tại vị trí đưa ra câu vấn tin thì sẽ
phải truy xuất từ xa đến vị trí có định nghĩa khung nhìn đó.
3.2.2. An toàn dữ liệu
An toàn CSDL là một nhiện vụ quan trọng của hệ thống CSDL nhằm bảo vệ dữ liệu không bị
truy xuất “bất hợp pháp”. An toàn dữ liệu bao gồm hai vấn đề: bảo vệ dữ liệu và kiểm soát cấp
quyền.
Bảo vệ dữ liệu nhằm tránh cho những người “không có phân sự” hiểu được nội dung vật lý của
dữ liệu. Chức năng này do hệ thống tập tin đảm trách trong các hệ điều hành tập trung và phân tán.
Phương pháp chính là mã hóa dữ liệu, được dùng cho cả các thông tin được lưu trên đĩa lẫn thông
tin trao đổi trên mạng. Dữ liệu đã mã hóa chỉ có thể được “giải mã” bởi những người sử dụng được
quyền.
Kiểm soát cấp quyền phải đảm bảo rằng chỉ những người được phép mới được thực hiện các
thao tác trên CSDL. Những người sử dụng khác nhau có thể có quyền truy xuất đến một lương lớn
dữ liệu dưới sự kiểm soát thống nhất của một hệ thống tập trung hay phân tán. Vì thế các DBMS
phân tán hay tập trung phải có khả năng hạn chế truy xuất một phần dữ liệu đối với một tập con
những người sử dụng.
3.2.2.1. Kiểm soát cấp quyền tập trung
Ba tác nhân chính có liên quan đến việc kiểm soát cấp quyền là: người sử dụng, là người kích
hoạt các chương trình ứng dụng; các thao tác được gắn vào ứng dụng; và các đối tượng CSDL sẽ
được các thao tác tác động.
Kiểm soát cấp quyền bao gồm việc xem bộ ba (người sử dụng, thao tác, đối tượng) có được
phép tiến hành hay không? Một quyền hạn xác định rằng người sử dụng có quyền thực hiện một
thao tác thuộc loại nào trên một đối tượng.
Khai báo một người sử dụng (hay nhóm người sử dụng) với hệ thống thường được thực hiện
bằng một cặp (tên người sử dụng, mật khẩu). Cả tên và mật khẩu đều phải trình ra khi đăng nhập
vào hệ thống. Điều đó ngăn chặn những người không có thẩm quyền xâm nhập vào hệ thống.
Quyền hạn biểu thị mối liên hệ giữa những người sử dụng và một đối tượng ứng với một tập các
thao tác cụ thể. Trong các hệ quản trị CSDL dựa trên SQL, một thao tác là một câu lệnh bậc cao
http://www.ebook.edu.vn 28
như SELECT, INSERT, UPDATE, hoặc DELETE… Các quyền được định nghĩa hoặc thu hồi
bằng các lệnh:
GRANT <thao tác> ON <đối tượng> TO <Người sử dụng>
REVOKE <thao tác> FROM <đối tượng> TO <Người sử dụng>
3.2.2.2. Kiểm soát cấp quyền phân tán
Các vấn đề của kiểm soát cấp quyền trong môi trường phân tán có nguồn gốc từ sự kiện là các
đối tượng và các chủ thể đề phân tán. Những vấn đề này bao gồm: cấp quyền cho người sử dụng ở
xa, quản lý các quy tắc cấp quyền phân tán và việc xử lý các khung nhìn và các nhóm người sử
dụng. Có hai giải pháp cho vấn đề này:
1. Thống tin xác nhận người sử dụng được nhân bản tại tất cả các vị trí trong mạng. Các chương
trình cụ bộ cũng phải chỉ rõ tên và mật khẩu của người sử dụng.
2. Tất cả các vị trí trong hệ thống phân tán cũng nhận diện và xác nhận nhau tương tự như cách
người sử dụng thực hiện. Giao tiếp giữa các vị trí được bảo vệ bằng cách sử dụng mật khẩu của vị
trí. Một khi vị trí đã được xác nhận thì không cần phải xác nhận người sử dụng của chúng.
Các quy tắc cấp quyền phân tán được diễn tả theo cùng phương thức như trong hệ tập trung.
Giống như các định nghĩa khung nhìn, chúng phải được lưu vào trong hồ cơ cấu trúc của CSDL.
Chúng có thể được nhân bản hoàn toàn tại mỗi vị trí hoặc lưu tại các vị trí của các đối tượng cần
truy xuất. Ưu điểm chính của lối tiếp cận nhân bản hoàn toàn là việc cấp quyền có thể được xử lý
bằng kỹ thuật hiểu chỉnh vấn tin vào lúc biên dịch. Giải pháp thứ hai tốt hơn trong trường hợp tính
chất cục bộ của tham chiếu rất cao. Tuy nhiên việc cấp quyền phân tán không thể kiểm soát được
vào lúc biên dịch.
Khung nhìn có thể được xem như các đối tượng của cơ chế cấp quyền. Khung nhìn là những đối
tượng phức tạp, nghĩa là nó được cấp tạo bởi những đối tượng cơ sở khác. Vì thế trao quyền truy
xuất đến một khung nhìn được dịch thành trao quyền truy xuất đến các đối tượng cơ sở. Nếu định
nghĩa khung nhìn và các quy tắc cấp quyền được nhân bản hoàn toàn thì việc biên dịch này khá đơn
giản và có thể thực hiện tại chỗ.
Nhóm các người sử dụng dùng cấp quyền chung làm đơn giản công việc quản lý CSDL phân
tán. Trong các DBMS tập trung, khái niệm “mọi người sử dụng” có thể được xem là nhóm công
cộng. Trong môi trường phân tán, nhóm công cộng biểu thị cho tất cả mọi người sử dụng của hệ
thống. Tuy nhiên, người ta thường đưa ra một mức trung gian nhằm mô tả nhóm công cộng tại một
vị trí cụ thể.
Quản lý các nhóm trong môi trường phân tán đặt ra một số vấn đề phải giải quyết bởi vì các chủ
thể của một nhóm có thể cư ngụ tại nhiều vị trí khác nhau và quyền truy xuất đến một đối tượng có
thể được trao cho nhiều nhóm, mà bản thân chúng lại phân tán. Nếu thông tin của nhóm và các quy
tắc cấp quyền được nhân bản hoàn toàn tại tất cả mọi vị trí thì việc duy trì quyền truy xuất tương tự
như trong hệ thống tập trung. Tuy nhiên việc duy trì các bản sao này hết sức tốn kém.
3.3. Quản lý giao dịch và điểu khiền đồng thời phân tán
3.3.1. Các khái niệm cơ bản về giao dịch
Giao dịch là một lần thực hiện chương trình. Đôi khi để biểu thị một giao dịch T ta viết T:
begin…end. Giữa begin và end là những bước cơ bản của giao dịch. Chương trình này có thể là một
câu vấn tin hoặc một chương trình ngôn ngữ chủ với các lời gọi được gắn vào một câu vấn tin. Có
http://www.ebook.edu.vn 29
nhiều thực hiện độc lập của cùng một chương trình T được tiến hành đồng thời ở nhiều vị trí
khác nhau trên mạng; mỗi thực hiện này là một giao dịch khác nhau.
Một giao dịch sẽ đọc dữ liệu và ghi dữ liệu vào CSDL, qua một vùng làm việc riêng (private) –
gọi là vùng bộ nhớ tính toán tạm thời. Cụ thể là các tính toán do giao dịch thực hiện sẽ không có tác
dụng trên CSDL cho đến khi các giá trị mới được ghi vào CSDL.
Ví dụ chúng ta có giao dịch T:
Begin
Read A
A = A + 100
Read A
A = A + 2
Write A
End
Khi đó trong CSDL giá trị của A chỉ được tăng lên 2, vì phép toán A = A + 100 chỉ làm việc
trong vùng bộ nhớ tính toán tạm thời.
3.3.1.1. Tính nguyên tử
Trên quan điểm về quản lý được, quản lý giao dịch là một có gắp nhằm làm cho các thao tác
phức tạp xuất hiện dưới dạng các nguyên tử. Nghĩa là thao tác xảy ra trọn vẹn hoặc không xảy ra.
Nếu xảy ra, không có biến cố hay giao dịch nào cùng xảy ra trong suốt thời gian tồn tại của nó. Mỗi
nguyên tử về sau ta sẽ gọi là một bước cơ bản hoặc một thao tác cơ bản. Cách thông dụng nhằm
đảm bảo được tính nguyên tử của các giao dịch là phương pháp tuần tự hóa. Phương pháp này làm
cho các giao dịch được thực hiện một cách tuần tự. Một giao dịch không có tính nguyên tử nếu:
1, Trong hệ thống phân chia thời gian, thời gian cho giao dịch T có thê kết thúc trong khi T
đang tính toán và các hoạt động của một giao dịch khác sẽ được thực hiện trước khi T hoàn tất.
2, Một giao dịch có thể không hoàn tất được, chẳng hạn có khi nó phải chấm dứt giữa chứng, có
thể vì nó thực hiện một phép tính không hợp lệ (ví dụ phép chia cho 0), hoặc có thể do nó đòi hỏi
những dữ liệu không được quyền truy xuất. Bản thân hệ thống CSDL có thể buộc giao dịch này
ngừng lại vì nhiều lý do. Chẳng hạn giao dịch đó có thể bị kẹt trong một khóa “cứng” (deadlock)
Trong trường hợp (1), nhiệm vụ của hệ thống CSDL là phải bảo đảm rằng cho dù bất kỳ điều gì
xảy ra ngay giữa một giao dịch, tác dụng của giao dịch trên CSDL không bị ảnh hưởng của những
biến cố bất ngờ này. Trong trường hợp (2), hệ thống phải bảo đảm rằng giao dịch bị hủy bỏ không
ảnh hường gì trên CSDL hoặc các giao dịch khác
Trong thực tế, mỗi giao dịch đều có một chuỗi các bước cơ bản như: đọc hay ghi một mục dữ
liệu vào CSDL hoặc thực hiện các phép toán số học đơn giản trong vùng làm việc riêng, hoặc
những bước sơ đẳng khác như các bước khóa, mở khóa, ủy thác hoàn tất giao dịch… Chúng ta luôn
giả sử rằng những bước sở đằng này là nguyên tử. Thậm chí thao tác tính toán kết thúc sau khi thời
gian dành cho nó đã hết cũng có thể xem là nguyên tử, bởi vì các phép tính toán xảy ra khi đang
làm việc trong vùng dữ liệu cục bộ và không thể ảnh hưởng đến vùng làm việc đó cho đến khi giao
dịch đang thực hiện dở phép tính số học được tái hoạt động trở lại.
3.3.1.2. Mục dữ liệu
http://www.ebook.edu.vn 30
Để quản lý các hoạt động đồng thời, CSDL phải được phân nhỏ thành các mục dữ liệu, đó là
những đơn vị dữ liệu cần được truy xuất có điều khiển. Bản chất và kích thước các mục dữ liệu do
nhà thiết kế hệ thống chọn lựa. Chẳng hạn trong mô hình dữ liệu quan hệ, chúng ta có thể chọn các
mục lớn như các quan hệ, hoặc các mục nhỏ như các bộ hay thành phần của các bộ. Chúng ta cũng
có thể chọn lựa các mục có kích thước trung gian, như một khối của quan hệ. Kích thước của các
mục dữ liệu được hệ thống sử dụng gọi là độ mịn của hệ thống. Một hệ thống được gọi là hạt mịn,
nếu nó sử dụng các mục dữ liệu nhỏ và hệ thống là hạt thô nếu nó sử dụng các mục dữ liệu lớn.
Phương pháp thông dụng nhất để điều khiển việc truy xuất các mục là sử dụng khóa. Bộ quản lý
khóa là thành phần của hệ quản trị chịu trách nhiệm theo dõi xem một mục I hiện có giao dịch nào
đang đọc ghi vào các phần của I hay không. Nếu có thì bộ quản lý khóa sẽ ngăn cản không cho các
giao dịch khác truy xuất I trong trường hợp truy xuất đó có thể gây ra xung đột.
Chọn chế độ hạt thô sẽ làm giảm đi tổng chi phí cần để duy trì các khóa, bởi vì chúng ta cần ít
chỗ để lưu các khóa, và chúng ta tiết kiệm được thời gian bởi vì hệ thống chỉ phải thực hiện rất ít
hành động đóng mở khóa. Tuy nhiện độ hạt mịn cho phép nhiều giao dịch hoạt động song song, bởi
vì xác xuất các giao dịch yêu cầu khóa trên cùng một mục sẽ thấp.
3.3.1.3. Khóa
Như chúng ta đã khẳng định, khóa là một đặc quyền truy xuất trên một mục dữ liệu mà bộ quản
lý khóa có thể trao cho một giao dịch hay thu hồi lại. Có thể có nhiều kiểu khóa, ví dụ như khóa
đọc, khóa ghi… Thông thường tại mỗi thời điểm, chỉ có một tập con các mục bị khóa, vì vậy bộ
quản lý khóa có thể lưu các khóa hiện hành trong một bảng khóa vơi các mẫu tin: (I, L, T) – giao
dịch T có một khóa kiểu L trên mục I.
3.3.1.4. Kiểm soát hoạt động đồng thời bằng khóa
Để thấy được nhu cầu phải sử dụng khóa chúng ta xem xét ví dụ sau đây:
Xét hai giao dịch T1 và T2. Mỗi giao dịch truy xuất một mục dữ liệu A được giả sử là mang giá
trị nguyên, rồi cộng thêm 1 vào A. hai giao dịch này thực hiện chương trình P.
P: Begin
Read A
A = A + 1
Write A
End
Chúng ta thực hiện hai giao dịch T1 và T2 như sau:
A trong csdl 5 5 5 5 6 6
T1 Read A A = A + 1 Write A
T2 Read A A = A + 1 Write A
A trong vùng làm việc của T1 5 5 6 6 6 6
A trong vùng làm việc của T2 5 5 5 6 6
Giá trị của A tồn tại trong CSDL, với mỗi giao dịch P đọc A vào vùng làm việc, cộng 1 vào giá
trị này rồi ghi kết quả vào trong CSDL. Chúng ta nhận thấy rằng, mặc dù hai giao dịch đều đã cộng
thêm 1 vào A, giá trị của A trong CSDL chỉ tăng 1.
Giải pháp thông dụng nhất cho vấn đề được trình bày trong ví dụ trên là cung cấp một khóa trên
A. Trước khi đọc A, một giao dịch T phải khóa A lại, ngăn cản không cho giao dịch khác truy xuất
A cho đến khi T hoàn tất xong thao tác trên A. Hơn nữa T khóa được mục A chỉ khi trước đó A
http://www.ebook.edu.vn 31
không bị khóa bởi một giao dịch khác. Nếu A đã bị khóa, T phải đợi đến khi giao dịch mở khóa
cho A.
Vậy để ngăn cản những trường hợp đáng tiếc xẩy ra ta phải dùng khóa. Như vậy trong những
chương trình giao dịch phải có khóa và mở khóa. Ta giả sử rằng một khóa phải được đặt trên một
mục trước khi đọc hay ghi nó, và thao tác khóa hành động như một hàm đồng bộ hóa. Nghĩa là nếu
một giao dịch khóa một mục đã được khóa, nó không thể tiến hành cho đến khi khóa này được giải
phóng bằng một lệnh mở khóa được thực hiện bởi giao dịch đang giữ khóa. Ta cũng giả sử rằng
mỗi giao dịch đều có thể mở được mọi khóa do chính nó khóa. Một lịch biểu chứa cá thao tác cơ
bản của nhiều giao dịch tuân theo các quy tắc của khóa được gọi là hợp lệ.
Ví dụ:
Chương trình P của ví dụ trên được viết lại với các khóa như sau:
P: begin
Lock A
Read A
A = A + 1
Write A
Unlock A
End
Giả sử T1 và T2 là hai giao dịch thực hiện P. Nếu T1 bắt đầu trước, nó yêu cầu khóa trên A. Giả
sử rằng không có giao dịch nào đang khóa, bộ quản lý khóa sẽ cho nó khóa mục A. Bây giờ chỉ có
T1 mới có thể truy xuất A, nếu T2 bắt đầu trước khi T1 chấm dứt thì khi T2 thực hiện lệnh khóa A,
hệ thống buộc T2 phải đợi. Chi khi T1 thực hiện lệnh Unlock A, hệ thống mới cho phép T2 tiến
hành. Kết quả là điều bất thường không xảy ra; T1 hoặc T2 sẽ hoàn tất trước khi giao dịch kia bắt
đầu, và kết quả chung của chúng là cộng 2 vào A.
3.3.1.5. Khóa sống (livelock)
Hệ thống quản lý khóa trao và buộc khóa các mục dữ liệu không thể hoạt động một cách tùy
tiện. Giả sử trong ví dụ trên, khi T1 giải phóng khóa trên A, trong khi T2 đang đợi nhận khóa, một
giao dịch T3 khác cùng xin một khóa trên A, và T3 được trao khóa này trước T2. Tương tự sau khi
T3 mở khóa cho A thì lại có giao dịch T4 xin khóa A… Và rất có thể T2 phải đợi rất lâu hoặc
không bao giờ nhận được khóa trên A.
Tình huống này gọi là khóa sống. Vậy khóa sống trên mục A của giao dịch T là T không khóa
được A vì A luôn bị khóa bởi một giao dịch khác. Rất nhiều giải pháp đã được các nhà thiết kế hệ
điều hành đề xuất để giải quyết vấn đề khóa sống, ví dụ như các giao dịch khi khóa một mục phải
đăng ký thứ tự, và bộ quản lý khóa sẽ lần lượt trao quyền khóa mục A khi mục này không bị khóa
theo thứ tự đã xác định trước.
3.3.1.6. Khóa “cứng” (deadlock)
Một vấn đề khác có thể xẩy ra trong điều khiển các hoạt động đồng thời, đó là vấn đề khóa
“cứng” (deadlock). Đó là các giao dịch khóa chéo lẫn nhau các mục cần để hoàn thiện giao dịch.
Ví dụ:
Giả sử chúng ta có hai giao dịch đồng thời T1 và T2 như sau:
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf
baigiangcosodulieunangcao.pdf

Contenu connexe

Similaire à baigiangcosodulieunangcao.pdf

Suy diễn trên mô hình bản thể học và ứng dụng.pdf
Suy diễn trên mô hình bản thể học và ứng dụng.pdfSuy diễn trên mô hình bản thể học và ứng dụng.pdf
Suy diễn trên mô hình bản thể học và ứng dụng.pdfHanaTiti
 
Giáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCM
Giáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCMGiáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCM
Giáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCMTai Thỏ
 
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdfVHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdfPhongChn2
 
ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222
ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222
ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222vinhduchanh
 
Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...
Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...
Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...sividocz
 
LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...
LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...
LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...OnTimeVitThu
 
Khai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdfKhai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdfTri Huynh Minh
 
NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...
NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...
NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...nataliej4
 
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...jackjohn45
 
Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdf
Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdfTruy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdf
Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdfMan_Ebook
 
Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...
Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...
Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...
Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...
Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...sividocz
 
Luận Văn Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.docLuận Văn  Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.docsividocz
 
Luận Văn Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...
Luận Văn  Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...Luận Văn  Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...
Luận Văn Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...sividocz
 
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
Luận Văn  Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...Luận Văn  Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...sividocz
 
Do an lythuyet
Do an lythuyetDo an lythuyet
Do an lythuyetPhan_Oanh
 

Similaire à baigiangcosodulieunangcao.pdf (20)

Suy diễn trên mô hình bản thể học và ứng dụng.pdf
Suy diễn trên mô hình bản thể học và ứng dụng.pdfSuy diễn trên mô hình bản thể học và ứng dụng.pdf
Suy diễn trên mô hình bản thể học và ứng dụng.pdf
 
Luận văn: Suy diễn trên mô hình bản thể học và ứng dụng, HAY
Luận văn: Suy diễn trên mô hình bản thể học và ứng dụng, HAYLuận văn: Suy diễn trên mô hình bản thể học và ứng dụng, HAY
Luận văn: Suy diễn trên mô hình bản thể học và ứng dụng, HAY
 
Giáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCM
Giáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCMGiáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCM
Giáo trình môn Cơ sở dữ liệu trường Đại học CNTP TP.HCM
 
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdfVHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
VHU-Tap Bai Giang Co So Du Lieu CNTT.pdf
 
ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222
ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222
ĐỀ CƯƠNG CHI TIẾT CTDL&GT TINH.222
 
Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...
Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...
Luận Văn Xây Dựng Trang Web Cho Hợp Tác Xã Nông Nghiệp Và Du Lịch Cộng Đồng C...
 
LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...
LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...
LUẬN VĂN THẠC SĨ: QUẢN LÝ HOẠT ĐỘNG NGHIÊN CỨU KHOA HỌC SƯ PHẠM ỨNG DỤNG CỦA ...
 
Khai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdfKhai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdf
 
Đề tài trực hóa dữ liệu GIS theo thời gian, ĐIỂM 8, HOT
Đề tài  trực hóa dữ liệu GIS theo thời gian, ĐIỂM 8, HOTĐề tài  trực hóa dữ liệu GIS theo thời gian, ĐIỂM 8, HOT
Đề tài trực hóa dữ liệu GIS theo thời gian, ĐIỂM 8, HOT
 
NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...
NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...
NGHIÊN CỨU XÂY DỰNG BÀI GIẢNG E-LEARNING VÀ SỬ DỤNG TRONG DẠY HỌC ĐỊA LÍ 11 T...
 
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
Nghiên cứu xây dựng bài giảng e learning và sử dụng trong dạy học địa lí 11 t...
 
Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdf
Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdfTruy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdf
Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn.pdf
 
Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...
Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...
Luận án: Đánh chỉ số cho tài liệu XML tin sinh học dựa trên r-tree - Gửi miễn...
 
Đề tài: Xây dựng hệ thống bài tập Vật lý phần Điện học - lớp 11
Đề tài: Xây dựng hệ thống bài tập Vật lý phần Điện học - lớp 11Đề tài: Xây dựng hệ thống bài tập Vật lý phần Điện học - lớp 11
Đề tài: Xây dựng hệ thống bài tập Vật lý phần Điện học - lớp 11
 
Luận văn: Nghiên cứu mô hình phân lớp câu hỏi và ứng dụng, 9đ
Luận văn: Nghiên cứu mô hình phân lớp câu hỏi và ứng dụng, 9đLuận văn: Nghiên cứu mô hình phân lớp câu hỏi và ứng dụng, 9đ
Luận văn: Nghiên cứu mô hình phân lớp câu hỏi và ứng dụng, 9đ
 
Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...
Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...
Luận Văn Xây Dựng Chương Trình Quản Lý Bán Lẻ Cho Siêu Thị Mini Huong Mart Ở ...
 
Luận Văn Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.docLuận Văn  Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Nguyên Lý Hệ Điều Hành.doc
 
Luận Văn Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...
Luận Văn  Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...Luận Văn  Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...
Luận Văn Đề Cương Công Nghệ Thông Tin Phân Tích Thiết Kế Hệ Thống Thông Tin ...
 
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
Luận Văn  Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...Luận Văn  Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
 
Do an lythuyet
Do an lythuyetDo an lythuyet
Do an lythuyet
 

baigiangcosodulieunangcao.pdf

  • 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 triển 3 3 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 ngữ 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ính 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 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 hiệ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. Sơ đồ Hình chữ nhật Hình tam giác Hình tròn Hình vuông Tam giác đều
  • 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 Ri. 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
  • 21. http://www.ebook.edu.vn 20 CSDL, và các đặc tính của hệ thống máy tính tại mỗi vị trí đều có ảnh hưởng đến các quyết định phân tán. 3.1.2. Phân mảnh ngang Trong phần ngày chúng ta sẽ bàn đến hai chiến lược phân mảnh: - Phân mảnh ngang nguyên thủy: Phân mảnh ngang nguyên thủy của một quan hệ được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ đó. - Phân mảnh ngang dẫn xuất: Là phân mảnh một quan hệ dựa vào các vị từ được định nghĩa trên một quan hệ khác. 3.1.2.1. Yêu cầu thông tin của phân mảnh ngang. 1. Thông tin về CSDL Thông tin về CSDL là lược đồ toàn cục và các quan hệ gốc. Trong ngữ cảnh này chúng ta cần biết được các quan hệ sẽ kết lại với nhau bằng phép kết nối hay phép tính khác. Để thể hiện người ta thường dụng mô hình thực thể để biểu diễn các quan hệ với các mỗi liên kết giữa chúng. Thông tin định lượng cần có là lực lượng của mỗi quan hệ R, đó là số bộ có trong R được ký hiệu là card(R). 2. Thông tin về ứng dụng Để phân tán ngoài thông tin định lượng Card(R) ta còn cần thông tin định tính cơ bản gồm các vị từ được dùng trong các câu vấn tin. Lượng thông tin này phụ thuộc vào bài toán cụ thể. Cho lược đồ quan hệ R(U), U = A1, A2,…, AN trong đó mỗi Ai là một thuộc tính có miền giá trị dom(Ai). Một vị từ đơn giản P được định nghĩa trên R có dạng: P: Ai  <giá trị> Trong đó   {=, <, <=, >=, >, <>}, Ai là một thuộc tính, <giá trị>  dom(Ai). Như vậy cho trước một lược đồ R, nếu các miền giá trị dom(Ai) là hữu hạn chúng ta có thể xác định được tập tất cả các vị từ đơn giản trên R. Ví dụ: Với hình 3.1. các vị từ đơn giản của quan hệ DuAn: P1: Ten = “Bảo trì” P2: KinhPhi <= 200000 Trong các bài toán thức tế các câu vấn tin thường chứa nhiều vị từ phức tạp hơn, là tổ hợp của các vị từ đơn giản. Ví dụ vị từ hội sơ cấp của các vị từ đơn giản. Bởi một biểu thức boolean luôn có thê biến đổi được thành dạng chuẩn hội cho nên chúng ta sử dụng hội sơ cấp để biểu diễn các vị từ phức tạp. Cho lược đồ quan hệ R(U), U = A1, A2,…, AN trong đó mỗi Ai là một thuộc tính có miền giá trị dom(Ai). Pr = {p1, p2,…, pt}. Tập các vị từ hội sơ cấp M = {m1, m2,…, mk} được định nghĩa như sau: mi =  p’ j với 1  j  t Trong đó p’ j = pj hoặc p’ j = pj Lưu ý: Phép lấy phủ định một vị từ không phải lúc nào cũng thực hiện được. Theo những thông tin định tính về các ứng dụng chúng ta cần biết hai tập dữ liệu:
  • 22. http://www.ebook.edu.vn 21 1.. Số lượng các bộ có quan hệ sẽ được truy xuất bởi câu vấn tin được đặc tả theo một vị từ hội sơ cấp đã cho. 3. Tần số truy xuất và trong một số trường hợp là số truy xuất. Nếu Q = {q1, q2,…, qN} là các câu vấn tin, acc(qi) biểu thị cho số truy xuất của qi trong một khoảng thời gian đã cho hoặc trong quan hệ cụ thể. 3.1.2.2. Phân mảnh ngang nguyên thủy. Phân mảnh ngang nguyên thủy được định nghĩa bằng một phép toán chọn trên các quan hệ chủ của một lược đồ CSDL. Vì thế cho quan hệ R, các mảnh ngang của R là các Ri với Ri = R(Ei), 1  i  k Trong đó Ei là công thức chọn (hội sơ cấp) được sử dụng để có thể có được mảnh Ri. Chú ý rằng nếu Ei có dạng chuẩn hội, nó là một vị từ hội sơ cấp mi. Ri là các bộ của R thỏa mãn Ei. Ví dụ: Phân rã quan hệ DuAn thành các mảnh ngang DuAn1, DuAn2 trong hình 3.1. được định nghĩa như sau: DuAn1 = DuAn(KinhPhi  200000) DuAn2 = DuAn(KinhPhi > 200000) Một mảnh ngang Ri của quan hệ R có chứa tất cả các bộ R thỏa vị từ hội sơ cấp mi. Vì vậy cho một tập các vị từ hội sơ cấp M, số lượng các mảnh ngang cũng bằng số lượng các vị từ hội sơ cấp (tất nhiên một mảnh ngang có thể rỗng nếu vị từ không truy xuất đến bộ nào của quan hệ, các mảnh ngang có thể bằng nhau nếu các vị từ tương đương). Tập các mảnh ngang này cũng thường được gọi là tập các mảnh hội sơ cấp. Rõ ràng việc định nghĩa các mảnh ngang phụ thuộc vào cá vị từ hội sơ cấp. Vì thế bước đầu tiên của mọi thuật toán phân mảnh là phải xác định tập các vị từ đơn giản sẽ tạo ra các vị từ hội sơ cấp. Tập vi từ này nói chung phụ thuộc vào mục tiêu và yêu cầu của bài toán. Một số khái niệm quan trọng của các vị từ đơn giản là tính đầy đủ và cực tiểu của tập các vị từ. Tập các vị từ đơn giản Pr được gọi là đầy đủ nếu và chỉ nếu xác suất của mỗi bộ của R(hoặc của các mảnh Ri) được truy xuất bởi các vị từ p  Pr đều bằng nhau. Lý do cần phải bảo đảm tính đầy đủ là vì các mảnh thu được theo tập vị từ đầy đủ sẽ nhất quán về mặt logic do tất cả chúng đều thỏa vị từ hội sơ cấp. Chúng cũng đồng nhất và đầy đủ về mặt thống kê theo cách mà ứng dụng truy xuất chúng. Đặc tính thứ hai của tập vị từ là tính cực tiểu. Đây là một đặc tính cảm tính. Vị từ đơn giản phái có liên đới trong việc xác định một phân mảnh. Một vị từ mà không tham gia vào một tập phân mảnh nào thì có thể coi vị từ đó là thừa. Nếu tất cả các vị từ của Pr đều có liên đới và không có các vị từ tương đương thì Pr là cựu tiểu. Chúng ta quy ước: Thuật toán 3.1. COM-MIN Thuật toán tìm tập vị từ đầy đủ và cực tiểu Vào: Quan hệ R, tập các vị từ đơn giản Pr Ra: Pr’ – tập các vị từ đơn giản đầy đủ và cực tiểu Phương pháp:
  • 23. http://www.ebook.edu.vn 22 0. Gọi F tập các mảnh hội sơ cấp Pr’ = , F =  1. p  Pr, nếu p phân hoạch R theo quy tắc 1 - Pr’ = Pr’  {p} - Pr = Pr – {p} - F = F  {f} với f là một mảnh hội sơ cấp theo p 2. p  Pr nếu p phân hoạch một mảnh f  F theo quy tắc 1 - Pr’ = Pr’  {p} - Pr = Pr – {p} - F = F  {f} với f là một mảnh hội sơ cấp theo p Lặp lại bước 2 cho đến khi nào không p  Pr’ phân hoạch một mảnh f  F 3. p  Pr’ nếu p’ mà p tương đương với p’ - Pr’ = Pr’ – {p} - F = F – {f} với f là một mảnh hội sơ cấp theo p Sau bước 3 Pr’ là tập vị từ đầy đủ và tối thiểu cần tìm. Bước tiếp theo của thiết kế phân mảnh ngang nguyên thủy là suy dẫn ra tập các vị từ hội sơ cấp có thể được định nghĩa trên các vị từ trong tập Pr’. Các vị từ hội sơ cấp này xác định các mảnh cho bước cấp phát. Bước cuối của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa. Điều này được thực hiện bằng cách xác định những vị từ mâu thuẫn với tập các phép kéo theo I. Chẳng hạn, nếu Pr’ = (P1, P2), trong đó P1: A = giá trị 1 P2: A = giá trị 2 Và miền biến thiên của A là {giá trị 1, giá trị 2} rõ ràng I chứa hai phép kéo theo với khẳng định: i1: (A = giá trị 1)   (A = giá trị 2) i2: (A = giá trị 1)  (A = giá trị 2) Bốn vị từ hội sơ cấp sau đây được định nghĩa theo Pr’ m1: (A = giá trị 1)  (A = giá trị 2) m2: (A = giá trị 1)  (A = giá trị 2) m3: (A = giá trị 1)  (A = giá trị 2) m4: (A = giá trị 1)  (A = giá trị 2) Trong trường hợp này các vị từ hội sơ cấp m1 và m4 mâu thuẫn với phép kéo theo I và vì thế bị loại khỏi M Thuật toán 3.2. Thuật toán phân mảnh ngang nguyên thủy
  • 24. http://www.ebook.edu.vn 23 Vào: Quan hệ R, tập các vị từ đơn giản Pr Ra: M – tập các vị từ hội sơ cấp Phương pháp: 0. Pr’ = COM-MIN(R,Pr) Xác định tập M các vị từ hội sơ cấp Xác định tập I các phép kéo theo giữa các Pi  Pr’ 1. mi  M nếu mi mâu thuẫn với I M = M – {mi} Sau bước này M là tập các vị từ hội sơ cấp. 3.1.2.3. Phân mảnh ngang dẫn xuất Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của một đường nối dựa theo phép toán chọn trên quan hệ chủ nhân của đường nối đó. Như thế nếu cho trước một liên kết L, trong đó owner(L) = S và member(L) = R, các mảnh ngang dẫn xuất của R được định nghĩa là: Ri = R Si, 1  i  k Trong đó k là số lượng các mảnh được định nghĩa trên R, và Si = S(Ei), với Ei là công thức định nghĩa phân mảnh ngang nguyên thủy Si. Ví dụ: Xét liên kết giữa bảng Luong và NhanVien. Chúng ta có thể nhóm các nhân viên thành hai nhóm tùy theo lương. Giả sử nhóm có lượng từ 4000$ trở xuống và nhóm lương trên 4000$. Hai mảnh NhanVien1 và NhanVien2 được định nghĩa như sau: NhanVien1 = NhanVien Luong1 NhanVien2 = NhanVien Luong2 Trong đó Luong1 = Luong(Luong  4000) Luong2 = Luong(Luong > 4000) Kết quả thu được như sau: NhanVien1 NhanVien2 MaNV Ten ChucVu MaNV Ten ChucVu E1 Hoàng Lan Ks Điện E2 Đình Vượng Phân tích hệ thống E3 Minh Tài Ks Máy E4 Dương Hà Lập trình viên E6 Văn Hiền Ks Điện E5 Minh Hoa Phân tích hệ thống E7 Hoài Nam Ks Máy E8 Vân Dũng Phân tích hệ thống Muốn thực hiện phân mảnh ngang dẫn xuất chúng ta cần ba nguyên liệu: Tập các phân hoạch của quan hệ chủ (chẳng hạn Luong1 và Luong2 trong ví dụ trên), quan hệ thành viên, và tập các vị từ nối giữa quan hệ chủ và quan hệ thành viên (chẳng hạn NhanVien.ChucVu = Luong.ChucVu). Cũng có một vấn đề phức tạp phải chú ý, trong lược đồ CSDL chúng ta hay gặp nhiều đường nối đến một quan hệ R. Như thế có thể có nhiều cách phân mảnh ngang dẫn xuất cho R. Quyết định chọn cách phân mảnh nào cần dựa trên hai tiêu chuẩn sau: 1. Phân mảnh có đặc tính nối tốt hơn; 2. Phân mảnh được sử dụng trong nhiều ứng dụng hơn.
  • 25. http://www.ebook.edu.vn 24 3.1.2.4. Kiểm tra tính đúng đắn của phân mảnh ngang 1. Tính đầy đủ Tính đầy đủ của một phân mảnh ngang nguyên thủy dựa vào các vị từ chọn được dùng. Với điều kiện các vị từ chọn là đầy đủ, phân mảnh thu được cung được bảo đảm là đầy đủ, bởi vì cơ sở của thuật toán phân mảnh là một tập các vị từ cực tiểu và đầy đủ. Tính đầy đủ sẽ được bảo đảm với điều kiện là không có sai sót xẩy ra khi định nghĩa tập vị từ đầy đủ và cực tiểu Pr. Tính đầy đủ của phân mảnh ngang dẫn xuất có hơi khác. Khó khăn là do vị từ định nghĩa phân mảnh có liên quan đến hai quan hệ. Gọi R là quan hệ thành viên của một liên kết mà chủ là quan hệ S được phân mảnh thành Fs = {S1, S2,…, SN}. A là thuộc tính nối giữa R và S. Vậy đối với mỗi bộ t của R, phải có một bộ t’ sao cho t.A = t’.A Quy tắc này được gọi là ràng buộc toàn vẹn hay toàn vẹn tham chiếu, bảo đảm mọi bộ trong các mảnh của quan hệ thành viên đều nằm trong quan hệ chủ. 2. Tính tái thiết được Tái thiết một quan hệ toàn cục từ các mảnh được thực hiện bằng toán tử hợp trong cả phân mảnh ngang nguyên thủy lẫn dẫn xuất. Vì thế một quan hệ R với phân mảnh FR = {R1, R2,…, RN}, chúng ta có R =  Ri, Ri  FR. 3. Tính tách biệt Chúng ta có thể dễ dạng thấy rằng tính tách rời của phân mảnh nguyên thủy là rõ ràng theo cách phân mảnh của ta. Với phân mảnh dẫn xuất, tính tách rời sẽ được bảo đảm nếu các vị từ hội sơ cấp xác đinh phân mảnh có tính loài trừ lẫn nhau. 3.1.3. Phân mảnh dọc. Phân mảnh dọc một quan hệ r sẽ sinh ra các mảnh r1, r2,…, rN mỗi mảnh chứa một tập con thuộc tính của R và cả khóa của r. Mục đích của phân mảnh dọc là phân hoạch một quan hệ thành một tập các quan hệ nhỏ hơn để nhiều ứng dụng có thể chỉ chạy trên một quan hệ. Trong ngữ cảnh này, một phân mảnh tối ưu là một phân mảnh sinh ra một lược đồ phân mảnh cho phép giảm đến tối da thời gian thực thi các ứng dụng chạy trên các mảnh đó. Phân mảnh dọc đã được nghiên cứu trong ngữ cảnh của các hệ CSDL tập trung. Lý do chính là sử dụng nó làm một công cụ thiết kế cho phép các vấn tin làm việc trên các quan hệ nhỏ hơn vì thế giảm bớt số truy xuất và tiết kiệm bộ nhớ. Một trong số các phương pháp phân mảnh dọc đã nghiên cứu trong mô hình CSDL quan hệ là việc chuẩn hóa các quan hệ về các dạng chuẩn cấp cao. Bên cạnh phương pháp chuẩn hóa các quan hệ còn có những phương pháp khác và chúng thường gắn với mục tiêu của bài toán. 3.1.4. Cấp phát. Bài toán cấp phát: Giả sử rằng có một tập các mảnh F = {F1, F2,…, FN} và một mạng máy tính bao gồm các vị trị S = {S1, S2,…, SM} trên đó có một tập các ứng dụng dạng Q = {q1, q2,…, qk} đang chạy. Bài toán cấp phát là tìm một phân phối “tối ưu” của F cho S. Tính tối ưu có thể được định nghĩa ứng với hai số đo:
  • 26. http://www.ebook.edu.vn 25 - Chi phí nhỏ nhất: Hàm chi phí gồm có chi phí lưu mỗi mảnh Fi tại vị trí Sj, chi phí vấn tin Fi tại vị trí Sj, chi phí cập nhật Fi tại tất cả mọi vị trí chứa nó và chi phí truyền dữ liệu. Vì thế bài toán cấp phát cố gắng tìm một lược đồ cấp phát với hàm chi phí tổ hợp thấp nhất. - Hiệu quả: Chiến lược cấp phát được thiết kế nhằm duy trì một hiệu quả lớn nhất đó là hạ thấp thời gian đáp ứng và tăng tối đa lưu lượng hệ thống tại mỗi vị trí. Nói chung bài toán cấp phát tổng quát là bài toán phức tạp, vì thế các nghiên cứu đều tập trung tìm ra các giải thuật heuristic tốt để có thể có được các lời giải tối ưu. Để phân biệt bài toán cấp phát tập tin truyền thống với cấp phát mảnh trong các thiết kế CSDL phân tán, chúng ta gọi bài toán thứ nhất là bài toán cấp phát tập tin, và bài toán sau là bài toán cấp phát CSDL. Hiện không có một mô hình heuristic tổng quát nào nhận một tập các mảnh và sinh ra một chiến lược cấp phát gần tối ưu ứng với các loại ràng buộc. Các mô hình đã được phát triển chỉ mới đưa ra một số giả thiết đơn giản hóa và dễ áp dụng cho một số cách đặt vấn đề cụ thể. Thông tin cho cấp phát: Thông tin về CSDL: Để thực hiện phân mảnh ngang, chúng ta đã định nghĩa độ tuyển hội sơ cấp. Bây giờ chúng ta cần mở rộng định nghĩa đó cho các mảnh và định nghĩa độ tuyển của một mảnh Fj ứng với câu vấn tin qi. Đây là số lượng các bộ của Fj cần được truy xuất để xử lý qi. Giá trị này được ký hiệu là Seli(Fj). Một loại thông tin khác trên các mảnh là kích thước của chúng. Kích thước một mảnh Fj được cho bởi: size(Fj) = card(Fj) * Length(Fj) Trong đó length(Fj) là chiều dài tính theo byte của một bộ trong mảnh Fj Thông tin về ứng dụng: Phần lớn các thông tin có liên quan đến ứng dụng đều đã được biên dịch trong khi thực hiện phân mảnh nhưng cung cần một số ít nữa cho mô hình cấp phát. Hai số liệu quan trọng là số truy xuất đọc do câu vấn tin qi thực hiện trên mảnh Fj trong mỗi lần chạy của nó – ký hiệu là RRij. Và tương ứng là các truy xuất cập nhật – ký hiệu là URij. Chúng ta định nghĩa hai ma trận UM và RM với các phần tử tương ứng uij và rij được đặc tả như sau - uij = 1 nếu vấn tin qi có cập nhật mảnh Fj, ngược lại sẽ bằng 0 - rij = 1 nếu vần tin qi cần đọc mảnh Fj, ngược lại sẽ băng 0. Một vectơ O gồm các giá trị 0(i) cũng được định nghĩa, với 0(i) đặc tả vị trí đưa ra câu vấn tin qi. Cuối cúng để định nghĩa ràng buộc thời gian đáp ứng, thời gian đáp ứng tối đa được phép của mỗi ứng dụng cũng cần phải được đặc tả. Thông tin về vị trí: Với mỗi vị trí chúng ta cần biết về khả năng lưu trữ và xử lý của nó. Hiển nhiên là những giá trị này có thể được tính bằng các hàm thích hợp hoặc bằng các phương pháp đánh giá đơn giản. Chi phí đơn vị để lưu trữ dữ liệu tại các vị trị Sj được ký hiệu là USCj. Cũng cần phải đặc tả số đo chi phí LPCj là chi phí xử lý một đơn vị công việc tại vị trí Sj. Đơn vị công việc cần phải giống với đơn vị của RR và UR. Thông tin về mạng:
  • 27. http://www.ebook.edu.vn 26 Trong mô hình đang xét, chúng ta giả sử có tồn tại một mạng đơn giản, trong đó chi phí truyền mỗi bó giữa hai vị trí Si và Sj. Để có thể tính được số lượng thông báo, chúng ta dùng fsize làm kích thước (tính theo byte) của một bó dữ liệu. 3.2. Kiểm soát dữ liệu ngữ nghĩa 3.2.1. Quản lý khung nhìn Một trong những ưu điểm của mô hình quan hệ là nó cung cấp được tính độc lập dữ liệu logic Trong một hệ thống quan hệ, khung nhìn được định nghĩa như là kết quả vấn tin trên quan hệ cơ sở hoặc quan hệ thực, nhưng không được vật chất hóa như một quan hệ cơ sở, nghĩa là không được lưu thực sự trong CSDL. Một khung nhìn là một cửa sổ động theo nghĩa là nó phản ánh tất cả mọi cập nhật trên CSDL. Một lược đồ ngoài có thể được định nghĩa là một tập các khung nhìn. Bên cạnh việc sử dụng chúng trong lược đồ ngoài, các khung nhìn còn có tác dụng bảo đảm được tính an toàn dữ liệu bằng một cách rất đơn giản. Nhờ chọn ra một tập con của CSDL, các khung nhìn đã che dấu đi một số dữ liệu. Nếu người sử dụng chỉ được phép truy xuất CSDL qua các khung nhìn, họ không thể thấy hoặc thao tác trên các dữ liệu ẩn vì thế chúng được bảo vệ. Cần chú ý trong môi trường phân tán, một khung nhìn có thể lấy dữ liệu từ các quan hệ phân tán và việc truy xuất một khung nhìn đòi hỏi phải thực thi câu vấn tin phân tán tương ứng với định nghĩa khung nhìn. Khung nhìn trong CSDL phân tán Các khung nhìn trong hệ thống phân tán có thể được dẫn xuất từ các quan hệ đã phân mảnh được lưu ở nhiều vị trí khác nhau. Bởi vì khung nhìn có thể được sử dụng làm quan hệ cơ sở trong các ứng dụng, định nghĩa của chúng phải được lưu trong các thư mục giống như các mô tả của quan hệ cơ sở. Tùy vào mức độ tự trị của vị trí được đưa ra bởi hệ thống, các định nghĩa khung nhìn có thể được tập trung tại một vị trí, được nhân bản một phần hoặc toàn bộ. Trong mỗi trường hợp, thông tin liên kết khung nhìn với vị trí định nghĩa của nó phải được nhân bản. Nếu định nghĩa khung nhìn không có tại vị trí đưa ra câu vấn tin thì sẽ phải truy xuất từ xa đến vị trí có định nghĩa khung nhìn đó. Trong phần trước chúng ta đã xem xét các phân mảnh của quan hệ, xét theo một khía cạnh nào đó các phân mảnh thực sự rất giống định nghĩa các khung nhìn cụ thể. 3.2.1.1. Khung nhìn trong quản lý tập trung Phần lớn các hệ quản trị CSQL quan hệ đều sử dụng cơ chế khung nhìn. Một khung nhìn là một quan hệ được dẫn xuất từ các quan hệ cơ sở như kết quả của một vấn tin quan hệ. Nó được định nghĩa bằng cách gán tên của khung nhìn cho câu vấn tin. Ví dụ: Khung nhìn SYSAN (nhân viên phân tích hệ thống) được dẫn xuất từ quan hệ NhanVien có thể được định nghĩa như sau: CREATE VIEW SYSAN AS SELECT MaNV, TenNv FROM NhanVien WHERE ChucVu = “Phân tích hệ thống” Tác dụng của câu lệnh này là định nghĩa khung nhìn SYSAN, và nó có thể được sử dụng như một quan hệ cơ sở (bảng). 3.2.1.2. Cập nhật qua các khung nhìn Khung nhìn có thể được định nghĩa bằng các câu truy vấn phức tạp với các phép chọn, chiếu, kết nối, các hàm gộp… Và tất cả các khung nhìn có thể được truy xuất như một quan hệ cơ sở,
  • 28. http://www.ebook.edu.vn 27 nhưng không phải tất cả chúng có khả năng cập nhật. Cập nhật qua khung nhìn chỉ được xử lý tự động nếu chúng có thể được lan truyền chính xác đến các quan hệ cơ sở. Hiện nay hầu hết các hệ quản trị CSDL quan hệ hiện đại đều hỗ trợ cập nhật dữ liệu qua khung nhìn bằng cách sử dụng các cơ chế xử lý ngầm, ví dụ như trigger. 3.2.1.3. Khung nhìn trong CSDL phân tán Định nghĩa khung nhìn đều giống nhau trong các hệ quản trị CSDL tập trung hay phân tán. Tuy nhiên khung nhìn trong các hệ thống phân tán có thể được dẫn xuất từ các quan hệ đã được phân mảnh được lưu ở nhiều vị trí khác nhau. Khi một khung nhìn được định nghĩa, tên và câu vấn tin truy xuất của nó sẽ được lưu hồ sơ cấu trúc của CSDL. Bởi vì khung nhìn có thể được sử dụng làm quan hệ cơ sở trong các ứng dụng, định nghĩa của chúng phải được lưu trong CSDL giống như các quan hệ cơ sở. Tùy thuộc vào mức độ tự trị của vị trí được đưa ra bởi hệ thống, các định nghĩa khung nhìn có thể được tập trung tại một vị trí, được nhân bản một phần hoặc toàn bộ. Trong mỗi trường hợp, thông tin liên kết tên khung nhìn với vị trí định nghĩa của nó phải được nhân bản. Nếu định nghĩa khung nhìn không có tại vị trí định nghĩa của nó phải được nhân bản. Nếu định nghĩa khung nhìn không có tại vị trí đưa ra câu vấn tin thì sẽ phải truy xuất từ xa đến vị trí có định nghĩa khung nhìn đó. 3.2.2. An toàn dữ liệu An toàn CSDL là một nhiện vụ quan trọng của hệ thống CSDL nhằm bảo vệ dữ liệu không bị truy xuất “bất hợp pháp”. An toàn dữ liệu bao gồm hai vấn đề: bảo vệ dữ liệu và kiểm soát cấp quyền. Bảo vệ dữ liệu nhằm tránh cho những người “không có phân sự” hiểu được nội dung vật lý của dữ liệu. Chức năng này do hệ thống tập tin đảm trách trong các hệ điều hành tập trung và phân tán. Phương pháp chính là mã hóa dữ liệu, được dùng cho cả các thông tin được lưu trên đĩa lẫn thông tin trao đổi trên mạng. Dữ liệu đã mã hóa chỉ có thể được “giải mã” bởi những người sử dụng được quyền. Kiểm soát cấp quyền phải đảm bảo rằng chỉ những người được phép mới được thực hiện các thao tác trên CSDL. Những người sử dụng khác nhau có thể có quyền truy xuất đến một lương lớn dữ liệu dưới sự kiểm soát thống nhất của một hệ thống tập trung hay phân tán. Vì thế các DBMS phân tán hay tập trung phải có khả năng hạn chế truy xuất một phần dữ liệu đối với một tập con những người sử dụng. 3.2.2.1. Kiểm soát cấp quyền tập trung Ba tác nhân chính có liên quan đến việc kiểm soát cấp quyền là: người sử dụng, là người kích hoạt các chương trình ứng dụng; các thao tác được gắn vào ứng dụng; và các đối tượng CSDL sẽ được các thao tác tác động. Kiểm soát cấp quyền bao gồm việc xem bộ ba (người sử dụng, thao tác, đối tượng) có được phép tiến hành hay không? Một quyền hạn xác định rằng người sử dụng có quyền thực hiện một thao tác thuộc loại nào trên một đối tượng. Khai báo một người sử dụng (hay nhóm người sử dụng) với hệ thống thường được thực hiện bằng một cặp (tên người sử dụng, mật khẩu). Cả tên và mật khẩu đều phải trình ra khi đăng nhập vào hệ thống. Điều đó ngăn chặn những người không có thẩm quyền xâm nhập vào hệ thống. Quyền hạn biểu thị mối liên hệ giữa những người sử dụng và một đối tượng ứng với một tập các thao tác cụ thể. Trong các hệ quản trị CSDL dựa trên SQL, một thao tác là một câu lệnh bậc cao
  • 29. http://www.ebook.edu.vn 28 như SELECT, INSERT, UPDATE, hoặc DELETE… Các quyền được định nghĩa hoặc thu hồi bằng các lệnh: GRANT <thao tác> ON <đối tượng> TO <Người sử dụng> REVOKE <thao tác> FROM <đối tượng> TO <Người sử dụng> 3.2.2.2. Kiểm soát cấp quyền phân tán Các vấn đề của kiểm soát cấp quyền trong môi trường phân tán có nguồn gốc từ sự kiện là các đối tượng và các chủ thể đề phân tán. Những vấn đề này bao gồm: cấp quyền cho người sử dụng ở xa, quản lý các quy tắc cấp quyền phân tán và việc xử lý các khung nhìn và các nhóm người sử dụng. Có hai giải pháp cho vấn đề này: 1. Thống tin xác nhận người sử dụng được nhân bản tại tất cả các vị trí trong mạng. Các chương trình cụ bộ cũng phải chỉ rõ tên và mật khẩu của người sử dụng. 2. Tất cả các vị trí trong hệ thống phân tán cũng nhận diện và xác nhận nhau tương tự như cách người sử dụng thực hiện. Giao tiếp giữa các vị trí được bảo vệ bằng cách sử dụng mật khẩu của vị trí. Một khi vị trí đã được xác nhận thì không cần phải xác nhận người sử dụng của chúng. Các quy tắc cấp quyền phân tán được diễn tả theo cùng phương thức như trong hệ tập trung. Giống như các định nghĩa khung nhìn, chúng phải được lưu vào trong hồ cơ cấu trúc của CSDL. Chúng có thể được nhân bản hoàn toàn tại mỗi vị trí hoặc lưu tại các vị trí của các đối tượng cần truy xuất. Ưu điểm chính của lối tiếp cận nhân bản hoàn toàn là việc cấp quyền có thể được xử lý bằng kỹ thuật hiểu chỉnh vấn tin vào lúc biên dịch. Giải pháp thứ hai tốt hơn trong trường hợp tính chất cục bộ của tham chiếu rất cao. Tuy nhiên việc cấp quyền phân tán không thể kiểm soát được vào lúc biên dịch. Khung nhìn có thể được xem như các đối tượng của cơ chế cấp quyền. Khung nhìn là những đối tượng phức tạp, nghĩa là nó được cấp tạo bởi những đối tượng cơ sở khác. Vì thế trao quyền truy xuất đến một khung nhìn được dịch thành trao quyền truy xuất đến các đối tượng cơ sở. Nếu định nghĩa khung nhìn và các quy tắc cấp quyền được nhân bản hoàn toàn thì việc biên dịch này khá đơn giản và có thể thực hiện tại chỗ. Nhóm các người sử dụng dùng cấp quyền chung làm đơn giản công việc quản lý CSDL phân tán. Trong các DBMS tập trung, khái niệm “mọi người sử dụng” có thể được xem là nhóm công cộng. Trong môi trường phân tán, nhóm công cộng biểu thị cho tất cả mọi người sử dụng của hệ thống. Tuy nhiên, người ta thường đưa ra một mức trung gian nhằm mô tả nhóm công cộng tại một vị trí cụ thể. Quản lý các nhóm trong môi trường phân tán đặt ra một số vấn đề phải giải quyết bởi vì các chủ thể của một nhóm có thể cư ngụ tại nhiều vị trí khác nhau và quyền truy xuất đến một đối tượng có thể được trao cho nhiều nhóm, mà bản thân chúng lại phân tán. Nếu thông tin của nhóm và các quy tắc cấp quyền được nhân bản hoàn toàn tại tất cả mọi vị trí thì việc duy trì quyền truy xuất tương tự như trong hệ thống tập trung. Tuy nhiên việc duy trì các bản sao này hết sức tốn kém. 3.3. Quản lý giao dịch và điểu khiền đồng thời phân tán 3.3.1. Các khái niệm cơ bản về giao dịch Giao dịch là một lần thực hiện chương trình. Đôi khi để biểu thị một giao dịch T ta viết T: begin…end. Giữa begin và end là những bước cơ bản của giao dịch. Chương trình này có thể là một câu vấn tin hoặc một chương trình ngôn ngữ chủ với các lời gọi được gắn vào một câu vấn tin. Có
  • 30. http://www.ebook.edu.vn 29 nhiều thực hiện độc lập của cùng một chương trình T được tiến hành đồng thời ở nhiều vị trí khác nhau trên mạng; mỗi thực hiện này là một giao dịch khác nhau. Một giao dịch sẽ đọc dữ liệu và ghi dữ liệu vào CSDL, qua một vùng làm việc riêng (private) – gọi là vùng bộ nhớ tính toán tạm thời. Cụ thể là các tính toán do giao dịch thực hiện sẽ không có tác dụng trên CSDL cho đến khi các giá trị mới được ghi vào CSDL. Ví dụ chúng ta có giao dịch T: Begin Read A A = A + 100 Read A A = A + 2 Write A End Khi đó trong CSDL giá trị của A chỉ được tăng lên 2, vì phép toán A = A + 100 chỉ làm việc trong vùng bộ nhớ tính toán tạm thời. 3.3.1.1. Tính nguyên tử Trên quan điểm về quản lý được, quản lý giao dịch là một có gắp nhằm làm cho các thao tác phức tạp xuất hiện dưới dạng các nguyên tử. Nghĩa là thao tác xảy ra trọn vẹn hoặc không xảy ra. Nếu xảy ra, không có biến cố hay giao dịch nào cùng xảy ra trong suốt thời gian tồn tại của nó. Mỗi nguyên tử về sau ta sẽ gọi là một bước cơ bản hoặc một thao tác cơ bản. Cách thông dụng nhằm đảm bảo được tính nguyên tử của các giao dịch là phương pháp tuần tự hóa. Phương pháp này làm cho các giao dịch được thực hiện một cách tuần tự. Một giao dịch không có tính nguyên tử nếu: 1, Trong hệ thống phân chia thời gian, thời gian cho giao dịch T có thê kết thúc trong khi T đang tính toán và các hoạt động của một giao dịch khác sẽ được thực hiện trước khi T hoàn tất. 2, Một giao dịch có thể không hoàn tất được, chẳng hạn có khi nó phải chấm dứt giữa chứng, có thể vì nó thực hiện một phép tính không hợp lệ (ví dụ phép chia cho 0), hoặc có thể do nó đòi hỏi những dữ liệu không được quyền truy xuất. Bản thân hệ thống CSDL có thể buộc giao dịch này ngừng lại vì nhiều lý do. Chẳng hạn giao dịch đó có thể bị kẹt trong một khóa “cứng” (deadlock) Trong trường hợp (1), nhiệm vụ của hệ thống CSDL là phải bảo đảm rằng cho dù bất kỳ điều gì xảy ra ngay giữa một giao dịch, tác dụng của giao dịch trên CSDL không bị ảnh hưởng của những biến cố bất ngờ này. Trong trường hợp (2), hệ thống phải bảo đảm rằng giao dịch bị hủy bỏ không ảnh hường gì trên CSDL hoặc các giao dịch khác Trong thực tế, mỗi giao dịch đều có một chuỗi các bước cơ bản như: đọc hay ghi một mục dữ liệu vào CSDL hoặc thực hiện các phép toán số học đơn giản trong vùng làm việc riêng, hoặc những bước sơ đẳng khác như các bước khóa, mở khóa, ủy thác hoàn tất giao dịch… Chúng ta luôn giả sử rằng những bước sở đằng này là nguyên tử. Thậm chí thao tác tính toán kết thúc sau khi thời gian dành cho nó đã hết cũng có thể xem là nguyên tử, bởi vì các phép tính toán xảy ra khi đang làm việc trong vùng dữ liệu cục bộ và không thể ảnh hưởng đến vùng làm việc đó cho đến khi giao dịch đang thực hiện dở phép tính số học được tái hoạt động trở lại. 3.3.1.2. Mục dữ liệu
  • 31. http://www.ebook.edu.vn 30 Để quản lý các hoạt động đồng thời, CSDL phải được phân nhỏ thành các mục dữ liệu, đó là những đơn vị dữ liệu cần được truy xuất có điều khiển. Bản chất và kích thước các mục dữ liệu do nhà thiết kế hệ thống chọn lựa. Chẳng hạn trong mô hình dữ liệu quan hệ, chúng ta có thể chọn các mục lớn như các quan hệ, hoặc các mục nhỏ như các bộ hay thành phần của các bộ. Chúng ta cũng có thể chọn lựa các mục có kích thước trung gian, như một khối của quan hệ. Kích thước của các mục dữ liệu được hệ thống sử dụng gọi là độ mịn của hệ thống. Một hệ thống được gọi là hạt mịn, nếu nó sử dụng các mục dữ liệu nhỏ và hệ thống là hạt thô nếu nó sử dụng các mục dữ liệu lớn. Phương pháp thông dụng nhất để điều khiển việc truy xuất các mục là sử dụng khóa. Bộ quản lý khóa là thành phần của hệ quản trị chịu trách nhiệm theo dõi xem một mục I hiện có giao dịch nào đang đọc ghi vào các phần của I hay không. Nếu có thì bộ quản lý khóa sẽ ngăn cản không cho các giao dịch khác truy xuất I trong trường hợp truy xuất đó có thể gây ra xung đột. Chọn chế độ hạt thô sẽ làm giảm đi tổng chi phí cần để duy trì các khóa, bởi vì chúng ta cần ít chỗ để lưu các khóa, và chúng ta tiết kiệm được thời gian bởi vì hệ thống chỉ phải thực hiện rất ít hành động đóng mở khóa. Tuy nhiện độ hạt mịn cho phép nhiều giao dịch hoạt động song song, bởi vì xác xuất các giao dịch yêu cầu khóa trên cùng một mục sẽ thấp. 3.3.1.3. Khóa Như chúng ta đã khẳng định, khóa là một đặc quyền truy xuất trên một mục dữ liệu mà bộ quản lý khóa có thể trao cho một giao dịch hay thu hồi lại. Có thể có nhiều kiểu khóa, ví dụ như khóa đọc, khóa ghi… Thông thường tại mỗi thời điểm, chỉ có một tập con các mục bị khóa, vì vậy bộ quản lý khóa có thể lưu các khóa hiện hành trong một bảng khóa vơi các mẫu tin: (I, L, T) – giao dịch T có một khóa kiểu L trên mục I. 3.3.1.4. Kiểm soát hoạt động đồng thời bằng khóa Để thấy được nhu cầu phải sử dụng khóa chúng ta xem xét ví dụ sau đây: Xét hai giao dịch T1 và T2. Mỗi giao dịch truy xuất một mục dữ liệu A được giả sử là mang giá trị nguyên, rồi cộng thêm 1 vào A. hai giao dịch này thực hiện chương trình P. P: Begin Read A A = A + 1 Write A End Chúng ta thực hiện hai giao dịch T1 và T2 như sau: A trong csdl 5 5 5 5 6 6 T1 Read A A = A + 1 Write A T2 Read A A = A + 1 Write A A trong vùng làm việc của T1 5 5 6 6 6 6 A trong vùng làm việc của T2 5 5 5 6 6 Giá trị của A tồn tại trong CSDL, với mỗi giao dịch P đọc A vào vùng làm việc, cộng 1 vào giá trị này rồi ghi kết quả vào trong CSDL. Chúng ta nhận thấy rằng, mặc dù hai giao dịch đều đã cộng thêm 1 vào A, giá trị của A trong CSDL chỉ tăng 1. Giải pháp thông dụng nhất cho vấn đề được trình bày trong ví dụ trên là cung cấp một khóa trên A. Trước khi đọc A, một giao dịch T phải khóa A lại, ngăn cản không cho giao dịch khác truy xuất A cho đến khi T hoàn tất xong thao tác trên A. Hơn nữa T khóa được mục A chỉ khi trước đó A
  • 32. http://www.ebook.edu.vn 31 không bị khóa bởi một giao dịch khác. Nếu A đã bị khóa, T phải đợi đến khi giao dịch mở khóa cho A. Vậy để ngăn cản những trường hợp đáng tiếc xẩy ra ta phải dùng khóa. Như vậy trong những chương trình giao dịch phải có khóa và mở khóa. Ta giả sử rằng một khóa phải được đặt trên một mục trước khi đọc hay ghi nó, và thao tác khóa hành động như một hàm đồng bộ hóa. Nghĩa là nếu một giao dịch khóa một mục đã được khóa, nó không thể tiến hành cho đến khi khóa này được giải phóng bằng một lệnh mở khóa được thực hiện bởi giao dịch đang giữ khóa. Ta cũng giả sử rằng mỗi giao dịch đều có thể mở được mọi khóa do chính nó khóa. Một lịch biểu chứa cá thao tác cơ bản của nhiều giao dịch tuân theo các quy tắc của khóa được gọi là hợp lệ. Ví dụ: Chương trình P của ví dụ trên được viết lại với các khóa như sau: P: begin Lock A Read A A = A + 1 Write A Unlock A End Giả sử T1 và T2 là hai giao dịch thực hiện P. Nếu T1 bắt đầu trước, nó yêu cầu khóa trên A. Giả sử rằng không có giao dịch nào đang khóa, bộ quản lý khóa sẽ cho nó khóa mục A. Bây giờ chỉ có T1 mới có thể truy xuất A, nếu T2 bắt đầu trước khi T1 chấm dứt thì khi T2 thực hiện lệnh khóa A, hệ thống buộc T2 phải đợi. Chi khi T1 thực hiện lệnh Unlock A, hệ thống mới cho phép T2 tiến hành. Kết quả là điều bất thường không xảy ra; T1 hoặc T2 sẽ hoàn tất trước khi giao dịch kia bắt đầu, và kết quả chung của chúng là cộng 2 vào A. 3.3.1.5. Khóa sống (livelock) Hệ thống quản lý khóa trao và buộc khóa các mục dữ liệu không thể hoạt động một cách tùy tiện. Giả sử trong ví dụ trên, khi T1 giải phóng khóa trên A, trong khi T2 đang đợi nhận khóa, một giao dịch T3 khác cùng xin một khóa trên A, và T3 được trao khóa này trước T2. Tương tự sau khi T3 mở khóa cho A thì lại có giao dịch T4 xin khóa A… Và rất có thể T2 phải đợi rất lâu hoặc không bao giờ nhận được khóa trên A. Tình huống này gọi là khóa sống. Vậy khóa sống trên mục A của giao dịch T là T không khóa được A vì A luôn bị khóa bởi một giao dịch khác. Rất nhiều giải pháp đã được các nhà thiết kế hệ điều hành đề xuất để giải quyết vấn đề khóa sống, ví dụ như các giao dịch khi khóa một mục phải đăng ký thứ tự, và bộ quản lý khóa sẽ lần lượt trao quyền khóa mục A khi mục này không bị khóa theo thứ tự đã xác định trước. 3.3.1.6. Khóa “cứng” (deadlock) Một vấn đề khác có thể xẩy ra trong điều khiển các hoạt động đồng thời, đó là vấn đề khóa “cứng” (deadlock). Đó là các giao dịch khóa chéo lẫn nhau các mục cần để hoàn thiện giao dịch. Ví dụ: Giả sử chúng ta có hai giao dịch đồng thời T1 và T2 như sau: