SƠ LƯC VỀ
CƠ SỞ DỮ LIỆU PHÂN BỐ
Trong những năm gần đây, cơ sở dữ liệu phân bố đã 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ệu
phân bố hiệu quả và có độ tin cậy cao. Cơ sở dữ liệu phân bố 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Ệ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 đặ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ệu phân bố 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ệu phâ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ệu phâ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ệu phâ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ệu dữ 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ệu phâ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ệ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. Ư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ệu phâ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ân bố (distribution transparency). Nhờ sự trong suốt phân
bố 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ân bố trong cơ sở dữ liệu phân bố đượ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ệu phâ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ệu phâ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ỆU PHÂN BỐ
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ệu phâ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ệu phâ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ệu phân bố 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ệu phân bố 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ệu phâ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ệu phân bố 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