Xử lý truy vấn • Thành công của hệ quản trị csdl quan hệ là – Các phat biểu trong ngôn ngữ truy vấn cho phép thực hiện dễ dàng các truy vấn phức tạp không cần biết đến chi tiết của tổ c
Trang 1CHƯƠNG III: XỬ LÝ TRUY VẤN VÀ ĐỊNH VỊ DỮ LIỆU
Giảng viên: Hồ Sĩ Bàng
Trang 2CHƯƠNG III: XỬ LÝ VÀ ĐỊNH
VỊ TRUY VẤN
3.1 Những vấn đề về xử lý truy vấn
3.2 Phân rã truy vấn và định vị dữ liệu
3.3 Tối ưu hóa các truy vấn phân tán
Trang 33.1 Những vấn đề về xử lý truy vấn
3.1.1 Tổng quan
3.1.2 Tối ưu hóa Truy vấn
3.1.3 Các bước xử lý truy vấn phân tán
Trang 4Tổng quan
Xử lý truy vấn: quá trình 3 bước chuyển từ truy vấn bậc
cao(tính toán quan hệ/SQL) sang truy vấn bậc thấp tương đương và hiệu quả hơn (đại số quan hệ)
1 Phân tích và dịch
– Kiểm tra cú pháp và quan hệ.
– Dich truy vấn thành biểu thức
đại số quan hệ tương đương
2 Tối ưu hóa
– Phát sinh một kế hoạch đánh
giá tối ưu (với giá tối thiểu) cho
kế hoạch truy vấn.
3 Đánh giá
– Mô tơ vận hành truy vấn lấy kế
hoạch truy vấn (tối ưu), thực hiện
và trả lời truy vấn.
Trang 5Xử lý truy vấn
• Thành công của hệ quản trị csdl quan hệ là
– Các phat biểu trong ngôn ngữ truy vấn cho phép thực hiện dễ dàng các truy vấn phức tạp không cần biết đến chi tiết của tổ chức vật lý dữ liệu – công nghệ xử lý truy vấn tiên tiến chuyển các truy vấn ứng dụng/ người dùng thành chiến lược vận hành truy vấn bậc thấp một cách hiệu quả
• Chuyển đổi truy vấn cần đúng đắn và hiệu quả: Hiệu quả là khó khăn
chủ yếu và cũng là 1 trong những nhiệm vụ quan trọng nhất của hệ quản trị csdl
• Xử lý truy vấn phân tán: chuyển đổi để thực hiện trên các phân mảnh
• Xử lý truy vấn phân tán phức tạp hơn khi:
– Phân mảnh/Nhân bản các quan hệ
– tính đến các giá truyền thông
– Vận hành song song
Trang 6Ví dụ xử lý truy vấn
• Chuyển đổi một truy vấn SQL thanh một truy vấn đại số quan hệ.
Quan hệ: EMP(ENO, ENAME, TITLE),
WHERE EMP.ENO = ASG.ENO AND DUR > 37
– Hai chuyển đổi khả dĩ của truy vấn:
Biểu thức 1: Π ENAME (σDUR>37∧EMP.ENO=ASG.ENO (EMP × ASG))
Biểu thức 2: Π ENAME (EMP IXI ENO (σ DUR>37 (ASG)))
– Biểu thức 2 tránh được tích Đề cac và vì vậy tốt hơn.
Trang 7Ví dụ xử lý truy vấn
• Giả thiết cho các phân mảnh :
– Dữ liệu được phân mảnh ngang:
Site1: ASG1 = σENO≤”E3”(ASG)
Site2: ASG2 = σ ENO>”E3”(ASG)
Site3: EMP1 = σ ENO≤”E3”(EMP)
Site4: EMP2 = σ ENO>”E3”(EMP)
Trang 8Ví dụ xử lý truy vấn
• Xem xét biểu thức : Π ENAME (EMP IXI ENO (σ DUR>37 (ASG)))
• Ngầm định phép chiếu cuối cùng
• Chiến lược 1(vận hành song song từng phần)
- Tạo ASG'1 và chuyển đến site 3 / Tạo ASG'2 và chuyển đến site 4
- Kết nối ASG'1 với EMP1 (site 3) và chuyển kết quả đến site 5
- Kết nối ASG'2 với EMP2 (site 4) và chuyển kết quả đến site 5
- Hợp kết quả trên site 5
Trang 9Ví dụ xử lý truy vấn
• Chiến lược 2:
- Chuyển ASG1 và ASG2 sang site 5
- Chuyển EMP1 và EMP2 sang site 5
- Chọn và kết nối trên site 5
Trang 10Ví dụ xử lý truy vấn
* Tính toán gía thành của 2 chiến lược dựa trên các giả thiết:
– Các bộ phân tán cùng dạng trên các phân mảnh; 20 bộ thỏa mãn DUR>37
– size(EMP) = 400, size(ASG) = 1000
– giá truy nhập bộ = 1 đơn vị; giá truyền bộ = 10 đơn vị
– ASG và EMP chỉ mục cục bộ trên DUR và ENO
• Chiến lược 1
– Tạo các ASG’ : (10+10) * giá_truy_nhập_bộ 20
– Truyền các ASG đến các sites EMP: (10+10) * Giá_truyền_bộ 200
– Tạo các EMP’: (10+10) * giá_truy_nhập_bộ * 2 40
– Truyền các EMP đến site kết quả : (10+10) * Giá_truyền_bộ 200
– Giá tổng cộng 460
• Chiến lược 2
– Truyền EMP1, EMP2 đến site 5: 400 * Giá_truyền_bộ 4,000 – Truyền ASG1, ASG2 đến site 5: 1000 * Giá_truyền_bộ 10,000
– Chọn các bộ từ ASG1 ∪ ASG2: 1000 * giá_truy_nhập_bộ 1,000
– Kết nối EMP và ASG’: 400 * 20 * giá_truy_nhập_bộ 8,000
– Giá tổng cộng 23,000
Trang 113.1 Những vấn đề về xử lý truy vấn
3.1.1 Tổng quan
3.1.2 Tối ưu hóa Truy vấn
3.1.3 Các bước xử lý truy vấn phân tán
Trang 12Tối ưu hóa truy vấn
• Tối ưu hóa truy vấn là phần quan trọng và sống còn của toàn bộ xử lý truy vấn.
• Mục tiêu là tối thiểu hóa các hàm giá sau:
giá_thành_I/O + giá_thành_CPU + giá_thành_truyền_thong.
* Giá truyền thông không chiếm ưu thế
* Gía thành tổng cộng được xem xét.
Trang 13Tối ưu hóa truy vấn
• Thứ tự của các phép tính đại số quan hệ là sống còn cho xử lý truy vấn hiệu quả.
• Luật chủ đạo: Chuyển các phép tính tiêu tốn về cuối của xử lý
Trang 14Các nhận định tối ưu hóa truy vấn
Một vài nhận định đã được xem xét trong tối ưu hóa
truy vấn
• Các kiểu bộ tối ưu hóa truy vấn
– quan tâm các kỹ thuật tìm kiếm (tìm kiếm vét cạn,
Trang 15Các nhận định tối ưu hóa truy vấn
• Các kiểu bộ tối ưu quan tâm đên các kỹ thuật tìm kiếm
• Không tối ưu
• Lặp việc nhóm các biểu thức con
• Thực hiện chọn, chiếu đầu tiên
• Thay kết nối bằng chuỗi các bán kết nối
• Săp xếp lại thứ tự phép tinh để giảm nhỏ lượng trung gian
Trang 16Các nhận định tối ưu hóa truy vấn
• Các kiểu bộ tối ưu quan tâm đên thời gian tối ưu hóa
– Tĩnh
• Truy vấn được ưu tiên tối ưu để vận hành
• Rất khó dự đoán kích thước các kết quả trung gian
• Giảm dần qua nhiều vận hành
– Động
• Tối ưu hóa có được khi chạy
• Cung cấp thông tin chính xác về các kích thước quan hệ trung gian
• Phải tối ưu lại cho nhiều vận hành
– Hỗn hợp/Lai
• Trước hết truy vấn được dịch dùng giải thuật tĩnh
• Nếu lỗi trong kích thước dự đoán lớn hơn ngưỡng, truy vấn được tối
ưu lại khi chạy
Trang 17Các nhận định tối ưu hóa truy vấn
• Phân bố các giá trị thuộc tính (ví dụ, histogram)
– Các giả thiết chung
• Độc lập giữa các giá trị thuộc tính khác nhau
• Phân bố cùng kiểu các giá trị thuộc tính trong miền giá trị của chúng
Trang 18Các nhận định tối ưu hóa truy vấn
Trang 19Các nhận định tối ưu hóa truy vấn
• topology mạng
– WAN Điểm-điểm
• Các đặc trưng
· Băng thông thấp / · Tốc độ thấp / · Tổng phí giao thức cao
• Giá truyền thông chiếm ưu thế; các yếu tố khac bị bỏ qua
• Lập lịch tổng thể để tối thiểu hóa giá truyền thông
• Địa phương lập lịch tùy theo tối ưu hóa truy vấn trung tâm
– Local area networks (LAN)
• Giá truyền thông không chiếm ưu thế
• Hàm giá tổng cộng nên được xem xét
• Quảng bá có thể được khảo sát (phép kết nối)
• Các giải thuật đặc biệt tồn tại trong mạng hình sao
Trang 20Các nhận định tối ưu hóa truy vấn
• sử dụng bán kết nối
– Giảm nhỏ kích thước của các toán hạng kết nối
bằng cách tính bán kết nối đầu tiên.
– Đặc biệt thích hợp khi giá chủ yếu là giá truyền
thông.
– Cải thiện việc xử lý kết nối phân tán bằng cách
giảm nhỏ kích thước dữ liệu trao đổi giữa các site – Tuy nhiên số thông điệp và thời gian xử lý cục bộ lại tăng.
Trang 213.1 Những vấn đề về xử lý truy vấn
3.1.1 Tổng quan
3.1.2 Tối ưu hóa Truy vấn
3.1.3 Các bước xử lý truy vấn phân tán
Trang 22Các bước xử lý truy vấn phân tán
Trang 23KẾT LUẬN
• Xử lý truy vấn chuyển truy vấn bậc cao (tính toán quan hệ)
thành truy vấn mức thấp hơn tương đương( đại số quan hệ) Khó khăn chinh là đạt được hiệu quả khi chuyển đổi
• Tối ưu hóa truy vấn nhằm tối thiểu hóa hàm giá:
I/O cost + CPU cost + communication cost
• Các bộ tối ưu truy vấn thay đổi bởi kiểu tìm kiếm( vét cạn,
heuristics), và bởi kiểu giải thuật( động, tĩnh, lai) Các thống
kê khác nhau được thu thập để hỗ trợ xử lý tối ưu hóa truy vấn.
• Các bộ tối ưu thay đổi bởi các site quyết định( tập trung, phân tán , lai)
• Xử lý truy vấn được thực hiện như sau: phân rã truy vấn >
định vị dữ liệu > tối ưu hóa tổng thể > tối ưu hóa cục bộ.
Trang 24CHƯƠNG III: XỬ LÝ TRUY VẤN
VÀ ĐỊNH VỊ DỮ LIỆU
3.1 Những vấn đề về xử lý truy vấn
3.2 Phân rã truy vấn và định vị dữ liệu
3.3 Tối ưu hóa các truy vấn phân tán
Trang 253.2 Phân rã truy vấn và định vị dữ liệu
3.2.1 Phân rã truy vấn
3.2.2 Định vị dữ liệu
Trang 263.2.1 Phân rã truy vấn
• Phân rã truy vấn: Ánh xạ truy vấn
tính toán (SQL) sang các phép
tính đại số (chọn, chiếu, kết nối )
• Cả đầu vào và đầu ra truy vấn
tham chiếu đến quan hệ tổng thể,
không cần biết đến phân tán.
• Đầu ra truy vấn đúng về ngữ
nghĩa và tránh dư thừa
• Phân rã truy vấn bao gồm 4 bước:
1 Chuẩn hóa: Chuyển đổi truy vấn thành dạng chuẩn
2 Phân tích: Phát hiện và từ chối các truy vấn sai; chỉ phù hợp cho tập con tính toán quan hệ
3 Loại bỏ dư thừa
4 Viết lại: Chuyển đổi truy vấn thành đại số quan hệ và tối ưu truy vấn
Trang 27Phân rã truy vấn-Chuẩn hóa
• Chuẩn hóa: Chuyển đổi truy vấn thành dạng chuẩn để hỗ trợ cho
xử lý kế tiếp Cơ bản gồm 2 bước
1 Phân tích ngữ nghĩa và cú pháp
- Kiểm tra tính hợp lệ( tương tự biên dịch)
- Kiểm tra thuộc tính và quan hệ
- Kiểm tra kiểu dựa trên phẩm chất
2 Đặt vào dạng chuẩn hóa
- Với SQL, phẩm chất truy vấn (mệnh đề WHERE) là vị từ phức
Trang 28Phân rã truy vấn-Chuẩn hóa
• Ví dụ: xem xét truy vấn : Tìm tên nhân viên làm việc trên duan P1 12
hay 24 tháng?
• Truy vấn dùng SQL :
SELECT ENAME
FROM EMP, ASG
WHERE EMP.ENO = ASG.ENO AND
(EMP.ENO = ASG.ENO ^ ASG.PNO = ”P1” ^ DUR = 24)
Trang 29Phân rã truy vấn-Phân tích
• Phân tích: định danh và từ chối các truy vấn sai
Trang 30Phân rã truy vấn-Phân tích
• Ví dụ: Khảo sát truy vấn
SELECT ENAME,RESP
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND ASG.PNO = PROJ.PNO
AND PNAME = "CAD/CAM"
– Cạnh biểu diễn một kết nối nếu
cả hai biểu diễn một toán hạng
quan hệ, nếu không thì đó là
phép chiếu
Trang 31Phân rã truy vấn-Phân tích
• Đồ thị kết nối
– 1 đồ thị con của đồ thị truy vấn chỉ xem xét các kết nối
• Vì đồ thị truy vấn được kết nối nên truy vấn là đúng ngữ nghĩa
Trang 32Phân rã truy vấn-Phân tích
• Xét truy vấn và đồ thị truy vấn của nó:
SELECT ENAME,RESP
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND PNAME = "CAD/CAM"
AND DUR ≥ 36
AND TITLE = "Programmer"
• Do đồ thị là không liên kết truy vấn sai ngữ
Trang 33Phân rã truy vấn-Loại bỏ dư thừa
• Đơn giản truy vấn bằng cách loại bỏ các dư thừa, ví dụ
Trang 34Phân rã truy vấn-Loại bỏ dư thừa
AND NOT(EMP.TITLE = "Elect Eng."))
• Gán p1 là ENAME = ”J Doe”, p2 là TITLE = ”Programmer” và p3 là TITLE =
Trang 35Phân rã truy vấn- Viết lại
Trang 36Phân rã truy vấn- Viết lại
• Bằng cách áp dụng các luật chuyển đổi, nhiều cây/biểu thức tương đương với các cây/biểu thức ban đầu nhưng hiệu quả hơn
• Nếu các quan hệ R(A1, ,An), S(B1, ,Bn), và T tương thích với nhau.
• Tính giao hoán các phép nhị phân
Trang 37Phân rã truy vấn- Viết lại
• Thay thế phép chọn với phép tính nhị phân
– σp(A)(R × S) <==> σp(A)(R) × S
– σp(A1)(R ixip(A2,B2) S) <==> σ p(A1)(R) ixip(A2,B2) S
– σp(A)(R ∪ T) <==> σ p(A)(R) ∪ p(A)(T)
* (A thuộc R và T)
• Thay thế phép chiếu với phép tính nhị phân (giả thiết
C = A′ ∪ B′, A′ ⊆ A,B′ ⊆ B)
– ΠC(R × S) <==> Π A′(R) × Π B′(S)
– ΠC(R ixip(A′,B′) S) <==> Π A′(R) ixip(A′,B′) Π B′(S)
– ΠC(R ∪ S) <==> Π C(R) ∪ ΠC(S)
Trang 38Phân rã truy vấn- Viết lại
• Ví dụ: hai cây tương đương với ví dụ trước.
– Các lược đồ: EMP(ENO, ENAME, TITLE) / PROJ(PNO,
PNAME, BUDGET) / ASG(ENO, PNO, RESP, DUR)
Trang 39Phân rã truy vấn- Viết lại
• Ví dụ : Một cây tương đương khác hiệu quả hơn
do áp dung các phép chọn đầu tiên.
Trang 403.2 Phân rã truy vấn và định vị dữ liệu
3.2.1 Phân rã truy vấn
3.2.2 Định vị dữ liệu
Trang 41* Áp dụng thông tin phân tán
dữ liệu đối với các phép tinh
Trang 42Định vị dữ liệu
– Giả thiết EMP phân mảnh ngang thành
EMP1, EMP2, EMP3 như sau:
EMP1 = σENO≤”E3” (EMP)
EMP2 = σ ”E3”<ENO≤”E6” (EMP)
EMP3 = σ ENO>”E6” (EMP)
– ASG phân mảnh thành ASG1, ASG2:
ASG1 = σ ENO≤”E3” (ASG)
ASG2 = σ ENO>”E3” (ASG)
• Cách tiếp cận đơn giản thay thế toàn bộ
truy vấn
– EMP bằng (EMP1∪EMP2 ∪ EMP3)
– ASG bằng (ASG1 ∪ ASG2)
– Kết quả cũng gọi là truy vấn chung
• Truy vấn chung không hiệu quả do việc
tái cấu trúc và đơn giản hóa quan trọng
có thể phải thực hiện
Trang 43Định vị dữ liệu
• Ví dụ( ): xử lý song song trong việc đánh giá thường thuận
tiện: Tùy thuộc phân mảnh ngang , các phân mảnh có thể kết nối song song bằng cách hợp các kết quả trung gian
Trang 44Định vị dữ liệu
• Ví dụ( ): các công việc không cần có thể loại bỏ
EMP3 ixi ASG1 cho kết quả rỗng
* EMP3 = σENO>”E6”(EMP)
* ASG1= σENO≤"E3"(ASG)
Trang 45– Giảm nhỏ với phép kết nối
• Giảm nhỏ của các phân mảnh dọc (VF)
– Tìm các quan hệ rỗng
Trang 46Giảm nhỏ của phân mảnh ngang
• Giảm nhỏ với phép chọn cho phân mảnh ngang
– Khảo sát quan hệ R với phân mảnh ngang F = {R1,R2, ,Rk},
ở đây Ri = σpi (R)
– Luật 1: Phép chọn phân mảnh , σ pj (Ri), có phẩm chất phủ định phẩm chất phân mảnh phát sinh quan hệ rỗng
σ pj (Ri) =∅ <==> ∀x ∈ R(pi(x) ^ pj(x) = false)
– Có thể được áp dụng nếu vị từ phân mảnh nhất quán với vị từ chon truy vấn
• Ví dụ:
SELECT * FROM EMP
WHERE ENO=”E5”
Sau khi xem xét ta thấy vị từ
chon mâu thuẫn vị từ của
EMP1 và EMP3
Trang 47Giảm nhỏ cho phân mảnh ngang
• Giảm nhỏ với phép kết nối cho phân mảnh ngang
– Các kết nối trên các quan hệ phân mảnh ngang có thể được đơn giản khi các quan hệ được phân mảnh theo các thuộc tính kết nối – Phân tán kết nối qua phép hợp
(R1 ∪ R2) ixi S <==> (R1 ixi S) ∪ (R2 ixi S)
– Luật 2: Các kết nối vô dụng của các phân mảnh , Ri = pi(R) và Rj
= pj (R), có thể xác định được khi phẩm chất của phân mảnh kết nối mâu thuẫn, tức là
Ri ixi Rj = ∅ <==> ∀x ∈ Ri, ∀ y ∈ Rj(pi(x) ^ pj(y) = false)
Trang 48Các phát biểu định vị dữ liệu- Giảm nhỏ cho phân mảnh ngang
∗ ASG1 = σ ENO≤”E3” (ASG)
∗ ASG2 = σ ENO>”E3” (ASG)
– Truy vấn tổng quan
– Truy vấn được giảm nhỏ bởi kết
nối phân tán qua phép hợp và
áp dụng luật 2 có thể được thực
hiện như phép hợp 3 kết nối
từng phần có thể thực hiện song
song
• Truy vấn với các phân mảnh:
– SELECT * FROM EMP, ASG WHERE EMP.ENO=ASG.ENO
– Phân mảnh ngang:
∗ EMP1 = σENO≤”E3”(EMP)
∗ EMP2 = σ”E3”<ENO≤”E6”(EMP)
∗ EMP3 = σ ENO>”E6”(EMP)
Truy vấn tổng quan
Truy vấn được giảm nhỏ
48
Trang 49Giảm nhỏ cho phân mảnh ngang
• Giảm nhỏ với kết nối cho phân mảnh ngang dẫn xuất
– Phân mảnh ngang trên một quan hệ được dẫn xuất từ phân mảnh ngang của quan hệ khác bằng cách dùng bán kết nối
• Nếu phân mảnh ngang không cùng vị từ khi kết nối, phân mảnh ngang dẫn xuất có thể được áp dụng để tạo khả năng xử lý kết nối hiệu quả hơn
• Khảo sát truy vấn và phân mảnh quan hệ EMP:
– Query: SELECT * FROM EMP, ASG WHERE EMP.ENO=ASG.ENO
– Phân mảnh(không trong thuộc tính kết nối):
EMP1 = σTITLE=“Prgrammer” (EMP)
EMP2 = σ TITLE≠“Prgrammer” (EMP)
– Để đạt được kết nối ASG hiệu quả có thể phân mảnh như sau:
ASG1= ASG ix ENO EMP1
ASG2= ASG ix ENO EMP2
– Phân mảnh của ASG được dẫn xuất từ phân mảnh của EMP
– Các truy vấn trên phân mảnh dẫn xuất có thể được giảm nhỏ, ví dụ
ASG1 ixi EMP2 = ∅
Trang 50Các phát biểu định vị dữ liệu- Giảm nhỏ cho phân mảnh dọc
• Giảm nhỏ cho phân mảnh dọc
– Phân mảnh dọc dựa trên phép chiếu và thao tác tái cấu trúc
là phép kết nối.
– Tương tự phân mảnh ngang, có thể xác định các quan hệ
tgian vô dụng (các phân mảnh không tham gia vào kết quả) – Giả thiết quan hệ R(A) với A = {A1, ,An}, phân mảnh dọc là Ri = Π A′i (R), với A′i ⊆ A.
– Luật 3: ΠD,K(Ri) là vô dụng nếu tập phép chiếu các thuộc tính D không trong A′i và K là thuộc tính khóa
– Chú ý kết quả không rỗng nhưng vô dụng khi nó chỉ chứa thuộc tính khóa.
Trang 51Giảm nhỏ cho phân mảnh dọc
• Ví dụ: xét truy vấn theo các phân mảnh
• Truy vấn được giảm nhỏ
– Bằng cách thay thế phép chiếu với
phép kết nối( chiếu trên ENO,
ENAME), ta có chiếu EMP2 vô dụng
vì ENAME không trong EMP2
• Truy vấn chung
• Truy vấn được giảm nhỏ
Trang 52KẾT LUẬN
• Phân rã truy vấn và định vị dữ liệu ánh xạ các truy vấn tính toán thành các phép tính đại số và áp dụng các thông tin phân tán cho các phép tinh đại số.
• Phân rã truy vấn bao gồm chuẩn hóa, phân tích, loại bỏ dư thừa và viết lại
• Định vị dữ liệu giảm nhỏ phân mảnh ngang với phép chọn và kết nối, và phân mảnh dọc với phép kết nối nhằm tìm các quan hệ rỗng