chuong 4 xu ly truy van phan tan 4097
DESCRIPTION
Xử lý truy vấnTRANSCRIPT
NGUYỄN MẬU HÂN, PhD. NGUYỄN MẬU HÂN, PhD. HUE COLLEGE OF SCIENCESHUE COLLEGE OF SCIENCES
CH NG 4:ƯƠCH NG 4:ƯƠ
X LÝ TRUY V N Ử ẤX LÝ TRUY V N Ử ẤTRONG CSDL PHÂN TÁNTRONG CSDL PHÂN TÁN
2
CH NG 4: X LÝ TRUY V N TRONG CSDL PHÂN TÁNƯƠ Ử Ấ
NỘI DUNG4.1 Gi i thi u v x lý truy v nớ ệ ề ử ấ
4.2 X lý truy v n trong môi tr ng t p trungử ấ ườ ậ
4.3 X lý truy v n trong môi tr ng phân tán ử ấ ườ
4.4 T i u hoá truy v n trong CSDL phân tánố ư ấ
MỤC ĐÍCH•Gi i thi u m t b c tranh t ng quát c a b t i u ớ ệ ộ ứ ổ ủ ộ ố ưhóa truy v n trong môi tr ng t p trung và phân tán ấ ườ ậ•Trình bày các quy trình x lý truy v n trong h th ng ử ấ ệ ố phân tán
3
M c đích c a x lý truy v nụ ủ ử ấ :• Gi m thi u th i gian x lýả ể ờ ử• Gi m vùng nh trung gian ả ớ• Gi m chi phí truy n thông gi a các tr m. ả ề ữ ạ• S d ng ít tài nguyênử ụCh c năng c a x lý truy v nứ ủ ử ấ :• Bi n đ i m t truy v n ph c t p thành m t truy v n t ng ế ổ ộ ấ ứ ạ ộ ấ ươ
đ ng đ n gi n h n. ươ ơ ả ơ• Phép bi n đ i này ph i đ t đ c c v tính ế ổ ả ạ ượ ả ề đúng đ nắ và
hi u quệ ả • M i cách bi n đ i d n đ n vi c s d ng tài nguyên máy ỗ ế ổ ẫ ế ệ ử ụ
tính khác nhau, nên v n đ đ t ra là l a ch n ph ng án ấ ề ặ ự ọ ươnào dùng tài nguyên ít nh tấ .
4.1 GI I THI U V X LÝ TRUY V N Ớ Ệ Ề Ử Ấ
4
Các ph ng pháp x lý truy v n c b nươ ử ấ ơ ảCác ph ng pháp x lý truy v n c b nươ ử ấ ơ ả• Ph ng pháp bi n đ i đ i sươ ế ổ ạ ố::
Đ n gi n hóa câu truy v n nh các phép bi n đ i đ i s ơ ả ấ ờ ế ổ ạ ốt ng đ ng nh m gi m thi u th i gian th c hi n các ươ ươ ằ ả ể ờ ự ệphép toán.
Ph ng pháp này không quan tâm đ n kích th c và c u ươ ế ướ ấtrúc d li u. ữ ệ
• Ph ng pháp c l ng chi phí:ươ ướ ượXác đ nh kích th c d li u, th i gian th c hi n m i phép ị ướ ữ ệ ờ ự ệ ỗtoán trong câu truy v n. ấPh ng pháp này quan tâm đ n kích th c d li u và ph i ươ ế ướ ữ ệ ảtính toán chi phí th i gian th c hi n m i phép toán.ờ ự ệ ỗ
4.1 GI I THI U V X LÝ TRUY V N Ớ Ệ Ề Ử Ấ
5
4.2.1 So sánh x lý truy v n t p trung và phân tánử ấ ậ4.2.1 So sánh x lý truy v n t p trung và phân tánử ấ ậ • T p trungậ :
Ch n m t truy v n đ i s quan h t t nh t trong s t t ọ ộ ấ ạ ố ệ ố ấ ố ấc các truy v n đ i s t ng đ ng. ả ấ ạ ố ươ ươ
Các chi n l c x lý truy v n có th bi u di n trong s ế ượ ử ấ ể ể ễ ựm r ng c a đ i s quan h . ở ộ ủ ạ ố ệ
• Phân tán K th a chi n l c x lý truy v n nh môi tr ng t p ế ừ ế ượ ử ấ ư ườ ậ
trung Còn ph i quan tâm thêmả
Các phép toán truy n d li u gi a các tr m ề ữ ệ ữ ạ Ch n các tr m t t nh t đ x lý d li uọ ạ ố ấ ể ử ữ ệ Cách truy n d li u ề ữ ệ
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
6
T I Ố ƯU HOÁ TRUY V NẤ
TRONG MÔI TRƯ NG T P TRUNGỜ Ậ
Câu truy v n ấSQL
Ki m tra ng phápể ữ
Ki m tra s h p lể ự ợ ệ
D ch truy v nị ấ
Truy v n ấ đúng ng phápữ
Truy v n SQL h p lấ ợ ệ
Truy v n ấ đ i s quan hạ ố ệ
T i ố ưu hoá đ i s quan hạ ố ệ
Truy v n ấ đ i s quan h ạ ố ệ đã t i ố ưu
Ch n chi n lọ ế ư c t i ợ ố ưu
T o sinh mãạ
K ho ch th c hi nế ạ ự ệ
Mã c a truy v nủ ấ
S đ chungơ ồ
7
L c đ t ng ượ ồ ổthể
Truy v n m nh đ c t i u v i các phép toán truy n thôngấ ả ượ ố ư ớ ề
T i u hoá c c bố ư ụ ộ
Các truy v n c c b đã t i uấ ụ ộ ố ư
S đ phân l p chung cho x lý truy v n phân tánơ ồ ớ ử ấS đ phân l p chung cho x lý truy v n phân tánơ ồ ớ ử ấ
Các tr m ạđ a ph ngị ươ
Câu truy v n phân tánấ
Phân rã truy v nấ
Truy v n đ i s trên các quan h phân tánấ ạ ố ệ
Đ nh v d li uị ị ữ ệ
Truy v n m nhấ ả
T i u hoá toàn c cố ư ụ
Tr m ạđi u ềkhi nể
L c đ ượ ồphân m nhả
Các th ng kê ốtrên các m nhả
L c đ đ a ượ ồ ịph ngươ
T i u hoá truy v nố ư ấ Trong môi trư ng phõn t n ờ ỏ
8
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
4.4.2 Chi n l c t i u trong CSDL t p trungế ượ ố ư ậ4.4.2 Chi n l c t i u trong CSDL t p trungế ượ ố ư ậ
T i sao ph i nghiên c u x lý truy v n t p trung?ạ ả ứ ử ấ ậ
Đ hi u đ c các k thu t t i u phân tán vì ba lí do:ể ể ượ ỹ ậ ố ư
• Th nh tứ ấ , câu truy v n phân tán ph i đ c d ch thành các ấ ả ượ ị
câu truy v n c c b , và đ c x lí theo ph ng pháp t p ấ ụ ộ ượ ử ươ ậ
trung.
• Th haiứ , các k thu t t i u hoá phân tán th ng là các ỹ ậ ố ư ườ
m r ng c a k thu t t p trung.ở ộ ủ ỹ ậ ậ
• Th baứ , t i u hoá t p trung th ng đ n gi n. ố ư ậ ườ ơ ả
9
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
Thu t toán INGRESậThu t toán INGRESậ
Ý t ng thu t toánưở ậ : Thu t toán t h p hai giai đo n ậ ổ ợ ạ phân rã
và t i u hoáố ư .
• Đ u tiên phân rã câu truy v n d ng phép toán quan h thành ầ ấ ạ ệ
các ph n nh h n. ầ ỏ ơ
• Câu truy v n đ c phân rã thành m t chu i các truy v n có ấ ượ ộ ỗ ấ
m t quan h chung duy nh t. ộ ệ ấ
• Sau đó m i câu truy v n đ n quan h đ c x lí b i m t “ỗ ấ ơ ệ ượ ử ở ộ th ểth ể
x lý truy v n m t bi nử ấ ộ ếx lý truy v n m t bi nử ấ ộ ế ” (one variable query processor-OVQP)
10
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
Thu t toán INGRESậThu t toán INGRESậ (cont.)
•Tr c tiên OVQP s th c hi n các phép toán đ n ngôi và c ướ ẽ ự ệ ơ ố
g ng gi m thi u kích th c c a các k t qu trung gian b ng ắ ả ể ướ ủ ế ả ằ
các phép tách (detachment) và Phép th ế (substitution)
•Kí hi u ệ qi-1→qi đ ch câu truy v n ể ỉ ấ q đ c phân rã thành hai ượ
câu truy v n con ấ qi-1và qi, trong đó qi-1 đ c th c hi n tr c và ượ ự ệ ướ
k t qu s đ c ế ả ẽ ượ qi s d ng.ử ụ
•Phép tách: OVQP s d ng đ tách câu truy v n q thành các ử ụ ể ấ
truy v n ấ q’→q” d a trên m t quan h chung là k t qu c a ự ộ ệ ế ả ủ q’.
11
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ ẬN u câu truy v n q đ c bi u di n b ng SQL có d ng:ế ấ ượ ể ễ ằ ạq: SELECT R2.A2, R3.A3,. . ., Rn.An
FROM R1, R2,. . . , Rn
WHERE P1(R1.A’1) AND P2(R1.A1, R2.A2, . . . , Rn.An)Trong đó: A1 và A’1 là các thu c tính c a quan h Rộ ủ ệ 1, P1 là v t có ch a các thu c tính c a các quan h Rị ừ ứ ộ ủ ệ 1, R2, . . ., Rn. Câu truy v n trên có th phân rã thành hai câu truy v n con, q’ theo ấ ể ấsau là q” qua phép tách d a trên quan h chung Rự ệ 1 nh sau:ưq’: SELECT R1A1 INTO R’1
FROM R1
WHERE P1(R1.A1)Trong đó R’1 là m t quan h t m th iộ ệ ạ ờ ch a các thông tin c n thi t đ ứ ầ ế ểth c hi n ti p t c câu truy v n: ự ệ ế ụ ấ q”:SELECT R2A2,. . ., RnAn
FROM R’1, R2,. . . , Rn
WHERE P2(R1.A1, R2.A2,. . ., Rn.An)
12
NHANVIEN (E) HOSO (G)
Ví d minh h a: xét CSDL c a m t công ty ph n m mụ ọ ủ ộ ầ ề
MANV TENNV CHUCVU
A1A2A3A4A5A6A7A8
NamTrungĐôngB cắTâyHùngDũngChi nế
Phân tích HTL p trình ậviênPhân tích HTPhân tích HTL p trình ậviênK s đi nỹ ư ệPhân tích HTThi t k DLế ế
MANV MADA NHIEMVU THOIGIAN
A1A2A2A3A3A4A5A6A7A8
D1D1D2D3D4D2D2D4D3D3
Qu n lý ảPhân tích Phân tích K thu t ỹ ậL p trình ậQu n lý ảQu n lý ảK thu t ỹ ậQu n lý ảL p trình ậ
123461210620364815
MADA TENDA NGANSACH
D1D2D3D4
CSDLCÀI Đ TẶB O TRÌẢPHÁT TRI NỂ
20000120002800025000
CHUCVU LUONG
K s đi nỹ ư ệPhân tích HTL p trình viênậThi t k DLế ế
1000250030004000
DUAN (J) TLUONG (S)
13
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ ẬXét câu truy v nấ q1=“Cho bi t tên c a các nhân viên đang làm ế ủvi c trong d án có tên CSDLệ ự ” Di n t qễ ả 1 b ng SQL:ằq1: SELECT E.TENNV FROM E, G, J
WHERE E.MANV = G.MANVAND G.MADA = J.MADAAND TENDA = “CSDL”
q1 đ c tách thành qượ 11→q’, trong đó TGIAN1 là quan h trung gian.ệ
q11: SELECT J.MADA INTO TGIAN1
FROM J WHERE TENDA = “CSDL”
q’: SELECT E.TENNV FROM E, G, TGIAN1 WHERE E.MANV = G.MANV
AND G.MADA =TGIAN1.MADA
14
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
Các b c tách ti p theo cho q’ có th t o ra:ướ ế ể ạ
q12: SELECT G.MANV INTO TGIAN2
FROM G, TGIAN1
WHERE G.MADA =TGIAN1.MADA
q13: SELECT E.TENNV
FROM E, TGIAN2
WHERE E.MANV = TGIAN2.MANV
Truy v n ấ q1 đã đ c rút g n thành chu i truy v n ượ ọ ỗ ấ q11→q12→q13. Truy
v n ấ q11 là lo i đ n quan h và có th cho th c hi n b i OVQP. Tuy ạ ơ ệ ể ự ệ ở
nhiên các truy v n ấ q12 và q13 không ph i lo i đ n quan h và cũng ả ạ ơ ệ
không th rút g n h n n a b ng phép tách.ể ọ ơ ữ ằCác câu truy v n đa quan h không th tách ti p đ c n a (ch ng h n ấ ệ ể ế ượ ữ ẳ ạ
q12 và q13) đ c g i là ượ ọ b t kh gi nấ ả ả (irreducible).
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
Các truy v n b t kh gi n đ c bi n đ i thành câu truy v n ấ ấ ả ả ượ ế ổ ấđ n quan h nh ơ ệ ờ phép th bế ộ (tuple substitution). Phép th b :ế ộ Cho câu truy v n n-quan h q, các b c a m t ấ ệ ộ ủ ộbi n đ c thay b ng các giá tr c a chúng, t o ra đ c m t t p ế ượ ằ ị ủ ạ ượ ộ ậcác truy v n (n-1) bi n. ấ ếPhép th b đ c th c hi n nh sau:ế ộ ượ ự ệ ư Ch n m t quan h trong truy v n q đ thay th , g i Rọ ộ ệ ấ ể ế ọ 1 là quan h đó. ệ V i m i b tớ ỗ ộ 1i trong R1, các thu c tính đ c tham chi u trong q ộ ượ ếđ c thay b ng các giá tr th t s trong tượ ằ ị ậ ự 1i, t o ra m t câu truy ạ ộv n q’ có (n-1) quan h . Nh v y s câu truy v n q’ đ c sinh ấ ệ ư ậ ố ấ ượra b i phép th b là card(Rở ế ộ 1). T ng quát, phép th b có th mô t nh sau:ổ ế ộ ể ả ưq(R1, R2, . . . , Rn) đ c thay b i {q’(tượ ở 1i, R2, R3, . . . , Rn), t1i∈ R1}Vì th đ i v i m i b thu đ c, câu truy v n con đ c x lý đ ế ố ớ ỗ ộ ượ ấ ượ ử ệquy b ng phép th n u nó ch a b t kh gi n.ằ ế ế ư ấ ả ả
16
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
Ví d minh h a:ụ ọXét ti p câu truy v n qế ấ 13
q13: SELECT E.TENNV FROM E, TGIAN2 WHERE E.MANV = TGIAN2.MANV
Quan h đ c đ nh nghĩa b i bi n TGIAN2 ch y trên thu c tính duy ệ ượ ị ở ế ạ ộnh t MANV. Gi s r ng nó ch ch a hai b : <E1> và <E2>. Phép th ấ ả ử ằ ỉ ứ ộ ếcho TGIAN2 t o ra hai câu truy v n con đ n quan h :ạ ấ ơ ệq131: SELECT E.TENNV
FROM EWHERE E.MANV = “E1”
q132: SELECT E.TENNV FROM E WHERE E.MANV = “E2”
Sau đó chúng có th đ c OVQP qu n lý và s d ng.ể ượ ả ử ụ
17
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
Nh n xétậ :
•Thu t toán t i u hoá INGRES (đ c g i là INGRES - QOA) s x lý ậ ố ư ượ ọ ẽ ử
đ qui cho đ n khi không còn câu truy v n đa quan h nào n a. ệ ế ấ ệ ữ
•Thu t toán có th đ c áp d ng cho các phép ch n và các phép ậ ể ượ ụ ọ
chi u ngay khi có th s d ng k thu t tách. ế ể ử ụ ỹ ậ
•K t qu c a câu truy v n đ n quan h đ c l u trong nh ng c u trúc ế ả ủ ấ ơ ệ ượ ư ữ ấ
d li u có kh năng t i u hoá nh ng câu truy v n sau đó (nh các ữ ệ ả ố ư ữ ấ ư
n i) và s đ c OVQP s d ng. ố ẽ ượ ử ụ
•Các câu truy v n b t kh gi n còn l i sau phép tách s đ c s lý ấ ấ ả ả ạ ẽ ượ ử
b ng phép th b . ằ ế ộ
•Câu truy v n b t kh gi n, đ c kí hi u là MRQ’. Quan h nh nh t ấ ấ ả ả ượ ệ ệ ỏ ấ
v i l c l ng c a nó đã đ c bi t t k t qu c a câu truy v n tr c ớ ự ượ ủ ượ ế ừ ế ả ủ ấ ướ
đó s đ c ch n đ thay th . ẽ ượ ọ ể ế
18
4.2 X LÝ TRUY V N TRONG MÔI TR NG T P TRUNGỬ Ấ ƯỜ Ậ
Thu t toán INGRES- QOAậInput: MRQ: câu truy v n đa quan h (có n quan h )ấ ệ ệOutput: Câu truy v n t i uấ ố ưBegin Output ←φ If n=1 then Output ← run(MRQ) {th c hi n câu truy v n m t quan h }ự ệ ấ ộ ệ Else {Tách MRQ thành m tr.v n m t quan h và m t tr.v n đa quan h }ấ ộ ệ ộ ấ ệ ORQ1, ..., ORQm, MRQ’← MRQ For i←1 to m
Output’ ← run(ORQi) {th c hi n ORQự ệ i } Output ← output ∪ output’ {tr n t t c các k t qu l i}ộ ấ ả ế ả ạ Endfor R ← CHOOSE_ VARIABLE(MRQ’) {R đ c ch n cho phép th b } ượ ọ ế ộ
For m i b t ỗ ộ ∈ R MRQ” ← thay giá tr cho t trong MRQ’ị Output’ ← INGRES-QOA(MRQ”) {g i đ qui}ọ ệ Output ← output ∪ output’ {tr n t t c các k t qu l i}ộ ấ ả ế ả ạ Endfor EndifEnd. {INGRES-----QOA}
19
L c đ t ng ượ ồ ổthể
Truy v n m nh đ c t i u v i các phép toán truy n thôngấ ả ượ ố ư ớ ề
T i u hoá c c bố ư ụ ộ
Các truy v n c c b đã t i uấ ụ ộ ố ư
S đ phân l p chung cho x lý truy v n phân tánơ ồ ớ ử ấ
Các tr m ạđ a ph ngị ươ
Câu truy v n phân tánấ
Phân rã truy v nấ
Truy v n đ i s trên các quan h phân tánấ ạ ố ệ
Đ nh v d li uị ị ữ ệ
Truy v n m nhấ ả
T i u hoá toàn c cố ư ụ
Tr m ạđi u ềkhi nể
L c đ phân ượ ồm nhả
Các th ng kê ốtrên các m nhả
L c đ đ a ượ ồ ịph ngươ
4.3 X lý truy v n trong môi tr ng phân tán ử ấ ườ
20
4.3 X lý truy v n trong môi tr ng phân tánử ấ ườ
4.3.1 Phân rã truy v n ấGiai đo n này chia làm b n b c: ạ ố ướ chu n hoáẩ , phân tích, lo i ạ
b d th aỏ ư ừ và vi t l iế ạ .4.3.1.1 Chu n hoáẩM c đích:ụ chuy n đ i truy v n thành m t d ng chu n đ ể ổ ấ ộ ạ ẩ ể
thu n l i cho các x lý ti p theo. ậ ợ ử ếV i SQL, có hai d ng chu n cho các v t trong m nh đ ớ ạ ẩ ị ừ ệ ề
WHERE là:D ng chu n h iạ ẩ ộ là h i (ộ ∧) c a nh ng phép toán tuy n (ủ ữ ể ∨):
(p11∨ p12∨ ... ∨ p1n) ∧ ... ∧ (pm1∨ pm2∨ ... ∨ pmn)
D ng chu n tuy nạ ẩ ể là tuy n (ể ∨) c a nh ng phép toán h i (ủ ữ ộ ∧): (p11 ∧ p12 ∧ ... ∧ p1n) ∨ ... ∨ (pm1 ∧ pm2 ∧ ... ∧pmn), trong đó pij là các
bi u th c nguyên t .ể ứ ố