Tải bản đầy đủ (.docx) (27 trang)

Phân mảnh dọc trong cơ sở dữ liệu phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (557.93 KB, 27 trang )

Đại Học Công Nghệ Thông Tin
Đại Học Quốc Gia Thành Phố Hồ Chí Minh
TP. HCM 8/2012
GVHD: PGS.TS.Đỗ Phúc
Học viên: Trương Lê Hưng
MS: CH1101089
Lớp: Cao Học khóa 6
Môn học: Cơ sở dữ liệu nâng cao
Lời cảm ơn
Lời đầu tiên em xin chân thành cảm ơn thầy Đỗ Phúc đã truyền đạt cho em những
bài học thật bổ ích với những câu truyện đầy tính sáng tạo và lý thú.
Cảm ơn nhà trường đã tạo điều kiện cho em cùng các bạn trong lớp có thể học tập
và tiếp thu những kiến thức mới.
Em cũng chân thành cảm ơn các bạn trong lớp đã chia sẻ cho nhau những tài liệu
và hiểu biết về môn học để cùng hoàn thành tốt môn học này.
Trong thời gian vừa qua mặc dù em đã cố gắng rất nhiều để hoàn thành tốt đề tài
của mình, song chắc chắn kết quả không tránh khỏi những thiếu sót. Em kính mong được
sự cảm thông và tận tình chỉ bảo của thầy.
TP.Hồ Chí Minh Tháng 8/2012
Học viên thực hiện
Trương Lê Hưng
Lớp Cao Học khóa 6
Môn học: Cơ sở dữ liệu nâng cao Trang 2
Nhận xét



















Lời mở đầu
Môn học: Cơ sở dữ liệu nâng cao Trang 3
Sự phát triển không ngừng của thông tin số đã nảy sinh nhiều vấn đề trong việc
lưu trữ và sử lý các thông tin dữ liệu với khối lượng lớn và phức tạp. Do vậy, yêu cầu về
sử lý cơ sở dữ liệu ngày càng đòi hỏi việc thiết kế sao cho phù hợp và tiện dụng.
Các hệ thống cơ sở dữ liệu tập trung truyền thống bộc lộ nhiều khuyết điểm như
tăng khả năng lưu trữ thông tin khó bởi giởi hạn về bộ nhớ thiết bị, độ sẵn sàng phục vụ
của cơ sở dữ liệu không cao khi số người sử dụng tăng, khả năng tính toán của các máy
tính đơn lẻ đang dần tới giới hạn vật lý, mô hình lưu trữ, xử lý dữ liệu tập trung không
phù hợp với các tổ chức hoạt động đa quốc gia. Tuy nhiên những nhược điểm này được
khắc phục khá nhiều trong hệ thống phân tán. Do đó càng ngày các hệ thống phân tán
xuất hiện càng nhiều đã chứng minh tính ưu việt của nó hơn hẳn các hệ thống tập trung
truyền thống.
Trong nội dung bài tiểu luận này em xin được trình bày khái quát cơ sở lý thuyết
về cơ sở dữ liệu phân tán cũng như tập trung tìm hiểu về phân mảnh dọc, một trong các
cách phân mảnh trong cơ sở dữ liệu phân tán. Nội dung bài tiểu luận bao gồm:
Phần 1 : Cơ sở lý thuyết về cơ sở dữ liệu phân tán
Phần 2 : Thiết kế cơ sở dữ liệu phân tán
Phần 3 : Phân mảnh dọc trong cơ sở dữ liệu phân tán

