Cục bộ hóa dữ liệu phân bố

Một phần của tài liệu Giáo trình cơ sở dữ liệu phân bổ cđn công nghiệp hà nội (Trang 56 - 61)

Tầng cục bộ hóa dữ liệu chịu trách nhiệm dịch câu vấn tin đại số trên quan hệ toàn cục sang câu vấn tin đại số 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 vấn tin và biến đổi câu vấn tin phân bố thành câu vấn tin trên các mảnh. Tạo ra câu vấn tin theo mảnh được thực hiện qua hai bước. Trước tiên vấn tin phân bố được ánh xạ thành vấn tin theo mảnh bằng cách thay đổi mỗi quan hệ phân bố bằng chương trình tái thiết của nó. Thứ hai vấn tin theo mảnh được đơn giản hoá và tái cấu trúc để tạo ra một câu vấn tin “có chất lượng”. Quá trình đơn giản hoá và tái cấu trúc có thể được thực hiện theo những quy tắc được sử dụng trong tầng phân rã. Giống như trong tầng đó, câu vấn tin theo mảnh cuối cùng nói chung chưa đạt đến tối ưu bởi vì thông tin liên quan đến các mảnh chưa được sử dụng.

- Cục bộ hoá dữ liệu sẽ xác định các mảnh nào cần cho câu vấn tin. Biến đổi câu vấn tin phân bố thành các câu vấn tin theo mảnh.

- Trong phần này đối với mỗi kiểu phân mảnh ta sẽ trình bày các kỹ thuật rút gọn để tạo các câu vấn tin tối ưu và đơn giản hơn.

- Ta sẽ sử dụng các qui tắn biến đổi và các khám phá, chẳng hạn đẩy các phép toán đơn ngôi xuống thấp như có thể.

Rút gọn phân mảnh ngang nguyên thuỷ

- Việc phân mảnh ngang phân bố 1 quan hệ dựa trên các vị từ chọn

Thí dụ 3.8:

NV (MaNV, TenNV, CVụ) NV1 = MaNV  ‘E3’(NV)

NV2 = ’’E3’ < MaNV  ‘E6’(NV) NV = NV1  NV2  NV3 NV3 = MaNV > ‘E6’(NV)

Cách làm:

+ Xác định sau khi tái cấu trúc lại cây con, xem cây nào tạo ra các quan hệ rỗng thì loại bỏ chúng đi.

57

Rút gọn với 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

qui tắc phân mảnh sẽ sinh ra quan hệ rỗng ta loại bỏ chúng. rj =  nếu t thuộc r :  ( t(pi)  t(pj) )

Trong đó pi, pj là các vị từ chọn, t biểu thị cho 1 bộ, t(p) biểu thị “vị từ p đúng với t”. Ví dụ: NV1 = MaNV  ‘E3’(NV)

NV2 = ’’E3’ < MaNV  ‘E6’(NV) NV3 = MaNV > ‘E6’(NV) Select MaNV

From NV

Where MaNV=’E5’

Rút gọn với phép nối

- Nối trên các quan hệ phân mảnh ngang có thể được đơn giản khi các quan hệ nối được phân mảnh theo thuộc tính nối.

- Đơn giản hoá gồm có phân phối các nối trên các hợp rồi bỏ đi các nối vô dụng. ( r1  r2 ) |><| s = (r1 |><| s )  (r2 |><| s )

đó ri là các mảnh còn r, s là các quan hệ

Bằng phép biến đổi này, các hợp có thể được di chuyển lên trên cây toán tử để tất cả các nối có thể có các mảnh đều được lộ ra. Các nối vô dụng được bỏ đi khi các lượng từ hoá của các mảnh có mâu thuẫn.

Bằng cách hoán vị phép chọn với phép hợp ta sẽ phát hiện ra vị từ chọn >< vị từ của NV1, NV3. => tạo ra các quan hệ rỗng => loại bỏ

MaNV MaNV=’E5’  NV1 NV2 NV3 MaNV MaNV=’E5’ NV2

58

Thí dụ 3.9:

Cho 2 quan hệ được phân mảnh

NV1 = MaNV  E3 (NV) NV(MaNV, TênNV, CVụ) NV2 = E3 < MaNV  E6 (NV)

NV3 = MaNV > E6 (NV) PC1 = MaNV  E3 (PC) PC (MaNV, MaDA, NVụ, Tg) PC2 = MaNV > E3 (NV) Câu hỏi:

Select * From NV, PC

Where NV.MaNV = PC.MaNV

Rút gọn cho phân mảnh dọc

