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

Tiểu luận môn cơ sở dữ liệu nâng cao Thiết kế 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 (1 MB, 21 trang )

Trường Đại học Công Nghệ Thông Tin
Đại học quốc gia TP. Hồ Chí Minh
Thiết kế Cơ sở dữ liệu
phân tán
***
HV: Lương Chấn Viễn
MHV: CH1101155
Môn: Cơ sở dữ liệu nâng cao
GV: PGS.TS. Đỗ Phúc
MỤC LỤC
Quá trình thiết kế top-down
Các vấn đề của thiết kế phân tán
1. LÝ DO PHÂN MẢNH
2. CÁC KIỂU PHÂN MẢNH
3. TÍNH ĐÚNG ĐẮN CỦA PHÂN MẢNH
4. CÁC KIỂU CẤP PHÁT
Phương pháp phân mảnh
1. PHÂN MẢNH NGANG
2. PHÂN MẢNH DỌC
Chương trình DEMO
2
2
2
Việc thiết kế một hệ thống máy tính phân tán liên quan đến việc đưa quyết định về vị
trí đặt dữ liệu và chương trình trên các miền của một mạng máy tính, cũng như thiết
kế cả chính hệ thống mạng đó. Trong trường hợp hệ thống cần thiết kế là một hệ
quản trị cơ sở dữ liệu phân tán (distributed DBMSs), thì bài toán đặt ra là: việc phân
tán của hệ quản tri CSDL và phân tán của những chương trình ứng dụng chạy trên hệ
phân tán đó.
Việc tổ chức hệ thống phân tán có thể biểu diễn trên hệ trục toạ độ 3 chiều như sau:
1. Chiều biểu diễn về mức độ chia sẻ của dữ liệu