Phần 4 : Tổng kết và Demo.
Môn học: Cơ sở dữ liệu nâng cao Trang 4
Mục lục
Môn học: Cơ sở dữ liệu nâng cao Trang 5
Phần I . Cơ sở lý thuyết về cơ sở dữ liệu phân tán
1. Khái quát về cơ sở dữ liệu phân tán
a. Định nghĩa
Cơ sở dữ liệu (CSDL) phân tán là một tập hợp nhiều CSDL có liên quan
logic và được phân bố trên một mạng máy tính.
Hình 1.1: Mô hình cơ sở dữ liệu phân tán
Trong CSDL phân tán có hai vấn đề quan trọng và tương đương nhau là:
Việc phân tán: Trong thực tế dữ liệu không đặt trên cùng một vị trí vì vậy
đây là đặc điểm để phân biệt CSDL phân tán với CSDL tập trung.
Liên quan logic: Trong CSDL phân tán dữ liệu có một số đặc tính liên kết
chặt chẽ với nhau như tính kết nối, tính liên quan logic. Trong CSDL phân tán
mỗi vị trí chỉ quản lý một CSDL và người sử dụng phải truy cập đến CSDL ở
những vị trí khác để lấy thông tin tổng hợp.
b. Các đặc trưng của cơ sở dữ liệu phân tán
Đặc tính vô hình là sự tách biệt về ngữ nghĩa ở mức độ cao của hệ thống
với các vấn đề cài đặt ở cấp độ thấp. Ưu điểm của hệ CSDL vô hình là không
cho người dùng “nhìn thấy” các chi tiết cài đặt, hỗ trợ phát triển cho các ứng
dụng phức tạp.
Môn học: Cơ sở dữ liệu nâng cao Trang 6
Độc lập dữ liệu là dạng vô hình cơ bản cần có trong một hệ CSDL. Sự độc
lập dữ liệu liên quan đến khả năng “miễn nhiễm” của các ứng dụng đối với
những thay đổi trong định nghĩa, tổ chức dữ liệu và ngược lại.
Vô hình kết mạng: Trong môi trường phân tán, hệ thống mạng là một loại
tài nguyên quan trọng cần quản lý. Thông thường, người dùng cần được tách
khỏi mọi chi tiết hoạt động của mạng, thậm chí người ta mong muốn che dấu
sự tồn tại của mạng nếu được. Khi đó đối với người dùng sẽ không thấy sự

khác biệt giữa các ứng dụng chạy trên CSDL tập trung và các ứng dụng chạy
trên CSDL phân tán. Kiểu vô hình này gọi là vô hình kết mạng (network
transparency) hoặc vô hình phân bổ (distribution transparency).
Vô hình nhân bản: Vì những lý do về hiệu năng (performance), độ tin cậy
(reliability) và tính sẵn sàng (availability), người ta mong muốn có thể
nhân dữ liệu thành nhiều bản (nhân bản) trên các máy mạng. Việc nhân bản
giúp tăng hiệu năng vì những yêu cầu sử dụng có xung đột và nằm rải rác có
thể đáp ứng kịp thời.
Khi các đối tượng CSDL bị phân mảnh, chiến lược xử lý vấn tin là dựa trên
các mảnh chứ không phải quan hệ. Như vậy câu vấn tin toàn cục (global
query) phải được dịch thành câu vấn tin theo mảnh (fragment query).
2. Ưu điểm và nhược điểm của cơ sở dữ liệu phân tán
- Ưu điểm:
o Dữ liệu gần với nơi xử lý -> Hiệu suất cao.
o Tính sẵn sàng của hệ thống cao: Nếu một trạm bị lỗi sẽ không ảnh
hưởng tới các trạm khác trong hệ thống.
o Việc tăng các trạm sử dụng trong hệ thống là đơn giản nên việc mở
rộng CSDL là dễ dàng.
- Nhược điểm:
o Lưu trữ: Ngoài lược đồ CSDL như trong CSDL tập trung (Thuộc
tính, kiểu dữ liệu, …) còn thêm các lược đồ phân đoạn CSDL, lược
đồ định vị CSDL (cho biết các đoạn được lưu trữ ở đâu).
o Xử lý: Truy vấn tập trung là đơn giản còn truy vấn phân tán phức
tạp.
Môn học: Cơ sở dữ liệu nâng cao Trang 7
o An toàn: CSDL được lưu trữ ở nhiều nơi nảy sinh vấn đề: đảm bảo
an toàn dữ liệu khi truyền qua mạng.
3. Hệ quản trị cơ sở dữ liệu 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ên trong suốt với người sử dụng.
Đặ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ập trung. 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 tin khô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 giao diệ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ên một số vị trí.
4. Các hình thức tổ chức cơ sở dữ liệu phân tán
a. Mô hình Peer-to-Peer
Các máy tính cá nhân và máy trạm có thể được sử dụng như một hệ thống
độc lập trợ giúp các ứng dụng địa phương.
Mỗi thành viên trong mạng có vai trò ngang nhau, tự quản lý tài nguyên
của chính mình và chia sẻ tài nguyên cho các máy tính khác trên mạng.
Mỗi một máy tính trên mạng vừa đóng vai trò máy chủ (Server), vừa đóng
vai trò là máy khách (Client).
Đây là mô hình mạng đơn giản, phù hợp với những hệ thống mạng nhỏ
không có yêu cầu cao về bảo mật.
Môn học: Cơ sở dữ liệu nâng cao Trang 8
Hình 1.2: Mô hình Peer-to-Peer
b. Mô hình file Server

