Rỳt gọn cho phõn mảnh ngang nguyờn thuỷ

Một phần của tài liệu Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng (Trang 51 - 55)

Phõn mảnh ngang một quan hệ dựa trờn cỏc vị từ chọn.

Vớ dụ 2.2-7:Từ hệ CSDL Cụng ty Điện toỏn (trang 184 [3])

Quan hệ EMP cú thể được tỏch thành ba mảnh ngang như sau EMPH1 = ENO  “E3” (EMP)

EMPH2 = “E3” < ENO  “E6” (EMP) EMPH3 =  ENO  “E6” (EMP)

Chương trỡnh cục bộ hoỏ cho phõn mảnh ngang trờn là hợp cỏc mảnh lại: EMP = EMPH1 EMPH2  EMPH3

Vỡ vậy cõu vấn tin gốc thực hiện trờn EMP sẽ được thực hiện trờn EMPH1

 EMPH2 EMPH3

Rỳt gọn vấn tin trờn cỏc quan hệ phõn mảnh ngang chủ yếu là xỏc định, sau khi đó tỏi cấu trỳc lại cõy con, xem cõy nào tạo ra quan hệ rỗng thỡ bỏ cõy con đú đi.

2.2.2.1.1. Rỳt gọn với phộp chọn

Nếu chọn trờn cỏc mảnh cú vị từ mõu thuẫn với vị từ phõn mảnh sẽ sinh ra cỏc quan hệ rỗng. Cho quan hệ R được phõn mảnh ngang thành RH1, RH2,…, RHn trong đú RHi =  Pi(R).

Qui tắc 1:

 Pi(RHj) =  nếu x  R:  (pi(x)  pj(x))

Trong đú pi(x) là vị từ chọn và pj(x) là vị từ phõn mảnh cũn x biểu thị một bộ (bản ghi), khi viết p(x) cú nghĩa là “vị từ p đỳng với x”.

Chẳng hạn vị từ chọn ENO = “E1” mõu thuẫn với cỏc vị từ phõn mảnh EMPH2 và EMPH3 (nghĩa là khụng cú bộ nào trong EMPH2 và EMPH3 thoả vị từ chọn ENO = “E1”). (xem vớ dụ 2.2-7)

Vớ dụ 2.2-8: Từ hệ CSDL Cụng ty Điện toỏn (trang 184 [3])Rỳt gọn cho phõn mảnh ngang khi dựng cõu vấn tin mẫu sau:

SELECT * FROM EMP

WHERE ENO = “E5”

Chương trỡnh cục bộ húa cho phõn mảnh ngang EMP = EMPH1  EMPH2

 EMPH3 cho ra cõy vấn tin gốc (hỡnh 2.2-4a). Bằng cỏch hoỏn vị phộp chọn với phộp hợp (hỡnh 2.2-4b), chỳng ta dễ dàng phỏt hiện ra rằng vị từ chọn

ENO = “E5” mõu thuẫn với vị từ phõn mảnh EMPH1 (ENO  “E3”)và vị từ phõn mảnh EMPH3 (ENO  “E6”), do vậy tạo ra quan hệ rỗng. Cõu vấn tin bấy giờ chỉ cần ỏp dụng trờn EMPH2 (hỡnh 2.2-4c).

2.2.2.1.2. 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 húa gồm cú phõn phối nối trờn cỏc hợp rồi bỏ đi cỏc nụi vụ dụng. Từ phộp phõn phối nối và hợp:

(R1  R2) S = (R1 S)  (R2 S) , trong đú Ri là cỏc mảnh của Rcũn Slà một quan hệ. Cỏc hợp cú thể được di chuyển trờn cõy toỏn tử để tất cả cỏc nối cú thể cú của cỏc mảnh đều thấy được. Cỏc nối vụ dụng cú thể xỏc định được khi lượng từ hoỏ của cỏc mảnh nối cú mõu thuẫn. Gả sử rằng cỏc

Hỡnh 2.2-4. Rỳt gọn cho phõn mảnh ngang (với phộp chọn)

(c) Vấn tin rỳt gọn

ENO = “E5”

EMPH2 (a) Vấn tin gốc

ENO = “E5”

EMPH1 EMPH2 EMPH3

(b) Vấn tin đó đổi  cho ENO = “E5”

