Rỳt gn cho phõn m nh ngang nguyờn thu

Một phần của tài liệu Bài giảng cơ sở dữ liệu phân tán học viện bưu chính viễn thông (Trang 103)

Phõn m nh ngang phõn tỏn m t quan h d a trờn cỏc v t ch n (Select Predicate). Vớ d

quan h EMP(ENO, ENAME, TITLE) cú th đ c phõn m nh ngang thành:

EMP1 = ENO≤ “E3” (EMP) EMP2 = “E3” < ENO < “E6” (EMP) EMP3 = ENO>”E6” (EMP).

Khi đú ch ng trỡnh c c b hoỏ cho quan h phõn m nh ngang là h p cỏc m nh:

EMP = EMP1∪ EMP2 ∪ EMP3

Vỡ v y d ng truy v n g c đ c xỏc đnh trờn EMP s thu đ c b ng cỏch thay EMP b i

(EMP1 ∪ EMP2 ∪ EMP3). Nh v y, đ gi m cỏc thao tỏc truy v n trờn quan h đó đ c phõn m nh theo chi u 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 hoỏ cỏc phộp ch n và phộp k t n ị

ạ Rỳt g n phộp ch n: Phộp ch n th c hi n trờn cỏc m nh cú l ng t hoỏ mõu thu n v i l ng t hoỏ c a quy t c phõn m nh sinh ra cỏc quan h r 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 đ c bi u di n m t cỏch hỡnh th c nh sau:

Quy t c 1: σpi (Rj) = ∅ n u ∀x ∈R: ơ (pi(x) ∧ pj(x)),

trong đú pi , pj là cỏc v t ch n, x là m t b .

Vớ d v t ENO = “E1” mõu thu n v i cỏc v t c a m nh EMP2 và EMP3, ngh a là khụng cú b nào tho v t ENO = “E1”.

Vớ d 3.9: Xột cõu truy v n sau:

SELECT *

FROM EMP

WHERE ENO = :E5”

Áp d ng cỏch ti p c n thụ s đ c c b hoỏ EMP t EMP1, EMP2 và EMP3, cho cõu truy v n g c hỡnh 3.10ê 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 EMP1 và EMP3. Cõu truy v n đó rỳt g n ch ng d ng cú m t m nh EMP2 , nh trong hỡnh 3.10b.

102

σENO = :E5” ( EMP1∪ EMP2 ∪ EMP3)

= σENO = :E5” ( EMP1) ∪σENO = :E5” ( EMP2) ∪σENO = :E5” ( EMP3) = σENO = :E5” ( EMP2)

b. Rỳt g n v i phộp k t n i: Phộp k t n i th c hi n trờn cỏc phõn m nh ngang cú th đ n gi n khi k t n i d a theo cỏc thu c tớnh k t n ị, b ng cỏch phõn ph i k t n i trờn cỏc h p và sau đú lo i b cỏc k t n i khụng tỏc d ng. Vi c phõn ph i cỏc k t n i trờn phộp h p đ c phỏt bi u nh sau:

(R1 ∪ R2 ) S = (R1 S) ∪ (R2 S)

Trong đú, Ri là cỏc m nh c a R và S là m t quan h .

B ng phộp bi n đ i này, cỏc phộp h p cú th đ c di chuy n xu ng d i trong cõy đ i s quan h , nờn t t c cỏc phộp k t n i cú th c a cỏc m nh đ u đ c l rạ Cỏc phộp k t n i vụ d ng đ c xỏc đnh khi l ng t hoỏ cỏc m nh cú mõu thu n. Gi s cỏc m nh Ri và Rjđ c xỏc đnh theo cỏc v t ch n pi và pj trờn cựng m t quan h , quy t c đ n gi n hoỏ cú th đ c phỏt bi u nh sau

Quy t c 2: Ri Rj = ∅ n u ∀x ∈Ri , ∀y ∈Rj : ơ (pi(x) ∧ pj(y))

Vi c xỏc đnh cỏc k t 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 quy t c này cho phộp k t n i hai quan h đ c cài đ t nh cỏc n i t ng ph n song song cỏc m nh. Cõu truy v n rỳt g n ch a ch c đó đ n gi n h n cõu truy v n g c, n u nh trong cõu truy v n g c cú r t nhi u n i t ng ph n, vif r t ớt cỏc v t phõn m nh mõu thu n. Nh v y cõu truy v n rỳt g n s t t h n khi cú ớt cỏc n i t ng ph n. Tr ng h p x u nh t x y ra khi m i m nh c a quan h này đ c k t n i v i m i m nh khỏc c a quan h khỏc, ngh a là th c hi n phộp tớch Cỏc hai quan h . u đi m c a truy v n rỳt g n theo phộp k t n i là cỏc n i t ng ph n cú th đ c th c hi n song song và vỡ v y nú s làm gi m th i gian đỏp ng.