2. Chiều biểu diễn về hành vi của kiểu mẫu truy xuất
3. Chiều biểu diễn về độ thông tin có được của kiểu mẫu truy xuất
Trong đó, chiều về mức độ chia sẻ (1) có những 3 mốc như sau: (1.0) không có chia
sẽ giữa các ứng dụng với nhau, mỗi ứng dụng và dữ liệu của nó thực thị tai một miền
duy nhất và không có bất cứ giao tiếp nào với ứng dụng khác hoặc truy cập dữ liệu
tại miền khác. (1.1) chia sẽ dữ liệu: tức là mọi chương trình được nhân bản tại mỗi
site, nhưng dữ liệu thì không. Khi đó yêu cầu từ người dung sẽ được xử lý tại chính
site của người dùng, và dữ liệu cần thiết sẽ được truyền qua mạng máy tính. Và cuối
cùng (1.2) là mức độ chia sẽ dữ liệu lẫn chương trình, khi đó, yêu cầu của người
dùng có thể được xứ lý tại một site khác và trả kết quả.
Dọc theo chiều (2) về hành vi của kiểu mẫu truy xuất gồm 2 cực: (2.0) tĩnh: tức là
các kiểu mẫu truy suất của người dùng không thay đổi theo, và cực còn lại (2.1)
động: kiểu mẫu truy suất thay đổi theo từng thời kỳ. Trên thực tế, kiểu mẫu truy suất
là tĩnh hoàn toàn thì hiếm gặp, ở đây, ta quan tâm đến mức độ thay đổi qua từng thời
điểm của kiểu mẫu truy suất.
Chiều thứ (3) thể hiện thông tin của ta về kiểu mẫu truy xuất. Từ mốc (3.0) là ta
không có bất cứ thông tin gì về người dùng sẽ truy cập CSDL như thế nào đến (3.1)
là ta có thể dự đoán được toàn bộ các kiểu truy vấn của người dùng.
3
3
3
1. QUÁ TRÌNH THIẾT KẾ TOP-DOWN
Có 2 chiến lược chính trong việc thiết kế CSDL phân tán là top-down và bottom-up.
Ở phần này ta tập trung trình bày về việc thiết kế CSDL theo hướng top-down.
Quá trình thiết kế diễn ra như hình vẽ. Bắt đầu từ việc phân tích yêu cầu
(requirements analysis) nhằm định nghĩa môi trường của hệ thống, tức ra vạch ra cả
dữ liệu và tiến trình cần thiết có thể cho tất cả người dùng của hệ CSDL. Cũng như
đưa ra những mục tiêu cho hệ CSDL phân tán đó về hiệu năng, tính đúng đắn, tính
kinh tế và tính mở rộng…
Yêu cầu phân tích sẽ được đưa vào 2 hoạt động song song là thiết kế view (view

design) và thiết kế khái niệm (concept design). Việc thiết kế view nhằm định nghĩa
những giao diện tương tác với người dùng cuối. Trong khí đó, việc thiết kế khái niệm
xác định những loại thực thể (entity type) và quan hệ giữa những thực thể đó. Trong
thiết kế khái niệm gồm 2 phần: phân tích thực thể (entity analysis) và phân tích tính
năng (functional analysis) liên quan với nhau. Phân tích thực thể yêu cầu ta xác định
về cấu trúc thực thể như thuộc tính (attributes) và quan hệ giữa chúng với nhau. Phân
tích tính năng là để xác định nhưng chức năng cơ bản liên quan đến mô hình trên. 2
phần này cần được tham chiếu chéo với nhau một cách rõ ràng.
4
4
4
Liên hệ giữa việc thiết kế view với thiết kế khái niệm thể hiện thông qua việc tích
hợp view (view intergration). Chú ý rằng mô hình khái niệm không những phải có
khả năng tích hợp được với những ứng dụng hiện tại, mà ta còn phải xem xét đến
những ứng dụng được đưa ra sau này. Quá trình tích hợp viem cần bảo đảm rằng yêu
cầu về thực thể và quan hệ cho những view được bao phủ với sơ đồ khái niệm.
Không những những thông tin về dữ liệu thực thể và những ứng dụng chạy trên đó
được cung cấp, ta còn cần những số liệu thống kê về như tần suất sử dụng của ứng
dụng… Những quá trình trên tương ứng với việc thiết kế của một hệ CSDL tập trung.
Khi sơ đồ khái niệm toàn cục GCS (Global cemceptual schema) và thông tin về kiểu
mẫu truy cập được thu thập, bước tiếp theo ta tiến đến việc thiết kế phân tán
(Distributed Design). Mục tiêu của giai đoạn này, cũng chính là phần trình bày của
bài báo cáo, là thiết kế những sơ đồ khái niệm cục bộ LCSs (Local conceptual
schemas) bởi việc phân tán các thực thể trên các site của hệ thống phân tán.
Việc phân tán không chỉ dừng ở mức phân tán các quan hệ, mà còn chia nhỏ chúng ta
thành các “mảnh” (fragments) và phân tán những mảnh đó. Khi đó việc thiết kế gồm
2 bước: phân mảnh và bố trí các mảnh.
Bước cuối cùng của việc thiết kế là thiết kế vật lý (physical design) tức ánh xạ các sơ
đồ khái niệm cục bộ được tìm ra ở bước trước vào các thiết bị lưu trữ vật lý tương
ứng ở mỗi site.

Quá trình này được lặp lại khi đưa vào thực tế do những biến động của yêu cầu thực
tế. Qua một thời gian quan sát, ta cần đưa ra những điều chỉnh hợp lý cho từng giai
đoạn.
5
5
5
2. CÁC VẤN ĐỀ CỦA THIẾT KẾ PHÂN TÁN
Mục tiêu của phần này là đưa ra những giải thích cụ thể của tiến trình thiết kế phân
tán mà ta đã trình bày ở phần trước. Trong phần này, ta trả lời các câu hỏi liên quan
sau:
1. Tại sao cần phân mảnh?
2. Phân mảnh như thế nào?
3. Phân mảnh đến mức độ nào?
4. Có cách nào để kiểm tra tính đúng đán và tính phân rã?
5. Cấp phát mảnh như thế nào?
6. Những thông tin nào là cần thiết cho việc phân mảnh và cấp phát mảnh?
2.1 LÝ DO PHÂN MẢNH
Nếu dựa trên góc nhìn của việc phân bố dữ liệu thì toàn bộ CSDL chỉ là các tập tin
trên hệ thống. Vì thế chỉ cần phân tán các tập tin này trên các node mạng, vì thế
không cần đến việc phân mảnh.
Tuy nhiên, vấn đề quan trong là có một số đơn vị thích hợp cho việc phân tán. Nhưng
một quan hệ lại không phải là một đơn vị thích hợp. Vì (1) ứng dụng thường truy
xuất đến một tập con của quan hệ. Ta có thể coi mỗi tập con vậy là một đơn vị truy
xuất. (2) là giả sử ứng dụng cần truy xuất đến quan hệ mà nằm ở một site khác. Khi
đó, nếu không phân mảnh thì (2.1) toàn bộ toàn hệ chỉ nằm tại một site khác, và
lượng thông tin liên lạc giữa các site sẽ lớn. Hay ngược lại (2.2) quan hệ được nhân
bản tại mỗi site và ta phải đối mặt với việc lãng phí dung lương lưu trữ.
Cuối cùng (3) việc phân rã quan hệ thành nhiều mảnh và mỗi mảnh xử lý như một
đơn vị cho phép ta thực hiện nhiều giao dịch đồng thời. Hơn thế nữa, ta còn có thể
thực thi song song một câu truy vấn bằng cách chia nó thành những câu truy vấn nhỏ

