Khi nói đến CSDL phân tán người ta luôn hiểu một cách đơn giản nó là một tập hợp dữliệu cơ sở dữ liệu của một hệ thống thông tin nhưng được phân bố trên nhiều địa điểm sitecủa một mạng m
Trang 1MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU 2
I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 3
1 ĐỊNH NGHĨA 3
2 CÁC ĐIỂM ĐẶC TRƯNG CỦA CƠ SỞ DỮ LIỆU PHÂN TÁN SO VỚI CƠ SỞ DỮ LIỆU TẬP TRUNG.3 3 KIẾN TRÚC CƠ BẢN CỦA MỘT CƠ SỞ DỮ LIỆU PHÂN TÁN 5
4 HỆ QUẢN TRỊ CSDL PHÂN TÁN 5
5 MỤC ĐÍCH CỦA VIỆC SỬ DỤNG CƠ SỞ DỮ LIỆU PHÂN TÁN 6
II THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN 7
1 LÝ DO PHÂN MẢNH 7
2 CÁC QUY TẮC PHÂN MẢNH ĐÚNG ĐẮN 7
3 PHÂN MẢNH DỌC 8
III CHƯƠNG TRÌNH PHÂN MẢNH DỌC 19
TÀI LIỆU THAM KHẢO 20
Trang 2MỞ ĐẦU
Cơ sở dữ liệu (CSDL) là một trong những lĩnh vực được quan tâmnhiều trong công nghệ thông tin Ra đời từ những năm 60 đến nay, đãxuất hiện nhiều thế hệ quản trị CSDL, và cũng đã có nhiều ứng dụngtrong khoa học kỹ thuật cũng như trong các ngành kinh tế khác Trong
đó phải nói đến cơ sở dữ liệu phân tán Nó đã trở thành một lĩnh vực xử lý thông tinquan trọng và chúng ta dễ dàng nhận ra tầm quan trọng của nó ngày càng lớn mạnh Chúng ta
có lý do về tổ chức cũng như về kỹ thuật để phát triển theo xu hướng này: cơ sở dữ liệu phântán khắc phục được một số hạn chế của cơ sở dữ liệu tập trung như quá tải server, nghẽn cổchai khi truy xuất, tính sẵn sang/ độ tin cậy về khả năng chịu lỗi thấp Hơn nữa cơ sở dữ liệuphân tán phù hợp hơn với các tổ chức dữ liệu phi tập trung cũng như với các ứng dụng phântán
Khi nói đến CSDL phân tán người ta luôn hiểu một cách đơn giản nó là một tập hợp dữliệu (cơ sở dữ liệu) của một hệ thống thông tin nhưng được phân bố trên nhiều địa điểm (site)của một mạng máy tính (intranet) và công việc này là phần quan trọng khi triển khai một hệthống CSDL phân tán và trong phạm vi bài thu hoạch này chúng ta sẽ tìm hiểu cặn kẽ vấn đềnày đặc biệt thông qua chương trình ứng dụng có sử dụng phương pháp phân mảnh dọc và cácthuật toán để làm cho vấn đề của chúng ta trực quan hơn
Trang 3I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN.
Tương quan logic: Toàn bộ dữ liệu của CSDL phân tán có một số các thuộc tínhràng buộc chúng với nhau, điều này giúp chúng ta có thể phân biệt một CSDL phân tánvới một tập hợp CSDL cục bộ hoặc các tệp cư trú tại các vị trí khác nhau trong một mạngmáy tính
Hình 1 Môi trường hệ cơ sở dữ liệuTrong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể
khai thác các giao tác truy nhập dữ liệu trên nhiều trạm khác
Ví dụ 1 1 : Với một ngân hàng có 3 chi nhánh đặt ở các vị trí khác nhau
Tại mỗi chi nhánh có một máy tính điều khiển một số máy kế toán cuối cùng (Tellerterminal) Mỗi máy tính với cơ sở dữ liệu thống kê địa phương của nó tại mỗi chi nhánhđược đặt ở một vị trí của cơ sở dữ liệu phân tán Các máy tính được nối với nhau bởi mộtmạng truyền thông
2 Các điểm đặc trưng của cơ sở dữ liệu phân tán so với cơ sở dữ liệu tập trung
Cơ sở dữ liệu phân tán không đơn giản là việc phân tán các cơ sở dữ liệu tập trungbởi vì nó cho phép thiết kế các hệ thống có các tính chất khác với hệ thống tập trung truyềnthống Vì thế nên xem lại các tính chất đặc trưng của cơ sở dữ liệu tập trung truyền thống và
so sánh nó với các tính chất của cơ sở dữ liệu phân tán Các tính chất đặc trưng của cơ sở
dữ liệu tập trung là điều khiển tập trung, độc lập dữ liệu, chuẩn hóa để loại bỏ sự dư thừa dữ
Trang 4liệu, các cấu trúc lưu trữ vật lý phức tạp đáp ứng cho việc truy xuất hiệu quả, toàn vẹn, phụchồi, điều khiển đồng thời và an toàn.
Dưới đây là bảng so sánh các tính chất đặc trưng của cơ sở dữ liệu tập trung và cơ
sở dữ liệu phân tán
Tính chất đặc trưng Cơ sở dữ liệu tập trung Cơ sở dữ liệu phân tán
Điều khiển tập trung - Khả năng cung cấp sự điều
khiển tập trung trên các tài nguyên thông tin
sở dữ liệu cục bộ phân tán.Độc lập dữ liệu - Tổ chức dữ liệu trong
suốtvới các lập trình viên Cácchương trình được viết cócái nhìn “quan niệm” về dữliệu
- Lợi điểm: các chương trìnhkhông bị ảnh hưởng bởi sựthay đổi tổ chức vật lýcủa dữ liệu
- Ngoài tính chất độc dữliệu
như trong cơ sở dữ liệu tậptrung, còn có tính chấttrong suốt phân tán nghĩa làcác chương trình được viếtnhư cơ sở dữ liệu không hềđược phân tán
Sự dư thừa dữ liệu Giảm thiểu sự dư thừa dữ
liệu do:
- Tính nhất quán dữ liệu
- Tiết kiệm dung lượng nhớ
- Giảm thiểu sự dư thừadữ
liệu đảm bảo tính nhấtquán
- Nhưng lại nhân bản dữ liệu đến các địa điểm mà các ứng dụng cần đến, giúp cho việc thực thi các ứng dụng không dừng nếu có một địa điểm bị hỏng Từ đó vấn
đề quản lý nhất quán dữ liệu sẽ phức tạp hơn
Các cấu trúc vật lý phức tạp
và truy xuất hiệu quả
Các cấu trúc vật lý phức tạpgiúp cho việc truy xuất
dữ liệu được hiệu quả
Các cấu trúc vật lý phức tạpgiúp liên lạc dữ liệu trong
cơ sở dữ liệu phân tán Tính toàn vẹn, phục hồi,
đồng thời
Dựa vào giao tác Dựa vào giao tác phân tán
Trang 53 Kiến trúc cơ bản của một cơ sở dữ liệu phân tán
Đây không là kiến trúc tường minh cho tất cả các CSDL phân tán, tuy vậy kiến trúcnày thể hiện tổ chức của bất kỳ một CSDL phân tán nào
Sơ đồ tổng thể: Định nghĩa tất cả các dữ liệu sẽ được lưu trữ trong CSDL phân
tán Trong mô hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa của c ác tập quan hệ
tổng thể
Sơ đồ phân đoạn: Mỗi quan hệ tổng thể có thể chia thành một vài phần không gối
lên nhau được gọi là đoạn (fragments) Có nhiều cách khác nhau để thực hiện việc phânchia này ánh xạ (một - nhiều) giữa sơ đồ tổng thể và các đoạn được định nghĩa trong sơ
đồ phân đoạn
Sơ đồ định vị: Các đoạn là các phần logic của quan hệ tổng thể được định vị vật lý
trên một hoặc nhiều vị trí trên mạng Sơ đồ định vị định nghĩa đoạn nào định vị tại các vịtrí nào Lưu ý rằng kiểu ánh xạ được định nghĩa trong sơ đồ định vị quyết định CSDLphân tán là dư thừa hay không
Sơ đồ ánh xạ địa phương: ánh xạ các ảnh vật lý và các đối tượng được lưu trữ
tại một trạm (tất cả các đoạn của một quan hệ tổng thể trên cùng một vị trí tạo ra mộtảnh vật lý)
Hình 1.2 Kiến trúc cơ bản của CSDL phân tán
4 Hệ quản trị CSDL phân tán
Hệ quản trị CSDL phân tán (Distributed Database Management System- DBMS)được định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL (tạo lập vàđiều khiển các truy nhập cho các hệ CSDL phân tán) và làm cho việc phân tán trở nêntrong suốt với người sử dụng
Trang 6Đặc tính vô hình muốn nói đến sự tách biệt về ngữ nghĩa ở cấp độ cao của một hệthống với các vấn đề cài đặt ở cấp độ thấp Sự phân tán dữ liệu được che dấu với người
sử dụng làm cho người sử dụng truy nhập vào CSDL phân tán như hệ CSDL tậptrung Sự thay đổi việc quản trị không ảnh hưởng tới người sử dụng
Hệ quản trị CSDL phân tán gồm 1 tập các phần mềm (chương trình) sau:
Các chương trình quản trị các dữ liệu phân tán
Chứa các chương trình để quản trị việc truyền thông dữ liệu
Các chương trình để quản trị các CSDL địa phương
Các chương trình quản trị từ điển dữ liệu
Để tạo ra một hệ CSDL phân tán (Distributed Database System-DDBS) các tập tinkhông chỉ có liên đới logic chúng còn phải có cấu trúc và được truy xuất qua một giaodiện chung
Môi trường hệ CSDL phân tán là môi trường trong đó dữ liệu được phân tán trênmột số vị trí
5 Mục đích của việc sử dụng cơ sở dữ liệu phân tán
Xuất phát từ yêu cầu thực tế về tổ chức và kinh tế: Trong thực tế nhiều tổ chức làkhông tập trung, dữ liệu ngày càng lớn và phục vụ cho đa người dùng nằm phân tán, vìvậy cơ sở dữ liệu phân tán là con đường thích hợp với cấu trúc tự nhiên của các tổ chức
đó Đây là một trong những yếu tố quan trọng thức đẩy việc phát triển cơ sở dữ liệu phântán
Sự liên kết các cơ sở dữ liệu địa phương đang tồn tại: cơ sở dữ liệu phân tán làgiải pháp tự nhiên khi có các cơ sở dữ liệu đang tồn tại và sự cần thiết xây dựng một ứngdụng toàn cục Trong trường hợp này cơ sở dữ liệu phân tán được tạo từ dưới lên dựatrên nền tảng cơ sở dữ liệu đang tồn tại 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 Dù sao, những sửa đổi này vẫn là nhỏ hơn rấtnhiều so với việc tạo lập một cơ sở dữ liệu tập trung hoàn toàn mới
Làm giảm tổng chi phí tìm kiếm: Việc phân tán dữ liệu cho phép các nhóm làmviệc cục bộ có thể kiểm soát được toàn bộ dữ liệu của họ Tuy vậy, tại cùng thời điểmngười sử dụng có thể truy cập đến dữ liệu ở xa nếu cần thiết Tại các vị trí cục bộ, thiết
bị phần cứng có thể chọn sao cho phù hợp với công việc xử lý dữ liệu cục bộ tại điểm đó
Sự phát triển mở rộng: Các tổ chức có thể phát triển mở rộng bằng cách thêm cácđơn vị mới, vừa có tính tự trị, vừa có quan hệ tương đối với các đơn vị tổ chức khác.Khi đó giải pháp cơ sở dữ liệu phân tán hỗ trợ một sự mở rộng uyển chuyển với mộtmức độ ảnh hưởng tối thiểu tới các đơn vị đang tồn tại Trả lời truy vấn nhanh: Hầu hết
Trang 7các yêu cầu truy vấn dữ liệu từ người sử dụng tại bất kỳ vị trí cục bộ nào đều thoả mãn
dữ liệu ngay tại thời điểm đó Độ tin cậy và khả năng sử dụng nâng cao: nếu có mộtthành phần nào đó của hệ thống bị hỏng, hệ thống vẫn có thể duy trì hoạt động
Khả năng phục hồi nhanh chóng: Việc truy nhập dữ liệu không phụ thuộc vào mộtmáy hay một đường nối trên mạng Nếu có bất kỳ một lỗi nào hệ thống có thể tự độngchọn đường lại qua các đường nối khác
II THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN.
1 Lý do phân mảnh.
Khung nhìn của các ứng dụng thường chỉ là một tập con của quan hệ Vì thế đơn
vị truy xuất không phải là toàn bộ quan hệ nhưng chỉ là các tập con của quan hệ Kết quả
là xem tập con của quan hệ là đơn vị phân tán sẽ là điều thích hợp duy nhất
Việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như mộtđơn vị, sẽ cho phép thực hiện nhiều giao dịch đồng thời Ngoài ra việc phân mảnh cácquan hệ sẽ cho phép thực hiện song song một câu vấn tin bằng cách chia nó ra thành mộttập các câu vấn tin con hoạt tác trên các mảnh Vì thế việc phân mảnh sẽ làm tăng mức
độ hoạt động đồng thời và như thế làm tăng lưu lượng hoạt động của hệ thống
Nếu một thể hiện quan hệ R được phân rã thành các mảnh R1, R2,…,Rn, thì cầnphải định nghĩa một toán tử quan hệ ∇ sao cho
R= ∇ Ri, Ri ∈ F
r-Toán tử thay dổi tuỳ theo từng loại phân mảnh, tuy nhiên diều quan trọng là phảixác dịnh duợc nó Khả nang tái thiết một quan hệ từ các mảnh của nó bảo dảm rằng cácràng buộc duợc dịnh nghia trên dữ liệu duới dạng các phụ thuộc sẽ duợc bảo toàn
c) Tính tách biệt (disjointness).
Trang 8Nế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ảnh Rk khác ( k ≠ j ) Tiêu chuẩnnày đảm bảo các mảnh ngang sẽ tách biệt (rời nhau) Nếu quan hệ
được phân rã dọc, các thuộc tính khoá chính phải được lặp lại trong mỗi mảnh Vìthế trong trường hợp phân mảnh dọc, tính tách biệt chỉ được định nghĩa trên các trườngkhông phải là khoá chính của một quan hệ
3 Phân mảnh dọc
Một phân mảnh dọc của quan hệ R là tập các mảnh R1, , Rk, trong đó mỗi mảnhchứa tập con thuộc tính của R và các khoá của R Mục đích của phân mảnh dọc là phânhoạch một quan hệ thành tập các quan hệ nhỏ hơn để nhiều ứng dụng chỉ cần chạy trên 1mảnh Phân mảnh tối ưu cho phép giảm tối đa thời gian thực thi các ứng dụng chạy trêncác mảnh đó
Phân mảnh dọc phức tạp hơn so với phân mảnh ngang Điều này do số khả năngphân mảnh dọc rất lớn Trong phân mảnh ngang, nếu tổng số vị từ đơn giản trong Pr là nthì có 2n vị từ hội sơ cấp có thể định nghĩa trên nó Ngoài ra có thể loại bỏ một số lớntrong đó mâu thuẫn với phép kéo theo hiện có, như vậy sẽ làm giảm di số mảnh dự tuyển.Trong trường hợp phân mảnh dọc, nếu quan hệ có m thuộc tính không khoá, thì số mảnh
có thể bằng B(m), số Bell thứ m Với m lớn B(m) mm, chẳng hạn với B(10)115000,B(15)109, B(30)1023
Những giá trị này cho thấy, nỗ lực tìm lời giải tối ưu cho bài toán phân hoạch doc
không hiệu quả; vì thế phải dùng đến các phương pháp heuristic Chúng ta nêu ở đây hai
loại heuristic cho phân mảnh dọc các quan hệ toàn cục
(1) Nhóm thuộc tính: Bắt đầu bằng cách gán mỗi thuộc tính cho một mảnh, và tại
mỗi bước nối số mảnh lại cho dến khi thoả tiêu chuẩn nào đó
(2) Tách mảnh: Bắt đầu bằng một quan hệ và quyết định cách phân hoạch có lợi dựa
trên hành vi truy xuất của các ứng dụng trên các thuộc tính
Trong phần tiếp chúng ta chỉ thảo luận kỹ thuật tách mảnh, vì nó thích hợp phươngpháp thiết kế từ trên xuống hơn và giải pháp tối ưu gần với quan hệ đầy đủ hơn là tập cácmảnh chỉ có 1 thuộc tính Hơn nữa kỹ thuật tách mảnh sinh ra các mảnh với các thuộctính không khoá không chồng nhau
Việc nhân bản khoá chính cho các mảnh là đặc trưng của phân mảnh dọc, cho phéptái thiết quan hệ toàn cục Vì thế phương pháp tách mảnh chỉ đề cập đến các thuộc tínhkhông khoá
Mặc dù có những vấn đề phát sinh, nhân bản các thuộc tính khoá có ưu điểm nổi bật
là duy trì tính toàn vẹn ngữ nghĩa sẽ được thảo luận sau
Trang 9Một chọn lựa khác đối với nhân bản các thuộc tính khoá là sử dụng một mã định bộ
(TID - tuple identifier) Đây là giá trị duy nhất được hệ thống gán cho mối bộ của quanhệ
a) Các yêu cầu thông tin của phân mảnh dọc
Những thông tin chính cần cho phân mảnh dọc có liên quan tới các ứng dụng Vìphân mảnh dọc đặt vào một mảnh các thuộc tính thường được truy xuất chung với nhau,
ta cần xác định một độ đo khái niệm “chung với nhau” Số đo này gọi là ái lực (affinity)
của thuộc tính, chỉ mức độ liên đới giữa các thuộc tính
Yêu cầu dữ liệu chính có liên quan đến các ứng dụng là tần số truy xuất (access
frequency) của chúng Gọi Q={q1, , qk} là tập các vấn tin của người dùng sẽ chạy trênquan hệ R(A1 , , An) Với mỗi câu vấn tin qi và mỗi thuộc tính Aj ta định nghĩa giá trị
use(q i , A¹)={1 q i tham chieu A j
0 q i khong tham chieu A j
Các vectơ use(qi,) cho mỗi ứng dụng sẽ được xác định nếu nhà thiết kế biết được
các ứng dụng chạy trên CSDL Cần nhắc lại rằng qui tắc 80/20 rất có ích cho công việc
q 4 : Tìm tổng ngân sách các dự án được thực hiện ở thành phố đã cho
Trang 10FROM PROJ
Dựa theo 4 ứng dụng này ta có thể xác định được giá trị sử dụng các thuộc tính Đểcho đơn giản ta ký hiệu
A1=PNO, A2=PNAME, A3=BUDGET và A4=LOC
Giá trị sử dụng cho ở bảng sau:
thể được chứa trong định nghĩa về số đo ái lực thuộc tính aff(A i , A j ), biểu thị cho cầu nối
(bond) giữa hai thuộc tính của 1 quan hệ theo cách chúng được các ứng dụng truy xuất.Cho quan hệ R(A1 , , An) và tập ứng dụng Q={q1, , qk} Với mỗi cặp thuộc tính(Ai,Aj) Ký hiệu
Số đo ái lực thuộc tính giữa hai thuộc tính Ai và Aj của quan hệ R(A1 , , An) ứngvới tập ứng dụng Q={q1, , qk} là
Trang 11acc1(q1) = 15; acc2(q1) = 20; acc3(q1) = 10;
Vì chỉ có ứng dụng q1 truy xuất đến cả hai thuộc tính A1 và A3, nên ta có
aff(A1, A3) = acc1(q1) + acc2(q1) + acc3(q1) = 45
Tương tự ta tính được ma trận ái lực sau
Nhiệm vụ cơ bản trong việc xây dựng thuật toán phân mảnh dọc là tìm phương tiện
nào đó để nhóm các thuộc tính của quan hệ dựa trên ma trận ái lực.Thuật toán năng
lượng nối BEA (bond energy algorithm) là thích hợp vì những lý do sau:
(1) BEA gom các thuộc tính có cùng độ lớn ái lực lại với nhau
(2) Các kết quả tụ nhóm không bị ảnh hưởng bởi thứ tự đưa các mục vào thuật toán.(3) Thời gian tính toán là O(n2) với n là số thuộc tính
(4) Có thể xác định mối liên hệ giữa các nhóm thuộc tính
Thuật toán năng lượng nối BEA hoán vị các hàng và cột ma trận ái lực để tạo thành
ma trận ái lực tụ (CA - clustered affinity matrix) Hoán vị được thực hiện sao cho số đo
ái lực chung AM (global affinity measure) là lớn nhất:
Vì ma trận ái lực đối xứng nên hàm số AM có thể viết là
aff ( A i , A j)[aff ( A i , A j−1)+aff ( A i , A j+1) ]
Quá trình sinh ma trận ái lực tụ (CA) được thực hiện qua 3 bước