Vớ d 3.10: Gi s quan h EMP(ENO, ENAME, TITLE) đ c phõn m nh ngang thành EMP1, EMP2 và EMP3.

EMP1 = σENO≤ “E3” (EMP) EMP2 = σ “E3” < ENO < “E6” (EMP)

EMP1 ∪ σENO=”E5” Hỡnh 3.10: Rỳt g n phõn m nh ngang v i phộp ch n EMP2 EMP3 σENO=”E5” EMP2

103 EMP3 = σ ENO>”E6” (EMP). (adsbygoogle = window.adsbygoogle || []).push({});

Quan h ASG(ENO, PNO, RESP, DUR) đ c phõn m nh nh sau:

ASG1 = σENO≤ “E3” (ASG) ASG2 = σENO > “E3” (ASG)

EMP1 và ASG1 cựng đnh ngh a b i v t ENO≤ “E3” . V t đnh ngh a trong ASG2 là h p c a cỏc v t đ c đnh ngh a trong EMP2 và EMP3:

ENO > “E3” = (“E3” < ENO < “E6” ) ∪ ( ENO>”E6” ). Xột cõu truy v n sau:

SELECT *

FROM EMP, ASG

WHERE EMP.ENO = ASG.ENO

Cõu truy v n đ c rỳt g n b ng cỏch phõn ph i cỏc n i trờn cỏc h p và ỏp d ng quy t c 2 cú th cài đ t nh h p c a ba n i t ng ph n đ c th c hi n song song.

3.6.2 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 ụ 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 3.11: Gi s quan h EMP(ENO, ENAME, TITLE) đ c phõn m nh nh sau: Phõn m nh ngang phõn tỏn m t quan h d a trờn cỏc v t ch n (Select Predicate). Vớ d

quan h EMP(ENO, ENAME, TITLE) cú th đ c phõn m nh ngang thành:

EMP1

Hỡnh 3.11a Cõy đ i s quan h truy v n g c

EMP2 EMP3 ASG3

∪ ASG1 ENO Hỡnh 3.11b Rỳt g n phõn m nh ngang v i phộp k t n i EMP1 ∪

ASG1 EMP2 ASG2 EMP3 ASG2

104

EMP1 = ENO, ENAME (EMP) EMP2 = πENO, TITLE (EMP)

Khi đú ch ng trỡnh c c b hoỏ cho quan h phõn m nh d clà:

EMP = EMP1 ENO EMP2

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’ ⊆ Ạ 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 3.12: Gi s

EMP1 = ENO, ENAME (EMP) EMP2 = πENO, TITLE (EMP) Xột cõu truy v n SQL nh sau (adsbygoogle = window.adsbygoogle || []).push({});

SELECT ENAME

FROM EMP

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 ENO và ENAME , khi đú cú th nh n th y r ng phộp chi u trờn thu c tớnh

ENAME trờn quan h EMP2 là vụ d ng, vỡ ENAME khụng ph i là thu c tớnh c a EMP2. Vỡ v y phộp chi u ch c n th c hi n trờn EMP1.

3.6.3 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ớ caọ 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 ị

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 ị 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. EMP1 ENO πENAME Hỡnh 3.12: Rỳt g n phõn m nh d c EMP2 πENAME EMP1

105 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 3.13: Cho m i quan h m t - nhi u EMP → ASG. Gi s ASG đ c phõn m nh giỏn ti p theo cỏc quy t c sau:

ASG1 = ASG ≺ENO EMP1

ASG2 = ASG ≺ENO EMP2

Trong đú EMP1 = σTITLE = “Programmer” (EMP) EMP2 = σTITLE ≠ “Programmer” (EMP)

Ch ng trỡnh c c b hoỏ cho quan h phõn m nh ngang là

ASG = ASG1 ∪ ASG2

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 ASG1 và EMP2 cú mõu thu n, vỡ v y ASG1 EMP2 = ∅

Xột cõu truy v n sau

SELECT *

FROM EMP, ASG

WHERE EMP.ENO = ASG.ENO

AND TITLE = “Mech, Eng”

Cõu truy v n gục đ c thao tỏc trờn cỏc m nh EMP1, EMP2, ASG1 và ASG2. (hỡnh 3.13a). Th c hi n phộp ch n trờn cỏc m nh EMP1, EMP2 , vỡ v t ch n mõu thu n trờn m nh EMP1, nờn k t qu cõu truy v n rỳt g n thu đ c nh trong hỡnh 3.13b. 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 3.13c. Cõy con

bờn trỏi n i hai m nh ASG1 và EMP2 v i cỏc l ng t hoỏ mõu thu n b i cỏc v t ch n

TITLE = “Programmer: trong ASG1 và TITLE ≠ “Programmer” trong EMP2 . 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 3.13d. 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

EMP1 (adsbygoogle = window.adsbygoogle || []).push({});

ASG1 EMPASG2 2

ENO

106 3.6.4 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 ị 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 3.14: Phõn m nh h n h p c a quan h EMP nh sau: EMP1 = σENO≤ “E4” (πENO,ENAME(EMP))

