Chơng 10. Quản lí dữ liệu phân tán
Lợi ích chính của DDM là khả năng truy nhập dữ liệu đợc nằm ở nhiều điểm khác
nhau trong một kiểu trong suốt ngời sử dụng cuối. đồng thời, DDM gồm cả việc
giữ hầu hết các dữ liệu địa phơng ở những nơi thực sự cần dữ liệu.
DDM là một trong những kiểu xử lí phân tán hợp tác đợc thực hiện trong kiến trúc
khách hàng/ dịch vụ. Kiến trúc khách hàng/ dịch vụ cho một giải pháp lí tởng cho
các yêu cầu của DDM , nên hầu hết các thể hiện kiến trúc khách hàng/ dịch vụ
ngày nay là các hệ quản trị cơ sở dữ liệu phân tán (DDBMS). Môi trờng DDM đợc
đặc trng hoá bởi 2 cách phân tán (hình 9.5.3)
Trong khi đó có một số vấn đề hiện nay là: phân tán dữ liệu nh thế nào? truy nhập
dữ liệu nh thế nào? tích hợp dữ liệu? Tính vững chắc dữ liệu ? sẽ đ ợc làm rõ
trong chơng này.
1. các phơng pháp phân tán dữ liệu
DDM xét dữ liệu (cơ sở dữ liệu ) đợc phân tán trên nhiều node. Phân tán dữ liệu
trên nhiều node có những điểm lợi:
- dữ liệu đợc đặt gần nguồn của nó hơn.
- thích ứng dữ liệu cao hơn bằng cách đặt nhiều bản copy của dữ liệu khẩn tại
nhiều nơi khác nhau. tránh đợc điểm đơn thất bại.
- Hiệu quả truy nhập cao hơn tăng khẩ năng quản lí dữ liệu.
- Dễ phát triển ứng dụng và ngời sử dụng.
Có nhiều phơng pháp phân tán dữ liệu trong môi trờng phân tán. một số phơng
pháp đơn giản, một số phơng pháp phức tạp hơn. điều quan trọng trọng trong
DDM là phơng pháp phân tán dữ liệu sẽ có ảnh hởng rất lớn đến đến cách truy
nhập dữ liệu.
Các phơng pháp phân tán dữ liệu đợc mô tả trong chơng này đợc áp dụng cho
nhiều mô hình dữ liệu khác nhau: phân cấp, mạng, tuần tự hay quan hệ. Tuy nhiên
mô hình quan hệ sẽ đợc sử dụng để minh hoạ.
1.1. mô hình dữ liệu quan hệ
- bảng
- cột
- dòng
- khoá chính
- khoá ngoài
- chuẩn hoá dữ liệu
xét thí dụ về cơ sở dữ liệu ngân hàng (h.10.1)
1.2. rút trích thủ công
trong môi trờng phân tán, dữ liệu phân tán tại nhiều vị trí. Tuy nhiên, về logic, dữ
liệu phân tán còn thuộc về một kho dữ liệu hợp nhất tập trung. ngời thiết kế môi tr-
ờng DDM phải quyết định :
- dữ liệu sẽ đợc lấy nh thế nào và khi nào từ kho tập trung
- vị trí tối u cho việc đặt các phần tử dữ liệu là gì?
câu hỏi sau liên quan đến các phơng pháp truy nhập dữ liệu khác nhau cũng nh các
đặc tính của mạng. Câu hỏi trớc không liên quan vị trí dữ liệu và nó đợc nghiên
cứu trong chơng này.
một trong những cách đơn giản nhất để phân tán dữ liệu là cho phép ngời sử dụng
copy thủ công dữ liệu từ một vị trí tập trung đến các vị trí khác. phơng pháp phân
tán dữ liệu này đợc gọi là rút trích thủ công. Nó đợc ngời sử dụng điều khiển khá
đơn giản.
thí dụ nh ứng dụng bank hình 10.2.. kho dữ liệu trung tâm đợc đặt ở New york và
chứa dữ liệu về khách hàng, kiểm tra và tài khoản tiết kiệm trong các bảng tơng
ứng. Ngoài ra nó còn có bảng tỷ giá hiện thời. Trong môi trờng phân tán, các chi
nhánh Bank duy trì các kho tài khoản và khách hàng ứng với khách hàng của họ
(h.10.2). nếu 1 chi nhánh mới mở ra, ngời quản lí có thể copy đầy đủ hay một
phần của bảng tỷ giá và nạp xuống bảng tỷ giá của chi nhánh mới.
Một hoạt động nh vậy có thể đợc thực hiện bằng rút trích thủ công. Nó có thể làm
theo 2 cách:
- từ site trung tâm
- từ chi nhánh mới
trong trờng hợp mô hình cơ sở dữ liệu quan hệ, việc rút trích và nạp có thể đợc
thực hiện bằng các mệnh đề SQL nh Select, insert
tuy nhiên, rút trích thủ công chỉ có thể làm đợc bằng một nhóm hạn chế các mệnh
đề SQL với 1 điểm dữ liệu đơn (site trung tâm hay chi nhánh mới), thực tế, rút
trích thủ công có thể thực hiện bằng các kiểu yêu cầu từ xa hay giao dịch từ xa của
truy nhập dữ liệu phân tán (sẽ đợc trình bày trong 10.2)
1.3. bắn tự động
để tự động rút trích thủ công, ngời ta đa các nhiệm vụ phân tán dữ liệu vào hệ
quản trị cơ sở dữ liệu phân tán. khi các yêu cầu về phân tán dữ liệu tăng lên nhiều
và phức tạp thì các hệ quản trị cơ sở dữ liệu phân tán sẽ làm nhiệm vụ bắn tự động
một cách đơn giản. tởng tợng rằng, các hệ quản trị cơ sở dữ liệu cung cấp khả
năng định nghĩa bắn tự động 1 bản copy của 1 bảng đến 1 vị trí cần thiết cũng nh
tần suất của thủ tục nạp-rút trích. Trong SQL định nghĩa nh vậy có thể nh:
CREATE SNAPSHORT <NAME> AS
SELECT
FROM .
..
.
TIME <HH:MM:SS>
INTERVAL <HH:MM:SS>
Trong xử lí SnapShort, ngời sử dụng có thể xác định các bảng, cột nào có thể đợc
sử dụng để tạo SnapShort, thời điểm và tần xuất xử lí SnapShort có thể đợc xác
định (thí dụ vào lúc nửa đêm, hay từng tiếng một). Sau đó hệ quản trị cơ sở dữ liệu
sẽ tự động thực hiện các hành động cần thiết.
Thế mạnh. SnapShort đợc thiết kế cho các thông tin khá tĩnh phân tán mà sự sự
thay đổi không thờng xuyên. thí dụ bảng tỷ giá là hay dung SnapShort vì các thay
đổi tỷ giá đợc làm 1 lần trong 1 ngày.
Hạn chế. Do làm tự động nên SnapShort đặc biệt hạn chế khi truy nhập dữ liệu là
chỉ đọc.
1.4. bản sao
với những ứng dụng mà dữ liệu phân tán có thể đợc cập nhật ở nhiều vị trí, xử lí
SnapShort sẽ không thích hợp. 1 ứng dụng nh vậy có thể yêu cầu rằng: bản sao của
cùng 1 bảng có thể đợc duy trì ở nhiều vị trí khác nhau. DDBMS có khả năng hỗ
trợ 1 phơng pháp phân tán dữ liệu tăng cờng bản sao:
- tạo và duy trì các bản sao của 1 bảng đã cho tại nhiều vị trí yêu cầu.
- Duy trì tính bền vững dữ liệu qua các bản sao (hoặc là xử lí đồng bộ/dị bộ).
Trong thí dụ về ứng dụng Bank, giả sử rằng các khách hàng có thể chuyển account
của mình từ chi nhánh này đến chi nhánh khác. nếu bản ghi khách hàng và các
thông tin tài khoản liên quan không tìm thấy trong chi nhánh chuyển đến thì các
thông tin yêu cầu có thể đợc copy từ chi nhánh cũ. Trờng hợp mở rộng: toàn bộ
bảng CUSTOMER có thể đợc sao với các bản sao đợc đặt ở các chi nhánh. để duy
trì các bản ghi đúng, các bản sao phải chắc chắn có các thông tin về khách hàng và
các tài khoản của họ giống nhau.
đồng bộ hoá các cập nhật giữa các bản sao không phải chỉ là vấn đề mà hệ quản
trị cơ sở dữ liệu phân tán phải giải quyết. Khi nhiều bản copy của 1 bảng tồn tại,
các ứng dụng truy nhập đến dữ liệu sao trong môi trờng phân tán sẽ không nhận
biết đợc vị trí của bản sao. Mặt khác, các ứng dụng phải đợc thay đổi theo vị trí
của hệ thống chứa nó và theo số các bản sao cần đợc duy trì hiện tại. Thật vậy, nếu
mỗi chi nhánh của bank duy trì 1 chơng trình bảng cân đối khách hàng thì ch-
ơng trình sẽ không nhận biết đợc vị trí của bản sao bảng khách hàng mà nó truy
nhập.
Bên cạnh việc sao bảng, các yêu cầu dữ liệu phân tán, tái tạo bảng có thể bao gồm
cả việc sao cấp dòng, mà chỉ những dòng riêng lẻ nào đó của bảng đã cho cần
DDBMS sao chép. Nếu chỉ các dòng đợc cập nhật là đợc sao chép thì sao chép
mức độ dòng có thể là đồng bộ dữ liệu đơn giản.
Trong sao chép, tính bền vững dữ liệu và trong suốt vị trí là những nhiệm vụ mà
DDBMS sẽ phải thực hiện để có thể hỗ trợ dữ liệu sao chép phân tán. mỗi yêu cầu
này đều là 1 vấn đề lớn về mặt thiết kế và thể hiện.
1.5. phân mảnh
sao chép dữ liệu có vẻ nh khá khó thực hiện, ngay cả khi làm với toàn bộ các bảng.
Nó có thể hiệu quả hơn nếu sao chép chỉ một phần (mảnh của dữ liệu . phân mảnh
dữ liệu tuy vậy lại là phơng pháp phức tạp nhất của phân tán dữ liệu.
Phân mảnh dữ liệu đợc minh hoạ tốt nhất trong mô hình quan hệ, ở đó các bảng dữ
liệu có thể bị phân mảnh theo chiều dọc/ngang.
để minh hoạ phân mảnh dữ liệu ngang, ta mở rộng ứng dụng bank bằng cách thêm
bảng Employee, mỗi dòng là 1 ngời (h.10.3). trong một môi trờng phân tán, bảng
Employee đợc phân tán đến các chi nhánh khác nhau dựa vào danh sách nhân
công của từng chi nhánh. để làm điều này, toàn bộ bảng Employee đợc phân mảnh
theo chiều ngang bằng cách tạo ra các tập con của các nhân viên các dòng
trong bảng Employee. Thí dụ khác là trong bảng Players, lấy các VĐV ở các
thành phố khác nhau.
để phân mảnh theo chiều dọc, ta giả sử rằng bảng Employee chứa các cột ghi tình
hình sử dụng thuốc của mối ngời, nó chỉ đợc đặt ở phòng ytế để theo dõi tập trung.
Nên phân tán các cột này đến các phòng ytế đợc gọi là phân mảnh theo chiều dọc
và đợc đặt ở vị trí thích hợp (h10.4).
tất nhiên có thể phân mảnh cả ngang lẫn dọc để đợc tập con các dòng và cột.
không để ý đến phơng pháp phân mảnh dữ liệu, có thể dễ lựa chọn hơn là để dữ
liệu cần thiết gần nơi sử dụng nhất (về mặt vật lí).
Tuy nhiên, nhợc điểm chính của phân mảnh là thực hiện phức tạp, rất khó làm
trong suốt việc truy nhập dữ liệu trong môi trờng phân tán. xét bảng Employee,
nếu bị phân mảnh (dọc/ngang/cả 2) thì nếu 1 ứng dụng quản lí đòi hỏi toàn bộ các
bản ghi của các nhân viên thì nó phải truy nhập đến dữ liệu nhân viên ở mọi chi
nhánh, sau đó kết hợp lại với dữ liệu của các nhân viên ở phòng ytế. Các nhân viên
có thể chuyển từ chi nhánh này đến chi nhánh khác, và các chi nhánh có thể phát
triển to hơn ứng dụng cần truy nhập dữ liệu phân tán sẽ phải hoàn toàn trong
suốt về vị trí dữ liệu và phơng pháp phân mảnh. Giải pháp: điều này có thể đạt đ-
ợc bằng cách làm khung nhìn dữ liệu phân mảnh và sử dụng nó nh một bảng đơn.
(thay vì phải viết lại ứng dụng mỗi khi một nhân viên đợc truyền.
Cung cấp nhận biết dữ liệu đang nằm trong một bảng đơn ở 1 vị trí đơn (trong suốt
vị trí và phân mảnh) là 1 thách thức lớn đối với ngời thiết kế các DDBMS.
1.6. phân tích phân tán dữ liệu
những ngời thiết kế môi trờng phân tán phải quyết định những tài nguyên tính toán
nào phải phân tán cũng nh chúng nằm ở đâu. các quyết định về khu trú dữ liệu
nằm trong các yêu cầu thực hiện một phân tán thực sự. Có nhiều phơng pháp để
phân tích phân tán dữ liệu.
Một trong những phơng pháp đơn giản và khá tin cậy thờng đợc sử dụng để thực
hiện một phân tích đặt dữ liệu phân tán là dựa vào việc mô phỏng các tơng tác
trong một môi trờng phân tán. xét thí dụ sau. Giả sử thí dụ ứng dụng bank chỉ có 2
vị trí. Site trung tâm đặt ở s1, và 1 chi nhánh đặt ở b1. Giả sử rằng bảng customer
đợc giữ toàn bộ ở trung tâm, đợc sao 1 phần /dọc hay ngang/ đặt ở chi nhánh b1.
để duy trì thông tin khách hàng vững chắc, mỗi cập nhật ở một vị trí nào cũng đều
đợc làm ở vị trí kia, trong khi các thao tác chỉ xem có thể đợc thực hiện 1 cách cục
bộ.
Giả sử rằng bảng customer ở s1 có 10.000 bản ghi, đợc đọc 2000 lần và cập nhật
500 lần/ngày. bảng customer ở b1 có 1000 bản ghi và đợc đọc 1000 lần và đợc cập
nhật 100 lần/ngày./xem hình 10.5/
Nếu toàn bộ dữ liệu khách hàng đợc đặt ở 1 vị trí nào đó, thì truy nhập dữ liệu từ
vị trí khác phải đợc gửi qua mạng nối các vị trí này. nếu dữ liệu toàn bộ khách
hàng đặt ở s1 thì lu thông dữ liệu từ/đến chi nhánh b1 sẽ là 1100 thông báo (1000
đọc và 100 cập nhật). Ngợc lại, nếu dữ liệu toàn bộ khách hàng đặt ở b1 thì tổng
số lu thông mạng sẽ là 2500 thông báo (2000 đọc và 500 cập nhật). điều này
đặt dữ liệu khách hàng ở site trung tâm sẽ là tốt hơn. tuy nhiên dễ chứng minh
rằng phân tán dữ liệu có thể làm cho lu thông mạng tốt hơn. xét các ma trận các vị
trí dữ liệu có thể với số liệu lu thông kết quả (h.10.5 dới). Nhớ rằng các kết quả lu
thông từ dữ liệu đọc không thấy ở vị trí đã cho
Với 3 cấu hình có thể thì cấu hình thứ 3 theo quan điểm lu thông mạng là tối u (lu
thông 600 thông báo 500 cho cập nhật từ s1+ 100 cho cập nhật từ b1)
Tuy không phải là hoàn toàn chính xác, 1 phân tích nh vậy có thể đợc mở rộng để
bao gồm những đối tợng dữ liệu tích (thí dụ bảng saving account và bảng checking
account), giá/giao dịch (đặc biệt nếu có sự lựa chọn mạng), giá và các yêu cầu về
lu trữ dữ liệu, và các đặc điểm khác của sự phân tán dữ liệu.
Các kết luận quan trọng của tiếp cận phân tích là:
- không để ý đến phơng pháp phân tán dữ liệu thì phân tán dữ liệu là có lợi cho l-
u chuyển hệ thống phân tán.
- vị trí của dữ liệu có thể đợc quyết định dựa vào dữ liệu hợp lí, các mô hình xử lí
(đọc, cập nhật), số lợng và các đặc trng của vị trí dữ liệu có thể.
2. truy nhập dữ liệu phân tán
khi dữ liệu bị phân tán ở nhiều vị trí, toàn bộ/một phần của logic quản lí dữ liệu
cũng phải đợc phân tán đồng hành cùng dữ liệu. Nh đã thảo luận, ít nhất một số
phần của logic xử lí cơ sở dữ liệu (hệ quản trị cơ sở dữ liệu) phải nằm trên cùng hệ
thống với cơ sở dữ liệu của nó.
Không cần để ý đến những phơng pháp phân tán dữ liệu nào đợc thực hiện, việc
truy nhập dữ liệu đợc hệ quản trị cơ sở dữ liệu phân tán cung cấp phải đợc thực
hiện theo cách sao cho vị trí của dữ liệu phải trong suốt đối với ngời sử dụng và
các ứng dụng: trong môi trờng 1 cơ sở dữ liệu đợc phân tán thực sự, ngời sử dụng
và các ứng dụng sẽ lhông biết rằng dữ liệu đợc phân tán.
Trong truy nhập cơ sở dữ liệu phân tán, yêu cầu dữ liệu đợc phân tán ở bất kì đâu
trong các nút mạng là không chỉ phù hợp mà còn tuyệt đối cần trong các kiến trúc
khách hàng/ dịch vụ hỗ trợ phân tán dữ liệu giữa các Client vàServer. bất kì thể
hiện khách hàng/ dịch vụ cho phép dữ liệu (và 1 hệ quản trị cơ sở dữ liệu địa ph-
ơng ) đợc duy trì trên các hệ thống khách cũng nh trên Server cơ sở dữ liệu phải đ-