tương ứng với các mảnh.
2.2 CÁC KIỂU PHÂN MẢNH
Có hai cách phân mảnh: phân mảnh theo chiều ngang, phân mảnh theo chiều dọc.
Ví dụ: Xét CSDL như sau:
6
6
6
Ta có thể tách theo chiều nganh quan hệ PROJ thành 2 quan hệ PROJ
1
chứa các
thông tin về dự án có kinh phí dưới 200000 USD, và PROJ
2
chứa các thông tin về dự
án có kinh phí lớn hơn 200000 USD.
Hay tách quan hệ PROJ theo chiều dọc (giữ nguyên thuộc tính khoác) thành 2 quan
hệ PROJ
1
chứa các thông tin về kinh phí dự án, và PROJ
2
chứa các thông tin về tên
và vị trí dự án.
7
7
7
Ngoài ra, ta có thể lồng ghép nhiều phân mảnh trên 1 quan hệ. Nếu lồng ghép 2 kiểu
phân mảnh khác nhau thì ta gọi là phân mảnh hỗn hợp (hybrid fragmentation).
2.3 TÍNH ĐÚNG ĐẮN CỦA PHÂN MẢNH
TÍNH ĐẦY ĐỦ (COMPLETENESS)
Cho quan hệ bất kỳ. Giả sử được phân mảnh thành các mảnh . Khi đó tính đầy đủ
yêu cầu mỗi mục dữ liệu trong có thể tìm thấy trong 1 mảnh trong các mảnh của .

TÍNH TÁI TẠO (RECONSTRUCTION)
Cho quan hệ bất kỳ. Giả sử được phân mảnh thành các mảnh . Khi đó, tồn tại một
toán tử quan hệ sao cho
TÍNH TÁCH BIỆT (DISJOINTNESS)
Cho quan hệ bất kỳ. Nếu được phân mảnh ngang thành các mảnh . Với bất kỳ một
mục dữ liệu thì .
2.4 CÁC KIỂU CẤP PHÁT
Các mảnh cần được cấp phát trên các site của mạng. Có 2 kiểu cấp phát chính:
KHÔNG NHÂN BẢN
Còn gọi là CSDL phân hoạch. Mỗi mảnh nằm trên một site và là bản sao duy nhất
của toàn bộ mạng. Khi đó, chi phí truyền tin cao nhưng việc quản trị CSDL sẽ dễ
dàng.
NHÂN BẢN
Kiểu CSDL nhân bản có hai dạng:
- Nhân bản đầy đủ: khi đó toàn bộ CSDL đều có bản sao ở mỗi site.
- Nhân bản từng phần: khi đó các mảnh được phân tán đến các vị trí, mỗi mảnh có
thể có nhiều bản sao nằm ở các vị trí khác nhau. Khi đó việc quản trị cơ sở dữ liệu
khá phức tạp, khó thực thi.
8
8
8
3. PHƯƠNG PHÁP PHÂN MẢNH
Như đã nói ở phần trước, có 2 kiểu phân mảnh ngang và phân mảnh dọc. Ở đây ta
trình bày về 2 phương pháp phân mảnh này.
3.1. PHÂN MẢNH NGANG
Phân mảnh ngang phân hoạch quan hệ theo các bộ. Mỗi mảnh là một tập con của các
bộ của quan hệ. Có hai loại phân mảnh ngang: phân mảnh ngang nguyên thuỷ
(primary horizontal fragmentation), và phân mảnh ngang được suy. Phân mảnh
ngang nguyên thủy được thực hiện dựa trên các vị từ được định nghĩa bởi quan hệ
đó. Phân mảnh ngang được suy (derived horizontal fragmentation) là sự phân hoạch

