Phân mảnh

Một phần của tài liệu Thiết kế cơ sở dữ liệu phân tán để tổ chức khai thác thông tin về giao thông (Trang 46 - 52)

Rút gọn cho phân mảnh dọc: Phân mảnh dọc phân tán một quan hệ dựa trên

các thuộc tính chiếu. Vì vậy phép kết nối sẽ là phép toán tái xây dựng các phân mảnh dọc. Chƣơng trình cục bộ hoá cho quan hệ phân mảnh dọc bao gồm các kết nối của các mảnh trên các thuộc tính chung.

Ví dụ: Quan hệ DUONG (MADUONG, TENDUONG, MAHUYEN, CHIEUDAI) đƣợc phân mảnh thành:

DUONG1 = π MADUONG, TENDUONG (DUONG) DUONG2 = π MADUONG, CHIEUDAI(DUONG)

Khi đó chƣơng trình cục bộ hoá cho quan hệ phân mảnh dọc là: DUONG = DUONG1 > < MADUONG DUONG2

Cũng nhƣ phân mảnh ngang, các câu truy vấn trên các mảnh dọc đƣợ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. Phép chiếu trên một mảnh dọc không có thuộc tính chung với các thuộc tính chiếu sinh ra các quan hệ vô dụng có thể không rỗng. Cho một quan hệ R định nghĩa trên tập các thuộc tính A = {A1, A2,...,An} và đƣợc phân thành Ri = πA’(R), i=1..k, A’ A. Quy tắc đƣợc phát biểu một cách hình thức nhƣ sau:

Quy tắc 3: πD, K(Ri) là vô dụng nếu tập các thuộc tính chiếu D không nằm trong A’.

Ví dụ: Giả sử DUONG1 = πMADUONG, TENDUONG (DUONG) DUONG1 > < MADUONG > < MADUONG DUONG2 TTBAOTRI2 TTBAOTRI1 DUONG3 > < MADUONG TTBAOTRI2

- 39 -

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

DUONG2= π MADUONG, CHIEUDAI(DUONG) Xét câu truy vấn SQL nhƣ sau

SELECT TENDUONG

FROM DUONG

Bằng cách hoán vị phép chiếu và phép kết nối, nghĩa là thực hiện phép chiếu trên các thuộc tính MADUONG và TENDUONG, khi đó có thể nhận thấy rằng phép chiếu trên thuộc tính TENDUONG trên quan hệ DUONG2 là vô dụng, vì TENDUONG không phải là thuộc tính của DUONG2. Vì vậy phép chiếu chỉ cần thực hiện trên DUONG1.

Hình 2.4. Rút gọn phân mảnh dọc

Rút gọn cho phân mảnh dẫn xuất : Phép kết nối thƣờng xuyên xẩy ra và có chi

phí cao. Tối ƣu hoá bằng cách sử dụng các phân mảnh ngang nguyên thuỷ khi các quan hệ nối đƣợc phân mảnh theo các thuộc tính nối.

Trong trƣờng hợp này nối của hai quan hệ đƣợc cài đặt nhƣ hợp của các nối từng phần. Tuy nhiên phƣơng pháp này ngăn cản không cho một trong các quan hệ phân mảnh theo một phép chọn trên một thuộc tính khác. Phân mảnh ngang dẫn xuất phân phối hai quan hệ, cải thiện khả năng xử lý các điểm giao nhau giữa các phép chọn và phép kết nối. Nếu quan hệ R phân mảnh dẫn xuất theo quan hệ S, các mảnh của R và S có giá trị nhƣ nhau ở thuộc tính kết nối sẽ nằm cùng vị trí. Quan hệ S có thể phân mảnh theo một vị từ chọn. DUONG1 DUONG2 > < MADUONG πTENDUONG DUONG1 πTENDUONG

- 40 -

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Vì các bộ của quan hệ R đƣợc đặt tuỳ chọn theo các bộ của S. để cho đơn giản, giả sử chỉ xét phân mảnh dẫn xuất chỉ đƣợc sử dụng cho mối liên hệ một - nhiều, trong đó một bộ của S tƣơng ứng với n bộ của R và một bộ của R chỉ khớp đúng với một bộ của S.

Ví dụ: Cho mối quan hệ một - nhiều DUONG → TTBAOTRI. Giả sử TTBAOTRI đƣợc phân mảnh gián tiếp theo các quy tắc sau:

TTBAOTRI1= TTBAOTRI > p MADUONG DUONG1 TTBAOTRI2= TTBAOTRI > p MADUONG DUONG2 Trong đó: DUONG1= σMAHUYEN = “DT” (DUONG)

DUONG2 = σMAHUYEN ≠ “DT” (DUONG) Chƣơng trình cục bộ hoá cho quan hệ phân mảnh ngang là TTBAOTRI = TTBAOTRI 1 TTBAOTRI2

Các câu truy vấn trên các mảnh dẫn xuất có thể đƣợc rút gọn bằng cách phân phối các nối trên các phép hợp và áp dụng quy tắc 2. Vì quy tắc phân mảnh chỉ rõ các bộ sẽ khớp với nhau, một số nối sinh ra quan hệ rỗng, các vị từ phân mảnh có mâu thuẫn. Chẳng hạn các vị từ của TTBAOTRI1và DUONG2 có mâu thuẫn, vì vậy TTBAOTRI 1> < DUONG2 = ∅

Xét câu truy vấn sau