EMPH1 EMPH2 EMPH3

mảnh Ri, Rj được định nghĩa tương ứng theo cỏc vị từ pi, pj trờn cựng một quan hệ, qui tắc đơn giản hoỏ cú thể được phỏt biểu như sau:

Qui tắc 2:

Ri Rj =  nếu x  Ri, y r Rj: (pi(x)  pj(y))

Vỡ thế việc xỏc định cỏc 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. Áp dụng qui tắc này cho phộp nối hai quan hệ được cài đặt như cỏc nối từng phần song song cho cỏc mảnh. Cõu vấn tin rỳt gọn khụng phải lỳc nào cũng tốt hơn (nghĩa là đơn giản hơn) cõu vắn tin gốc. Cõu vấn tin gốc sẽ tết hơn khi cú quỏ nhiều nối từng phần trong cõu vấn tin rỳt gọn. Điều này nảy sinh khi cú rất ớt cỏc vị từ phõn mảnh mõu thuẫn. Trường hợp xấu nhất xảy ra khi mỗi mảnh của quan hệ này phải được nối với mỗi mảnh của quan hệ kia. Như thế nú giống như lấy tớch Descartes của hai tập mảnh, với mỗi tập tương ứng với một quan hệ. Cõu vấn tin rỳt gọn sẽ tốt hơn khi cú ớt cỏc nối từng phần. Vớ dụ: nếu cả hai quan hệ được phõn mảnh nhờ cựng một vị từ, số lượng cỏc nối từng phần bằng với số lượng cỏc mảnh của mỗi quan hệ. Ưu điểm của cõu vấn tin rỳt gọn là cỏc nối từng

Vớ dụ 2.2-9: Từ hệ CSDL Cụng ty Điện toỏn (trang 184 [3])

Giả sử EMP được phõn mảnh thành EMPH1, EMPH2 và EMPH3 như sau : EMPH1 = ENO  “E3” (EMP) ; pEMPH1 = (ENO  “E3”)

EMPH2 = “E3” < ENO  “E6” (EMP) ; pEMPH2 = (“E3” < ENO  “E6”) EMPH3 =  ENO  “E6” (EMP) ; pEMPH3 = (“E6” < ENO)

và quan hệ ASG được phõn mảnh ngang như sau:

ASGH1 = ENO  “E3” (ASG) ; pASGH1 = (ENO  “E3”) ASGH2 =  ENO  “E3” (ASG) ; pASGH2 = (ENO  “E3”)

Như vậy EMPH1 và ASGH1 được định nghĩa bởi cựng một vị từ. Ngoài ra vị từ định nghĩa ASGH2 là hợp của cỏc vị từ định nghĩa mảnh EMPH2 và EMPH3. Bõy giờ xột cõu vấn tin nối

SELECT *

FROM EMP, ASG

WHERE EMP.ENO = ASG.ENO

Cõu vấn tin gốc tương đương được trỡnh bày trong hỡnh 2.5a. Cõu vấn tin rỳt gọn bằng cỏch phõn phối cỏc nối trờn hợp và việc ỏp dụng qui tắc 2: pEMPH1pASGH1 = (ENO  “E3”)  (ENO  “E3”) = True

pEMPH1pASGH2 = (“E3”  ENO)  (“E3” > ENO) = False  quan hệ rỗng pEMPH2pASGH1 =(“E3”< ENO  “E6”)(ENO“E3”) = False  quan hệ rỗng pEMPH2pASGH2 = (“E3” < ENO  “E6”)  (ENO  “E3”) = True

pEMPH3pASGH1 = (“E6” < ENO)  (ENO  “E3”) = False  quan hệ rỗng pEMPH3pASGH2 = (“E6” < ENO)  (ENO  “E3”) = True

Kết quả rỳt gọn ở hỡnh 2.2-5.

EMPH1 ASGH1 EMPH2 ASGH2 EMPH3 ASGH2

ENO

ENO ENO

EMPH1 EMPH2 EMPH3 ASGH1 ASGH2

Hỡnh 2.2-5a. Vấn tin gốc

 

ENO

Một phần của tài liệu Thực hiện song song các câu vắn tin trong CSDL phân tán bằng cách sử dụng luồng (Trang 51 - 55)

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

(100 trang)