quan hệ dựa trên vị từ định nghĩa theo một quan hệ khác. Trước khi thực hiện phân
mảnh, chúng ta cần thu thập thông tin cần thiết.
3.1.1 YÊU CẦU THÔNG TIN
THÔNG TIN VỀ CSDL
Thông tin này bao gồm lược đồ khái niệm toàn cục.Trong trường hợp này, ta chú ý
đến các liên kết giữa các quan hệ, đặc biệt là phép nối. Trong mô hình thực thể quan
hệ, các liên kết này biểu diễn bởi mũi tên từ quan hệ đến quan hệ
trong đó gọi là owner, gọi là member: , .
Ví dụ: liên kết có và .
THÔNG TIN VỀ ỨNG DỤNG
Yêu cầu thông tin của ứng dụng gồm cả thông tin định tính lẫn định lượng. Thông tin
định tính định hướng cho việc phân mảnh, trong khi thông tin định lượng được sử
dụng chủ yếu trong mô hình cấp phát. Những thông tin định tính cơ bản gồm các vị
từ được câu truy vấn của người dùng.
9
9
9
Cho quan hệ trong đó là các thuộc tính của quan hệ. Một vị từ đơn có dạng
trong đó toán tử , và với là miền xác định của . Ví dụ: PNAME=”Maintenance”,
BUGET ≤ 200.000.
Các câu truy vấn thường xây dựng từ các vị từ đơn giản bởi các toán tử Boolean. Ở
đây, ta gọi một vị từ là vị từ hội sơ cấp (minterm predicate), nếu vị từ có thể xây
dựng dựa trên phép hội của các vị từ đơn giản. Bởi vì ta luôn có thể biến đổi một biểu
thức bool thành dạng chuẩn hội (conjuctive normal form) nên việc sử dụng vị từ hội
sơ cấp trong thuật toán thiết kế không làm mất tính tổng quát.
Cho tập các vị từ đơn cho trước , ta định nghĩa tập các vị từ hội tối tiểu (minterm
predicates) là:
Trong đó .
Ví dụ:
: PNAME=”Maintencance”


BUGEET ≤ 200000
: NOT(PNAME=”Maintencance”) ∧ BUGEET ≤ 200000
: PNAME=”Maintencance”

BUGEET > 200000
: NOT(PNAME=”Maintencance”) ∧ BUGEET > 200000
Đối với các thông tin định tính về ứng dụng, chúng ta cần biết hai tập dữ liệu.
(1) Độ tuyển hội sơ cấp (minterm selectives)
là số các bộ của quan hệ được câu truy vấn (tương ứng với minterm predicate ) truy
cập.
(2) Tần số truy cập dữ liệu (access frequency) của ứng dụng : .
3.1.2 PHÂN MẢNH NGANG NGUYÊN THUỶ
Phân mảnh ngang nguyên thuỷ được định nghĩa bằng một phép toán chọn trên các
quan hệ owner trong lược đồ CSDL.
Với quan hệ , các mảnh ngang là:
Trong đó là công thức chọn dùng để tìm mảnh (còn gọi là minterm fragment). Nếu
ở dạng chuẩn hội, thì nó là một minterm predicate.
Mỗi một mảnh ngang là tập con các bộ thỏa vị từ hội sơ cấp . Vì vậy, việc phân
mảnh ngang là tìm một tập các minterm predicate . Để phân mãnh được tốt, tập vị từ
đơn xây dựng nên cần có các tính chất đầy đủ và cực tiểu.
10
10
10
TÍNH ĐẦY ĐỦ (COMPLETE)
Tập các vị từ đơn giản gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứng dụng truy xuất
đến một bộ bất kỳ thuộc về một mảnh hội sơ cấp (minterm fragment) nào đó được
định nghĩa theo đều bằng nhau.
TÍNH TỐI TIỂU (MINIMAL)
Cho tập các vị từ đơn giản . Ta nói một vị từ là có liên đới (relevant) trong việc xác

