VI. Quản trị cơ sở dữ liệu phõn tỏn của Oracle
6. Phộp chiếu giao hoỏn với những phộp toỏn hai ngụ
• Phộp chiếu và tớch Decartes:
Nếu C=A’B’ với A’ A, B’ B, và A, B là tập cỏc thuộc tớnh trờn quan hệ R, S ta cú:
• Phộp chiếu và phộp nối:
• Phộp chiếu và phộp hợp:
Chỳ ý: Việc sử dụng sỏu luật trờn cú khả năng sinh ra nhiều cõy đại số quan hệ tương đương nhau. Vấn đề là xỏc định cho được cõy tối ưu.
)( ( ) ( ) (R S A' R B' S C ) ( ) ( ) (R S A' R B' S C
223
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Chỳ ý:
Trong giai đoạn tối ưu, sự so sỏnh cỏc cõy cú thể thực hiện dựa trờn chi phớ dự đoỏn của chỳng. Tuy nhiờn, nếu số lượng cỏc cõy quỏ lớn thỡ cỏch tiếp cận này sẽ khụng hiệu quả. Chỳng ta cú thể dựng 6 luật trờn để cấu trỳc lại cõy, nhằm loại bỏ những cõy đại số quan hệ “tồi”.
Cỏc luật trờn cú thể sử dụng theo bốn cỏch như sau: • Phõn ró cỏc phộp toỏn một ngụi, đơn giản húa biểu thức truy
vấn .
• Nhúm cỏc phộp toỏn một ngụi trờn cựng một quan hệ để giảm số lần thực hiện.
• Giao hoỏn cỏc phộp toỏn một ngụi với cỏc phộp toỏn hai ngụi để ưu tiờn cho một số phộp toỏn (chẳng hạn phộp chọn, chiếu,...).
• Sắp thứ tự cỏc phộp toỏn hai ngụi trong thực hiện truy vấn.
224
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Cấu trỳc lại cõy truy vấn ở vớ dụ trờn, cho ra cõy kết quả tốt hơn cõy ban đầu.
tuy nhiờn vẫn cũn xa cõy tối ưu
225
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
4.3.2 Cục bộ húa dữ liệu - Định vị dữ liệu phõn tỏn
Vai trũ của tầng Cục bộ húa dữ liệu:
• dịch cõu truy vấn đại số trờn quan hệ tổng thể sang cõu truy vấn đại số trờn cỏc mảnh vật lý.
• Sử dụng thụng tin được lưu trữ trờn cỏc lược đồ phõn mảnh để cục bộ húa dữ liệu.
• Chương trỡnh đại số quan hệ xõy dựng lại quan hệ tổng thể từ cỏc phõn mảnh của nú gọi là chương trỡnh định vị. • Truy vấn cú được từ chương trỡnh định vị gọi là truy vấn ban
đầu.
• Chỳ ý: Trong phần dưới đõy, với mỗi kiểu phõn mảnh
chỳng ta sẽ biểu diễn một kỹ thuật rỳt gọn để sinh ra truy
vấn được tối ưu và đơn giản hoỏ. 226
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
4.3.2.1 Rỳt gọn theo phõn mảnh ngang nguyờn thuỷ
Xột quan hệ E(MANV,TENNV,CHUCVU). Tỏch quan hệ này thành ba mảnh ngang E1, E2 và E3 như sau:
E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E)
Chương trỡnh định vị cho quan hệ E: E = E1 E2 E3.
Dạng ban đầu của bất kỳ truy vấn nào được xỏc định trờn E là cú được bằng cỏch thay thế nú bởi E1 E2 E3.
Việc rỳt gọn cỏc truy vấn trờn cỏc quan hệ đó được phõn mảnh ngang bao gồm việc xỏc định cõu truy vấn, sau khi đó cấu trỳc lại cõy con. Điều này sẽ sinh ra một số quan hệ rỗng, và sẽ loại bỏ chỳng.
Phõn mảnh ngang cú thể đựơc khai thỏc để làm đơn giản cả phộp chọn và phộp nối.
227
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
a. Rỳt gọn với phộp chọn: cho một quan hệ R được phõn mảnh ngang thành R1, R2,..., Rn với
Luật 1: nếu xR : (pi(x) pj(x)). Trong đú, pi, pj là vị từ chọn, x là bộ dữ liệu, p(x) là vị từ p chiếm giữ x. pi, pj là vị từ chọn, x là bộ dữ liệu, p(x) là vị từ p chiếm giữ x. Vớ dụ: Hóy rỳt gọn truy vấn SELECT * FROM E WHERE MANV=”E5”
Với E được tỏch thành ba mảnh ngang E1, E2 và E3 : E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E)
p(Rj) p(Rj) j ) (R R j p j 228
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
MANV=”E5” MANV=”E5”
E1 E2 E3
E2
(a) Truy vấn ban đầu (b) Truy vấn rỳt gọn
Rỳt gọn bằng cỏch sử dụng tớnh chất giao hoỏn phộp chọn với phộp hợp, chỳng ta thấy vị từ chọn đối lập với vị từ E1 và E3 nờn sinh ra cỏc quan hệ rỗng.
E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E)
229
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
b.Rỳt gọn với phộp nối
• Cỏc phộp nối trờn quan hệ đó được phõn mảnh ngang cú thể đơn giản khi chỳng được phõn mảnh theo thuộc tớnh nối. • Việc rỳt gọn được thực hiện dựa trờn tớnh phõn phối giữa
phộp nối và phộp hợp và loại bỏ cỏc phộp nối vụ ớch. • Với tớnh chất, (R1R2) R3 = (R1 R3) (R2 R3) , Ri là
cỏc phõn mảnh. Chỳng ta cú thể xỏc định được cỏc phộp nối vụ ớch của cỏc mảnh khi cỏc điều kiện nối mõu thuẫn nhau. Sau đú, dựng luật 2 dưới đõy để loại bỏ cỏc phộp nối vụ ớch.
230
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Luật 2: Ri Rj = nếu xRi, yRj : (pi(x)pj(y)). Trong đú Ri, Rj được xỏc định theo cỏc vị từ pi, pj trờn cựng thuộc tớnh.
Nhận xột:
• Việc xỏc định cỏc phộp nối vụ ớch được thực hiện bằng cỏch chỉ xem xột cỏc vị từ mảnh.
• Truy vấn rỳt gọn khụng phải luụn tốt hơn hoặc đơn giản hơn truy vấn ban đầu.
• Một thuận lợi của truy vấn rỳt gọn là những phộp nối cú thể thực hiện song song.
231
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Vớ dụ: Giả sử quan hệ E được phõn mảnh thành cỏc mảnh E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E) Quan hệ G được phõn làm hai mảnh:
G1=MANV”E3”(G) và G2=MANV>”E3”(G).
Nhận xột:
• E1 và G1 được định nghĩa bởi cựng vị từ.
• Vị từ định nghĩa G2 là hợp của cỏc định nghĩa của những vị từ E2 và E3. Xột truy vấn SELECT * FROM E, G WHERE E.MANV=G.MANV MANV MANV E1 E2 E3 G1 G2
(a) Truy vấn ban đầu
MANV MANV
E1 G1 E2 G2 E3 G2
(b) Truy vấn rỳt gọn Hỡnh 4.8: Sự rỳt gọn phõn mảnh ngang với phộp nối
232
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E) G1=MANV”E3”(G) G2=MANV>”E3”(G).
E G = (E1E2E3) (G1G2)
= (E1 G1)(E1 G2)(E2 G1)(E2 G2)(E3 G1)(E3 G2) = (E1 G1) (E2 G2) (E3 G2)
233
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
4.3.2.2 Rỳt gọn phõn mảnh dọc
• Chức năng của việc phõn mảnh dọc là tỏch quan hệ dựa vào thuộc tớnh của cỏc phộp chiếu.
• Vỡ phộp toỏn xõy dựng lại đối với phõn mảnh dọc là nối, nờn chương trỡnh định vị một quan hệ đó được phõn mảnh dọc là nối của cỏc mảnh trong vựng thuộc tớnh chung.
Vớ dụ: Quan hệ E được phõn mảnh dọc thành E1, E2, với thuộc tớnh khoỏ MANV được lặp lại như sau: E1 = MANV,TENNV(E) và E2 = MANV,CHUCVU(E) Chương trỡnh định vị là: E = E1 MANV E2
• Cỏc truy vấn trờn phõn mảnh dọc cú thể rỳt gọn bằng cỏch xỏc định cỏc quan hệ trung gian vụ ớch và loại bỏ cỏc cõy con chứa chỳng.
• Cỏc phộp chiếu trờn một phõn mảnh dọc khụng cú thuộc tớnh chung với cỏc thuộc tớnh chiếu (ngoại trừ khúa của
quan hệ) là vụ ớch, mặc dự cỏc quan hệ là khỏc rỗng. 234
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Luật 3: D,K(Ri) là vụ ớch nếu DA’= . Trong đú, quan hệ R xỏc định trờn A={A1, ...,An}; R = A’(R), A’A , K là khoỏ của quan hệ, KA, D là tập cỏc thuộc tớnh chiếu, D A.
Vớ dụ: Với quan hệ E được phõn mảnh dọc như sau: E1 = MANV,TENNV(E) và E2 = MANV,CHUCVU(E) Xột truy vấn SQL: SELECT TENNV FROM E TENNV TENNV MANV E1 E2 E1
(a) Truy vấn ban đầu (b) Truy vấn rỳt gọn
Hỡnh 4.9: Rỳt gọn đối với việc phõn mảnh dọc Nhận xột: phộp chiếu trờn E2 là vụ ớch vỡ TENNV khụng cú trong E2, nờn phộp chiếu chỉ cần gỏn vào E1
235
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
4.3.2.3 Rỳt gọn theo phõn mảnh giỏn tiếp
• Sự phõn mảnh ngang dẫn xuất là một cỏch tỏch hai quan hệ để việc xử lý nối của cỏc phộp chọn và phộp nối
• Nếu quan hệ R phụ thuộc vào sự phõn mảnh ngang dẫn xuất nhờ quan hệ S, thỡ cỏc mảnh của R và S, mà cú cựng giỏ trị thuộc tớnh nối, sẽ được định vị tại cựng trạm. Ngoài ra, S cú thể được phõn mảnh tựy thuộc vào vị từ chọn.
• Khi cỏc bộ của R được đặt tuỳ theo những bộ của S, thỡ sự phõn mảnh ngang dẫn xuất chỉ nờn sử dụng mối quan hệ một nhiều từ SR (i.e. với một bộ của S cú thể phự hợp với n bộ của R, nhưng với một bộ của R chỉ phự hợp với một bộ của S). • Truy vấn trờn cỏc phõn mảnh ngang dẫn xuất cũng cú thể rỳt
gọn được, nếu cỏc vị từ phõn mảnh mõu thuẫn nhau thỡ phộp nối sẽ đưa ra quan hệ rỗng.
• Chương trỡnh định vị một quan hệ đó được phõn mảnh ngang
dẫn xuất là hợp của cỏc mảnh. 236
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Vớ dụ: Cho mối quan hệ một nhiều từ quan hệ
E=NHANVIEN(MANV, TENNV, CHUCVU) đến quan hệ G=DUAN (MANV, MADA, NHIEMVU, THOIGIAN). Trong đú, quan hệ G cú thể được phõn mảnh ngang dẫn xuất: G1 = G MANV E1 và G2 = G MANV E2.
Và E được phõn mảnh ngang:
E1= CHUCVU=”Lập trỡnh”(E) và E2= CHUCVU”Lập trỡnh”(E)
Chương trỡnh định vị cho một quan hệ đó được phõn mảnh ngang dẫn xuất là hợp của cỏc mảnh G=G1G2. Để rỳt gọn cỏc truy vấn trờn phõn mảnh ngang dẫn xuất này, phộp nối sẽ đưa ra quan hệ rỗng nếu cỏc vị từ phõn mảnh mõu thuẫn nhau.
Vớ dụ vị từ G1 và E2 mõu thuẫn nhau, nờn G1 E2 =.
237
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Vớ dụ: Xột truy vấn
SELECT *
FROM E, G
WHERE G.MANV=E.MANV
AND CHUCVU=”KS cơ khớ”
CHUCVU=”KS cơ khớ”
(b) Truy vấn sau khi đẩy phộp chọn xuống
MANV
G1 G2 E2
CHUCVU=”KS cơ khớ” G1 = G MANV E1 và G2 = G MANV E2.
E1= CHUCVU=”Lập trỡnh”(E) và E2= CHUCVU”Lập trỡnh”(E)
MANV
G1 G2
E1 E2(a) Truy vấn ban đầu (a) Truy vấn ban đầu
238
Nhận xột:
• Truy vấn ban đầu trờn cỏc mảnh E1, E2, G1 và G2 tương ứng hỡnh 4.10a. • Bằng cỏch đẩy phộp chọn xuống cỏc mảnh E1 và E2, được truy vấn rỳt
gọn ở hỡnh 4.10b.
• Phõn phối cỏc phộp nối với phộp hợp, chỳng ta thu được cõy hỡnh 4.10c.
• Cõy con bờn trỏi đưa ra một quan hệ rỗng, nờn cõy rỳt gọn cú được trong hỡnh 4.10d.
Hỡnh 4.10: Rỳt gọn của phõn mảnh giỏn tiếp MANV
CHUCVU=”KS cơ khớ”
G1 G2
E2
(c) Truy vấn sau khi đẩy phộp hợp lờn
MANVCHUCVU=”KS cơ khớ” CHUCVU=”KS cơ khớ” E2 G2 MANV CHUCVU=”KS cơ khớ” E2 (d) Truy vấn đó rỳt gọn Chỳ ý: (G1 G2 ) CHUCVU=”kscơ khớ”(E2)
= (G1 CHUCVU=”kscơ khớ”(E2)) (G2 CHUCVU=”kscơ khớ”(E2))
239
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
4.3.2.4 Rỳt gọn theo phõn mảnh hỗn hợp
• Sự phõn mảnh hỗn hợp là sự kết hợp giữa phõn dọc và phõn mảnh ngang.
• Mục đớch của phõn mảnh hỗn hợp là hỗ trợ cỏc truy vấn liờn quan đến phộp chiếu, phộp chọn và phộp nối
• Chương trỡnh định vị cho một quan hệ đó phõn mảnh hỗn hợp là phộp hợp và phộp nối của cỏc mảnh.
Vớ dụ: Xột quan hệ E được phõn mảnh hỗn hợp như sau: E1=MANV ”E4”(MANV,TENNV(E)), E2=MANV > ”E4”(MANV,TENNV(E)) E3=MANV,CHUCVU(E)
Chương trỡnh định vị là: E = (E1 E2) MANV E3
240
4.3 Xử lý truy vấn trong mụi trường phõn tỏn
Cỏc truy vấn trờn cỏc mảnh hỗn hợp cú thể được rỳt gọn bằng cỏch kết hợp cỏc luật sử dụng trong phõn mảnh ngang nguyờn thủy, phõn mảnh dọc, phõn mảnh ngang giỏn tiếp, tương ứng như sau:
1.Loại bỏ cỏc quan hệ rỗng sinh bởi sự mõu thuẫn giữa cỏc phộp chọn trờn cỏc phõn mảnh ngang.
2.Loại bỏ cỏc quan hệ vụ ớch sinh bởi cỏc phộp chiếu trờn cỏc phõn mảnh dọc.
3.Phõn phối cỏc phộp nối với cỏc phộp hợp để tỏch và loại bỏ cỏc phộp nối vụ ớch.
241 SELECT TENNV SELECT TENNV FROM E WHERE MANV=”E5” TENNV MANV=”E5” E2 (b) Truy vấn đó rỳt gọn (a) Truy vấn ban đầu
TENNVMANV=”E5” MANV=”E5”
E1 E2 E3
Hỡnh 4.11: Rỳt gọn của phõn mảnh hỗn hợp
Vớ dụ: E1=MANV ”E4”(MANV,TENNV(E)), E2=MANV > ”E4”(MANV,TENNV(E)) E3=MANV,CHUCVU(E)
242
1.Mục đớch của tối ưu hoỏ truy vấn trong CSDL phõn tỏn 2.Chức năng của tối ưu hoỏ truy vấn phõn tỏn 3.Cỏc phương phỏp xử lý truy vấn cơ bản 4.Sơ đồ phõn lớp chung cho xử lý truy vấn phõn tỏn. 5.Cỏch chuyển một truy vấn phộp tớnh quan hệ thành một cõy
đại số quan hệ
6.Sử dụng cỏc luật biến đổi phộp toỏn đại số quan hệ để biến đổi cõy đại số quan hệ thành cỏc cõy tương đương. 7.Định vị dữ liệu phõn tỏn-Tối ưu hoỏ cục bộ