File server một số máy dịch vụ file được gán trực tiếp vào mạng LAN.
File server là một thiết bị quản lý các hoạt động file và phục vụ các máy
tính cá nhân được kết nối trong mạng LAN.
Mỗi máy cá nhân được phân chia một dung lượng cố định trên ổ cứng của
File server, chương trình ở các máy tính cá nhân có thể tham chiếu đến các file
trên phần đĩa tương ứng của nó bằng một đặc tả đường dẫn.
Những hạn chế của File server như: Dữ liệu di chuyển trên mạng quá nhiều,
việc kiểm soát dữ liệu là phi tập trung, các máy trạm phải đủ mạnh.
Hình 1.3: Mô hình file Server
c. Mô hình Client/Server
Một số máy dịch vụ file được gán trực tiếp vào mạng LAN:
Môn học: Cơ sở dữ liệu nâng cao Trang 9
Server có chức năng điều khiển, lưu trữ CSDL, xử lý các truy vấn và quản
lý việc khai thác tài nguyên trên mạng của các máy tính khác.
Thuật ngữ client được sử dụng để chỉ người khai thác tài nguyên mạng.
Hình 1.4: Mô hình Client/Server
5. Cấu trúc chung của một cơ sở dữ liệu phân tán
Cấu trúc mẫu của một cơ sở dữ liệu phân tán có dạng:
Hình 1.5: Cấu trúc mẫu của một cơ sở dữ liệu phân tán
- Lược đồ toàn cục:
o Xác định toàn bộ dữ liệu được lưu trữ trong CSDLPT.
o Được định nghĩa như trong CSDL tập trung.
o Trong mô hình quan hệ: lược đồ toàn cục là các quan hệ và mối liên
kết giữa chúng.
- Lược đồ phân đoạn:
Môn học: Cơ sở dữ liệu nâng cao Trang 10
o Mỗi quan hệ tổng thể có thể được chia thành các phần không giao
nhau gọi là phân đoạn (Fragment).
o Có nhiều cách khác nhau để phân đoạn: Phân đoạn dọc, phân đoạn
ngang, phânđoạn hỗn hợp.

o Các đoạn được mô tả bằng tên của quan hệ tổng thể cùng với chỉ
mục đoạn. Ví dụ R
i
là đoạn thứ i của quan hệ toàn cục R.
- Lược đồ định vị:
o Xác định đoạn dữ liệu nào được định vị tại trạm nào trên mạng.
o R
i
j
: Cho biết đoạn thứ i của quan hệ tổng thể R được định vị trên
trạm j.
- Lược đồ ánh xạ địa phương:
o Ánh xạ các ảnh vật lý và các đối tượng được lưu trữ tại một trạm.
Môn học: Cơ sở dữ liệu nâng cao Trang 11
Phần II. Thiết kế cơ sở dữ liệu phân tán
1. Các chiến lược phân tán dữ liệu
a. Tập trung dữ liệu
Tất cả các dữ liệu được tập trung tại một chỗ, cách này đơn giản nhưng có
3 nhược điểm:
• Dữ liệu không sẵn sàng cho người sử dụng truy nhập từ xa,
• Chi phí truyền thông lớn, thường làm cực đại việc truy nhập dữ liệu
tới nơi tập trung.
• Toàn bộ hệ thống ngừng khi CSDL bị sự cố.
b. Chia nhỏ dữ liệu
CSDL được chia thành các phần nhỏ liên kết nhau (không trùng lặp).
Mỗi phần dữ liệu được đưa đến các trạm một cách thích hợp để sử dụng.
c. Sao lặp dữ liệu
CSDL được nhân thành nhiều bản từng phần hoặc đầy đủ và được đặt ở
nhiều trạm trên mạng.
Nếu bản sao của CSDL được lưu giữ tại mọi trạm của hệ thống ta có

