Thuật toỏn phõn mảnh ngang nguyờn thuỷ

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 65 - 68)

3.2 Phương phỏp phõn mảnh ngang

3.2.6 Thuật toỏn phõn mảnh ngang nguyờn thuỷ

Thuật toỏn 3.2. PHORIZONTAL

Input: R là quan hệ cần phõn mảnh ngang cơ sở. Pr là tập cỏc vị từ đơn giản

Output: M là tập cỏc vị từ hội sơ cấp Begin

Pr’ ← COM_MIT(R, Pr)

Xỏc định tập M cỏc vị từ hội sơ cấp

Xỏc định tập I cỏc phộp kộo theo giữa cỏc pi ∈ Pr’ For mỗi mi ∈ M do

If mi mõu thuẫn với I then M ← M - mi

End_if End_for

End. {PHORIZONTAL}

Vớ dụ 3.10. Giả sử chỉ cú một ứng dụng kiểm tra thụng tin lương và xỏc định số lương sẽ

tăng trờn quan hệ PAỴ Giả sử cú hai vị trớ, một vị trớ xử lý cỏc bộ cú lương thấp hơn hoặc bằng 30000$ và vị trớ cịn lại xử lý cỏc bộ cú lương cao hơn 30000$. Cõu truy vấn sẽ thực hiện trờn cả hai vị trớ. Tập vị từ đơn giản sử dụng để phõn hoạch quan hệ PAY là:

p1: SAL ≤ 30000

p2: SAL > 30000

Tập vị từ đơn giản khởi đầu là Pr = {p1, p2}. Áp dụng thuật toỏn COM_MIN với i=1 làm giỏ trị khởi đầu tạo ra Pr’={p1} là tập đầy đủ và cực tiểu vỡ p2 khơng phõn hoạch f1 (là mảnh hội sơ cấp được tạo ra ứng với p1) theo quy tắc. Như vậy, cỏc vị từ hội sơ cấp sau đõy là cỏc phần tử của M:

m1: (SAL ≤ 30000)

m1: ơ(SAL ≤ 30000) = SAL > 30000

Khi đú, hai mảnh Fs = {PAY1, PAY2} theo M là:

Hỡnh 3.6. Phõn mảnh ngang cho quan hệ PAY

Giả sử cú hai ứng dụng trờn quan hệ PROJ. Ứng dụng thứ nhất xỏc định tờn cỏc dự ỏn và ngõn sỏch của chỳng trờn ba vị trớ.

SELECT PNAME, BUDGET

FROM PROJ

WHERE LOC = Value

Ứng dụng này, cỏc vị từ đơn giản cú thể được sử dụng là: PAY1 TITLE SAL Mech. Eng. Programmer 27000 24000 PAY2 TITLE SAL Elect. Eng. Syst. Anal. 40000 34000

p1: LOC = “Montreal” p2: LOC = “New York” p3: LOC = “Paris”

Ứng dụng thứ hai liờn quan đến cỏc dự ỏn cú ngõn sỏch nhỏ hơn hoặc bằng 200000$ được quản lý tại một vị trớ và cỏc dự ỏn cú ngõn sỏch lớn hơn 200000 được quản lý tại vị trớ thứ haị Vỡ vậy, cỏc vị từ đơn giản được sử dụng để phõn mảnh ứng dụng thứ hai là:

p4: BUDGET ≤ 200000

p5: BUDGET > 200000

Sử dụng thuật toỏn COM_MIN kiểm tra tập Pr’ = {p1, p2, p3, p4, p5} là đầy đủ và cực tiểụ Cú thể định nghĩa sỏu vị từ hội sơ cấp tạo ra M dựa trờn Pr’ như sau::

m1: (LOC=“Montreal”) ∧ (BUDGET≤20000) m2: (LOC=“Montreal”) ∧ (BUDGET>20000) m3: (LOC=“New York”) ∧ (BUDGET≤20000) m4: (LOC=“New York”) ∧ (BUDGET>20000) m5: (LOC=“Paris”) ∧ (BUDGET≤20000) m6: (LOC=“Paris”) ∧ (BUDGET>20000)

Kết quả phõn mảnh ngang cơ sở PROJ tạo ra sỏu mảnh FPROJ = {PROJ1, PROJ2, PROJ3, PROJ4, PROJ5, PROJ6} theo cỏc vị từ hội sơ cấp M. Cỏc mảnh PROJ2, PROJ5 rỗng.

Hỡnh 3.7 . Phõn hoạch ngang quan hệ PROJ PROJ1

PNO PNAME BUDGET LOC P1 Instrumentation 150000 Montreal PROJ3

PNO PNAME BUDGET LOC P2 Database

D l 135000 New York

PROJ4

PNO PNAME BUDGET LOC

P3 CAD/CAM 250000 New York

PROJ6

PNO PNAME BUDGET LOC P4 Maintenance 31000 Paris

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 65 - 68)