Kết quả được xem là đạt chất lượng theo nghĩa là tránh truy xuất nhiều lần đến cùng một quan hệ và các phép toán chọn nhiều nhất được thực hiện trước tiên.
2.2.2. Cục bộ hóa dữ liệu phân tán
Cục bộ hóa dữ liệu chịu trách nhiệm dịch câu truy vấn đại số trên quan hệ toàn cục sang câu truy vấn đại số quan hệ trên các mảnh vật lý. Cục bộ hóa có sử dụng các thông tin được lưu trong một lược đồ phân mảnh.
Tầng này xác định xem những mảnh nào cần cho câu truy vấn và biến đổi câu truy vấn phân tán thành câu truy vấn trên các mảnh. Tạo ra câu truy vấn trên mảnh được thực hiện qua hai bước:
-Truy vấn phân tán được ánh xạ thành truy vấn trên mảnh bằng cách thay thế mỗi quan hệ phân tán bằng chương trình xây dựng lại có chứa các phép toán đại số quan hệ thao tác trên mảnh, gọi là chương trình cục bộ hóa
-Truy vấn trên mảnh được đơn giản hoá và xây dựng lại để tạo ra một truy vấn khác tốt hơn. Quá trình đơn giản hoá và xây dựng lại có thể được thực hiện theo những quy tắc được sử dụng trong tầng phân rã.
2.2.2.1. Rút gọn cho 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. Ví dụ quan hệ NV (MaNV, TenNV, CVụ) được phân mảnh ngang thành:
PC TênNV MDA, TenNV MNV MDA, MNV MNV, TenNV MDA
TenDA=”CAD/CAM” Thoigian=12Thoigian=24
DA NV
- NV1 = MaNV ‘E3’(NV) - NV2 = ’’E3’ < MaNV ‘E6’(NV) - NV3 = MaNV > ‘E6’(NV)
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: NV = NV1 NV2 NV3
Vì vậy, dạng truy vấn gốc được xác định trên NV sẽ thu được bằng cách thay NV bởi (NV1 NV2 NV3). Như vậy, để giảm các thao tác truy vấn trên quan hệ đã được phân mảnh ngang, trước hết phải xá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ảnh ngang 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.
Rút gọn phép chọn: Chọn trên các mảnh có lượng từ mâu thuẫn với lượng từ
hoá của quy tắc phân mảnh sẽ sinh ra quan hệ rỗng, ta loại bỏ chú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ể biểu diễn như sau:
pj (Rj) = nếu x thuộc R : ( pi(x) ʌ pj(x)) Trong đó: pi, pj là các vị từ chọn, x là một bộ.
Ví dụ 2.8: Xét các phân mảnh ngang NV1, NV2 , NV3 ở trên.
Vị từ MaNV = "E1" mâu thuẫn với các vị từ của mảnh NV2 và NV3, nghĩa là không có bộ nào thỏa mãn vị từ MaNV = "E1".
Xét câu truy vấn sau:
Select MaNV From NV
Where MaNV =’E5’
Cục bộ hóa NV từ NV1, NV2 và NV3 cho câu truy vấn gốc trong Hình 2.8 bằng cách 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 NV1 và NV3. Câu truy vấn đã rút gọn chỉ sử dụng một mảnh NV2 như trong Hình 2.9.