trường hợp sao lặp đầy đủ.
Hiện nay có nhiều kỹ thuật mới cho phép tạo bản sao không đầy đủ phù
hợp với yêu cầu dữ liệu ở mỗi trạm và một bản đầy đủ được quản lý ở Server.
Sau một khoảng thời gian nhất định các bản sao được làm đồng bộ với bản
chính bằng một ứng dụng nào đó.
d. Phương thức lai
CSDL được phân thành 2 phần: quan trọng và ít quan trọng.
• Phần ít quan trọng được lưu giữ một nơi
• Phần quan trọng được lưu trữ ở nhiều nơi khác.
2. Các vấn đề khi thiết kế cơ sở dữ liệu phân tán
a. Phương pháp thiết kế từ trên xuống
Phương pháp thiết kế từ trên xuống là phương pháp thiết kế từ tổng thể đến
riêng biệt, phân ra một hệ thống lớn thành các hệ thống con và các công việc
được tiến hành như sau:
Môn học: Cơ sở dữ liệu nâng cao Trang 12
Phân tích các yêu cầu nhằm định nghĩa môi trường hệ thống và thu thập
các yêu cầu về dữ liệu, cũng như các nhu cầu xử lý của các trạm có sử dụng
CSDL.
Phân tích yêu cầu cũng 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 hệ quản trị CSDL phân tán đã được phân tích. Những
mục tiêu này được định nghĩa theo các vấn đề về hiệu quả hoạt động, độ tin
cậy, tính có sẵn, tính kinh tế, và tính linh hoạt.
Hồ sơ ghi chép các yêu cầu là nguyên liệu cho hai hoạt động song song:
thiết kế khung nhìn và thiết kế khái niệm.
Thiết kế khung nhìn là định nghĩa các giao diện cho người sử dụng ở các
trạm.
Thiết kế khái niệm là một tiến trình kiểm tra và xác định rõ hai nhóm quan
hệ:
Phân tích chức năng và phân tích thực thể. Phân tích chức năng là xác định
các chức năng của hệ thống và đưa ra các chức năng cơ sở. Phân tích thực thể

là xác định các tập thực thể, các thuộc tính và các mối quan hệ giữa chúng.
Kết quả của thiết kế khung nhìn và thiết kế khái niệm là hai quá trình cần
đố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.
Thiết kế khái niệm có thể diễn giải như là sự tích hợp các khung nhìn của
người sử dụng. Dù rằng hoạt động tích hợp khung nhìn này hết sức quan trọng,
mô hình khái niệm phải hỗ trợ không chỉ những ứng dụng hiện có mà còn có
cả những ứng dụng trong tương lai. Tích hợp khung nhìn được sử dụng nhằm
đảm bảo rằng các yêu cầu về thực thể và các mối liên hệ giữa các khung nhìn
đều phải được bao quát trong lược đồ khái niệm.
Môn học: Cơ sở dữ liệu nâng cao Trang 13
Hình 2.1: Sơ đồ thiết kế cơ sở dữ liệu phân tán theo mô hình từ trên xuống
Trong các hoạt động 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ể dữ liệu và phải xác định các ứng dụng sẽ
chạy trên CSDL 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ả về tần số ứng dụng, khối lượng các thông
tin khác nhau,…
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 cho bước thiết kế phân tán. Mục
Môn học: Cơ sở dữ liệu nâng cao Trang 14
tiêu của giai đoạn này là thiết kế các lược đồ khái niệm cục bộ bằng 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.
Ta chia quan hệ thành nhiều quan hệ nhỏ hơn gọi là các mảnh (fragment)
và phân tán các mảnh này. Hoạt động thiết kế phân tán gồm hai bước: Phân
mảnh (fragmentation) và cấp phát (allocation).
Thiết kế vật lý là á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 các mảnh.
Hoạt động phát triển và thiết kế luôn là 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 cơ sở dữ liệu mà còn phải quan sá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 tái thiết kế về sau.
b. Phương pháp thiết kế từ dưới lên
Phương pháp thiết kế trên xuống thực sự có hiệu quả khi xây dựng một hệ
thống mới. Trong thực tế, một số CSDL đã tồn tại trước được tổ chức trong
môi trường tập trung và CSDL phân tán được phát triển bằng cách liên kết
chúng lại thành một CSDL mới thống nhất (Các DBMS địa phương khác nhau
đã được sử dụng).
Cách thiết kế:
• Chọn một mô hình dữ liệu chung để mô tả lược đồ tổng thể
• Chuyển mỗi lược đồ địa phương theo mô hình dữ liệu chung đã chọn
• Tích hợp các lược đồ địa phương vào lược đồ tổng thể.
3. Phương pháp phân mảnh
a. Tại sao phải phân mảnh
Khung nhìn hoặc đơn vị truy xuất của các ứng dụng không phải là toàn bộ
quan hệ mà thường là một mảnh.
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.
Môn học: Cơ sở dữ liệu nâng cao Trang 15
Việc phân mảnh các quan 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ột tập các câu vấn tin con hoạt tác trên các
mảnh.
Nếu các ứng dụng có các khung nhìn được định nghĩa trên một quan hệ cho
trước nằm tại những vị trí khác thì có hai cách chọn lựa đơn vị phân tán: hoặc
là toàn bộ quan hệ hoặc quan hệ được lưu ở một vị trí có chạy ứng dụng.
Nhận xét: Chọn lựa thứ nhất gây ra một số lượng lớn các truy xuất không
cần thiết đến dữ liệu ở xa. Chọn lựa sau sẽ gây ra nhiều vấn đề khi cập nhật và
lãng phí không gian lưu trữ.

