SƠ LƯC VỀ CƠ SỞDỮLIỆUPHÂN BỐ Trong những năm gần đây, cơsởdữliệuphânbố đã trở thành một lãnh vực quan trọng của xử lý thông tin. Các công ty hoặc cơ quan có hoạt động qui mô lớn cần phải có các hệ thống xử lý thông tin trên một mạng diện rộng. Điều này đòi hỏi một hệ quản trò cơsởdữliệuphânbố hiệu quả và có độ tin cậy cao. Cơsởdữliệuphânbố tránh được một số nhược điểm của các cơsởdữliệu tập trung và thích hợp với cách tổ chức không tập trung của các công ty hoặc cơ quan lớn. I. CÁC ĐẶC ĐIỂM CỦA CƠSỞDỮLIỆUPHÂNBỐCơsởdữliệuphânbố không đơn giản là sự phânbố của các cơsởdữliệu tập trung, bởi vì cơsởdữliệuphânbốcó nhiều đặc điểm khác biệt so với cơsởdữliệu tập trung, truyền thống. Phần này so sánh cơsởdữliệuphânbố với cơsởdữliệu tập trung ở một số đặc điểm: điều khiển tập trung, sự độc lập dữ liệu, sự giảm dư thừa dữ liệu, các cấu trúc vật lý phức tạp để truy xuất hiệu quả. I.1. Điểu khiển tập trung : Điều khiển tập trung (centralized control) là một đặc điểm của cơsởdữ liệu, toàn bộdữliệu được tập trung lại nhằm để tránh sự dư thừa dữ liệu, và được quản lý bởi người quản trò cơsởdữ liệu. Chức năng cơ bản của người quản trò cơsởdữliệu (DBA - database administrator) là bảo đảm sự an toàn của dữ liệu. Trong các cơsởdữliệuphân bố, vấn đề điều khiển tập trung không được nhấn mạnh. Nói chung, trong các cơsởdữliệuphân bố, sự điều khiển được thực hiện theo một cấu trúc điều khiển phân cấp bao gồm hai loại người quản trò cơsởdữ liệu: (1) Người quản trò cơsởdữliệu toàn cục (global database administrator) là người có trách nhiệm chính về toàn bộcơsởdữliệuphân bố. (2) Người quản trò cơsởdữliệu cục bộ (local database administrator) là người có trách nhiệm vềcơsởdữliệu cục bộ của họ. Tuy nhiên, những người quản trò cơsởdữliệu cục bộ cần phải có những quyền độc lập riêng về cơ sởdữliệudữliệu cục bộ của mình mà người quản trò cơsởdữliệu toàn cục hoàn toàn không có những quyền này và sự phối hợp giữa các vò trí được thực hiện bởi chính những người quản trò cục bộ. Đặc điểm này được gọi là sự độc lập vò trí. Các cơ sởdữliệuphân bố có thể khác nhau rất nhiều về mức độ độc lập vò trí: từ sự độc lập vò trí hoàn toàn (không có người quản trò cơsởdữliệu tập trung) đến sự điều khiển tập trung hầu như hoàn toàn. I.2. Sự độc lập dữliệu : Sự độc lập dữliệu (data independence) cũng là một đặc điểm của cơsởdữ liệu. Sự độc lập dữliệucó 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. Ưu điểm chính của sự độ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 cơ sởdữliệuphân bố, sự độc lập dữliệu cũng quan trọng như trong các cơsởdữliệu tập trung. Tuy nhiên, một đặc điểm mới được đưa vào trong khái niệm thông thường của sự độc lập dữliệu là sự trong suốt phânbố (distribution transparency). Nhờ sự trong suốt phânbố này mà các chương trình ứng dụng có thể được viết giống như trong cơsởdữliệu không được phân bố. Cho nên, tính đúng đắn của các chương trình ứng dụng không bò ảnh hưởng bởi sự di chuyển dữliệu từ một vò trí này đến một vò trí khác. Tuy nhiên, tốc độ thực hiện của các chương trình ứng dụng thì bò ảnh hưởng. Sự độc lập dữliệu trong cơsởdữliệu tập trung được thể hiện thông qua một kiến trúc nhiều mức, các mức này có những mô tả khác nhau vềdữ liệu, và có những ánh xạ biến đổi giữa các mức này. Sự trong suốt phânbố trong cơsởdữliệuphânbố được thê hiện bằng cách bổ sung thêm các mức trong suốt vào kiến trúc nhiều mức của cơsởdữliệu tập trung. Xem “Chương 3. Các mức trong suốt của dữliệuphân bố”. I.3. Sự giảm dư thừa dữliệu Trong các cơsởdữliệu tập trung, sự dư thừa dữliệu cần được giảm bớt càng nhiều càng tốt vì hai lý do: tránh sự không nhất quán giữa nhiều bản sao của cùng dữliệu bằng cách chỉ có một bản sao, và tiết kiệm vùng nhớ lưu trữ. Khi đó, các ứng dụng cùng chia xẻ dữ liệu, cùng truy xuất đến các tập tin dữ liệu. Tuy nhiên, trong các cơsởdữliệuphân bố, sự dư thừa dữliệu như là một đặc điểm cần thiết, vì các lý do sau: (1) Làm tăng tính cục bộ của các ứng dụng nếu dữliệu được nhân bản tại tất cả các vò trí mà ứng dụng cần dữliệu này. Khi đó, các ứng dụng cục bộ được thực hiện nhanh hơn vì không cần phải truy xuất dữliệu từ xa. (2) Làm tăng tính sẵn sàng của hệ thống ứng dụng, bởi vì một vò trí bò hỏng sẽ không làm ngưng sự thực hiện của các ứng dụng ở những vò trí khác nếu dữliệu tại vò trí bò hỏng được nhân bản tại các vò trí khác. Tuy nhiên, sự 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. Sự 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 bò thực hiện lâu hơn vì phải cập nhật dữliệu tại các vò trí được nhân bản. Như vậy, sự 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ại là một nhược điểm. II. KIẾN TRÚC THAM KHẢO DÙNG CHO CÁC CƠSỞDỮLIỆUPHÂNBỐ Hình ở trang kế tiếp trình bày một kiến trúc tham khảo dùng cho một cơsởdữliệuphân bố. Kiến trúc tham khảo này không được thực hiện một cách tường minh trong tất cả cơ sởdữliệuphân bố; tuy nhiên, các mức của nó thích hợp ở mức ý niệm để hiểu về tổ chức của một cơsởdữliệuphânbố bất kỳ. II.1. Lược đồ toàn cục Ở mức cao nhất của kiến trúc này là lược đồ toàn cục (global schema). Lược đồ toàn cục dùng để đònh nghóa tất cả các dữliệu được chứa trong cơsởdữliệuphânbố và cũng giống như toàn bộcơsởdữliệu không được phân bố. Do đó, lược đồ toàn cục có thể được đònh nghóa theo cách hoàn toàn giống với cách đònh nghóa trong một cơsởdữliệu không phân bố. Chúng ta dùng mô hình dữliệu quan hệ để minh họa cho một lược đồ toàn cục và các ánh xạ giữa các mức khác nhau của cơsởdữliệuphân bố. Trong mô hình dữliệu quan hệ này, 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). Ví dụ: Một lược đồ toàn cục như sau sinhvien (masv, hoten, tuoi, malop) lop (malop, tenlop, malt, tenkhoa) hoc (masv, mamh, diem) monhoc (mamh, tenmh) trong đó: Sinhvien chứa thông tin về sinh viên gồm: mã sinh viên (masv), họ tên (hoten), tuổi (tuoi), thuộc lớp (malop). Khóa là masv. Lop chứa thông tin về lớp học gồm: mã lớp (malop), tên lớp (tenlop), mã lớp trưởng (malt), thuộc khoa (tenkhoa). Khóa là malop. Monhoc chứa thông tin về môn học gồm: mã môn học (mamh), tên môn học (tenmh) hoc chứa thông tin về sinh viên (masv) học môn học (mamh) có điểm thi cuối kỳ (diem). Khóa là masv và mamh. Lược đồ đònh vò (Allocation schema) Lược đồ toàn cục (Global Schema) Lược đồ phân mảnh (Fragmentation Schema) Hệ quản trò CSDL (DBMS) tại vò trí n Lược đồ ánh xạ cục bộ n (Local Mapping Schema) CSDL cục bộ n (Local Database) Hệ quản trò CSDL (DBMS) tại vò trí 1 Lược đồ ánh xạ cục bộ 1 (Local Mapping Schema) 1 CSDL cục bộ 1 (Local Database) Các lược đồ độc lập vò trí II.2. Lược đồ phân mảnh Mỗi quan hệ toàn cục có thể được phân chia thành nhiều phần không giao nhau và các phần này được gọi là các mảnh (fragment). Có nhiều cách khác nhau để thực hiện phép phân chia này. nh xạ giữa các quan hệ toàn cục và các mảnh được đònh nghóa trong lược đồ phân mảnh (fragmentation schema). nh xạ này là một - nhiều, nghóa là một quan hệ toàn cục có thể được phân chia thành nhiều mảnh, nhưng một mảnh chỉ tương ứng với 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à một chỉ số mảnh; ví dụ R i chỉ ra mảnh thứ i của quan hệ toàn cục R. Ví dụ: Một lược đồ phân mảnh tương ứng với lược đồ toàn cục ở trên như sau, giả sử chỉ có hai khoa tên là ‘CNTT’ và ‘DIEN’. lop1 (malop, tenlop, malt, tenkhoa) lop2 (malop, tenlop, malt, tenkhoa) sinhvien1 (masv, hoten, tuoi, malop) sinhvien2 (masv, hoten, tuoi, malop) trong đó: lop1 mảnh chứa dữliệu của các lớp thuộc khoa ‘CNTT’. lop2 mảnh chứa dữliệu của các lớp thuộc khoa ‘DIEN’. sinhvien1 mảnh chứa dữliệu của các sinh viên thuộc khoa ‘CNTT’. sinhvien2 mảnh chứa dữliệu của các sinh viên thuộc khoa ‘DIEN’. và các ánh xạ phân mảnh là: lop1 = σ tenkhoa = ‘CNTT’ (lop) lop2 = σ tenkhoa = ‘DIEN’ (lop) sinhvien1 = sinhvien < malop = malop (lop1) sinhvien2 = sinhvien < malop = malop (lop2) II.3. Lược đồ đònh vò Các mảnh là những phần luận lý của các quan hệ toàn cục mà chúng được lưu trữ vật lý ở một hoặc nhiều vò trí khác nhau của mạng. Lược đồ đònh vò (allocation schema) xác đònh một mảnh được lưu ở những vò trí nào. Loại của ánh xạ được xác đònh trong lược đồ đònh vò sẽ xác đònh cơsởdữliệuphânbố là dư thừa hoặc không dư thừa. Nếu một mảnh chỉ được lưu trữ tại một vò trí thì ánh xạ là một – một (không dư thừa dữ liệu), nếu một mảnh được lưu trữ tại nhiều vò trí khác nhau thì ánh xạ là một – nhiều (có dư thừa dữ liệu). Tất cả các mảnh tương ứng với cùng một quan hệ toàn cục R và được lưu trữ ở cùng một vò trí j sẽ tạo thành một hình ảnh vật lý (physical image) của quan hệ toàn cục R tại vò trí j – quan hệ cục bộ (local relation) của R tại vò trí j. Vì thế có một ánh xạ một - một giữa một hình ảnh vật lý với một cặp (quan hệ toàn cục, vò trí); 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ố vò trí. Để phân biệt quan hệ cục bộ với các mảnh, chúng ta sẽ dùng chỉ số trên, ví dụ R j chỉ ra hình ảnh vật lý của quan hệ toàn cục R tại vò trí j. Một ví dụvề mối liên kết giữa các loại đối tượng được đònh nghóa ở trên sẽ được chỉ ra trong hình dưới đây. Một quan hệ toàn cục R được phân chia thành bốn mảnh R 1 , R 2 , R 3 và R 4 . Bốn mảnh này được lưu trữ một cách dư thừa ở ba vò trí của một mạng máy tính, tạo thành ba hình ảnh vật lý R 1 , R 2 và R 3 . R R 1 R 2 R 3 R 4 R 1 1 R 2 1 R 1 2 R 2 2 R 2 3 R 3 3 R 4 3 R 1 (vò trí1) R 2 (vò trí 2) R3 (vò trí 3) Quan hệ toàn cục Các mảnh Hình ảnh vật lý Chúng ta sẽ tham khảo đến một nhân bản (replica) của một mảnh ở một vò trí cho trước, và ký hiệu nó 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ố vò trí). Ví dụ: Ký hiệu R 2 3 chỉ ra nhân bản của mảnh R 2 được lưu trữ ở vò trí 3. 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ý là một nhân bản của một hình ảnh vật lý khác. Ví dụ: R 1 là một nhân bản của R 2 . Trong kiến trúc tham khảo ở trên, chúng ta đã mô tả các mối liên kết giữa các đối tượng ở ba mức trên cùng của kiến trúc này. Ba mức này là độc lập vò trí (site independent) bởi vì chúng không phụ thuộc vào mô hình dữliệu của các DBMS cục bộ. II.4. Lược đồ ánh xạ cục bộ Mức thấp hơn ba mức trên sẽ phụ thuộc vào mô hình dữliệu của DBMS cục bộ nhằm để á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à một lược đồ ánh xạ cục bộ (local mapping schema) và phụ thuộc vào loại DBMS cục bộ. Vì thế, trong một hệ thống không đồng nhất (heterogenous system), chúng ta có nhiều loại ánh xạ cục bộ khác nhau ở các vò trí khác nhau. III. CÁC MỨC TRONG SUỐT : • Mức 1 : Tính “trong suốt” phân mảnh : Ở mức này, các trình ứng dụng truy xuất và cập nhật dữliệu theo phương thức như là CSDL không được phân bố, và hệ thống có nhiệm vụ thực thi tất cả các thao tác được yêu cầu rõ ràng trong các sơ đồ phân mảnh và đònh vò. Như vậy, các ứng dụng hoàn toàn không bò ảnh hưởng khi có bất kỳ sự thay đổi nào trong các sơ đồ nằm dưới sơ đồ toàn cục (global schema) trong kiến trúc tham khảo ở trên. • Mức 2 : Trính “trong suốt” vò trí : Ở mức này, người lập trình ứng dụng phải giao dòch rõ ràng với các fragment. Và các ứng dụng độc lập với các thay đổi ở sơ đồ đònh vò (allocation schema) nhưng lại phải thay đổi khi có sự thay đổi ở sơ đồ phân mảnh (fragmentation schema) vì các cấu trúc của sự phân mảnh được đưa vào ứng dụng. Tuy nhiên, chính bản thân của tính “trong suốt” vò trí cũng rất có ích vì nó cho phép các ứng dụng bỏ qua sự tồn tại nhiều bản sao của mỗi fragment, qua đó cho phép các bản sao được di chuyển từ site này đến site khác và cho phép tạo ra các bản sao mới mà không ảnh hưởng đến các ứng dụng. Ngoài ra, lợi dụng sự hiểu biết cấu trúc của sự phân mảnh, người lập trình có thể chọn ra được chiến lược tốt nhất để thực thi các thao tác trong các ứng dụng, công việc mà ở mức 1 hệ quản lý CSDL phải thực hiện tự động và nhiều khi chiến lược được chọn không phải là tốt nhất. • Mức 3 : Tính “trong suốt” ánh xạ cục bộ. Các ứng dụng buộc phải liên quan đến vò trí của các fragment và nếu có sự cập nhật dữliệu thì phải lưu ý đến sự sao chép dữliệu (replication). Các ứng dụng tuy v† n tham khảo đến các đối tượng thông qua các tên độc lập với các hệ cục bộ riêng lẻ nhưng phải chỉ đònh rõ site lưu giữ các đối tượng đó. Trong các ứng dụng, mỗi primitive truy xuất CSDL được hệ quản lý CSDL phânbố gửi đến các site riêng biệt và các primitive này sử dụng tên fragment không phụ thuộc site (site- independent fragment names). Nếu sự ánh xạ này không được hệ quản lý CSDL cung cấp thì ứng dụng sẽ phải đưa vào trực tiếp tên tập tin được các hệ cục bộ sử dụng. Tuy nhiên, khía cạnh quan trọng nhất của tính “trong suốt” ánh xạ cục bộ không phải là sự ánh xạ giữa tên fragment và tên cục bộ mà là sự ánh xạ giữa các primitive dùng trong trình ứng dụng và các primitive được các hệ CSDL cục bộ sử dụng. Vì vậy, tính “trong suốt” ánh xạ cục bộ là một đặc tính quan trọng trong một hệ CSDL phânbố không đồng nhất. • Mức 4 : Không có tính “trong suốt” : Người lập trình ứng dụng phải biết tất cả các thông tin về sự phân mảnh, sự đònh vò, sự sao chép cũng như tên của các bản sao của các fragment tại các site khác nhau để có thể tạo ra một ứng dụng thao tác trên các fragment đó. Ngoài ra, họ còn phải tạo các chương trình hỗ trợ để thực thi các chức năng cần thiết bằng ngôn ngữ thích hợp với hệ quản lý CSDL cục bộ và cài đặt các chương trình này tại các site tương ứng, đồng thời trong các ứng dụng phải có yêu cầu kích hoạt các chương trình hỗ trợ từ xa này để thực hiện các thao tác cần thiết. IV. CÁC LOẠI PHÂN MẢNH : IV.1. Quy luật phân mảnh : • Điều kiện hoàn toàn : Tất cả dữliệu trong quan hệ toàn cục phải được ánh xạ vào phân mảnh. • Điều kiện có thể tạo lại được : phải luôn luôn có khả năng tạo lại quan hệ toàn cục. • Điều kiện không giao nhau : các phân mảnh phải không giao nhau. Điều kiện này chỉ áp dụng đối với phân mảnh ngang. IV.2. Các loại phân mảnh : • Phân mảnh ngang : Bao gồm các phân mảnh trong quan hệ toàn cục được phân thành những tập con dựa trên thuộc tính của quan hệ và toán hạng lựa chọn (selection) • Phân mảnh suy diễn ngang : Các phân mảnh không chia theo thuộc tính của chính quan hệ mà dựa trên sự phân mảnh của quan hệ khác. • Phân mảnh dọc : Các phân mảnh được chia theo những thuộc tính tạo thành nhóm. . ĐIỂM CỦA CƠ SỞ DỮ LIỆU PHÂN BỐ Cơ sở dữ liệu phân bố không đơn giản là sự phân bố của các cơ sở dữ liệu tập trung, bởi vì cơ sở dữ liệu phân bố có nhiều. nhiệm về cơ sở dữ liệu cục bộ của họ. Tuy nhiên, những người quản trò cơ sở dữ liệu cục bộ cần phải có những quyền độc lập riêng về cơ sở dữ liệu dữ liệu