Phân mảnh dọc phân bố một quan hệ dựa trên các thuộc tính chiếu. Chương trình cục bộ hoá cho một quan hệ phân mảnh dọc gồm có nối của các mảnh theo thuộc tính chung.

Thí dụ 3.10: NV(MaNV, TênNV, CVụ) NV1 = MaNV, TênNV(NV) NV2 = MaNV, CVụ(NV) Chương trình cục bộ hoá: NV = NV1 |><| NV2 * |><|   PC1 PC2 NV1 NV2 NV3 * |><| PC3 NV3 PC2 NV2 PC1 NV1 |><| |><| 

59 Cách làm: Vấn tin trên phân mảnh dọc có thể được rút gọn bằng cách xác định các quan hệ trung gian vô dụng và loại bỏ các cây con đã sinh ra chúng

A= {A1, A2, ...} và được phân mảnh dọc thành ri (A’) trong đó A’  A ri (D, A’) là vô dụng nếu tập thuộc tính chiếu D không thuộc A’

Thí dụ 3.11: NV(MaNV, TênNV, CVụ) NV1 = MaNV, TênNV(NV) NV2 = MaNV, CVụ(NV) Select TênNV From NV

Rút gọn cho phân mảnh ngang dẫn xuất

- Phân mảnh ngang dẫn xuất là một cách để phân phối hai quan hệ mà nhờ đó có thể cải thiện khả năng xử lý các điểm giao nhau giữa phép chọn và phép nối.

- Nếu quan hệ r phải phân mảnh dẫn xuất theo quan hệ s, các mảnh của r và s giống nhau ở thuộc tính nối sẽ nằm cùng vị trí. Ngoài ra s có thể được phân mảnh theo vị từ chọn.

- Phân mảnh dẫn xuất chỉ được sử dụng cho mối liên hệ 1 – N (phân cấp) từ s đến r: trong đó 1 bộ của s có thể khớp với nhiều bộ của r

Thí dụ 3.12: NV(MaNV, TênNV, CVụ) NV1= Cvụ=’TP’(NV) NV2 = Cvụ’TP’(NV) PC(MaNV, MaDA, NVụ, Tg) PC1 = PC |>< NV1  TênNV |><| NV1 NV2 NV1  TênNV

60 PC2 = PC |>< NV2

“ Đưa ra tất cả các thuộc tính của NV, PC với NVụ =”PP” Select *

From NV, PC

Where NV.MaNV = PC.MaNV and NV.CVụ=”PP”

Câu vấn tin trên các mảnh NV1, NV2, PC1, PC2 đã được định nghĩa. Đẩy phép chọn xuống các mảnh NV1. NV2 câu vấn tin rút gọn lại do mâu thuẫn với vị từ chọn của NV1 = > loại bỏ NV1

Rút gọn cho phân mảnh ngang hỗn hợp

Mục tiêu: Hỗ trợ hiệu quả các câu vấn tin có chứa phép chiếu, chọn và nối

Câu vấn tin trên các mảnh hỗn hợp có thể được rút gọn bằng cách tổ hợp các qui tắc tương ứng đẫ đuực dùng trong các phân mảnh ngang nguyên thuỷ, phân mảnh dọc, phân mảnh ngang dẫn xuất.

Qui tắc:

1/ Loại bỏ các quan hệ rỗng được tạo ra bởi các phép toán chọn mâu thuẫn trên các mảnh ngang.

2/ Loại bỏ các quan hệ vô dụng được tạo ra bởi các phép chiếu trên các mảnh dọc 3/ Phân phối các nối cho các hợp nằm cô lập và loại bỏ các nối vô dụng.

Thí dụ 3.13: NV1 = MaNV  E4 (MaNV, TênNV (NV) ) MaNV, TênNV, CVụ) NV2 = MaNV > E4 (MaNV, TênNV (NV) )

NV3 = MaNV, CVụ (NV) * |><|MaNV PC1 PC2 NV1 NV2   Cvụ=’PP’ * |><|MaNV PC1 PC2 NV2  Cvụ=’PP’ * |><|MaNV PC1 NV2 PC2 NV2  Cvụ=’PP’ |><|MaNV Cvụ=’PP’ PC2 NV2 Cvụ=’PP’ |><|MaNV *

61 Chương trình cục bộ hoá NV = (NV1  NV2 ) |><| NV3

Câu vấn tin: Tên của nhân viên có mã E5

Một phần của tài liệu Giáo trình cơ sở dữ liệu phân bổ cđn công nghiệp hà nội (Trang 56 - 61)

Tải bản đầy đủ (PDF)

(93 trang)