Khuyết điểm của việc phân mảnh:
- Nếu ứng dụng có những yêu cầu ngăn cản việc phân rã thành các mảnh để
được sử dụng độc quyền, thì những ứng dụng có các khung nhìn được định
nghĩa trên nhiều mảnh sẽ bị giảm hiệu suất hoạt động.
- Nếu một khung nhìn đòi hỏi thông tin ở nhiều mảnh thì việc truy xuất dữ
liệu để nối lại sẽ có chi phí cao.
- Kiểm soát dữ liệu ngữ nghĩa (semantic data control): Do kết quả của
phân mảnh, các thuộc tính tham gia vào một phụ thuộc có thể bị phân rã vào
các mảnh khác nhau và được cấp phát cho những vị trí khác nhau. Trong
trường hợp này, một nhiệm vụ đơn giản như kiểm tra các phụ thuộc cũng phải
thực hiện truy tìm dữ liệu ở nhiều vị trí.
b. Các kiểu phân mảnh
Thể hiện của các quan hệ chính là các bảng, vì thế vấn đề là tìm những cách
khác nhau để chia một bảng thành nhiều bảng nhỏ hơn.
Có ba kiểu phân mảnh khác nhau:
• Phân mảnh ngang (horizontal fragmentation)
• Phân mảnh dọc (vertical fragmentation)
• Phân mảnh hỗn hợp (hibrid fragmentation)
c. Phân mảnh ngang
Phân mảnh ngang chia một quan hệ theo các bộ, vì vậy mỗi mảnh là một
tập con của quan hệ.
Có hai loại phân mảnh ngang: phân mảnh ngang nguyên thủy và phân
mảnh ngang dẫn xuất. Phân mảnh ngang nguyên thủy của một quan hệ được
Môn học: Cơ sở dữ liệu nâng cao Trang 16
thực hiện dựa trên các vị từ được định nghĩa trên quan hệ. Ngược lại, phân
mảnh ngang dẫn xuất là phân ra một quan hệ dựa vào các vị từ được định
nghĩa trên một quan hệ khác.
d. Phân mảnh dọc
Một phân mảnh dọc cho một quan hệ r sinh ra các mảnh r
1

, r
2
,…., r
n
mỗi
mảnh chứa một tập con thuộc tính của R và cả khóa của r. Mục đích của phân
mảnh dọc là phân hoạch một quan hệ thành một tập các quan hệ nhỏ hơn để
nhiều ứng dụng có thể chỉ chạy trên một quan hệ. Một phân mảnh tối ưu là một
phân mảnh sinh ra một lược đồ phân mảnh cho phép giảm đến tối đa thời gian
thực thi các ứng dụng chạy trên các mảnh đó.
Phần tiếp theo của tiểu luận sẽ đề cập chi tiết về phân mảnh dọc.
e. Phân mảnh hỗn hợp
Trong thực tế, hầu hết các trường hợp phân mảnh ngang hay phân mảnh
dọc đơn giản của CSDL không thỏa mãn yêu cầu người sử dụng. Thường
CSDL được phân mảnh dọc sau đó phân mảnh ngang, tạo ra sự phân chia theo
cấu trúc cây. Chiến lược phân mảnh này gọi là phân đoạn lai hay phân mảnh
trộn, hay phân mảnh lồng.
Môn học: Cơ sở dữ liệu nâng cao Trang 17
Phần III Phân mảnh dọc trong cơ sở dữ liệu phân tán
1. Giới thiệu về phân mảnh dọc
Một phân mảnh dọc cho một quan hệ R sinh ra các mảnh R
1
, R
2
,…, R
r
mỗi
mảnh chứa một tập con thuộc tính của R và cả khoá của R. Mục đích của phân
mảnh dọc là phân hoạch một quan hệ thành một tập các quan hệ nhỏ hơn để
nhiều ứng dụng chỉ cần chạy trên một mảnh. Một phân mảnh "tối ưu" là phân

