2. Định vị dữ liệu phân tán
2.1 Rút gọn phân mảnh ngang nguyên thủy
Phân mảnh ngang phân tán một quan hệ dựa trên các vị từ chọn (Select Predicate). Ví dụ quan hệ EMP(ENO, ENAME, TITLE) có thể được phân mảnh ngang thành:
(EMP)
σ
=
EMP1 ENO≤E3"
) (EM
σ
=
EMP2 ENO>"E3"∧3"∧<"E6" P
) (EMP
σ
=
EMP3 ENO>"E6"
Khi đó chương trình cục bộ hóa cho quan hệ phân mảnh ngang là hợp các mảnh: EMP= EMP1 EMP2 EMP3
Vì vậy dạng truy vấn gốc được xác minh dựa trên EMP sẽ thu được bằng cách thay EMP bởi (EMP1 EMP2 EMP3). Như vậy để giảm các thao tác truy vấn trên quan hệ đã được phân mảnh theo chiều ngang, trước hết phải các định rõ cần thao tác trên mảnh nào và sau đó xây dựng lại cây con, xem xét loại bỏ các quan hệ rổng. Phân mảnhngang sẽ được sử dụng để làm đơn giản hóa các phép chọn và phép kết nối.
2.1.1 Rút gọn phép chọn
Phép chọn thực hiện trên các mảnh có lượng từ hóa mâu thuẩn với lượng từ hóa của quy tắc phân mảnh sinh ra các quan hệ rổng. Cho một quan hệ R được phân mảnh theo chiều ngang là Rj =σpj(R),j=1..n, quy tắc này có thể được biểu diễn một cách hình thức như sau:
Qui tắc 1: σpj(Rj)=Φnếu ∀ x∈ R:¬(pi(x)∧ pj(x))
Trong đó pi, pjlà các vị từ chọn, x là một bộ.
Ví dụ vị từ ENO= “E1” mâu thuẩn với các vị từ của mảnh EMP2, EMP3 nghĩa là không có bộ nào thỏa vị từ ENO= “E1”.
Ví dụ: Xét câu truy vấn sau: SELECT *
39
WHERE ENO=:E5”
Áp dụng cách tiếp cận thô sơ để cục bộ hóa EMP từ EMP1 , EMP2 ,EMP3 cho câu truy vấn gốc ở hình a dưới đây bằng các hoán vị phép chọn và phép hợp. Dễ dàng nhận thấy vị từ chọn mâu thuẩn vơi EMP1, EMP3. Câu truy vấn đã rút gọn chỉ ứng dụng có một mảnh EMP2như trong hình b:
Hình 12: Rút gọn phân mảnhngang với phép chọn
2.1.2 Rút gọn với phép kết nối
Phép kết nối được thực hiện trên các phân mảnh ngang có thể đơn giản khi kết nối dựa theo các thuộc tính kết nối, bằng cách phân phối kết nối trên các hợp và sau đó loại bỏ các kết nối không tác dụng. Việc phân phổi các kết nối trên phép hợp được phát biểu như sau:
) S 2 (R ∪ S) 1 (R = S ) 2 R ∪ 1 (R
Trong đó, Rilà các mảnh của R và S là một quan hệ.
Bằng phép biến đổi này, các phép hợp có thể được di chuyển xuống dưới trong cây đại số quan hệ, nên tất cả các phép kết nối có thể của các mảnh đều được lộ ra. Các phép kết nốivô dụng được xác định khi lượng từ hóa các mảnh có mâu thuẫn. Giả sử các mảnh Ri và Rjđược xác định theo cac vị từ chọn pi và pjtrên cùng một quan hệ, quy tắc đơn giản hóa có thể được phát biểu như sau:
Quy tắc 2: Ri Rj=Φnếu ∀x∈Ri,∀y∈Rj :¬(pi(x)∧pj(y))
Việc xác định các kết nối vô dụng có thể được thực hiện bằng cách chỉ xét các vị từ của các mảnh.
Ví dụ: Giả sử xét quan hệ EMP(ENO, ENAME, TITLE) được phân mảnh ngang thành EMP1 , EMP2 ,EMP3:
40
(EMP)
σ
=
EMP1 ENO≤"E3"
) (EM
σ
=
EMP2 ENO>"E3"∧3"∧<"E6" P
) (EMP
σ
=
EMP3 ENO>"E6"
Quan hệ ASG(ENO, PNO, RESP, DUR) được phân mảnh như sau:
(ASG)
σ
=
ASG1 ENO≤E3" ) (ASG
σ
=
ASG2 ENO>"E3"
EMP1 và ASG1 cùng định nghĩa bởi vị từ ENO≤“E3”. Vị từ định nghĩa trong ASG2là hợp của các vị từ được định nghĩa trong EMP2 và EMP3:
ENO > “E3”= ((“E3”<ENO) (ENO < “E6”)) (ENO> “E6” ) Xét câu truy vấn sau:
SELECT *
FROM EMP, ASG
WHERE EMP.ENO=ASG.ENO
Câu truy vấn được rút gọn bằng cách phân phối các nối trên các hợp và áp dụng quy tắc 2 có thể cài đặt như hợp của ba nối từng phần được thực hiện song song:
Hình 13: Cây đại số quan hệ truy vấn gốc
Hình 14: Rút gọn phân mảnh ngang với phép kết nối