định phân mảnh, nếu nó ảnh hưởng đến việc mảnh bị phân thành và thì phải có ít
nhất một ứng dụng truy xuất đến và có xác suất khác nhau.
Nếu tất cả các vị từ trong đều có liên ứng thì là tối tiểu.
Qui tắc 1: Một quan hệ hoặc một mảnh được phân hoạch thành ít nhất hai phần khác
nhau và được ít nhất một ứng dụng truy cập các bộ ới xác suất khác nhau.
THUẬT TOÁN COM_MIN
Input: quan hệ , tập các vị từ đơn
Output: tập các vị từ đơn đầy đủ và tối tiểu
Khởi tạo:
- Tìm sao cho phân hoạch theo quy tắc 1.
-
-
-
Lặp
- Tìm sao cho phân hoạch theo quy tắc 1
-
-
- Nếu không liên ứng thì loại ra khỏi
Cho đến khi đầy đủ
Tiếp theo ta suy ra tập các vị từ hội sơ cấp định nghĩa bởi tập vừa tìm được.
THUẬT TOÁN PHORIZONTAL
Input: quan hệ , tập các vị từ đơn đầy đủ và tối tiểu
Output: tập các vị từ hội tối tiểu .
Xác định tập các vị từ hội tối tiểu
Xác định tập các phép kéo theo giữa các vị từ đơn .
Khử các minterm mẫu thuẫn ra khỏi .
3.1.3 PHÂN MẢNH NGANG ĐƯỢC SUY
11
11
11

Phân mảnh ngang được suy được định nghĩa trên một quan hệ member của một liên
kết dựa theo phép chọn trên quan hệ owner của . Ta cần lưu ý hai điểm sau: (1)
đường nối giữa quan owner và member được định nghĩa bằng một phép đẳng nối
(equijoin). (2) đẳng nối có thể được cài đặt nhờ các phép bán nối (semijoin).
Cho trước đường nối , trong đó và , các mảnh ngang được suy của được định nghĩa

Và phân mãnh là phân mảnh ngang của .
3.2. PHÂN MẢNH DỌC
Một phân mảnh dọc của quan hệ là tập các mảnh, trong đó mỗi mảnh chứa tập con
các thuộc tính của và các khoá của . Mục đích của phân mảnh dọc là phân hoạ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 1 mả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ên cá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ăng phân
mảnh dọc rất lớn. Nếu quan hệ có thuộc tính không khoá, thì số mảnh có thể bằng ,
số Bell thứ . Với lớn .
3.2.1 YÊU CẦU THÔNG TIN
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 “tru xuất chung”. 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 suất truy xuất (access
frequency) của chúng. Gọi là tập các struy vấn của người dùng sẽ chạy trên quan hệ .
Với mỗi câu truy vấn và mỗi thuộc tính ta định nghĩa giá trị sử dụng (attribute usage
value) nếu thuộc tính được sửa dụng trong truy vấn .
Ta định nghĩa số đo ái lực thuộc tính (attribute affinity measure) giữa hai thuộc tính
và của quan hệ ứng với tập ứng dụng là
Trong đó là số lượng các truy cập đến thuộc tính cho mỗi thực thi của ứng
dụng . Và là tần suất sử dụng của truy vấn tại site . Ta thấy càng lớn khi và
được sử dụng chung càng nhiều.

Khi đó ta có thể xây dựng ma trận ái lực mà mỗi phần tử ở dòng cột là .
3.2.2 THUẬT TOÁN GOM NHÓM
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 cách nào đó
để nhóm các thuộc tính của quan hệ dựa trên ma trận ái lực. Ta cần tìm hoán vị các
hàng và cột ma trận ái lực để tạo thành ma trận CA (clustered affinity matrix) sao cho
số đo ái lực toàn cục AM (global affinity measure) là lớn nhất. Ta định nghĩa:
12
12
12
Vì ma trận ái lực đối xứng nên
Và ta có thể viết thành
Ta định nghĩa:
Khi đó ta có thể viết
Ta xem là một hàm . Với một thứ tự các thuộc tính tính như sau:
Khi đó ta có thể viết
Nếu ta thêm cột vào giữa và thì
Khi đó ta gọi lượng đóng góp tịnh (net contribution) khi thêm vào vị trí giữa và là
Khi đó ta cần tìm vị trí chèn sao cho .
THUẬT TOÁN BEA
Input: ma trận affinity .
Output: ma trận
Khởi tạo: cố định 2 cột bất kỳ từ vào .
Với mỗi cột còn lại
- Tìm vị trí sao cho là lớn nhất
- Chèn vào vị trí
Xem ví vụ ở phần chương trình demo.
3.2.3 THUẬT TOÁN PHÂN HOẠCH
Mục đích của việc phân mãnh dọc là tìm những tập thuộc tính được truy xuất cùng
nhau bởi các ứng dụng. Ta có thể tách các thuộc tính thành tập con. Ở đây, ta chỉ xét
việc tách thành 2 tập con.

