M Ở ĐẦU
2.2. Các loại mảnh và cách phân mảnh quan hệ
* Khái niệm
Với hệ quản trị cơ sở dữ liệu quan hệ phân tán, việc phân tán các ứng
dụng cần thực hiện hai việc: Phân mảnh – phân tán cơ sở dữ liệu và phân tán
các chương trình ứng dụng chạy trên hệ quản trị CSDL đó.
Như vậy, một cơ sở dữ liệu phân tán là tập hợp nhiều CSDL có liên đới lôgic và được phân bố trên các nút của một mạng máy tính.
Tuy nhiên trong đề tài này chỉ xét đến việc phân mảnh một bảng dữ liệu
hay nói cách khác phân mảnh một quan hệ. Việc phân mảnh một quan hệ làm 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 truy cập đồng thời. Ngoài ra việc phân mảnh các quan hệ sẽ cho phép
thực hiện song song các truy vấn bằng cách chia nó thành một tập các câu vấn
tin hoạt động trên các mảnh. Việc phân mảnh cũng làm tăng khả năng hoạt động đồng thời trên các mảnh, điều đó làm tăng lưu lượng hoạt động của hệ
thống, tăng tốc độ xử lý.
Việc phân mảnh cũng có những nhược điểm của nó. Ví dụ có thể xảy ra xung đột khi có nhiều truy vấn xảy ra trên cũng một mảnh hoặc phải truy xuất
dữ liệu từ hơn một mảnh rồi nối hoặc hợp chúng lại, do đó làm tăng chi phí
truy xuất, … khắc phục điều này là một trong những mục tiêu của kĩ thuật phân
mảnh. Việc phân mảnh có liên quan đến việc kiểm soát dữ liệu ngữ nghĩa, đặc
biệt là kiểm tra tính toàn vẹn. Vì phân mảnh nên các thuộc tính tham gia vào một phụ thuộc nào đó có thể bị phân rã vào các mảnh khác nhau và được cấp phát đến các vị trí khác nhau. Trong trường hợp như vậy, việc kiểm tra các phụ
thuộc đó cũng phải được tìm dữ liệu trên nhiều vị trí khác nhau.
Thiết kế hệ thống máy tính phân tán bao gồm:
- Phân tán và chọn những vị trí đặt dữ liệu;
- Thiết kế tổ chức khai thác hệ thống đó trên mạng.
Ở đây ta quan tâm đến phương pháp phân tán dữ liệu và cấp phát dữ liệu.
Các quan hệ cũng làm cơ sở phân tán, việc phân tán các quan hệ là chia chúng làm nhiều quan hệ nhỏ hơn gọi là các mảnh và các mảnh này sẽ được phân
tán tiếp. Vì vậy hoạt động phân tán gồm có hai bước là phân mảnh và cấp
phát các mảnh cho các vị trí.
Vấn đề phân mảnh cũng đặt ra những câu hỏi đòi hỏi chúng ta phải giải
quyết như sau:
+ Tại sao 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 nào để kiểm tra tính đúng đắn của việc phân mảnh hay không?
+ Chúng ta sẽ cấp phát thế nào trên mạng khi phân thành các mảnh?
+ Những thông tin nào sẽ cần thiết cho việc phân mảnh và cấp phát?
* Thiết kế CSDL phân tán
Hai chiến lược chính đã được xác định trong thiết kế các CSDL phân tán là:
Thiết kế từ trên xuống (top-down approach)
Thiết kế từ dưới lên (bottom-up approach).
Quá trình thiết kế theo hai cách tiếp cận này rất khác nhau. Nhưng như
chúng ta đã biết rất hiếm các ứng dụng đủ đơn giản để có thể sử dụng chỉ một
trong hai cách tiếp cận. Vì vậy thiết kế DDBM cần phải áp dụng cả hai quá
trình thiết kế trên để bổ sung cho nhau.
+Thiết kế từ trên xuống
Quá trình này được trình bày trong hình 2.1 sau:
Bắt đầu bằng việc phân tích yêu cầu nhằm định nghĩa môi trường hệ
người có sử dụng CSDL. Nghiên cứu các yêu cầu cũng cần xác định xem hệ
thống cuối cùng sẽ như thế nào so với các mục tiêu của một DDBM.
Phân tích thực thể có liên quan đến việc xác định các thực thể, các thuộc
tính và các mối liên hệ giữa chúng. Phân tích chức năng đề cập đến việc xác định các chức năng cơ bản có liên quan đến xí nghiệp cần được mô hình hoá. Kết quả của hai quá trình phân tích này cần được đối chiếu qua lại, giúp
chúng ta biết được chức năng nào sẽ hoạt tác trên những thực thể nào.
Có một sự liên hệ giữa thiết kế khái niệm và thiết kế khung nhìn, người
sử dụng cần phải đặc tả các thực thể và phải xác định các ứng dụng sẽ chạy trên cơ sở dữ liệu cũng như các thông tin thống kê về những ứng dụng này. Thông tin thống kê bao gồm cả tính toán các thông tin về tần số ứng dụng,
khối lượng các thông tin mà một câu truy vấn cần dùng trong quá trình thực
thi. Chú ý rằng từ bước thiết kế khái niệm sẽ cho ra định nghĩa lược đồ khái
niệm toàn cục GCS (Global Conception Schema). Ở đây, chúng ta vẫn chưa xem xét các đặc thù phân tán, nên quá trình thiết kế hoàn toàn giống với thiết
kế CSDL tập trung.
Lược đồ khái niệm toàn cục và thông tin về kiểu mẫu truy xuất thu được trong thiết kế khung nhìn sẽ là nguyên liệu vào cho bước thiết kế
phân tán. Thiết kế các lược đồ khái niệm cục bộ LCS (Local Conception
Schema) là cách phân tán các thực thể cho các vị trí của hệ thống phân tán, có thể xử lý mỗi thực thể như là một đơn vị phân tán. Với mô hình quan hệ được dùng làm cơ sở thảo luận trong cuốn sách này, các thực thể
sẽ tương ứng với các quan hệ.
Như đã biết, thiết kế phân tán gồm hai bước như sau:
Thay vì phân tán các quan hệ, chúng ta thường chia chúng thành nhiều
quan hệ nhỏ hơn gọi là các mảnh và chính các mảnh sẽ được phân tán đến các
vị trí khác nhau (ta hay gọi là cấp phát).
+ Thiết kế vật lý
Là bước ánh xạ lược đồ khái niệm cục bộ sang các thiết bị lưu trữ vật lý
có sẵn tại các vị trí tương ứng. Nguyên liệu cho quá trình này là lược đồ khái
niệm cục bộ và thông tin về kiểu mẫu truy xuất mảnh.
Chúng ta đã biết hoạt động phát triển và thiết kế luôn là một quá trình liên tục, đòi hỏi phải theo dõi, hiệu chỉnh thường xuyên. Vì thế chúng ta cũng đưa vấn đề quan sát và theo dõi như một hoạt động chính trong quá trình này. Cần chú ý rằng chúng ta không chỉ theo dõi vấn đề cài đặt CSDL mà còn phải
xem xét, theo dõi tính thích hợp của các khung nhìn của người sử dụng. Kết
quả này có tác dụng phản hồi, tạo tiền đề cho việc tái thiết kế về sau.
+ Quá trình thiết kế từ dưới lên
Các bước thiết kế từ dưới lên ngược với quá trình thiết kế từ trên xuống. Thiết kế từ trên xuống thích hợp với những cho việc thiết kế mới
từ đầu. Tuy nhiên, trong thực tế chúng ta hay gặp trường hợp, các cơ quan
xí nghiệp cần chúng ta thiết kế đã có sẵn một số DB hoặc DDB và nhiệm
vụ thiết kế là phải tích hợp chúng lại để có DDB theo mục đích - hoặc
mục đích mới – cho cơ quan xí nghiệp tiếp cận từ dưới lên sẽ thích hợp
cho tình huống này. Khởi điểm của thiết kế từ dưới lên là các lược đồ khái
niệm cục bộ. Qúa trình này sẽ bao gồm việc tích hợp các lược đồ khái
Hình 2.1. Quá trình thiết kế từ trên xuống
Phân tích yêu cầu
Thiết kế khái niệm Thiết kế khung nhìn
Yêu cầu hệ thống (Mục tiêu)
Tích hợp khung nhìn
Nguyên liệu người dùng
Thông tin truy xuất
Lược đồ khái niệm toàn cục Định nghĩa lược đồ ngoài
Thiết kế phân tán
L. đồ khái niệm cục bộ
Thiết kế vật lý
Lược đồ Vật lý
Theo dõi và bảo trì
Thông tin từ người dùng
+ 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 trọng, có ảnh đế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: cả quan hệ là một mảnh đến thái cực mỗi mảnh là một bản ghi, hoặc là một thuộc tính.
Chúng ta đã nói đến “các tác dụng phụ” của các đơn vị phân mảnh
qúa lớn và quá nhỏ. Vậy điều cần thiết ở đây là tìm ra được một mức độ
phân mảnh thích hợp. Một mức độ như thế chỉ được định nghĩa ứng với các ứng dụng sẽ chạy trên CSDL. Vấn đề là sự thực hiện như thế nào?. Nói chung, các ứng dụng cần được đặc trưng qua một số tham số. Theo giá trị
của những tham số này mà chúng ta có thể xác định được từng mảnh.
+ Các quy tắc kiểm tra kiểm tra tính đúng đắn việc phân mảnh
Khi xem xét quá trình chuẩn hoá chúng ta đã đề cập đến một số quy
tắc để đảm bảo được tính nhất quán của CSDL. Điều quan trọng cần nhận ra là điểm giống nhau giữa việc phân mảnh dữ liệu trong trường hợp phân
tán và việc chuẩn hoá các quan hệ. Do vậy chúng ta có thể định nghĩa các
quy tắc phân mảnh tương tự như các nguyên lý chuẩn hoá.
Ba quy tắc sau đây đảm bảo cho CSDL sẽ không có thay đổi ngữ nghĩa
khi phân mảnh:
(1)Quy tắc đầy đủ. Nếu một quan hệ R được phân rã thành các mảnh R1, R2, …., Rn, thì mỗi mức dữ liệu có trong R cũng phải có trong một hay
nhiều mảnh Ri. Đặc tính này, giống như tính chất phân rã nối không mất
trong khi chuẩn hoá dữ liệu. Quy tắc đầy đủ đảm bảo rằng dữ liệu trong
Chú ý: Trong trường hợp phân mảnh ngang, “mục dữ liệu” là bộ (bản
ghi), còn trong trường hợp phân mảnh dọc, “mục dữ liệu” là thuộc tính (trường hay cột).
(2)Quy tắc tái thiết được. Nếu một quan hệ R được phân rã thành các mảnh
R1, …, Rn, thì cần phải tìm ra toán tử quan hệ sao cho. R = Ri, Ri
Toán tử thay đổi tuỳ theo từng loại phân mảnh; tuy nhiên điều quan
trọng là phải xác định được nó. Khả năng tái thiết mối quan hệ từ các mảnh
của nó bảo đảm rằng các ràng buộc được định nghĩa trên dữ liệu dưới dạng
các phụ thuộc sẽ được đảm bảo.
(3)Quy tắc tách biệt. Nếu quan hệ R được phân rã ngang thành các mảnh
R1, R2, …, Rn, và mục dữ liệu di đã nằm trong mảnh Rj, thì nó sẽ không nằm
trong một mảnh Rk với k ≠ j. Quy tắc này bảo đảm rằng các mảnh ngang sẽ
rời nhau. Nếu quan hệ được phân rã dọc, tính tách biệt chỉ được định nghĩa trên các trường không phải là khoá chính của quan hệ.
+ Chuyển các mảnh đến các trạm trong hệ thống xử lý
Chuyển các mảnh đến các vị trí trên mạng (cấp phát các mảnh, gọn hơn:
cấp phát) là một trong những yêu cầu cần thiết và phức tạp. Khi dữ liệu được
cấp phát, nó có thể được nhân bản hoặc không.
Lý do nhân bản là nhằm bảo đảm được độ tin cậy và hiệu quả cho các
vấn tin. Vì 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 sau khi hệ thống có sự cố, vì nó tồn tại đồng thời trên các mảnh được nhân bản. Hơn nữa các câu truy vấn 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í. Khi có nhân bản câu vấn tin cập nhật có thể
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
phải được cân nhắc và phụ thuộc vào tỷ lệ giữa các câu vấn tin chỉ đọc các
câu vấn tin cập nhật. Quyết định này hầu như đều có ảnh hưởng đến tất cả các
thuật toán của DDBM và các chức năng kiểm soát khác.
Không nhân bản: Các mảnh được cấp phát cho các vị trí, trong đó chỉ có
một mảnh duy nhất trên hệ thống. Không nhân bản còn được gọi là CSDL phân hoạch.
Nhân bản hoàn toàn: Toàn bộ CSDL đều được nhân bản và lưu tại mọi
vị trí của hệ thống xử lý.
Nhân bản một phần: Các mảnh được phân tán đến các vị trí, trong đó
một số hoặc tất cả các mảnh có thể có nhiều bản sao nằm tại nhiều vị trí. Số lượng các bản sao của một mảnh có thể tham gia làm đầu cho thuật toán cấp
phát, … Bảng 2.1 so sánh ba chọn lựa nhân bản ứng với các chức năng khác
nhau của DDBM.
+ Những thông tin cần cho phân mảnh và cấp phát
Một điều cần lưu ý trong việc thiết kế phân tán là qua nhiều yếu tố có ảnh hưởng đến một thiết kế tối ưu. Các thông tin cần cho phân mảnh và cấp
phát bao gồm: Cấu trúc của CSDL, vị trí các ứng dụng, đặc tính truy xuất của
Nhân bản hoàn toàn Nhân bản một phần Phân hoạch
Xử lý vấn tin Dễ Cùng mức độ khó
Quản lý thư mục Dễ hoặc không tồn tại Cùng mức độ khó
Điều khiển đồng thời Vừa phải Khó Dễ
Độ tin cậy Rất cao Cao Thấp
Tính thực tế Có thể áp dụng Thực tế Có thể áp dụng
các ứng dụng đến CSDL, và các đặc tính của hệ thống xử lý và đơn vị xử lý
tại mỗi vị trí đều ảnh hưởng các quyết định phân mảnh và phân tán.