mảnh sinh ra một lược đồ phân mảnh cho phép giảm tối đa thời gian thực thi
các ứng dụng chạy trên mảnh đó. Do vậy bài toán phân mảnh không chỉ là bài
toán của hệ cơ sở dữ liệu phân tán mà còn là bài toán của cơ sở dữ liệu tập
trung.
Kỹ thuật phân mảnh dọc phức tạp hơn so với kỹ thuật phân mảnh ngang.
Điều này là do tổng số chọn lựa có thể của một phân hoạch dọc rất lớn.
Để có được các lời giải tối ưu cho bài toán phân hoạch dọc thực sự rất khó
khăn. Vì thế phải dùng 2 phương pháp heuristic phân mảnh dọc các quan hệ
toàn cục.
- Phương pháp nhóm: 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 một số mảnh lại cho đến khi thỏa một tiêu chuẩn
nào đó.
- Phương pháp tách mảnh: Bắt đầu bằng một quan hệ và quyết định cách
phân mảnh 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.
2. Thông tin cần thiết của phân mảnh dọc
Bởi vì phân hoạch 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, chúng ta cần có một giá trị đo nào đó để định nghĩa chính
xác hơn về khái niệm "chung với nhau'. Số đo này gọi là tụ lực hay lực hút
(affmity) của thuộc tính, chỉ ra 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 của
chúng. gọi Q={q
1
, q
2
,…,q
q
} là tập các vấn tin của người dùng (các ứng dụng)
sẽ chạy trên quan hệ R(A
1

, A
2
,…,A
n
). Thế thì với mỗi câu vấn tin q
i
và mỗi
Môn học: Cơ sở dữ liệu nâng cao Trang 18
thuộc tính A
j
, chúng ta sẽ đưa ra một giá trị sử dụng thuộc tính : Ký hiệu
use(q
i
, A
j
) được định nghĩa như sau:
Các véc tơ use(q
i
, . ) cho mỗi ứng dụng rất dễ định nghĩa nếu nhà thiết kế
biết được các ứng dụng sẽ chạy trên CSDL.
Ví dụ:
Xét quan hệ DA, giả sử rằng các ứng dụng sau đây chạy trên các quan hệ
đó.
Trong mỗi trường hợp chúng ta cũng đặc tả bằng SQL.
q
1
: Tìm ngân sách của một dự án, cho biết mã của dự án
SELECT Ngân sách
FROM DA
WHERE Mda=giá trị

q
2
: Tìm tên và ngân sách của tất cả mọi dự án
SELECT TÊNDA, ngân sách
FROM DA
q
3
: Tìm tên của các dự án được thực hiện tại một thành phố đã cho
SELECT tên DA
FROM DA
WHERE địa điểm=giá trị
q
4
: Tìm tổng ngân sách dự án của mỗi thành phố
SELECT SUM (ngân sách)
FROM DA
WHERE Địa điểm=giá trị
Dựa theo bốn ứng dụng này, chúng ta có thể định nghĩa ra các giá trị sử
dụng thuộc tính. Để cho tiện về mặt ký pháp, chúng ta gọi
A
1
=MDA, A
2
=TênDA, A
3
= Ngân sách, A
4
= địa điểm. Giá trị sử dụng được
định nghĩa dưới dạng ma trận, trong đó mục (i,j) biểu thị use(q
i

, A
j
).
Môn học: Cơ sở dữ liệu nâng cao Trang 19
Giá trị sử dụng thuộc tính không đủ để làm cơ sở cho việc tách và phân
mảnh. Điều này là do chúng không biểu thị cho độ lớn của tần số ứng dụng. Số
đo lực hút (affmity) của các thuộc tính aff(A
i
, A
j
), biểu thị cho cầu nối giữa hai
thuộc tính của một quan hệ theo cách chúng được các ứng dụng truy xuất, sẽ là
một đại lượng cần thiết cho bài toán phân mảnh.
Xây dựng công thức để đo lực hút của hai thuộc tính A
i
, A
j
.
Gọi k là số các mảnh của R được phân mảnh. Tức là R = R
1
∪…R
k