13
13
13
Do ma trận CA đã được gom nhóm nên ta chỉ cần tìm 1 điểm chia theo thứ tự đã xét
như sau:
Ta ký hiệu là tập các thuộc tính nằm bên trái điểm chia, là tập các thuộc tính nằm
bên phải điểm chia.
Ta gọi là tập tất cả các thuộc tính được sử dụng trong truy vấn . Khi đó:
là tập các truy vấn chỉ sử dụng các thuộc tính trong .
là tập các truy vấn chỉ sử dụng các thuộc tính trong .
là tập các truy vấn chỉ sử dụng cả những thuộc tính trong lẫn .
Khi đó ta cần điểm chia sao cho lượng truy vấn đến các thuộc tính cùng mảnh là lớn
nhất và hạn chế lượng truy vấn đến các thuộc tính ở 2 mảnh khác nhau.
Ta gọi lượng truy vấn của một tập truy vấn là
Khi đó, ta có
Như đã nói, ta cần hạn chế và tối đa và . Khi đó bài toán của ta là:
Xem ví dụ ở chương trình Demo.
CHƯƠNG TRÌNH DEMO
14
14
14
Chương trình thể hiện quá trình phân mảnh dọc quan hệ bởi thuật toán gom cụm
BEA và thuật toán phân hoạch PARTITON. Chương trình được viết trên nền Web
bởi ngôn ngữ đặc tả HTML và ngôn ngữ lập trình Javascript, có thể chạy trên các
trình duyệt web hiện đại hiện nay như Chrome, Opera hay Firefox và Safari.
Chương trình gồm 2 phần:
- phần nhập dữ liệu đầu vào bên trái và
- phần trình bày lời giải bên phải.
Hình 1 Giao diện của chương trình
15

15
15
Trong đó phần nhập dữ liệu đầu vào yêu cầu nhập số lượng các thuộc tính của quan
hệ , số lượng các câu lệnh truy vấn và số các site của hệ thống phân tán. Chương
trình quy ước các thuộc tính của quan hệ của là và các câu truy vấn . Yêu cầu về
thông tin ứng dụng còn có ma trận và ma trận ACC. Do trong thuật toán BEA lúc
khởi tạo cố định 2 cột tương ứng với 2 thuộc tính và , vì thế, người dùng có thể chọn
2 thuộc tính tương ứng với 2 cột cố định ban đầu.
Phần trình bày lời giải sẽ trả trình bày gồm các phần:
- yêu cầu thông tin: viết lại ma trân và ma trận từ dữ liệu đầu vào cũng như
tính tổng tần suất truy cập trên các site của truy vấn . Ở đây quy ước .
- Xây dựng ma trận với các phần tử . Người dùng có thể xem các phép tính
cụ thể bằng cách nhấn vào “cụ thể”.
- Quá trình xây dựng ma trận gom cụm bằng thuật toán BEA. Chương trình
trình bày mỗi bước chèn cột vào ma trận trước đó cũng như các net
Solve
Solve
4
4
3
1 0 1 0
0 1 1 0
0 1 0 1
0 0 1 1
15 20 10
5 0 0
25 25 25
3 0 0
Chọn 2 cột thuộc tính ban đầu:
A1


A2
16
16
16
contribution của mỗi trường hợp chèn . Cuối cùng, ta sắp xếp lại để lại các
dòng và cột theo thứ tự tương ứng để được ma trận hoàn chỉnh.
- Phần cuối của chương trình trình bày về các trường hợp phân hoạch nhị
phân ma trận và đưa ra kết luận cuối cùng về phương án phân mảnh dọc tối
ưu.
Tiếp theo là một ví dụ kết quả trả về của chương trình.
17
17
17
18
18
18
19
19
19
20
20
20
TÀI LIỆU THAM KHẢO
Principles of Distributed Database systems. M. Tamer OZsu, Patrick
Valduriez.
21
21
21

×