SELECT *

FROM DUONG, TTBAOTRI

WHERE DUONG. MADUONG = TTBAOTRI. MADUONG

AND MAHUYEN = “DT”

Câu truy vấn gôc đƣợc thao tác trên các mảnh DUONG1, DUONG2, TTBAOTRI1 và TTBAOTRI2 (Hình 2.5a). Thực hiện phép chọn trên các mảnh DUONG1, DUONG2, vì vị từ chọn mâu thuẫn trên mảnh DUONG1, nên kết quả câu truy vấn rút gọn thu đƣợc nhƣ trong Hình 2.5b. Nhằm xác định các vị từ kết nối mâu thuẫn, cần phải phân phối các nối trên các hợp. Kết quả là cây Hình 2.5c. Cây

- 41 -

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

con bên trái nối hai mảnh TTBAOTRI1và DUONG2 với các lƣợng từ hoá mâu thuẫn bởi các vị từ chọn MAHUYEN = “DT trong TTBAOTRI 1 và MAHUYEN ≠ “DT” trong DUONG2. Vì vậy có thể loại bỏ cây bên trái và thu đƣợc kết quả câu truy vấn rút gọn nhƣ đƣợc chỉ ra trong Hình 2.5d. Với thí dụ này muốn minh hoạ một điều là giá trị phân mảnh trong việc cải thiện hiệu năng của các câu truy vấn phân tán.

(a) Câu truy vấn gốc

(b) Câu truy vấn sau khi đẩy phép chọn xuống

(c) Câu truy vấn sau khi đẩy phép hợp xuống

TTBAOTRI1 DUONG2 > <MADUONG σMAHUYEN = “DT” DUONG2 σMAHUYEN = “DT” TTBAOTRI2 > <MADUONG TTBAOTRI1 TTBAOTRI2 > <MADUONG DUONG2 TTBAOTRI1 TTBAOTRI2 > <MADUONG σMAHUYEN = “DT” DUONG1 DUONG1 σMAHUYEN = “DT”

- 42 -

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

(d) Câu truy vấn đã rút gọn sau khi loại cây con bên trái

Hình 2.5. Rút gọn cho phân mảnh gián tiếp

Rút gọn cho phân mảnh hỗn hợp: Phân mảnh hỗn hợp bao gồm việc phân mảnh ngang và phân mảnh dọc. Mục đích của phân mảnh hỗn hợp là hỗ trợ một cách hiệu quả các câu truy vấn có chứa các phép chọn, phép chiếu va phép kết nối. Chƣơng trình hoá cục bộ cho một quan hệ phân mảnh hỗn hợp có sử dụng phép hợp và kết nối các mảnh. Điều đáng quan tâm là để tối ƣu hoá một phép toán hay tổ hợp các phép toán luôn luôn phải trả chi phí cao cho các phép toán khác. Ví dụ phân mảnh hỗn hợp dựa trên phép chiếu-chọn sẽ làm cho phép chiếu hoặc phép chọn kém hiệu quả hơn so với phân mảnh ngang hoặc phân mảnh dọc.

Ví dụ : Phân mảnh hỗn hợp của quan hệ DUONG nhƣ sau:

DUONG1 = бMAHUYEN≤ “DT” (πMADUONG,TENDUONG,MAHUYEN(DUONG)) DUONG2 = б MAHUYEN ≠ “DT” (πMADUONG,TENDUONG,MAHUYEN(DUONG)) DUONG3 = π MADUONG, CHIEUDAI(DUONG)

Chƣơng trình cục bộ hoá nhƣ sau:

DUONG = (DUONG1 DUONG2) > < MADUONG DUONG3.

Các truy vấn trên những mảnh hỗn hợp có thể đƣợc rút gọn bằng cách kết hợp lần lƣợt các quy tắc trong phân mảnh ngang nguyên thuỷ, phân mảnh dọc và phân mảnh ngang dẫn xuất.

Các quy tắc này có thể tóm tắt nhƣ sau:

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

σMAHUYEN = “DT”

DUONG2 THONGTINBAOTRI2

- 43 -

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

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

vô dụng.

Ví dụ: Xét câu truy vấn sau

SELECT TENDUONG FROM DUONG

WHERE MAHUYEN ≠ “DT”

(a) Truy vấn gốc ( b) Truy vấn rút gọn

Hình 2.6. Rút gọn phân mảnh hỗn hợp

2.7. Kết luận chƣơng

Nội dung của chƣơng trình bày các vấn đề gồm nội dung thiết kế một hệ thống phân tán, các phƣơng pháp phân mảnh, cấp phát cho các mảnh, các kĩ thuật thực hiện phép nối và phép hợp. Các nội dung nghiên cứu này làm cơ sở lý thuyết vững chắc để thiết kế cơ sở dữ liệu phân tán cho hệ thống phân tán.

DUONG1 DUONG3 > <MAUONG DUONG1 σMAHUYEN ≠ “DT” πTENDUONG DUONG3 > <MAUONG σMAHUYEN ≠ “DT” πTENDUONG

- 44 -

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƢƠNG 3.

THIẾT KẾ CƠ SỞ DỮ LIỆU VỀ CÁC CUNG ĐƢỜNG THÁI NGUYÊN

Một phần của tài liệu Thiết kế cơ sở dữ liệu phân tán để tổ chức khai thác thông tin về giao thông (Trang 46 - 52)

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

(71 trang)