Bài giảng Cơ sơ dữ liệu phân tán: Phần 1 cung cấp cho người học những kiến thức như: Tổng quan về Cơ sở dữ liệu phân tán; Các mức trong suốt phân tán; Thiết kế cơ sở dữ liệu phân tán. Mời các bạn cùng tham khảo!
Trang 1MỤC LỤC
MỤC LỤC I CÁC DANH MỤC HÌNH V LỜI NÓI ĐẦU VII
CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1
1.1 Các khái niệm cơ bản 1
1.1.1 Xử lý phân tán 2
1.1.2 Hệ thống phân tán 2
1.1.3 Hệ cơ sở dữ liệu phân tán 2
1.2 Mục đích của việc sử dụng cơ sở dữ liệu phân tán 8
1.2.1 Sự phát triển của các cơ cấu tổ chức kinh tế 8
1.2.2 Sự kết nối lẫn nhau của CSDL hiện tại 9
1.2.3 Sự lớn mạnh gia tăng 9
1.2.4 Giảm chi phí truyền thông 9
1.2.5 Hiệu quả công việc 9
1.2.6 Độ tin cậy và tính sẵn sàng 10
1.3 Các đặc điểm chính của cơ sở dữ liệu phân tán 10
1.3.1 Điều khiển tập trung 10
1.3.2 Độc lập dữ liệu 11
1.3.3 Giảm dư thừa 12
1.3.4 Các cấu trúc vật lý phức tạp dùng để truy xuất hiệu quả 12
1.3.5 Tính toàn vẹn 16
1.3.6 Phục hồi 17
1.3.7 Điều khiển đồng thời 17
1.3.8 Tính riêng biệt (privacy) và tính bảo mật (security) 17
1.4 Mô hình kiến trúc tham chiếu CSDL phân tán 17
1.4.1 Lược đồ toàn cục 18
1.4.2 Lược đồ phân mảnh 18
1.4.3 Lược đồ định vị 19
1.4.4 Lược đồ ánh xạ cục bộ 20
1.4.5 Mục tiêu của kiến trúc tham chiếu CSDL phân tán 20
1.5 Cấu trúc logic của CSDL phân tán 22
1.6 Lợi ích phân tán dữ liệu trên mạng 22
1.7 Kiến trúc hệ quản trị CSDL phân tán 23
1.7.1 Các đặc tính của kiến trúc hệ quản trị CSDL phân tán 23
1.7.2 Các kiểu kiến trúc tham chiếu hệ quản trị CSDL phân tán 26
1.8 Hệ quản trị CSDL phân tán 33
1.8.1 Các thành phần của hệ quản trị CSDL phân tán 33
Trang 21.8.2 Các dịch vụ của hệ quản trị CSDL phân tán 36
1.8.3 Phương pháp truy xuất CSDL phân tán 37
1.8.4 Phân loại các hệ quản trị CSDL phân tán 38
Chương 2 CÁC MỨC TRONG SUỐT PHÂN TÁN 41
2.1 Các loại phân mảnh dữ liệu 41
2.1.1 Điều kiện đúng đắn để phân mảnh dữ liệu 42
2.1.2 Phân mảnh ngang 43
2.1.3 Phân mảnh dọc 52
2.1.4 Phân mảnh hỗn hợp 57
2.2 Tính trong suốt phân mảnh dùng cho các ứng dụng chỉ đọc 67
2.2.1 Các mức trong suốt phân tán 67
2.2.2 Chương trình cho các ứng dụng chỉ đọc 67
2.3 Tính trong suốt phân mảnh dùng cho các ứng dụng cập nhật 85
2.3.1 Cây cập nhật 85
2.3.2 Chương trình ứng dụng cho các ứng dụng cập nhật 89
2.4 Các thao tác cơ bản truy xuất CSDL phân tán 93
2.4.1 Truy xuất CSDL với mỗi giá trị 94
2.4.2 Truy xuất CSDL sau khi nhập vào tất cả các giá trị 96
2.4.3 Truy xuất CSDL trước khi nhập vào các giá trị 98
2.4.4 Truy xuất CSDL sử dụng biểu thức con chung 100
2.5 Ràng buộc trong CSDL phân tán 102
2.5.1 Ràng buộc toàn vẹn 102
2.5.2 Ràng buộc tham chiếu 103
2.5.3 Thiết kế các ràng buộc tham chiếu 104
CHƯƠNG 3 THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN 107
3.1 Vấn đề thiết kế cơ sở dữ liệu phân tán 108
3.1.1 Các bước thiết kế phân tán dữ liệu 108
3.1.2 Các mục tiêu của thiết kế phân tán dữ liệu 109
3.1.3 Chiến lược thiết kế phân tán dữ liệu 111
3.1.4 Các yêu cầu thông tin 115
3.2 Thiết kế phân mảnh cơ sở dữ liệu 116
3.3 Thiết kế phân mảnh ngang 117
3.3.1 Các yêu cầu thông tin của phân mảnh ngang 117
3.3.2 Thiết kế phân mảnh ngang chính 122
3.3.3 Thiết kế phân mảnh ngang dẫn xuất 134
3.3.4 Kiểm tra điều kiện đúng đắn khi phân mảnh ngang 139
3.4 Thiết kế phân mảnh dọc 140
3.4.1 Các chiến lược thiết kế phân mảnh dọc 140
3.4.2 Các yêu cầu thông tin của phân mảnh dọc 143
3.4.3 Giải thuật gom tụ 147
Trang 33.4.4 Giải thuật phân tách 153
3.4.5 Kiểm tra tính đúng đắn khi phân mảnh dọc 156
3.5 Thiết kế phân mảnh hỗn hợp 157
3.6 Thiết kế định vị cơ sở dữ liệu 157
3.6.1 Bài toán định vị 158
3.6.2 Các yêu cầu thông tin 160
3.6.3 Mô hình định vị 162
3.6.4 Các giải pháp 164
3.7 Kiểm soát dữ liệu ngữ nghĩa 165
3.7.1 Quản lý khung nhìn 165
3.7.2 An toàn dữ liệu 167
3.7.3 Kiểm soát tính toàn vẹn ngữ nghĩa 170
CHƯƠNG 4 BIẾN ĐỔI CÁC TRUY VẤN TOÀN CỤC THÀNH CÁC TRUY VẤN MẢNH 175
4.1 Các phép biến đổi tương đương dùng cho các truy vấn 176
4.1.1 Cây toán tử của một truy vấn 176
4.1.2 Các phép biến đổi tương đương dùng cho đại số quan hệ 177
4.1.3 Đồ thị toán tử và xác đinh biểu thức con chung 181
4.2 Biến đổi truy vấn toàn cục thành các truy vấn mảnh 184
4.2.1 Biểu thức chuẩn tắc của một truy vấn mảnh 184
4.2.2 Đại số quan hệ định tính 185
4.2.3 Đơn giản hóa các quan hệ được phân mảnh ngang 189
4.2.4 Đơn giản hóa các phép kết nối giữa các quan hệ được phân mảnh ngang chính 191 4.2.5 Đơn giản hóa cho phân mảnh ngang dẫn xuất 192
4.2.6 Đơn giản hóa các quan hệ được phân mảnh dọc 194
4.2.7 Sử dụng phép suy diễn cho các phép đơn giản hóa 196
4.2.8 Các chương trình nửa kết nối 197
4.3 Gom nhóm phân tán và định trị hàm kết hợp 198
4.3.1 Mở rộng đại số quan hệ 199
4.3.2 Các đặc tính của phép gom nhóm 199
4.4 Các truy vấn có tham số 202
4.4.1 Đơn giản hóa các truy vấn tham số và mở rộng đại số quan hệ 203
4.4.2 Sử dụng vùng nhớ tạm thời khi sử dụng nhiều lần các truy vấn tham số 205
CHƯƠNG 5 TỐI ƯU HÓA CÁC CHIẾN LƯỢC TRUY XUẤT 207
5.1 Một số cơ cấu cho tối ưu hóa truy vấn 207
5.1.1 Các vấn đề của tối ưu hóa truy vấn 207
5.1.2 Các mục tiêu của tối ưu hóa truy vấn 209
5.1.3 Một mô hình mới của các truy vấn 211
5.1.4 Tóm lược các giả sử dùng cho tối ưu hóa truy vấn phân tán 218
Trang 45.1.5 Tầm quan trọng của tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán 218
5.2 Các truy vấn kết nối 220
5.2.1 Sử dụng các chương trình nửa kết nối cho các truy vấn kết nối 220
5.2.2 Xác định các chương trình nửa kết nối trong SDD-1 224
5.2.3 Xác định các chương trình nửa kết nối bằng các giải thuật 228
5.2.4 Xử lý truy vấn bằng cách sử dụng các phép nối 231
5.3 Các truy vấn tổng quát 235
CÂU HỎI VÀ BÀI TẬP 239
PHỤ LỤC 277 TÀI LIỆU THAM KHẢO I
Trang 5
CÁC DANH MỤC HÌNH
Hình 1.1 Xử lý dữ liệu truyền thống 3
Hình 1.2 Xử lý cơ sở dữ liệu 3
Hình 1.3 Một cơ sở dữ liệu phân tán trên một mạng phân tán địa lý 4
Hình 1.4 Một cơ sở dữ liệu phân tán trên một mạng cục bộ 5
Hình 1.5 Một hệ thống đa xử lý (multiprossor system) 6
Hình 1.6 Sơ đồ lưu trữ phân tán 8
Hình 1.7 Một lược đồ CSDL Codasyl 13
Hình 1.8 Một chương trình tựa Codasyl-DBMS để tìm kiếm các mặt hàng được cung cấp bởi nhà cung cấp S1 13
Hình 1.9 Sự phân tán của tập SUPPLIER-PART 14
Hình 1.10 Ví dụ về kế hoạch truy xuất 15
Hình 1.11 Một kiến trúc tham chiếu dùng cho các CSDL phân tán 18
Hình 1.12 Các mảnh và các hình ảnh vật lý của một quan hệ toàn cục 19
Hình 1.13 Các mảnh và các hình ảnh vật lý của quan hệ dự án 20
Hình 1.14 Mô hình Client-Server nhiều lớp 22
Hình 1.15 Lựa chọn cài đặt hệ quản trị CSDL 23
Hình 1.16 Kiến trúc tham chiếu Client/Server 27
Hình 1.17 Kiến trúc tham chiếu CSDL phân tán 28
Hình 1.18 Sơ đồ chức năng của hệ quản trị CSDL phân tán tích hợp 29
Hình 1.19 Mô hình kiến trúc của một phức hệ 30
Hình 1.20 Kiến trúc phức hệ CSDL với một lược đồ khái niệm toàn cục 31
Hình 1.21 Kiến trúc phức hệ CSDL không sử dụng GCS 32
Hình 1.22 Các thành phần của một phức hệ CSDL 33
Hình 1.23 Hệ quản trị CSDL phân tán 34
Hình 1.24 Các thành phần của một hệ quản trị CSDL phân tán 35
Hình 1.25 Các thành phần của DDBMS thương mại hóa 36
Hình 1.26 Truy xuất từ xa thông qua các thao tác cơ bản DBMS 37
Hình 1.27 Truy xuất từ xa thông qua các thao tác cơ bản DBMS 38
Hình 1.28 Kiến trúc mô hình hệ quản trị CSDL đồng nhất 39
Hình 1.29 Kiến trúc mô hình hệ quản trị CSDL không đồng nhất 39
Hình 2.1 Cây phân mảnh dẫn xuất 52
Hình 2.2 Cây phân mảnh dẫn xuất của hệ thống quản lý dự án 52
Hình 2.3 Truy xuất CSDL Quản lý dự án khi DDBMS với trong suốt phân mảnh 70
Hình 2.4 Truy xuất CSDL QL Kinh doanh khi DDBMS với trong suốt phân mảnh 71 Hình 2.5 Truy xuất CSDL QL Dự án khi DDBMS với trong suốt vị trí 74
Hình 2.6 Truy xuất CSDL QL kinh doanh khi DDBMS với trong suốt vị trí 76
Hình 2.7 Truy xuất CSDL QL Dự án khi DDBMS với trong suốt ánh xạ cục bộ 80
Hình 2.8 Truy xuất CSDL QL kinh doanh khi DDBMS với trong suốt ánh xạ cục bộ 82
Hình 2.9 Một số ứng dụng trên một CSDL phân tán không đồng nhất không có trong suốt 85
Trang 6Hình 2.10 Cây con cập nhật cho thuộc tính MAP trong cây phân mảnh của quan hệ
NV 87
Hình 2.11 Cây con cập nhật khác cho thuộc tính MaP trong cây phân mảnh của quan hệ NV 88
Hình 3.1 Sơ đồ thiết kế tổng CSDL phân tán 108
Hình 3.2 Chiến lược thiết kế từ trên xuống 112
Hình 3.3 Sơ đồ thiết kế tổng CSDL phân tán 138
Hình 4.1 Đồ thị toán tử của chương trình nửa kết nối 197
Hình 5.1 Một chương trình rút gọn hoàn toàn cho quan hệ R 223
Hình 5.2 Hậu tối ưu hóa trong giải thuật SDD-1 227
Hình 5.3 kế hoạch cho quan hệ T 229
Hình 5.4 Giao hoán phép kết nối và phép hợp 236
Hình 5.5 Tối ưu hóa độc lập của một đồ thị kết nối phân tách 237
Hình 5.6 Các đồ thị tối ưu hoá khác nhau cho cùng một truy vấn 237
Trang 7LỜI NÓI ĐẦU
Ngày nay, với sự phát triển nhanh chóng của công nghệ truyền thông và mạng Internet, cùng với xu thế toàn cầu hoá trong mọi lĩnh vực, dữ liệu không đơn giản chỉ được lưu trữ tập trung ở một nơi mà nó có thể được lưu trữ tại nhiều nơi Do đó, cơ sở
dữ liệu phân tán đã trở thành lĩnh vực nghiên cứu của ngành CNTT Môn học Cơ sở
dữ liệu phân tán là môn học không chỉ đề cập đến những vấn đề cơ sở lý thuyết mà còn cung cấp một số kỹ năng cần thiết để thiết kế và cài đặt các hệ cơ sở dữ liệu phân tán cụ thể Để giúp sinh viên các ngành thuộc lĩnh vực Công nghệ thông tin trường Đại học Sư phạm Kỹ thuật Nam Định học tốt hơn môn học này và vận dụng để phân tích
và thiết kế cơ sở dữ liệu phân tán thì việc xuất bản “Tập bài giảng Cơ sở dữ liệu phân tán” là rất cần thiết
Tập bài giảng được chia làm 5 chương:
Chương 1 Tổng quan về Cơ sở dữ liệu phân tán
Chương 2 Các mức trong suốt phân tán
Chương 3 Thiết kế cơ sở dữ liệu phân tán
Chương 4 Biến đổi truy vấn toàn cục thành các truy vấn mảnh
Chương 5 Tối ưu hóa các chiến lược truy xuất
Mỗi chương trong tập bài giảng đều hệ thống hóa các kiến thức cơ bản, cần thiết Tương ứng với mỗi nội dung kiến thức đều có các ví dụ minh họa cụ thể, gán với các ứng dụng thực tiễn Đặc biệt, cuối tập bài giảng, tác giả đưa ra các câu hỏi lý thuyết, các câu hỏi trắc nghiệm và một số bài tập để sinh viên vận dụng củng cố lại kiến thức và kỹ năng
Với phần lý thuyết chi tiết, đầy đủ được trình bày một cách khoa học, logic và phần bài tập để củng cố kiến, chúng tôi hy vọng rằng tập bài giảng này sẽ mang lại cho bạn đọc nhiều điều bổ ích
Trong quá trình biên soạn, tập bài giảng không tránh khỏi những sai sót, rất mong đồng nghiệp và các em sinh viên góp ý kiến để tập bài giảng ngày càng được hoàn thiện hơn Mọi sự đóng góp ý kiến xin gửi về Văn phòng Khoa Công nghệ thông tin-Trường Đại học Sư phạm Kỹ thuật Nam Định-Phường Lộc Hạ-Tp Nam Định
Nhóm biên soạn
Phạm Hùng Phú- Nguyễn Văn Thẩm
Trang 9
Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
Với việc phân bố ngày càng rộng rãi của các công ty, xí nghiệp, dữ liệu bài toán là rất lớn và không tập trung được Các cơ sở dữ liệu (CSDL) thuộc thế hệ một và hai không giải quyết được các bài toán trong môi trường mới không tập trung mà phân tán, song song với các dữ liệu và hệ thống không thuần nhất, thế hệ thứ ba của hệ quản trị CSDL ra đời vào những năm 80 trong đó có CSDL phân tán để đáp ứng những nhu cầu mới
Ngày nay, CSDL phân tán đã trở thành một lĩnh vực quan trọng của xử lý thông tin
và tầm quan trọng của nó ngày càng tăng nhanh Có hai lý do về mặt công nghệ và về mặt tổ chức để đi theo hướng này:
- Các CSDL phân tán khắc phục nhiều thiếu sót của các CSDL tập trung (centralized database)
- Thích hợp một cách tự nhiên với các cấu trúc không tập trung (decentralized structure) của nhiều tổ chức (organization)
1.1 Các khái niệm cơ bản
Nguyên lý các hệ cơ sở dữ liệu phân tán được xây dựng dựa trên sự hợp nhất của hai hướng tiếp cận đối với quá trình xử lý dữ liệu, đó là lý thuyết các hệ cơ sở dữ liệu
và công nghệ mạng máy tính
Một trong những động lực thúc đẩy sự phát triển nhanh việc sử dụng các hệ CSDL
là nhu cầu tích hợp các loại dữ liệu, cung cấp đa dạng các loại hình dịch vụ và các dịch
vụ đa phương tiện cho người sử dụng Mặt khác, kết nối máy tính thành mạng với mục tiêu chia sẻ tài nguyên, khai thác có hiệu quả các tài nguyên thông tin, nâng cao khả năng tích hợp và trao đổi các loại dữ liệu giữa các thành phần trên mạng
Nhu cầu thu thập, lưu trữ xử lý và trao đổi thông tin ngày càng tăng, các hệ thống
xử lý tập trung đã bộc lộ những nhược điểm sau:
- Tăng khả năng lưu trữ thông tin là khó khăn, bởi bị giới hạn tối đa của thiết bị nhớ
- Độ sẵn sàng phục vụ của CSDL không cao khi số người sử dụng tăng
- Khả năng tính toán của các máy tính đơn lẻ đang dần tới giới hạn vật lý
- Mô hình tổ chức lưu trữ, xử lý dữ liệu tập trung không phù hợp cho những tổ chức kinh tế, xã hội có hoạt động rộng lớn, đa quốc gia
Những nhược điểm này đã được khắc phục khá nhiều trong hệ thống phân tán Những sản phẩm của các hệ thống phân tán đã xuất hiện nhiều trên thị trường và từng bước chứng minh tính ưu việt của nó hơn hẳn các hệ thống tập trung truyền thống Các
hệ thống phân tán sẽ thay thế dần các hệ thống tập trung
Trang 101.1.1 Xử lý phân tán
Thuật ngữ xử lý phân tán có thể là thuật ngữ được lạm dụng nhiều nhất trong khoa học máy tính trong những năm vừa qua Nó thường được dùng để chỉ những hệ thống gồm nhiều loại thiết bị khác nhau chẳng hạn như: hệ đa bộ vi xử lý, xử lý dữ liệu phân tán, mạng máy tính
Có hai khái niệm xử lý phân tán liên quan với nhau
- Khái niệm liên quan đến việc tính toán trên Client/Server Trong đó ứng dụng được chia ra thành hai phần, phần của Server và phần của Client và được vận hành ở hai nơi Trong tính toán phân tán này cho phép truy nhập trực tiếp dữ liệu và xử lý dữ liệu trên Server và Client
- Khái niệm thứ hai là việc thực hiện các tác vụ xử lý phức tạp trên nhiều hệ thống Không gian nhớ và bộ xử lý của nhiều máy cùng hoạt động chia nhau tác vụ xử lý Máy trung tâm sẽ giám sát và quản lý các tiến trình này Có trường hợp thông qua Internet, hàng nghìn máy cùng xử lý một tác vụ
Có thể định nghĩa hệ xử lý phân tán như sau: Hệ xử lý phân tán là một tập hợp các phần tử xử lý tự trị (không nhất thiết đồng nhất) được kết nối với nhau bởi một mạng máy tính và cùng phối hợp thực hiện những công việc gán cho chúng Phần tử xử lý ở đây để chỉ một thiết bị tính toán có khả năng thực hiện chương trình trên nó
1.1.2 Hệ thống phân tán
Hệ thống phân tán là tập hợp các máy tính độc lập kết nối với nhau thành một mạng máy tính được cài đặt các hệ cơ sở dữ liệu và các phần mềm hệ thống phân tán tạo khả năng cho nhiều người sử dụng truy nhập chia sẻ nguồn thông tin chung Các máy tính trong hệ thống phân tán có kết nối phần cứng lỏng lẻo, có nghĩa là không chia sẻ bộ nhớ, chỉ có một hệ điều hành trong toàn bộ hệ thống phân tán
Các mạng máy tính được xây dựng dựa trên kỹ thuật Web Ví dụ như mạng Internet, mạng Intranet… là các mạng phân tán
1.1.3 Hệ cơ sở dữ liệu phân tán
Công nghệ các hệ CSDL phát triển từ mô hình dữ liệu, trong đó mỗi ứng dụng định nghĩa một hay nhiều tệp dữ liệu riêng của nó được mô tả như hình 1.1, sang mô hình định nghĩa và quản lý dữ liệu tập trung Điều đó dẫn đến khái niệm độc lập dữ liệu, nghĩa là tính bất biến của các hệ ứng dụng đối với sự thay đổi cấu trúc lưu trữ và các chiến lược truy nhập dữ liệu
Trang 11Hình 1.1 Xử lý dữ liệu truyền thống
Trong ngữ cảnh hệ xử lý phân tán thì hệ cơ sở dữ liệu phân tán có thể được xem như những công cụ làm cho quá trình xử lý dữ liệu phân tán dễ dàng hơn và hiệu quả hơn Khái niệm hệ CSDL phân tán bao gồm cả khái niệm CSDL phân tán và hệ quản trị CSDL phân tán
Hình 1.2 Xử lý cơ sở dữ liệu
Một CSDL phân tán là sự tập hợp dữ liệu mà về mặt logic chúng thuộc cùng một
hệ thống nhưng được trải rộng ở nhiều nơi (site) của một mạng máy tính
Khái niệm này nhấn mạnh hai khía cạnh quan trọng như nhau của một CSDL phân tán là:
- Sự phân tán (distribution): nghĩa là dữ liệu không tập trung ở cùng một nơi (hiểu theo nghĩa bộ xử lý - processor), điều này giúp ta có thể phân biệt một CSDL phân tán với một CSDL tập trung, đơn lẻ
- Sự tương quan logic (logical correlation): nghĩa là dữ liệu có những mối liên hệ mật thiết với nhau, điều này giúp ta có thể phân biệt một CSDL phân tán với một tập hợp các CSDL cục bộ (local database) hoặc các tập tin tập trung ở những nơi khác nhau của một mạng máy tính
Một vấn đề nảy sinh từ khái niệm trên là sự phân tán và sự tương quan logic được đưa ra một cách quá mơ hồ để có thể luôn phân biệt được những trường hợp thực sự là CSDL phân tán và những trường hợp không phải là những CSDL phân tán
Để có một khái niệm rõ ràng hơn, ta xét một số ví dụ sau:
Ví dụ 1.1: Xét một ngân hàng có ba chi nhánh ở các vị trí địa lý khác nhau được
mô tả trong hình 1.3
Trang 12Hình 1.3 Một cơ sở dữ liệu phân tán trên một mạng phân tán địa lý
Tại mỗi chi nhánh có máy tính kiểm soát các máy rút tiền của chi nhánh, và một CSDL tài khoản (account database) của chi nhánh Mỗi máy tính với CSDL tài khoản cục bộ ở một chi nhánh tạo thành một nơi (site) của CSDL phân tán; các máy tính được nối với nhau thông qua mạng máy tính truyền thông (communication network) Khi hoạt động bình thường, các ứng dụng được chạy tại các thiết bị đầu cuối của chi nhánh chỉ cần truy nhập CSDL ở chi nhánh đó Những ứng dụng này được thực hiện hoàn tất bởi máy tính của chi nhánh, nơi mà chúng được chạy, và được gọi là các ứng dụng cục bộ (local application) Một ví dụ của ứng dụng cục bộ là ứng dụng “ghi nợ” hoặc “ghi có” trên một tài khoản được lưu trữ trong cùng một chi nhánh mà tại đây chạy ứng dụng này
Nếu chúng ta thử áp dụng định nghĩa của CSDL phân tán cho trường hợp này, thì chúng ta nhận thấy rằng khó nói là có tính tương quan logic hay không
Có phải các chi nhánh chỉ chứa thông tin về các tài khoản của cùng một ngân hàng
Trang 13vài ứng dụng truy xuất dữ liệu tại hai chi nhánh trở lên Các ứng dụng này được gọi là ứng dụng toàn cục (global application) hoặc ứng dụng phân tán (distributed application) Sự tồn tại của các ứng dụng toàn cục là đặc điểm phân biệt của các CSDL phân tán so với một tập hợp các CSDL cục bộ
Một ứng dụng toàn cục tiêu biểu là một sự chuyển quĩ của một tài khoản trong một chi nhánh này vào tài khoản trong một chi nhánh khác Ứng dụng này cập nhật dữ liệu tại hai chi nhánh khác nhau Lưu ý ứng dụng này thực hiện hai cập nhật cục bộ tại hai chi nhánh riêng biệt (ghi nợ và ghi có), bởi vì cũng cần phải đảm bảo cả hai cập nhật này được thực hiện hoặc đều không được thực hiện Do đó, việc đảm bảo yêu cầu này của các ứng dụng toàn cục là một công việc khó khăn
Trong ví dụ 1.1, các máy tính được đặt tại các vị trí địa lý khác nhau Tuy nhiên, các CSDL phân tán cũng có thể được xây dựng trên các mạng cục bộ
Ví dụ 1.2: Xét cùng một ngân hàng của ví dụ 1.1, với cùng các ứng dụng Tuy nhiên hệ thống có một cấu hình được chỉ ra trong hình 1.4
Hình 1.4 Một cơ sở dữ liệu phân tán trên một mạng cục bộ
Cùng các bộ xử lý các CSDL của chúng đã được di chuyển từ các chi nhánh về một toà nhà chung và bây giờ được kết nối với nhau bởi một mạng cục bộ băng thông cao (high-bandwidth local network)
Các máy rút tiền của các chi nhánh được kết nối với các máy tính tương ứng bởi các tuyến điện thoại Mỗi bộ xử lý và CSDL của nó tạo thành một nơi của mạng máy tính cục bộ
Chúng ta thấy rằng cấu trúc vật lý của các kết nối đã được thay đổi so với ví dụ 1.1; tuy nhiên các khía cạnh đặc trưng của kiến trúc vẫn không thay đổi Đặc biệt cùng các máy tính thực hiện cùng các ứng dụng truy xuất trên cùng các CSDL Một ứng dụng là cục bộ trong ví dụ 1.1 thì vẫn là cục bộ, miễn là tính cục bộ (locality) không được định
Trang 14nghĩa đối với sự phân tán địa lý của các máy tính thực hiện ứng dụng này, nhưng chỉ đối với một máy tính và CSDL riêng của nó
Nếu có các ứng dụng toàn cục thì ví dụ này được xem là CSDL phân tán, vì hầu hết các điểm đặc trưng của ví dụ trước vẫn còn hợp lệ Tuy nhiên, CSDL phân tán được thực hiện trên một mạng cục bộ (LAN) thay vì trên một mạng diện rộng (WAN), với
độ tin cậy (reliability) và thông lượng (throughput) của nó cao hơn, trong một số trường hợp sẽ thay đổi các giải pháp cho trước đối với một số vấn đề Chúng ta xét một ví dụ của một hệ thống mà chúng ta không xem là một CSDL phân tán
Ví dụ 1.3: Xét cùng một ngân hàng của ví dụ 1.1, nhưng với cấu hình của hệ thống được chỉ ra trong hình 1.5
Hình 1.5 Một hệ thống đa xử lý (multiprossor system)
Dữ liệu của các chi nhánh khác nhau được phân tán trên ba máy tính phía sau (backend conputer), mà chúng thực hiện các chức năng quản trị cơ sở dữ liệu Chương trình ứng dụng được thực hiện bởi một máy tính khác, mà máy tính này yêu cầu các dịch vụ truy xuất CSDL tại các máy tính phía sau khi cần thiết
Lý do mà hệ thống máy tính này không được xem là một CSDL phân tán, bởi vì mặc dù dữ liệu được phân tán về mặt vật lý trên các bộ xử lý khác nhau, nhưng sự phân tán của chúng là không thích hợp trên quan điểm ứng dụng Điều mà chúng ta không có ở đây chính là sự tồn tại của các ứng dụng cục bộ, bởi vì không có một máy tính nào mà chính nó có khả năng thực hiện một ứng dụng
Từ các ví dụ trên, ta có một phát biểu về cơ sở dữ liệu phân tán như sau:
Trang 15Một CSDL phân tán, là sự tập hợp dữ liệu được phân tán trên các máy tính khác nhau của một mạng máy tính Mỗi nơi của mạng máy tính có khả năng xử lý tự trị (autonomous processing capability) và có thể thực hiện các ứng dụng cục bộ Mỗi nơi cũng tham gia vào sự thực hiện của ít nhất một ứng dụng toàn cục, mà nơi này yêu cầu truy xuất dữ liệu ở nhiều nơi bằng cách dùng hệ thống truyền thông con (communication subsystem)
Định nghĩa này nhấn mạnh ba khía cạnh quan trọng của một CSDL phân tán, đó là:
- Sự phân tán dữ liệu: Dữ liệu phải được phân tán ở nhiều nơi
- Ứng dụng cục bộ: Mỗi nơi phải thực hiện ít nhất một ứng dụng cục bộ
- Ứng dụng toàn cục: Mỗi nơi phải tham gia vào sự thực hiện của ít nhất một ứng dụng toàn cục
Ví dụ 1.5: Xét hệ thống quản lý dự án trong một công ty phát triển phần mềm Để quản lý, công ty có một CSDL với lược đồ toàn cục như sau:
- NV(MANV, TENNV, CV): Quan hệ này chứa thông tin về nhân viên của công
ty gồm: mã nhân viên, tên nhân viên, chức vụ của nhân viên
- TL(CV, LUONG): Quan hệ này chứa thông tin về lương trả theo chức vụ của nhân viên
- DA(MADA, TENDA, NS, VT): Quan hệ này chứa thông tin về các dự án mà công ty đang thực hiện gồm: mã dự án, tên dự án, ngân sách dành cho dự án, nơi thực hiện dự án
- HS(MANV, MADA, NHIEMVU, THOIGIAN): Quan hệ này chứa thông tin về việc phân công các nhân viên thực hiện các dự án gồm mã nhân viên, mã dự án, nhiệm
vụ trong dự án, thời gian thực hiện trong dự án
Giả sử công ty có văn phòng ở Nam Định, Hà Nội, Đà Nẵng, Cần Thơ; mỗi nơi đều thực hiện một số dự án
Giả sử hệ thống có các ứng dụng sau:
- Ứng dụng 1: Truy xuất DA theo vị trí là “Hà Nội”
- Ứng dụng 2: Truy xuất các bộ của DA có ngân sách lớn hơn 20000
- Ứng dụng 3: Truy xuất các bộ của DA có ngân sách nhỏ hơn hoặc bằng 20000
Do tính phân tán của các văn phòng nên tại mỗi văn phòng có lưu trữ dữ liệu tác nghiệp của chính văn phòng đó, các nhân viên tại và các dự án mà văn phòng đó đang quản lý
Với các yêu cầu như trên, sử dụng thiết kế và cài đặt CSDL phân tán là hợp lý Trong đó 3 khía cạnh quan trọng của một CSDL phân tán:
- Sự phân tán dữ liệu: Dữ liệu được phân tán tại 4 nơi: Nam Định, Hà Nội, Đà Nẵng, Cần Thơ
Trang 16- Ứng dụng cục bộ: Với 3 ứng dụng trên thì mỗi nơi đều phải thực hiện ít nhất một ứng dụng cục bộ
- Ứng dụng toàn cục: Với 3 ứng dụng trên thì thì mỗi nơi đều tham gia vào sự thực hiện của ít nhất một ứng dụng toàn cục
Hình 1.6 Sơ đồ lưu trữ phân tán
1.2 Mục đích của việc sử dụng cơ sở dữ liệu phân tán
Trong những năm gần đây, công nghệ CSDL phân tán đã trở thành một lĩnh vực quan trọng của công nghệ thông tin, tính cần thiết của nó ngày càng nâng cao Có rất nhiều nguyên nhân thúc đẩy sự phát triển của CSDL phân tán Các động cơ thúc đẩy chính là:
- Sự phát triển tổ chức (organizational) kinh tế (economic)
- Kết nối lẫn nhau (interconnection) của các CSDL hiện tại
- Sự lớn mạnh gia tăng (incremental growth)
- Giảm chi phí truyền thông (communication overhead)
- Hiệu quả công việc (performance consideration)
- Độ tin cậy (reliability) và tính sẵn sàng (availability)
1.2.1 Sự phát triển của các cơ cấu tổ chức kinh tế
Cùng với sự phát triển của xã hội, nhiều cơ quan, xí nghiệp có cơ cấu tổ chức không đƣợc tập trung hoá, hoạt động phân tán trên phạm vi rộng Vì vậy thiết kế và cài đặt CSDL phân tán là phù hợp, đáp ứng mọi nhu cầu truy xuất và khai thác dữ liệu Với sự phát triển hiện nay của công nghệ máy tính, các động cơ giảm bớt chi phí để có
Trang 17các trung tâm máy tính tập trung lớn trở lên có vấn đề Tuy nhiên, các động cơ thúc đẩy về tổ chức và kinh tế có thể là lý do quan trọng nhất để phát để phát triển CSDL phân tán
1.2.2 Sự kết nối lẫn nhau của CSDL hiện tại
Các CSDL phân tán là giải pháp tự nhiên khi có nhiều CSDL đã tồn tại trong một
tổ chức và cần phải thực hiện nhiều ứng dụng toàn cục hơn Trong trường hợp này, CSDL được tạo từ dưới lên từ các CSDL cục bộ đã được tạo từ trước Tiến trình này đòi hỏi cấu trúc lại các cơ sở dữ liệu cục bộ ở một mức nhất định Tuy nhiên, việc tái cấu trúc này sẽ cần sự nỗ lực ít hơn so với việc tái tạo mới hoàn toàn một CSDL tập trung
1.2.3 Sự lớn mạnh gia tăng
Khi một tổ chức lớn mạnh lên do có thêm các đơn vị tổ chức tương đối độc lập (các chi nhánh mới, các kho mới,…), thì cách tiếp cận CSDL phân tán hỗ trợ sự lớn mạnh tăng dần với một mức độ ảnh hưởng tối thiểu đến các đơn vị đã tồn tại Với cách tiếp cận tập trung, quy mô ban đầu của hệ thống cần phải thận trọng để mở rộng trong tương lai, mà điều này cũng khó nhìn thấy trước và tốn kém nhiều cho việc thực hiện, hoặc sự lớn mạnh sẽ ảnh hưởng nhiều đến các ứng dụng mới và các ứng dụng đang tồn tại
1.2.4 Giảm chi phí truyền thông
Trong thực tế, sử dụng một số ứng dụng mang tính cục bộ sẽ làm giảm chi phí truyền thông Trong một CSDL phân tán về mặt địa lý, chẳng hạn như CSDL của ví dụ 1.1, rõ ràng nhiều ứng dụng cục bộ làm giảm đi chi phí truyền thông so với CSDL tập trung Do đó, việc tối ưu hóa hoá tính cục bộ của các ứng dụng là một trong các mục tiêu chính trong thiết kế CSDL phân tán
1.2.5 Hiệu quả công việc
Vì có nhiều bộ xử lý độc lập, do đó hiệu xuất được nâng cao thông qua một cơ chế song song hóa mức độ cao Nghiên cứu này có thể áp dụng cho bất kỳ hệ thống đa xử
lý (multiprocesor system), chứ không chỉ áp dụng cho các CSDL phân tán Chẳng hạn, cấu hình của ví dụ 1.3 cũng cho phép song song hoá, nhưng nó không được xem là một CSDL phân tán
Tuy nhiên, các CSDL phân tán có ưu điểm trong trường hợp sự phân rã dữ liệu phản ánh các tiêu chí phụ thuộc ứng dụng, mà các tiêu chí này làm cực đại hoá tính cục bộ của ứng dụng Bằng cách này, các bộ xử lý sẽ ít liên lạc với nhau hơn Tải được dùng chung giữa các bộ xử lý khác nhau, và các hiện tượng thắt cổ chai nguy kịch, chẳng hạn như mạng truyền thông hoặc các dịch vụ chung của toàn bộ hệ thống,
sẽ được tránh khỏi Hiệu quả này là kết quả của khả năng xử lý tự trị đối với các ứng dụng cục bộ mà đã được nói đến trong định nghĩa của CSDL phân tán
Trang 181.2.6 Độ tin cậy và tính sẵn sàng
Cách tiếp cận CSDL phân tán, nhất là đối với dữ liệu dư thừa, có thể được sử dụng
để có tính sẵn sàng và độ tin cậy cao Tuy nhiên, để có được mục tiêu này là điều không phải dễ dàng, và cần phải sử dụng các kỹ thuật mà hoàn toàn vẫn còn chưa được thoả thuận với nhau Khả năng tự trị của các nơi khác nhau tuy không thể đảm bảo toàn bộ độ tin cậy cao của hệ thống, nhưng nó đảm bảo đặc tính suy biến (degradation property) Nói cách khác, các hư hỏng trong CSDL phân tán có thể xảy ra nhiều hơn
so với trong CSDL tập trung, bởi vì số thành phần nhiều hơn, nhưng ảnh hưởng của mỗi hư hỏng bị hạn chế đối với các ứng dụng sử dụng dữ liệu của nơi hư hỏng và rất hiếm khi hệ thống bị ngưng hoàn toàn
Các động cơ thúc đẩy ở trên đối với CSDL phân tán không phải là mới Tại sao sự phát triển của các hệ thống CSDL chỉ mới bắt đầu? Có hai lý do chính:
Thứ nhất, sự phát triển hiện nay của máy tính nhỏ, cung cấp nhiều khả năng có mức chi phí thấp so với các máy tính lớn trước đây, sẽ hỗ trợ các phần cứng cần thiết
để phát triển các hệ thống thông tin phân tán
Thứ hai, công nghệ CSDL phân tán dựa trên hai công nghệ khác nhau đã được phát triển thành một nền tảng đủ vững chắc trong những thập niên 1970 là: công nghệ mạng máy tính, và công nghệ CSDL Đó là một công việc phức tạp để xây dựng một CSDL phân tán ở trên một mạng máy tính, và một tập hợp các hệ quản trị CSDL cục bộ tại mỗi nơi; nó sẽ không khả thi nếu không có các khối xây dựng sẵn này
1.3 Các đặc điểm chính của cơ sở dữ liệu phân tán
Các CSDL phân tán không đơn giản là sự thực hiện phân tán của các CSDL tập trung, bởi vì chúng cho phép thiết kế các hệ thống biểu thị các đặc điểm khác so với các hệ thống tập trung truyền thống Do đó, chúng ta sẽ xét các đặc điểm tiêu biểu của các CSDL truyền thống, và so sánh chúng với các đặc điểm tương ứng của các CSDL phân tán Các đặc điểm đặc trưng cho cách tiếp cận CSDL truyền thống là:
- Điều khiển tập trung (centralized control)
- Độc lập dữ liệu (data independence)
- Giảm dư thừa (reduction of redundancy)
- Các cấu trúc vật lý phức tạp dùng để truy xuất hiệu quả
- Tính toàn vẹn (integrity)
- Phục hồi (recovery)
- Điều khiển đồng thời (concurrency control)
- Tính riêng biệt (privacy) và tính bảo mật (security)
1.3.1 Điều khiển tập trung
Khả năng cung cấp điều khiển tập trung trên các tài nguyên thông tin (information resourecs) của toàn bộ xí nghiệp (hoặc một tổ chức) được xem như là một trong những
Trang 19động cơ thúc đẩy tốt nhất cho việc giới thiệu các CSDL; chúng được phát triển như là một cuộc cách mạng của các hệ thống thông tin mà trong đó mỗi ứng dụng có các tệp tin riêng biệt của nó Chức năng cơ bản của người quản trị CSDL (DBA-Database Administrator) là đảm bảo sự an toàn dữ liệu; bản thân dữ liệu đã được công nhận là
sự đầu tư quan trọng của xí nghiệp mà dữ liệu cần phải được tập trung
Trong các CSDL phân tán, ý tưởng điều khiển tập trung không nhấn mạnh Điều này còn tuỳ thuộc vào kiến trúc, như chúng ta có thể thấy trong các ví vụ 1.1 và 1.2 Ví
dụ 1.2 thích hợp với điều khiển tập trung hơn so với ví dụ 1.1
Nói chung, trong các CSDL phân tán chúng ta có thể nhận biết một cấu trúc điều khiển phân cấp (hierarchical control structure) gồm có người quản trị CSDL cục bộ (global database administrator), mà người này có trách nhiệm về CSDL cục bộ của họ Tuy nhiên, cần phải nhấn mạnh là những người quản trị CSDL cục bộ có thể có một mức độ tự trị cao, cao đến mức mà hoàn toàn không cần có người quản trị CSDL toàn cục, và sự phối hợp giữa các nơi (intersite coordination) được thực hiện bởi chính những người quản trị cục bộ Đặc tính này thường được gọi là tính tự trị vị trí (site autonomy)
Các CSDL phân tán có thể khác nhau rất nhiều về mức độ tự trị vị trí: từ tính tự vị trí hoàn toàn (complete site autonony) không có người quản trị CSDL tập trung, đến điều khiển tập trung hầu như hoàn toàn
1.3.2 Độc lập dữ liệu
Độc lập dữ liệu cũng được xem như là một trong những động cơ thúc đẩy chính cho việc giới thiệu cách tiếp cận CSDL Về cơ bản, độc lập dữ liệu có nghĩa là tổ chức hiện tại của dữ liệu là trong suốt đối với người lập trình ứng dụng Các chương trình được viết dựa trên một khung nhìn khái niệm (conceptual view) về dữ liệu, được gọi là lược đồ khái niệm (conceptual schema)
Ưu điểm chính của độc lập dữ liệu, là các chương trình không bị ảnh hưởng bởi những thay đổi về tổ chức vật lý của dữ liệu
Trong các CSDL phân tán, độc lập dữ liệu có cùng tầm quan trọng như trong các CSDL truyền thống Tuy nhiên, một khía cạnh mới được đưa vào trong khái niệm thông thường của độc lập dữ liệu, được gọi là tính trong suốt phân tán (distributation transparency) Nhờ tính trong suốt phân tán mà các chương trình có thể được viết giống như khi CSDL không được phân tán Do đó, tính đúng đắn của các chương trình không bị ảnh hưởng bởi việc di chuyển dữ liệu từ một nơi này đến một nơi khác, nhưng tốc độ thực hiện thì có bị ảnh hưởng
Độc lập dữ liệu đã được cung cấp cho các CSDL truyền thống thông qua nhiều mức (multilevel architecture), có các mô tả khác nhau về dữ liệu và ánh xạ giữa chúng; các khái niệm của lược đồ khái niệm, lược đồ lưu trữ (storage schema) đã được phát
Trang 20triển nhằm mục đích này Một cách tương tự, tính trong suốt phân tán có được trong CSDL phân tán bằng cách nêu ra các mức độ và những lược đồ mới
Thứ hai, vùng nhớ lưu trữ được tiết kiệm bằng cách loại bỏ dư thừa
Giảm dư thừa có được bằng cách dùng chung dữ liệu (data sharing), nghĩa là cho phép nhiều ứng dụng truy xuất đến cùng các tập tin và các mẩu tin
Tuy nhiên, trong các CSDL phân tán, có nhiều lý do để xem dư thừa dữ liệu là một đặc điểm cần thiết:
Thứ nhất, tính cục bộ (locality) của các ứng dụng có thể được gia tăng nếu dữ liệu được nhân bản tại tất cả các nơi mà ứng dụng cần dữ liệu này;
Thứ hai, tính sẵn sàng (availability) của hệ thống có thể được gia tăng, bởi vì một nơi bị hỏng sẽ không làm ngưng thực hiện của các ứng dụng tại các nơi khác nếu dữ liệu không được nhân bản
Nói chung, các lý do về sự dư thừa này đối với môi trường truyền thống vẫn còn có giá trị, mà do đó muốn đánh giá mức độ dư thừa tối ưu thì cần phải đánh giá về sự thoả hiệp phức tạp hơn Lợi ích của việc nhân bản một mục dữ liệu sẽ tăng theo tỉ số giữa các lần truy xuất lấy dữ liệu (retrieval access), với các lần truy xuất cập nhật dữ liệu (update access), được thực thực hiện bởi các ứng dụng truy xuất đến mục dữ liệu này Lợi ích của nhân bản dữ liệu được gia tăng, bởi vì nếu chúng ta có nhiều bản sao của một mục dữ liệu thì việc lấy dữ liệu sẽ được thực hiện trên bất kỳ bản sao nào, trong khi việc cập nhật dữ liệu sẽ được thực hiện một cách nhất quán trên tất cả các bản sao
Do đó nhân bản dữ liệu cần phải xem xét kỹ lưỡng dựa vào hai loại ứng dụng cơ bản,
đó là ứng dụng chỉ đọc và ứng dụng cập nhật Nhân bản dữ liệu giúp cho các ứng dụng chỉ đọc được thực hiện nhanh hơn, nhưng nó làm cho các ứng dụng cập nhật bị thực hiện lâu hơn vì phải cập nhật dữ liệu tại các nơi được nhân bản
Như vậy, nhân bản dữ liệu sẽ là một ưu điểm nếu hệ thống có rất nhiều ứng dụng chỉ đọc và có rất ít ứng dụng cập nhật Trong trường hợp ngược lại thì sự nhân bản dữ liệu là một nhược điểm
1.3.4 Các cấu trúc vật lý phức tạp dùng để truy xuất hiệu quả
Các cấu trúc truy xuất phức tạp, chẳng hạn như các chỉ mục thứ cấp (secondary index), các chuỗi kết nối giữa các tệp tin (interfile chain),…, là một khía cạnh chính của các CSDL truyền thống Sự hỗ trợ cho các cấu trúc này là một phần quan trọng
Trang 21nhất của các hệ quản trị CSDL (DBMS – DataBase Management System) Lý do của việc cung cấp các cấu trúc truy xuất phức tạp là để truy xuất dữ liệu hiệu quả
Trong các CSDL phân tán, các cấu trúc truy xuất phức tạp không phải là một công
cụ đúng để truy xuất hiệu quả Do đó, truy xuất hiệu quả vẫn là một vấn đề chính trong các CSDL phân tán, các cấu trúc vật lý không thích hợp về mặt công nghệ Truy xuất hiệu quả đến một CSDL phân tán không thể đƣợc cung cấp bằng cách sử dụng các cấu trúc vật lý giữa các nơi, bởi vì rất khó xây dựng và bảo trì các cấu trúc nhƣ vậy, và bởi
vì nó không thuận lợi cho liên hệ ở mức độ mẩu tin trong CSDL phân tán Chúng ta trình bày điều này bằng một ví dụ
Ví dụ 1.4: Xét lƣợc đồ CSDL tựa-Codasyl đƣợc chỉ ra trong hình 1.7
Hình 1.7 Một lược đồ CSDL Codasyl
Có hai loại mẩu tin, SUPPLIER và PART, và một kiểu tập hợp SUPPLIER-PART kết nối mẩu tin của nhà cung cấp với các mẩu tin mặt hàng đƣợc cung cấp bởi các nhà cung cấp này
Ứng dụng “tìm tất cả các mẩu tin của PART đƣợc cung cấp bởi nhà cung cấp S1” đƣợc viết bằng Codasyl-DML nhƣ trong hình 1.8
Hình 1.8 Một chương trình tựa Codasyl-DBMS để tìm kiếm các mặt hàng được
cung cấp bởi nhà cung cấp S 1
Giả sử CSDL trên đƣợc phân tán tại ba nơi của một mạng máy tính và đƣợc chỉ ra trong hình 1.9:
- Tập tin ở nhà cung cấp đƣợc đặt ở nơi 1 (quản trị trung tâm-central administration)
- Tập tin mặt hàng đƣợc phân chia thành hai tập tin con khác nhau đặt tại nơi 2 và 3 (các kho – warehouse)
Trang 22Giả thử thêm rằng hệ thống Codasyl được thực hiện phân tán, sao cho chúng ta có thể cùng chạy một chương trình (thông kết) của hình 1.8 trên CSDL phân tán Giả sử ứng dụng được chạy tại nơi 1 Rõ ràng hệ thống phải truy xuất một mẩu tin PART từ
xa cho mỗi lần lặp của vòng lặp “repeat until” Do đó, đối với mỗi truy xuất đến một mẩu tin thì không chỉ chính mẩu tin này được truyền đi, mà còn có nhiều thông điệp cùng được trao đổi với nhau
Hình 1.9 Sự phân tán của tập SUPPLIER-PART
Thực hiện hiệu quả hơn cho ứng dụng này bao gồm việc gom nhóm càng nhiều càng tốt tất cả các truy xuất từ xa (remote access) và được chỉ ra trong hình 1.10
Trang 23Hình 1.10 Ví dụ về kế hoạch truy xuất
Thủ tục được chỉ ra trong hình 1.10 bao gồm hai loại thao tác:
+ Thao tác thực hiện các chương trình là cục bộ tại những nơi đơn lẻ
+ Thao tác truyền các tệp tin giữa các nơi
Một thủ tục giống như trên được gọi là một kế hoạch truy xuất phân tán (distributed access plan)
Một kế hoạch truy xuất phân tán có thể được viết bởi người lập trình, hoặc được phát sinh bởi một bộ tối ưu hoá (optimizer) Viết một kế hoạch truy xuất phân tán tương tự như lập trình thông kết (navigational programming) trong các CSDL tập trung, theo định nghĩa là người lập trình phải chỉ định CSDL được truy xuất như thế nào Tuy nhiên, sự thông kết giữa các nơi (intersite navigation) nên được thực hiện ở mức độ của các nhóm mẩu tin, trong khi sự thông kết thường dùng một lần một mẩu tin có thể được thực hiện cho việc xử lý cục bộ tại một nơi Do đó, một ngôn ngữ thông kết (navigational language) là kém thích hợp hơn so với một ngôn ngữ hướng tập hợp (set-oriented language), phi thủ tục (nonprocedural) dùng để xây dựng các kế hoạch truy xuất
Nhiều vấn đề được giải quyết trong thiết kế một bộ tối ưu hoá mà nó phát sinh tự động một kế hoạch truy xuất, chẳng hạn như kế hoạch chỉ ra trong hình 1.10 Các vấn
Trang 24đề này được phân chia thành hai loại: Tối ưu hoá toàn cục (global optimization) và tối
ưu hoá cục bộ(local optimization)
Tối ưu hoá toàn cục bao gồm việc xác định dữ liệu nào phải được truy xuất tại các nơi nào, và từ đó các tập tin dữ liệu nào phải được truyền giữa các nơi Thông số chính của tối ưu hoá là chi phí truyền thông (conmunication cost), mặc dù chi phí truy xuất các CSDL cục bộ cũng lên tính đến một số trường hợp Tầm quan trọng tương đối của các yếu tố này tuỳ thuộc vào tỉ số giữa các chi phí truyền thông và các chi phí truy xuất đĩa (disk access cost), mà các chi phí này lại tuỳ thuộc vào loại mạng truyền thông
Tối ưu hoá cục bộ bao gồm việc quyết định truy xuất CSDL cục bộ được thực hiện như thế nào tại mỗi nơi; các vấn đề tối ưu hoá cục bộ là tiêu biểu của các CSDL không phân tán, truyền thống và sẽ không được xét đến nữa trong giáo trình này
1.3.5 Tính toàn vẹn
Trong các CSDL, tính toàn vẹn, phục hồi và điều khiển đồng thời, mặc dù có các vấn đề khác nhau, nhưng chúng có liên quan chặt chẽ với nhau Trong một phạm vi rộng, giải pháp của các vấn đề này bao gồm việc cung cấp các giao dịch (transaction) Một giao dịch là một đơn vị thực hiện nguyên tố, nghĩa là một chuỗi các thao tác hoặc tất cả đều được thực hiện hoặc tất cả đều không thực hiện
Ứng dụng chuyển quỹ, được cho trong hình 1.3, là một ứng dụng toàn cục và phải
là một đơn vị nguyên tố: cả hai phần ghi nợ và phần ghi có đều được thực hiện hoặc đều không được thực hiện không thể chấp nhận chỉ thực hiện một trong hai phần Do
đó ứng dụng chuyển quỹ cũng là một giao dịch toàn cục (global transaction)
Rõ ràng, trong các CSDL phân tán, các vấn đề của tính nguyên tố của giao dịch có một điểm riêng biệt: hệ thống sẽ chạy như thế nào nếu nơi ghi nợ hoạt động và nơi ghi
có không hoạt động khi chuyển quỹ được yêu cầu? Giao dịch này nên bị huỷ bỏ (huỷ
bỏ tất cả các thao tác đã được thực hiện khi có một nơi bị hỏng) hoặc nên có một hệ thống thông minh cố gắng thực hiện chuyển quỹ đúng đắn ngay cả khi hai nơi không bao giờ hoạt động đồng thời? Tất nhiên, sẽ ít bị ảnh hưởng bởi các hư hỏng này nếu áp dụng cách tiếp cận sau cùng
Rõ ràng, các giao dịch nguyên tố là cách thức để có tính toàn vẹn của CSDL, bởi vì chúng đảm bảo tất cả các thao tác để chuyển CSDL từ trạng thái nhất quán này sang trạng thái nhất quán khác, hoặc trở về trạng thái nhất quán ban đầu
Có hai điều nguy hiểm cho tính nguyên tố của giao dịch là các hư hỏng và tính đồng thời:
- Các hư hỏng có thể làm cho hệ thống ngừng hoạt động khi đang giao dịch giữa chừng, do đó sẽ vi phạm tính nguyên tố
Trang 25- Thực hiện đồng thời các giao dịch khác nhau có thể cho phép giao dịch đang thực hiện sẽ xem xét đến một trạng thái không nhất quán đồng thời được tạo ra bởi một giao dịch khác
1.3.6 Phục hồi
Trong một phạm vi rộng, sự phục hồi giải quyết vấn đề lưu giữ tính nguyên tố của giao dịch khi xảy ra hư hỏng Trong các CSDL phân tán, khía cạnh này là đặc biệt quan trọng, bởi vì một số nơi liên quan đến thực hiện của giao dịch có thể bị hư hỏng, được chỉ ra trong ví dụ trước
1.3.7 Điều khiển đồng thời
Điều khiển đồng thời liên quan đến việc đảm bảo tính nguyên tố của giao dịch khi
có sự thực hiện đồng thời các giao dịch Vấn đề này có thể được xem là một vấn đề đồng bộ hoá tiêu biểu Trong các CSDL phân tán, cũng như trong tất cả các hệ thống phân tán, vấn đề đồng bộ hoá khó hơn so với các hệ thống tập chung
1.3.8 Tính riêng biệt (privacy) và tính bảo mật (security)
Trong các CSDL truyền thống có điều khiển tập trung, người quản trị CSDL có thể đảm bảo chỉ có thể truy xuất dữ liệu có thẩm quyền được thực hiện Tuy nhiên, lưu ý rằng trong cách tiếp cận CSDL tập trung, không có các thủ tục điều khiển đặc biệt, tính riêng biệt và tính bảo mật dễ bị vi phạm hơn so với các cách tiếp cận cũ dựa trên các tệp tin riêng biệt
Trong các CSDL phân tán, những người quản trị cục bộ chủ yếu đối phó với cùng vấn đề giống như những người quản trị trong CSDL truyền thống Tuy nhiên, hai khía cạnh đặc biệt của các CSDL phân tán đáng được đề cập là: thứ nhất, trong một CSDL phân tán có mức độ tự trị vị trí rất cao, các chủ nhân của dữ liệu cục bộ cảm thấy cần phải được bảo vệ hơn và có thể thực hiện các bảo vệ của riêng họ thay vì phụ thuộc vào người quản trị CSDL trung tâm; thứ hai, nói chung các vấn đề bảo mật thực chất là
ở bên trong các hệ thống phân tán, bởi vì các mạng truyền thông có thể tiêu biểu cho một điểm yếu về sự bảo vệ
1.4 Mô hình kiến trúc tham chiếu CSDL phân tán
Kiến trúc tham chiếu phân lớp (layered reference architecture) cho một CSDL phân tán cho phép xác định một cách dễ dàng các mức trong suốt phân tán khác nhau Các mức này thích hợp về mặt khái niệm để hiểu các CSDL phân tán, mặc dù các hệ thống
cụ thể không thể thực hiện chúng một cách tường minh
Hình 1.11 cho thấy một kiến trúc tham chiếu dùng cho một CSDL phân tán Kiến trúc tham chiếu này không được thể hiện một cách tường minh trong tất cả CSDL phân tán Tuy nhiên, các mức của nó thích hợp về mặt khái niệm để hiểu tổ chức của một CSDL phân tán bất kỳ Do đó, chúng sẽ phân tích và nắm bắt tất cả các thành phần của kiến trúc tham chiếu này Mô hình kiến trúc tham chiếu CSDL phân tán tại
Trang 26các nơi gồm: Lƣợc đồ toàn cục (global schema), lƣợc đồ phân mảnh, lƣợc đồ định vị, lƣợc đồ ánh xạ cục bộ
Hình 1.11 Một kiến trúc tham chiếu dùng cho các CSDL phân tán
1.4.1 Lƣợc đồ toàn cục
Lƣợc đồ toàn cục định nghĩa tất cả các dữ liệu đƣợc chứa trong CSDL phân tán và
nó cũng giống nhƣ CSDL không đƣợc phân tán gì cả Do đó, lƣợc đồ toàn cục có thể đƣợc định nghĩa hoàn toàn giống nhƣ trong một CSDL không phân tán Tuy nhiên mô hình dữ liệu dùng để định nghĩa một lƣợc đồ toàn cục cần thuận tiện cho việc định nghĩa các ánh xạ giữa các mức khác nhau của CSDL phân tán Chúng ta sẽ sử dụng
mô hình quan hệ cho mục đích này Bằng cách sử dụng mô hình quan hệ, lƣợc đồ toàn cục bao gồm định nghĩa một tập hợp các quan hệ toàn cục (global relation)
Trang 27nhiều mảnh, nhưng một mảnh chỉ thuộc một quan hệ toàn cục Các mảnh được chỉ ra bởi một tên quan hệ toàn cục với một chỉ số (chỉ số mảnh – fragment index);
Quy ước: Ri là mảnh thứ i của quan hệ toàn cục R
Xét ví dụ 1.5, lược đồ phân mảnh cho quan hệ DA
1.4.3 Lược đồ định vị
Các mảnh là các phần logic của các quan hệ toàn cục, mà về mặt vật lý chúng được đặt tại một hoặc nhiều nơi của mạng Lược đồ định vị (allocation schema) xác định một mảnh được đặt tại các nơi nào Lưu ý rằng loại ánh xạ được định nghĩa trong lược
đồ định vị sẽ xác định CSDL phân tán là dư thừa (redundant) hoặc không dư thừa (nonredundant); trong trường hợp đầu thì ánh xạ là một - nhiều, trong trường hợp sau ánh xạ là một - một (one-to-one) Tất cả các mảnh thuộc cùng một quan hệ toàn cục R
và được đặt tại cùng một nơi j sẽ tạo thành hình ảnh vật lý (physical image) của quan
hệ toàn cục R tại nơi j Do đó có một ánh xạ một - một giữa hình ảnh vật lý với một cặp (quan hệ toàn cục, nơi); các hình ảnh vật lý có thể được chỉ ra bởi một tên quan hệ toàn cục và một chỉ số nơi (site index) Để phân biệt chúng với các mảnh, chúng ta sẽ
sử dụng chỉ số trên (superscript);
Quy ước: Rj
để chỉ ra hình ảnh vật lý của quan hệ toàn cục R tại nơi j
Hình 1.12 cho thấy một ví dụ về mối quan hệ giữa các loại đối tượng được định nghĩa ở trên Một quan hệ toàn cục R được phân tán thành bốn mảnh R1 , R2 ,R3 và R4 Bốn mảnh này được đặt một cách dư thừa tại ba nơi của mạng máy tính, do đó tạo thành ba hình ảnh vật lý R1 , R2 và R3
Hình 1.12 Các mảnh và các hình ảnh vật lý của một quan hệ toàn cục
Trang 28Một mảnh đặt tại nơi cho trước được gọi là bản nhân (replica) của mảnh này ký
hiệu bằng cách dùng tên quan hệ toàn cục và hai chỉ số (một chỉ số mảnh và một chỉ số nơi)
Quy ước: Rij là bản nhân của mảnh Ri được đặt nơi j
Ví dụ trong hình 1.12, ký hiệu R23 là bản nhân của mảnh R2 được đặt nơi 3
Cuối cùng, lưu ý rằng hai hình ảnh vật lý có thể giống nhau Trong trường hợp này, chúng ta sẽ nói rằng một hình ảnh vật lý và một bản nhân của một hình ảnh vật lý khác Ví dụ trong hình 1.12, R1
là một bản nhân của R2 Theo hình 1.6, các mảnh và các hình ảnh vật lý của quan hệ DA được mô tả như hình 13
Hình 1.13 Các mảnh và các hình ảnh vật lý của quan hệ dự án
1.4.4 Lược đồ ánh xạ cục bộ
Ba mức ba mức trên cùng của kiến trúc tham chiếu dùng cho các CSDL phân tán là độc lập vị trí (site independent) Do đó, chúng không phụ thuộc vào mô hình dữ liệu của các DBMS cục bộ ở mức thấp hơn, cần phải ánh xạ các hình ảnh vật lý vào các đối tượng mà chúng được thao tác bởi các DBMS cục bộ ánh xạ này được gọi là lược
đồ ánh xạ cục bộ (local mapping schema) và phụ thuộc vào loại DBMS cục bộ; do đó, trong một hệ thống không đồng nhất, chúng ta có nhiều loại ánh xạ cục bộ khác nhau tại các nơi khác nhau
1.4.5 Mục tiêu của kiến trúc tham chiếu CSDL phân tán
Kiến trúc này cung cấp một cơ cấu tổ chức khái niệm (conceptual framework) rất tổng quát để hiểu các CSDL phân tán Ba mục tiêu quan trọng nhất, mà do đó có được
Trang 29các đặc điểm kiến trúc này là sự tách biệt giữa phân mảnh dữ liệu và định vị dữ liệu, điều khiển dư thừa và sự độc lập giữa các DBMS cục bộ
1) Khái niệm phân mảnh dữ liệu tách biệt với khái niệm định vị dữ liệu: Sự tách biệt này cho phép chúng ta phân biệt hai mức trong suốt phân tán khác nhau được gọi
là trong suốt phân mảnh (fargmentation transparency) và trong suốt vị trí (location transparency) Trong suốt phân mảnh là trong suốt cao nhất cho phép người sử dụng hoặc người lập trình ứng dụng làm việc trên các quan hệ toàn cục mà không biết nó được phân mảnh như thế nào Trong suốt vị trí là mức trong suốt thấp hơn và đòi hỏi người sử dụng hoặc người lập trình ứng dụng làm việc trên các mảnh thay vì trên các quan hệ toàn cục Tuy nhiên, không biết các mảnh được đặt tại những nơi nào Sự tách biệt giữa khái niệm về sự phân mảnh và sự định vị sẽ rất thuận lợi trong thiết kế CSDL phân tán, bởi vì việc xác định các phần dữ liệu thích hợp sẽ khác với vấn đề định vị tối
ưu (optimal allcoation), và sẽ được trình bày trong chương sau
2) Điều khiển dư thừa tường minh: Kiến trúc tham chiếu cung cấp điều khiển dư thừa tường minh và mức phân mảnh Ví dụ trong hình 1.12 hai hình ảnh vật lý R2
và
R3 phủ lấp nên nhau nghĩa là chúng chứa dữ liệu chung Định nghĩa các mảnh tách biệt (disjoint fragment) khi xây dựng các khối hình ảnh vật lý cho phép chúng ta tham chiếu tường minh đến phần phủ lấp này: mảnh được nhân bản R2 Như chúng ta sẽ thấy, điều khiển dư thừa tường minh có ích trong nhiều khía cạnh của quản lý CSDL phân tán
3) Sự độc lập giữa các DBMS cục bộ: Đặc điểm này được gọi là trong suốt ánh xạ cục bộ (local mapping transparency), cho phép chúng ta nghiên cứu nhiều vấn đề về quản lý CSDL phân tán mà không cần phải đưa vào mô hình dữ liệu cụ thể của các DBMS cục bộ Rõ ràng, trong hệ thống đồng nhất (homogenous system), các lược đồ độc lập vị trí (site-independent schema) có thể được định nghĩa bằng cách sử dụng cùng mô hình dữ liệu của các DBMS cục bộ, do đó làm giảm độ phức tạp của ánh xạ này
Một loại trong suốt liên quan chặt chẽ với trong suốt vị trí là trong suốt nhân bản (replycation transparecy) trong suốt nhân bản có nghĩa là người sử dụng không biết có
sự phân bản các mảnh Rõ ràng trong suốt nhân bản được bao hàm trong trong suốt vị trí: tuy nhiên, trong một số trường hợp người sử dụng không có trong suốt vị trí nhưng lại có trong suốt nhân bản (do đó họ sử dụng một bản nhân riêng biệt và hệ thống làm các thao tác tương ứng trên các bản nhân khác) Trong giáo trình này, chúng ta không phân biệt trong suốt nhân bản với trong suốt vị trí
Một lưu ý cuối cùng về kiến trúc tham chiếu là chúng ta có thể nói rằng nó thực hiện cùng một chức năng như kiến trúc ANSI/SPARC trong các DBMS truyền thống
Trang 301.5 Cấu trúc logic của CSDL phân tán
Có 3 kiểu thiết kế cơ sở dữ liệu phân tán trên mạng máy tính
- Các bản sao: Cơ sở dữ liệu được sao chép thành nhiều bản và được lưu trữ trên các site phân tán khác nhau của mạng máy tính
- Phân mảnh: Cơ sở dữ liệu được phân thành nhiều mảnh nhỏ theo kỹ thuật phân mảnh dọc hoặc phân mảnh ngang, các mảnh được lưu trữ trên các site khác nhau
- Mô hình kết hợp các bản sao và phân mảnh Trên một số site chứa cấc bản sao, một số site khác chứa các mảnh
1.6 Lợi ích phân tán dữ liệu trên mạng
Việc phân tán dữ liệu tạo cho cơ sở dữ liệu có tính tự trị địa phương Tại một site,
dữ liệu được chia sẻ bởi một nhóm người sử dụng tại nơi họ làm việc và như vậy
dữ liệu được kiểm soát cục bộ, phù hợp đối với những tổ chức phân bố tập trung Cho phép thiết lập và bắt buộc sách lược địa phương đối với việc sử dụng cơ sở dữ liệu
Hình 1.14 Mô hình Client-Server nhiều lớp
Tính song song trong các hệ cơ sở dữ liệu phân tán có thể nâng cao được hiệu quả truy nhập Tính chất này có thể lợi dụng để xử lý song song các câu hỏi Có hai dạng:
- Câu hỏi đồng thời phát sinh tại các trạm khác nhau
- Câu hỏi có thể được phân rã thành những câu hỏi thành phần được thực hiện song song tại các trạm khác nhau
Trong tổ chức phân tán, tương tranh dịch vụ, CPU, vào/ra ít hơn so với tổ chức tập trung
Độ trễ trong truy nhập từ xa có thể giảm do việc thực hiện địa phương hoá dữ liệu một cách hợp lý
Độ tin cậy và tính sẵn sàng được nâng cao trong tổ chức phân tán, là một trong những mục tiêu cơ bản của tổ chức dữ liệu phân tán Việc tổ chức lặp dữ liệu cũng có thể đảm bảo cho việc truy nhập cơ sở dữ liệu không bị ảnh hưởng khi có sự cố xảy ra đối với trạm hoặc kênh truyền, không thể làm sụp đổ cả hệ thống
Trang 31Tổ chức dữ liệu phân tán kinh tế hơn so với tổ chức tập trung Giá cho một hệ máy tính nhỏ rẻ hơn nhiều so với giá của một máy tính lớn khi triển khai cùng một mục đích ứng dụng Giá chi phí truyền thông cũng ít hơn do việc địa phương hoá dữ liệu Khả năng mở rộng hệ thống và phân chia tài nguyên Việc mở rộng khả năng cho một hệ xử lý phân tán là dễ dàng hơn và cho phép thực hiện tốt hơn
1.7 Kiến trúc hệ quản trị CSDL phân tán
Có ba kiểu kiến trúc tham chiếu cho hệ quản trị CSDL phân tán, đó là hệ Client Server, hệ quản trị CSDL phân tán kiểu ngang hàng (Peer-to-Peer) và hệ đa CSDL Các lựa chọn cài đặt một hệ quản trị CSDL được tổ chức hệ thống theo các đặc tính: (1) tính tự trị, (2) tính phân tán, (3) tính hỗn hợp (không thuần nhất) của hệ thống
1.7.1 Các đặc tính của kiến trúc hệ quản trị CSDL phân tán
1) Tính tự vận hành
Tính tự vận hành hay còn gọi là tính tự trị, được hiểu là sự phân tán quyền điều khiển Là mức độ hoạt động độc lập của từng hệ quản trị CSDL riêng lẻ Tính tự vận hành được biểu hiện qua chức năng của một số yếu tố, như sự trao đổi thông tin giữa các hệ thống thành viên với nhau, thực hiện giao dịch độc lập/ không độc lập và có được phép sửa đổi chúng hay không Yêu cầu của hệ thống tự vận hành được xác định theo một số cách sau:
- Các thao tác cục bộ của hệ quản trị CSDL riêng lẻ không bị ảnh hưỏng khi tham gia hoạt động trong hệ đa CSDL (Multi Database System)
- Các hệ quản trị CSDL xử lý và tối ưu truy vấn cũng không bị ảnh hưởng bởi thực thi truy vấn toàn cục truy nhập nhiều hệ CSDL
- Tính nhất quán của hệ thống hoặc thao tác không bị ảnh hưởng khi các hệ quản trị CSDL riêng lẻ kết nối hoặc tách rời khỏi tập các CSDL
Hình 1.15 Lựa chọn cài đặt hệ quản trị CSDL
Trang 32Mặt khác, xác định chiều của tính tự trị như sau:
- Tự trị thiết kế: Mỗi hệ quản trị CSDL riêng lẻ có thể sử dụng mô hình dữ liệu và
kỹ thuật quản lý giao dịch theo ý muốn
- Tự trị truyền thông: Mỗi hệ quản trị CSDL riêng lẻ tuỳ ý đưa ra quyết định của nó
về loại thông tin mà nó cần cung cấp cho các hệ quản trị CSDL khác hoặc phần mềm điều khiển thực thi toàn cục của nó
- Tự trị thực thi: Mỗi hệ quản trị CSDL có thể thực thi các giao dịch được gửi tới
nó theo bất kỳ cách nào mà nó muốn
Ba lựa chọn xem xét ở trên cho các hệ thống tự trị không phải là những khả năng duy nhất, mà là ba lựa chọn phổ biến nhất
2) Tính phân tán dữ liệu
Tính phân tán dữ liệu: Tính tự vận hành đề cập đến việc phân tán quyền điều khiển, thì tính phân tán dữ liệu đề cập đến dữ liệu Hiển nhiên, sự phân tán vật lý của dữ liệu trên nhiều vị trí khác nhau Người sử dụng nhìn dữ liệu bằng khung nhìn dữ liệu Có hai cách phân tán dữ liệu: phân tán kiểu Client/Server và phân tán kiểu ngang hàng Kết hợp với các tùy chọn không phân tán, trục kiến trúc cho ba loại kiến trúc khác nhau
- Phân tán kiểu Client/Server ngày càng phổ biến Quản trị dữ liệu tại Server, Client cung cấp môi trường ứng dụng và giao diện người sử dụng Nhiệm vụ truyền thông được chia sẻ giữa các Client và Server Hệ quản trị CSDL kiểu Client/Server là
hệ phân tán chức năng Có nhiều cáchễuây dựng, mỗi cách cung cấp một mức độ phân tán khác nhau
- Trong kiểu ngang hàng không có sự khác biệt giữa chức năng Client và Server Mỗi máy đều có đầy đủ chức năng của hệ quản trị CSDL và có thể trao đổi thông tin với các máy khác để thực hiện các truy vấn và giao dịch Các hệ thống này cũng được gọi là phân tán đầy đủ
3) Tính hỗn hợp
Từ khác biệt về phần cứng và các giao thức mạng đến khác biệt trong cách quản lý
dữ liệu, có một số dạng hỗn hợp trong các hệ phân tán Sự khác biệt lớn nhất liên quan đến các mô hình dữ liệu, ngôn ngữ truy vấn và giao thức quản lý giao dịch Biểu diễn dữ liệu bằng nhiều mô hình khác nhau tạo ra tính hỗn hợp Tính hỗn hợp trong ngôn ngữ truy vấn không chỉ bao gồm việc sử dụng các dạng truy nhập dữ liệu khác nhau trong các mô hình dữ liệu khác nhau , mà còn bao gồm những khác biệt trong các ngôn ngữ ngay cả khi sử dụng cùng một mô hình dữ liệu Ngôn ngữ truy vấn khác nhau sử dụng cùng một mô hình dữ liệu thường chọn các phương pháp khác nhau để diễn tả các yêu cầu giống nhau Ví dụ, hệ quản trị CSDL DB2 sử dụng SQL, trong khi hệ quản trị CSDL INGRES sử dụng QUEL
Trang 334) Các kiểu kiến trúc
Xem xét các kiến trúc trong hình 1.15, bắt đầu từ gốc và di chuyển theo trục tự trị
Ký hiệu A là tự trị, D là phân tán và H là hỗn hợp Các kiểu trên trục tự trị được định nghĩa, A0 là biểu diễn tích hợp chặt chẽ,A1 biểu diễn hệ bán tự trị và A2 biểu diễn hệ cô lập Trên trục phân tán, D0 nghĩa là không phân tán, D1 là hệ Client/Server, và D2 là phân tán ngang hàng Trên trục hỗn hợp, H0 xác định các hệ thống thuần nhất, H1 là các hệ hỗn hợp
Trong hình 1.15 định nghĩa hai loại kiến trúc: (A0, D2, H0) là hệ quản trị CSDL thuần nhất phân tán (ngang hàng) và (A2, D2, H1) là phức hệ CSDL hỗn hợp, phân tán ngang hàng
- Loại kiến trúc (A0, D0, H0): Được gọi là hệ thống phức hợp (Composite System) Nếu không phân tán dữ liệu và hỗn hợp, thì hệ thống chỉ là một tập gồm nhiều hệ quản trị CSDL được tích hợp về mặt lôgic Phù hợp với các hệ thống đa xử
lý và tài nguyên đều dùng chung Kiểu này không xuất hiện nhiều trong thực tế
- Loại kiến trúc (A0, D0, H1): Nếu hỗn hợp thì phải có nhiều bộ quản lý dữ liệu hỗn hợp có thể cung cấp một khung nhìn tích hợp cho người sử dụng Trước đây được thiết kế truy nhập tích hợp CSDL mạng, phân cấp và quan hệ trên cùng một máy đơn
- (A0, D1, H0): Trường hợp CSDL phân tán khi có một khung nhìn tích hợp về dữ liệu cung cấp cho người sử dụng Hệ thống loại này thích hợp cho phân tán Client/Server
- (A0, D2, H0): Biểu diễn môi trường phân tán hoàn toàn trong suốt cung cấp cho người sử dụng Không phân biệt giữa Client và Server, cung cấp đầy đủ các chức năng
- (A1, D0, H0): Là dạng các hệ thống bán tự trị Các hệ thống thành viên có quyền
tự trị nhất định trong các hoạt động của chúng Kiến trúc này sử dụng thiết lập bộ khung cho hai dạng kiến trúc kế tiếp Trong thực tế rất ít sử dụng
- (A1, D0, H1): Là hệ thống hỗn hợp và tự trị, rất phổ biến hiện nay Một ví dụ hệ thống loại này bao gồm một hệ quản trị CSDL quan hệ quản lý dữ liệu có cấu trúc, một hệ quản trị CSDL xử lý hình ảnh tĩnh và một Server cung cấp video Để cung cấp hình ảnh tích hợp cho người sử dụng, cần phải che dấu tính tự động và tính hỗn hợp của các hệ thống thành viên và thiết lập một giao diện chung
- (A1, D1, H1): Trong các hệ thống loại này, các hệ thống thành viên được cài đặt trên các máy khác nhau Được gọi là các hệ quản trị CSDL hỗn hợp phân tán Đặc điểm phân tán ít quan trọng hơn so với tính tự trị và hỗn hợp Các hệ quản trị CSDL kiểu (A0, D1, H0) và (A0, D2, H0) có thể giải quyết những vấn đề khó khăn khi phân tán dữ liệu
Trang 34- (A2, D0, H0): Đặc điểm của các hệ thống loại này là các thành viên không có khái niệm thỏa hiệp và không biết cách liên lạc với nhau Nếu không có tính hỗn hợp hoặc tính phân tán thì một phức hệ CSDL chỉ là một tập các CSDL tự trị được kết nối với nhau Hệ quản trị phức hệ CSDL cho phép quản lý tập hợp các CSDL tự trị và cho phép truy nhập trong suốt đến nó Dạng hệ thống này ít thực tế
- (A2, D0, H1): Hệ thống loại này có tính thực tế cao, hơn cả (A1, D0, H1).Có khả năng xây dựng các ứng dụng truy nhập dữ liệu từ nhiều hệ thống lưu trữ khác nhau với các đặc tính khác nhau Có thể là những hệ thống lưu trữ không phải là hệ quản trị CSDL và không được thiết kế phát triển có thể tương tác với các phần mềm khác Cũng như trong hệ (A1, D0, H1), giả thiết các hệ thống thành viên không tham gia vào toàn bộ hệ thống
- (A2, D1, H1) và (A2, D2, H1): Hai trường hợp này đều biểu diễn cho trường hợp các CSDL thành viên tạo ra phức hệ CSDLđược phân tán trên mọt số vị trí – gọi là các phức hệ CSDL phân tán Cả hai trường hợp các giải pháp phân tán và xử lý tương tác tương tự nhau Trong trường hợp phân tán Client/Server (A2, D1, H1), các vấn đề tương tác được trao cho hệ thống trung gian (Middleware System), tạo ra kiến trúc ba tầng
Tổ chức của một phức hệ CSDL phân tán và việc quản lý nó hoàn toàn khác với các hệ quản trị CSDL phân tán Sự khác biệt cơ bản của chúng là ở mức độ tự trị của các chương trình quản lý dữ liệu cục bộ Các phức hệ CSDL phân tán hoặc tập trung đều có thể thuần nhất hoặc hỗn hợp, không thuần nhất
Sự phân tán, tính hỗn hợp và tính tự trị của CSDL là các vấn đề liên quan đến nhau Mục tiêu của tài liệu là các hệ phân tán nên chú ý nhiều hơn tính hỗn hợp và tính tự trị
1.7.2 Các kiểu kiến trúc tham chiếu hệ quản trị CSDL phân tán
Phần này sẽ xem xét chi tiết ba kiến trúc hệ thống trong số các kiến trúc đã được trình bày ở trên Ba loại kiến trúc là:
- Hệ Client/Server, bỏ qua các vấn đề hỗn hợp và tự trị có dạng (Ax, D1, Hy)
- Các CSDL phân tán, ứng với (A0, D2, H0)
- Hệ đa CSDL, ứng với (A2, Dx, Hy)
1) Các hệ Client/Server
Các hệ quản trị CSDL Client/Server cung cấp kiến trúc hai lớp chức năng Server
và chức năng Client, nhằm tạo ra sự dễ dàng trong việc quản lý tính phức tạp của các
hệ quản trị CSDL hiện đại và tính phức tạp của việc phân tán dữ liệu
Server thực hiện hầu hết các công việc quản lý dữ liệu Nghĩa là tất cả mọi xử lý và tối ưu hoá truy vấn, quản lý giao dịch và quản lý lưu trữ đều được thực hiện trên Srver Client, ngoài ứng dụng và giao diện người sử dụng, có một module hệ quản trị
Trang 35CSDL Client trách nhiệm quản lý dữ liệu và khóa giao dịch được gửi đến Client Client và Server trao đổi với nhau bởi các câu lệnh SQL Cụ thể hơn, Client chuyển truy vấn SQL đến Server, Server sẽ thực hiện và trả lại kết quả cho Client
Loại kiến trúc Client/Server đơn giản chỉ có một Server được truy nhập bởi nhiều Client, gọi là đa Client-một Server Việc quản lý dữ liệu không khác so với CSDL tập trung CSDL được lưu chỉ trên Server và có phần mềm quản lý nó Tuy nhiên, sự khác biệt quan trọng so với các hệ thống tập trung là cách thực thi giao dịch và quản
lý bộ nhớ Cache
Loại kiến trúc có nhiều Server trong hệ thống, được gọi là đa Client-đa Server Có hai chiến lược quản lý:
- Client quản lý kết nối của nó tới Server
- Client chỉ biết Server chủ của nó và liên lạc với các Server khác qua Server chủ khi có yêu cầu
Hình 1.16 Kiến trúc tham chiếu Client/Server
Chiến lược thứ nhất làm đơn giản cho các Server, nhưng lại gắn thêm nhiều trách nhiệm cho các máy Client Điều này dẫn đến một hệ thống được gọi là hệ máy khách
tự phục vụ Mặt khác, với chiến lược thứ hai, tập trung vào chức năng quản lý dữ liệu tại Server Vì vậy, tính trong suốt của truy nhập dữ liệu được cung cấp tại giao diện Server
Mô hình CSDL Logic Client/Server là duy nhất Mô hình mức vật lý của nó có thể
Trang 36phân tán Vì vậy phân biệt giữa Client/Server và ngang hàng không phải ở mức độ trong suốt được cung cấp cho người sử dụng và cho ứng dụng mà ở mô hình kiến trúc được dùng để nhận ra mức độ trong suốt
2) Các hệ phân tán ngang hàng (Peer to Peer)
Trước tiên khảo sát về tổ chức dữ liệu vật lý trong các hệ ngang hàng Tổ chức lưu trữ trên các máy khác nhau có thể khác mhau Điều này có nghĩa là cần phải có một định nghĩa nội tại riêng cho mỗi vị trí, được gọi là lược đồ nội tại cục bộ LIS (Local Internal Schema) Lược đồ khái niệm toàn cục mô tả cấu trúc logic của dữ liệu ở mọi
Hình 1.17 Kiến trúc tham chiếu CSDL phân tán
Mô hình trong hình 1.17 được mở rộng từ mô hình ANSI/SPARC Nó phản ảnh tính trong suốt và tính độc lập dữ liệu Trong suốt định vị và trong suốt nhân bản được hỗ trợ bằng các lược đồ khái niệm cục bộ và toàn cục và ánh xạ giữa chúng Mặt khác, trong suốt mạng được hỗ trợ bằng lược đồ khái niệm toàn cục Người sử dụng truy vấn dữ liệu không cần biết đến vị trí hay các thành phần CSDLcục bộ Hệ quản trị CSDL phân tán dịch truy vấn toàn cục thành các nhóm truy vấn cục bộ và được thực hiện bởi các thành phần quản trị CSDL phân tán tại các trạm khác nhau và
Trang 37giữa các trạm giao tiếp với nhau
Mô hình đang xét là mô hình ANSI/SPARC đƣợc mở rộng bằng cách thêm vào từ điển/thƣ mục toàn cục GD/D (Glocal Directory/Directionary) cho phép ánh xạ yêu cầu toàn cục Ánh xạ cục bộ đƣợc thực hiện bởi từ điển/thƣ mục cục bộ LD/D (Local Directory/Directionary) Vì vậy, các thành phần quản lý CSDL cục bộ đƣợc tích hợp thành các chức năng của hệ quản trị CSDL toàn cục
Trong hình 1.18 lƣợc đồ khái niệm cục bộ ánh xạ đến lƣợc đồ trong tại mỗi vị trí Lƣợc đồ khái nhiệm toàn cục ánh xạ vào lƣợc đồ khái niệm cục bộ Tất cả các định nghĩa khung nhìn của mô hình ngoài đều có phạm vi toàn cục Các ánh xạ nó đảm bảo cho tính trong suốt của cơ sở dữ liệu phân tán và tính độc lập của cơ sở phân tán
Hình 1.18 Sơ đồ chức năng của hệ quản trị CSDL phân tán tích hợp
3) Hệ quản trị phức hệ CSDL phân tán
a) Mô hình kiến trúc tổng quan của một phức hệ
Một phức hệ phân tán bao gồm nhiều phức hệ quản trị đƣợc cài đặt tại nhiều vị trí (site) khác nhau Mỗi phức hệ tại mỗi vị trí bao gồm hai thành phần chính đó là:
Hệ quản trị dữ liệu DBMS (Database Management System) là các hệ quản trị cơ sơ
Trang 38dữ liệu ở mức thấp nhất của hệ thống Nó có chức năng tổ chức lưu trữ và thực hiện các thao tác vấn tin được chuyển cho nó và trả về kết quả cho hệ thống
Các phức hệ quản trị (Multi-DataBase Management System) tại mỗi site, các phức
hệ này có chức năng quản lý các DBMS thành phần trong hệ thống và các mối tương tác qua lại giữa chúng Đồng thời nhận và xử lý các câu vấn tin trước khi chuyển giao cho các DBMS thành phần
Hình 1.19 Mô hình kiến trúc của một phức hệ
b) Phân loại các phức hệ dựa vào cấu trúc
Hệ quản trị phức hệ CSDL phân tán khác với hệ quản trị CSDL phân tán được phản ánh trong định nghĩa lược đồ khái niệm toàn cục Trong các hệ quản trị CSDL phân tán tích hợp logic, lược đồ khái niệm toàn cục là hợp của các CSDL cục bộ, trong khi đó ở hệ quản trị phức hệ CSDL phân tán chỉ định nghĩa một tập con gồm một số CSDL cục bộ mà các hệ quản trị CSDL cục bộ chia sẻ Vì vậy định nghĩa CSDL toàn cục đa CSDL có khác với định nghĩa CSDL toàn cục trong hệ quản trị CSDL phân tán
Trong một hệ đa CSDL, lược đồ khái niệm toàn cục GCS được định nghĩa bằng cách tích hợp các lược đồ ngoài của các CSDL tự vận hành cục bộ hoặc các thành phần của lược đồ khái niệm cục bộ của chúng Mặt khác, vì hệ thống là tự trị, người
sử dụng của một DBMS cục bộ sẽ định nghĩa khung nhìn riêng của họ trên CSDL cục bộ và không cần phải thay đổi các ứng dụng khi truy xuất vào các CSDL cục bộ khác
Việc thiết kế lược đồ khái niệm toàn cục GCS trong phức hệ CSDL thường được
Trang 39đồ toàn cục (trong khi quản trị CSDL phân tán, việc thiết kế lược đồ khái niệm toàn cục GCS thường được thiết kế từ trên xuống (Top-Down), ánh xạ lại theo hướng ngược lại) Khung nhìn của người sử dụng trên lược đồ quan hệ toàn cục được định nghĩa theo yêu cầu truy nhập toàn cục Các lược đồ ngoài toàn cục GES (Global External Schema) và lược đồ khái niện toàn cục
GCS không nhất thiết phải sử dụng theo cùng một mô hình và ngôn ngữ dữ liệu, không cần xác định hệ thống là thuần nhất hay hỗn hợp Nếu hệ thống là hỗn hợp, thì
có hai lựa chọn cài đặt: đơn ngữ (Unilingual) và đa ngữ (Multilingual)
Hệ quản trị phức hệ CSDL đơn ngữ cho phép sử dụng các mô hình và ngôn ngữ dữ liệu khác nhau khi truy xuất CSDL cục bộ và CSDL toàn cục Bất kỳ ứng dụng nào truy xuất dữ liệu từ các phức hệ CSDL đều phải thực hiện qua một khung nhìn đã được định nghĩa trong lược đồ khái niệm toàn cục, nghĩa là truy xuất CSDL toàn cục khác với truy xuất CSDL cục bộ Vì vậy, phải định nghĩa lược đồ ngoài cục bộ LES (Local External Schema) trên lược đồ khái niệm cục bộ và lược đồ ngoài toàn cục GES trên lược đồ khái niệm toàn cục Khung nhìn ngoài khác nhau cũng có thể sử dụng các ngôn ngữ truy nhập khác nhau Hình 1.20 mô tả mô hình logic của hệ CSDL đơn ngữ tích hợp với lược đồ khái niệm cục bộ trong lược đồ khái niệm toàn cục
Hình 1.20 Kiến trúc phức hệ CSDL với một lược đồ khái niệm toàn cục
Kiến trúc đa ngữ (Multilingual) cho phép người sử dụng truy nhập tới CSDL toàn cục bằng lược đồ ngoài được định nghĩa bởi ngôn ngữ của hệ quản trị CSDL cục bộ Định nghĩa GCS trong kiến trúc đơn ngữ và đa ngữ giống nhau Tuy nhiên định nghĩa các lược đồ ngoàì trong kiến trúc đa ngữ được mô tả bằng ngôn ngữ của lược
đồ ngoài của CSDL cục bộ Truy vấn được xử lý một cách chính xác như truy vấn trong các hệ quản trị CSDL tập trung Truy vấn CSDL toàn cục được sử dụng ngôn
Trang 40ngữ của hệ quản trị CSDL Người sử dụng truy vấn CSDL dễ dàng hơn với cách tiếp cận đa ngữ
c) Các mô hình không sử dụng lược đồ khái niệm toàn cục
Một hệ thống có nhiều CSDL nhưng không có lược đồ toàn cục có nhiều ưu điểm hơn, so với hệ thống có lược đồ khái niệm toàn cục Hình 1.21 mô tả kiến trúc của một mô hình gồm hai tầng: tầng hệ thống cục bộ và tầng phức hệ CSDL Tầng hệ thống cục bộ gồm một số hệ quản trị CSDL với chức năng là trình bày cho tầng phức
hệ CSDL các phần của CSDL cục bộ dùng chung bởi nhiều người sử dụng các CSDL khác Dữ liệu dùng chung được trình bày bởi lược đồ khái niệm cục bộ hoặc qua một định nghĩa lược đồ ngoài cục bộ Tầng này được trình bày bằng một tập các lược đồ khái niệm cục bộ LCS Nếu hỗn hợp, mỗi lược đồ LCS có thể sử dụng mỗi mô hình
dữ liệu khác nhau
Trên tầng hệ thống cục bộ là tầng hệ đa CSDL, bao gồm các khung nhìn được định nghĩa trên một hay nhiều lược đồ khái niệm cục bộ Vì vậy có thể cấp quyền truy xuất vào nhiều CSDL bởi ánh xạ giữa khung nhìn và lược đồ khái niệm cục bộ
Hình 1.21 Kiến trúc phức hệ CSDL không sử dụng GCS
Mô hình kiến trúc dựa trên các thành phần của hệ đa CSDL khác biệt nhiều so với một hệ quản trị CSDL phân tán Khác biệt cơ bản là sự tồn tại của các DBMS hoàn chỉnh quản lý từng CSDL khác nhau Đa CSDL cung cấp một tầng phần mềm chạy trên những DBMS riêng biệt này và cung cấp cho người dùng những tiện ích để truy xuất nhiều CSDL khác nhau Tuỳ thuộc vào vấn đề có lược đồ khái niệm toàn cục hoặc là có vấn đề đa chủng hay không, nội dung của tầng phần mềm sẽ thay đổi Hình 1.22 trình bày một hệ quản trị đa CSDL phi phân tán Nếu là hệ phân tán, chúng
ta cần phải sao chép tầng đa CSDL cho mỗi vị trí có hệ quản trị CSDL cục bộ tham gia vào hệ thống Cũng cần chú ý rằng nếu xem xét từng DBMS riêng biệt, tầng phức
hệ CSDL chỉ đơn giản là một ứng dụng có nhiệm vụ “đệ trình” các yêu cầu và nhận kết quả trả lời