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).
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
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
∪
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.
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
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.