Q= {q
l
,q
2
,…q
m
} là tập các câu vấn tin (tức là tập các ứng dụng chạy trên

quan hệ R). Đặt Q(A, B) là tập các ứng dụng q của Q mà use(q, A).use(q, B)
=1.
Nói cách khác: Q(A, B) = {q ∈ Q: use(q, A) = use(q, B) = 1}
Thí dụ dựa vào ma trận trên ta thấy:
Q(A
1
,A
1
) = {q
l
}, Q(A
2
,A
2
) = {q
2
}, Q(A
3
, A
3
) = {q
1
,q
2
,q
4
},
Q(A
4
,A

4
) = {q
3
, q
4
}, Q(A
l
, A
2
) = rỗng, Q(A
l
,A
3
) ={ql},…
Số đo lực hút giữa hai thuộc tính A
i
, A
j
được định nghĩa là:
Trong đó ref
1
(q
k
) là số truy xuất đến các thuộc tính (Ai, Aj) cho mỗi ứng
dụng q
k
tại vị trí R
l
và acc1(q
k

) là số đo tần số truy xuất ứng dụng qk đến các
Môn học: Cơ sở dữ liệu nâng cao Trang 20
thuộc tính A
i
, A
j
tại vị trí 1. Chúng ta cần lưu ý rằng trong công thức tính aff
(A
i
,A
j
) chỉ xuất hiện các ứng dụng q mà cả Ai và Aj đều sử dụng.
Kết quả của tính toán này là một ma trận đối xứng n x n, mỗi phần tử của
nó là một số đo được định nghĩa ở trên. Chúng ta gọi nó là ma trận lực tụ ( lực
hút hoặc ái lực) thuộc tính (AA) (auribute affmity matrix).
Để cho đơn giản chúng ta hãy giả sử rằng ref
1
(q
k
) = l cho tất cả q
k
và R
l
.
Nếu tần số ứng dụng là:
Acc
l
(q
1
) = 15 Acc

2
(q
1
) = 20 Acc
3
(q
1
) = 10
Acc
l
(q
2
) = 5 Acc
2
(q
2
) = 0 Acc
3
(q
2
) = 0
Acc
l
(q
3
) = 25 Acc
2
(q
3
) = 25 Acc

3
(q
3
) = 25
Acc
l
(q
4
) = 3 Acc
2
(q
4
) = 0 Acc
3
(q
l
) = 0
Số đo lực hút giữa hai thuộc tính Al và A3 là:
Tương tự tính cho các cặp còn lại ta có ma trận ái lực sau:
3. Thuật toán năng lượng liên kết BEA (Bong Energy Algorithm)
Thuật toán năng lượng liên kết được thực hiện qua ba bước:
B1: Khởi gán. Đặt và cố định một trong các cột của AA vào trong cột CA.
CỘt 1 được chọn trong thuật toán này.
B2: Thực hiện lặp. Lấy lần lượt một trong n-i cột còn lại (i là số cột đã đặt
vào trong CA) và thử đặt chúng vào i+1 vị trí còn lại trong ma trận CA. Nơi
đặt được chọn sao cho nó đóng góp nhiều nhất cho số ái lực chung được mô tả
ở trên. Việc lặp được kết thúc khi không còn cột nào.
Môn học: Cơ sở dữ liệu nâng cao Trang 21
B3: Sắp thứ tự vào hàng. Một khi thứ tự cột đã được xác định, các hàng
cũng cần được đặt lại để các vị trí tương đối của chúng phù hợp với các vị trí

tương đối của cột.
Thuật toán BEA
Đầu vào: AA - ma trận ái lực thuộc tính;
Đầu ra: CA - ma trận ái lực tụ sau khi đã sắp xếp lại các hàng các cột;
Begin
{Khởi gán: cần nhớ rằng AA là một ma trận n x n}
CA( * , 1)← AA( * , 1)
CA( * , 2)← AA( * , 2)
Index:=3
while index <= n do {chọn vị trí "tốt nhất " cho thuộc tính A
index
}
begin
for i:=l to index-1 by 1 do
tính cont(A
i-l
, A
index
, A
i
);
Tính cont(A
index-1
, A
index
, A
index+l
); {điều kiện biên}
Lọc ← nơi đặt, được cho bởi giá trị com lớn nhất;
for i: = index downto lọc do {xáo trộn hai ma trận}

CA( * , j) ← CA( * , i-l);
CA( * , loc) ← AA( * , index);
index← index+1 ;
end-while
Sắp thứ tự các hàng theo thứ tự tương đối của cột.
end. {BEA}
Ta có công thức tính đóng góp thực (net contribution) cho số đo ái lực
chung khi đặt thuộc tính A
k
giữa A
i
và A
j
là:
Cont(A
i
,A
k
,A
j
)= 2Bond(A
i
,A
k
)+2Bond(A
k
,A
j
) - 2Bond(A
i

,A
j
)
Xét thử ví dụ trên và tính toán phần đóng góp khi di chuyển thuộc tính
A
4
Vào giữa các thuộc tính A
l
và A
2
, được cho bằng công thức:
Cont(A
l
, A
4
, A
2
)= 2bond(A
l
, A
4
)+ 2bond(A
4
, A
2
)-2bond(A
l
, A
2
)