EMP2 = σENO> “E4” (πENO,ENAME(EMP))

EMP3 = πENO,TITLE(EMP)

(c) Truy v n sau khi đ y cỏc phộp h p xu ng

ASG1 EMP2

σTITLE = “Mech, Eng”

ENO ENO

ASG2 EMP2

σTITLE = “Mech, Eng”

(d) Cõu truy v n đó rỳt g n sau khi lo i cõy con bờn trỏi

ENO

ASG2 EMP2

σTITLE = “Mech, Eng”

Hỡnh 3.13 Rỳt g n cho phõn m nh giỏn ti p

(b ) Cõu truy v n sau khi đ y phộp ch n xu ng

ASG1 EMPASG2 2

ENO

107

Ch ng trỡnh c c b hoỏ nh sau:

EMP = (EMP1 ∪ EMP2) ENO EMP3. (adsbygoogle = window.adsbygoogle || []).push({});

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.

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 3.15: Xột cõu truy v n sau

SELECT ENAME

FROM EMP

WHERE ENO = “E5”

CÂU H I VÀ BÀI T P

1. X lý truy v n trong cỏc h c s d li u quan h phõn tỏn. là:

Ạ Cung c p cỏc ph ng ti n xõy d ng cỏc cõu truy v n và th c hi n t i u hoỏ

truy v n .

B. Cung c p cỏc ph ng ti n th c hi n t i u hoỏ truy v n . C. Cung c p cỏc cõu truy v n và th c hi n t i u hoỏ truy v n . 2. Cõu truy v n phõn tỏn là:

Ạ M t chu i cỏc thao tỏc đ i s quan h trờn CSDL c c b .

B. M t chu i cỏc thao tỏc đ i s quan h trờn CSDL c c b t i u hoỏ cỏc ngu n tài nguyờn. và trao đ i truy n thụng.

C. M t chu i cỏc thao tỏc đ i s quan h trờn cỏc m nh d li u đ c phõn ró, đ c m r ng v i cỏc thao tỏc truy n thụng và t i u cỏc ngu n tài nguyờn. 3. Cỏc ph ng phỏp t i u c b n:

Ạ Bi n đ i cõu truy v n t ng đ ng và cú chi phớ th p.

EMP1 ∪ ENO Hỡnh 3.14: Rỳt g n phõn m nh h n h p EMP2 EMP3 σENO=”E5” πNAME ENO EMP2 σENO=”E5” πNAME

108

B. Ch n m t bi u th c cú chi phớ th i gian và s d ng tài nguyờn là ớt nh t. C. Bi n đ i cõu truy v n t ng đ ng

4. M c đớch c a vi c x lý truy v n trong mụi tr ng phõn tỏn là: Ạ Th c hi n t i u hoỏ truy v n.

B. Bi n đ i thành cõu truy v n t ng đ ng. C. T i u chi phớ s d ng tài nguyờn c a m ng. 5. Cỏc ki u t i u hoỏ Ạ L a ch n trong cỏc gi i phỏp cú chi phớ là nh nh t. B. Ph ng phỏp tỡm ki m vột c n, gi i phỏp ng u nhiờn. C. Gi i phỏp thay th phộp k t n i b ng cỏc t h p cỏc n i n a 6. Th i đi m t i u hoỏ Ạ Ki u t nh

B. T i cỏc th i đi m khỏc nhau ph thu c th i gian th c hi n truy v n. C. Ki u đ ng

7. u đi m t i u hoỏ truy v n theo ki u t nh (Statically):

Ạ Th c hi n khi biờn d ch, chi phớ gi m d n qua nhi u l n th c hi n. Kớch th c c a cỏc quan h trung gian khụng bi t tr c

B. Th c hi n khi biờn d ch, chi phớ gi m d n qua nhi u l n th c hi n.

C. Th c hi n khi b t đ u truy v n, chi phớ gi m d n qua nhi u l n th c hi n. Kớch th c c a cỏc quan h trung gian khụng bi t tr c.

8. u đi m t i u hoỏ truy v n theo ki u đ ng

Ạ Th c hi n khi biờn d ch, chi phớ gi m d n qua nhi u l n th c hi n. Kớch th c c a cỏc quan h trung gian khụng bi t tr c (adsbygoogle = window.adsbygoogle || []).push({});

B. c th c hi n khi truy v n. Thao tỏc ti p theo t i u d a trờn k t qu c a cỏc thao tỏc tr c đú.

C. ỏnh giỏ kớch th c c a cỏc quan h trung gian khụng c n thi t. 9. Nh c đi m c a ph ng phỏp đ ng là:

Ạ Cỏc thao tỏc t i u hoỏ cú chi phớ caọ L p l i nhi u l n cho m i thao tỏc.

Một phần của tài liệu Bài giảng cơ sở dữ liệu phân tán học viện bưu chính viễn thông (Trang 103)