Trong đó:
Bond(A
l
, A
4
) = 45*0 + 0*75 + 45*3 + 0*78 = 135
Bond(A
4
, A
2
)= 11865
Bond(A
l
, A
2
) = 225
Vì thế:
cont(A
1
, A
4
,A
2
) = 2*135+2*11865-2*225 = 23550
Bây giờ Chúng ta hãy xét quá trình gom tụ các thuộc tính của quan hệ
Dự án và dùng ma trận ái lực thuộc tính AA.
Môn học: Cơ sở dữ liệu nâng cao Trang 22
Bước khởi đầu chúng ta chép các cột 1 và 2 của ma trận AA vào ma
trận CA và bắt đầu thực hiện từ cột thứ ba. Có 3 nơi có thể đặt được cột 3
là: (3-l-2), (l-3-2) và (l-2-3). Chúng ta hãy tính đóng góp số ái lực chung

của mỗi khả năng này.
Thứ tự (0-3-l):
cont(A
0
, A
3
, A
l
) = 2bond(A
0
, A
3
)+ 2bond(A
3
, A
1
) - 2bond(A
0
, A
l
)
bond(A
0
, A
3
) = bond(A
0
, A
l
)=0

bond(A
3
, A
l
) = 45*48+5*0+53*45+3*0=4410
 cont(A
0
, A
3
, A
1
) = 8820
Thứ tự (1-3 -2): cont (A
l
, A
3
, A
2
)= 10150
Thứ tự (2-3-4): cont (A
2
, A
3
, A
4
)=1780
Bởi vì đóng góp của thứ tự (l-2-3) là lớn nhất, chúng ta đặt A3 vào
bên phải của A
l
. Tính toán tương tự cho A

4
chỉ ra rằng cần phải đặt nó
vào bên phải của A
2
. Cuối cùng các hàng được tổ chức với cùng thứ tự
như các cột và các hàng được trình bày trong hình sau:
4. Thuật toán phân hoạch Partition
Input: CA: ma trận ái lực tụ; R: quan hệ; ref: ma trận sử dụng thuộc tính;
acc: ma trận tần số truy xuất;
Output: F: tập các mảnh;
Môn học: Cơ sở dữ liệu nâng cao Trang 23
Begin
{xác định giá trị z cho cột thứ nhất}
{các chỉ mục trong phương trình chi phí chỉ ra điểm tách}
tính CTQ
n-1
tính CBQ
n-1
tính COQ
n-1
best

CTQ
n-1
*CBQ
n-1
– (COQ
n-1
)
2

do {xác định cách phân hoạch tốt nhất}
begin
for i from n-2 to 1 by -1 do
begin
tính CTQ
i

tính CBQ
i
tính COQ
i
z

CTQ
i
*CBQ
i
– (COQ
i
)
2
if z > best then
begin
best

z
ghi nhận điểm tách bên vào trong hành động xê dịch
end-if
end-for
gọi SHIFT(CA)

end-begin
until không thể thực hiện SHIFT được nữa
Xây dựng lại ma trận theo vị trí xê dịch
R
1
←∏
TA
(R)

K {K là tập thuộc tính khoá chính của R}
R
2
←∏
BA
(R)

K
F

{R
1
, R
2
}
End. {partition}
5. Kiểm tra tính đúng đắng
Tính đầy đủ: Thuật toán đảm bảo tính đầy đủ, vì mỗi một thuộc tính của
quan hệ toàn cục được gán cho một mảnh. Tập các thuộc tính của quan hệ toàn
cục đúng bằng hợp của các thuộc tính các mảnh thành viên.
Tính khôi phục lại: Quan hệ toàn cục ban đầu R có thể được khôi phục lại

bằng các phép kết nối bằng nhau trên các thuộc tính khóa.
Tính tách biệt: Tính tách biệt trong phân mảnh dọc không quan trọng bằng
trong phân mảnh ngang. Tính phân biệt ở đây được hiểu là các thuộc tính
không khóa hoàn toàn tách biệt nhau trong mỗi quan hệ tách thành viên
Môn học: Cơ sở dữ liệu nâng cao Trang 24
Môn học: Cơ sở dữ liệu nâng cao Trang 25

×