5.2.1 Đặt vấn đề
Chức năng chớnh của bộ xử lý truy vấn là chuyển đổi một truy vấn mức cao (phộp tớnh quan hệ) sang một truy vấn mức thấp tương đương (đại số quan hệ). Quỏ trỡnh chuyển đổi cựng cho một kết quả như nhaụ
Cú nhiều giải phỏp chuyển đổi, mỗi giải phỏp khỏc nhau cú thể tiờu thụ tài nguyờn của mạng mỏy tớnh khỏc nhaụ Vỡ vậy, cần phải lựa chọn một giải phỏp khi thực hiện, nú tiờu thụ tài nguyờnt là tối thiểụ
Cú 2 phương phỏp tối ưu cơ bản: phương phỏp biến đổi một cõu vấn tin cú mức cao thành cõu vấn tin tương đương ở mức thấp hơn dưới dạng biểu thức đại số quan hệ và
phương phỏp chọn lựa trong số cỏc cõu vấn tin dạng biểu thức đại số quan hệ tương đương, một biểu thức cú chi phớ thời gian thực hiện và chi phớ sử dụng tài nguyờn là ớt nhất.
Vớ dụ 5.1: Xột 2 quan hệ:
EMP (ENO, ENAME, TITLE) và ASG (ENO, PNO, RESP, DUR).
Và cõu truy vấn : ” Tờn của cỏc nhõn viờn là giỏm đốc (Manager) dự ỏn”. Cõu truy vấn dưới dạng phộp tớnh quan hệ theo cỳ phỏp SQL là:
SELECT ENAME FROM EMP, ASG WHERE EMP.ENO = ASG.ENO
AND RESP = “Manager”.
Cõu truy vấn trờn được biểu diễn dưới dạng biểu thức đại số quan hệ sau
π ENAME (σ RESP=”Manager” ∧ EMP.ENO = ASG.ENO (EMP x ASG))
Phộp toỏn trờn được chuyển đổi tương đương, cho cựng một kết quả nhưng cú chi phớ
thời gian và sử dụng tài nguyờn ớt hơn:
πENAME(EMP >< ENO (σRESP = “Manager” (ASG))) .
Trong trường hợp cơ sở dữ liệu tập trung, việc chuyển đổi cõu truy vấn sang cỏc phộp đại số quan hệ được tiến hành một cỏch thuận lợị Chức năng chớnh của bộ xử lý tập trung là lựa chọn phộp truy vấn đại số quan hệ tối ưu trong cỏc phộp đại số tương đương.
Trong mụi trường phõn tỏn, cỏc phộp đại số quan hệ khụng đủ để mụ tả cỏc giải phỏp thực hiện. Nú phải được cung cấp thờm cỏc cỏc thao tỏc để chuyển đổi dữ liệu giữa cỏc vị trớ. Việc lựa chọn thứ tự cỏc thao tỏc đại số quan hệ, bộ xử lý truy vấn cũng phải lực chọn cỏc vị trớ tốt nhất để xử lý dữ liệu và đường truyền thụng mà dữ liệu sẽ lưu chuyển. Việc này sẽ làm tăng số cỏc giải phỏp lựa chọn cần lựa chọn trong số đú một giải phỏp thực hiện. Vỡ vậy việc xử lý truy vấn phõn tỏn càng trở nờn khú khăn hơn.
ENO ENAME TITLE
E1 J.Doe Elect.Eng E2 M.Smith Analyst E2 M.Smith Analyst E3 ẠLee Mech.Eng E3 ẠLee Mech.Eng E4 J.Miller Programmer E5 B.Casey Syst.Anal E6 L.Chu Elect.Eng E7 R.David Mech.Eng E8 J.Jones Syst.Anal
ENO PNO RESP DUR E1 P1 Manager 12 E2 P1 Analyst 24 E2 P2 Analyst 6 E3 P3 Consultant 10 E3 P4 Engineer 48 E4 P2 Programmer 18 E5 P2 Manager 24 E6 P4 Manager 48 E7 P3 Engineer 36 E8 P3 Manager 40
Vớ dụ 5.2 Vớ dụ này mụ tả tầm quan trọng của việc lựa chọn vị trớ và việc truyền thụng
từ truy vấn đại số quan hệ được lựa chọn với CSDL được phõn mảnh. Xột cõu vấn tin với biểu thức đại số quan hệ vớ dụ trờn:
πENAME(EMP >< ENO (σ RESP = “Manager” (ASG)))
Giả sử hai quan hệ EMP và ASG được phõn mảnh theo chiều ngang như sau: EMP1 = σ ENO ≤ “E3” (EMP).
EMP2 = σENO > “E3” (EMP). ASG1 = σENO≤ “E3” (ASG). ASG2 = σENO> “E3” (ASG).
Cỏc mảnh EMP1, EMP2, ASG1, ASG2 được lưu trữ tại cỏc vị trớ 1, 2, 3, 4 và cỏc kết quả
được lưu trữ tại vị trớ 5.
ASG1’= σRESP=”Manager” (ASG1) ASG2’= σRESP=”Manager” (ASG2) EMP1’ = EMP>< ENO (ASG1’) EMP2’ = EMP>< ENO (ASG2’)
Result = EMP1’ ∪ EMP2’ Vị trớ 1 Vị trớ 3 Vị trớ 5 Vị trớ 2 ASG’1 ASG’2 EMP’1 EMP’2 Giải phỏp A Vị trớ 5 Vị trớ 1 ASG1
Result = (EMP1 ∪ EMP2)><ENOσ RESP=”Manager” (ASG1∪ASG2) Vị trớ 2 ASG2 Vị trớ 3 EMP1 Vị trớ 4 EMP2 Giải phỏp B
Hỡnh 5.1 Cỏc giải phỏp truy vấn tương đương
Mũi tờn đi kốm ký hiệu quan hệ để chỉ hệ thống sẽ truyền quan hệ kết quả từ vị trớ i đến vị trớ j. Vớ dụ trong giải phỏp A, tại vị trớ 1 sau khi thực hiện phộp chọn trờn quan hệ ASG1 thoả biểu thức RESP=”Manager”, kết quả ASG’1 sẽ được truyền từ vị trớ 1 sang vị trớ 3 để tham gia phộp kết nối với quan hệ EMP1.
Hai giải phỏp A và B thực hiện truy vấn là tương đương trong đú:
• Giải phỏp A: Sử dụng hai quan hệ EMP và ASG được phõn mảnh theo cựng một cỏch để thực hiện lựa chọn và kết nối cỏc thao tỏc một cỏch song song cỏc phộp chọn và kết nốị
• Giải phỏp B: Tập trung tất cả cỏc dữ liệu trong toỏn hạng tại vị trớ kết quả trước khi xử lý truy vấn.
Để cú thể đỏnh giỏ chi phớ nguồn tài nguyờn của hai giải phỏp trờn, ký hiệu
• Chi phớ để thao tỏc truy xuất một bộ (tuple access) là một đơn vị, ký hiệu tupacc.
• Chi phớ để truyền một bộ (tuple transfer) là 10 đơn vị, ký hiệu tuptrans.
• Giả sử lực lượng của quan hệ EMP và ASG sẽ là 400 và 1000 bản ghị
• Giả sử cú 20 Manager trong quan hệ ASG. Khi đú, tổng chi phớ của giải phỏp A sẽ là:
1. Tạo ASG’ bằng phộp chọn ASG cần (10+10)*tupacc = 20. 2. Truyền ASG’đến cỏc vị trớ của EMP cần 10+10)*tuptrans = 200 3. Tạo EMP’ bằng phộp kết nối ASG’ và EMP cần (10+10)* tupacc*2 = 40
4. Truyền EMP’ đến vị trớ kết quả cần (10+10)*tuptrans = 200
Tổng chi phớ 460
Tổng chi phớ của giải phỏp B được tớnh như sau:
1. Truyền EMP đến vị trớ 5 cần 400* tuptrans = 4 000 2. Truyền ASG đến vị trớ 5 cần 400*tuptrans = 10 000 3. Tạo ASG’ bằng phộp chọn ASG cần 1000*tupacc = 1 000 4. Kết nối EMP và ASG’ cần 400*20*tupacc = 8000
Tổng chi phớ 23 000
Như vậy chi phớ để thực hịờn giải phỏp A thấp hơn chi phớ cho giải phỏp B.
5.2.2 Mục đớch của việc xử lý truy vấn
Mục đớch của việc xử lý truy vấn trong mụi trường phõn tỏn là biến đổi một truy vấn ở mức cao trờn một cơ sở dữ liệu phõn tỏn thành một giải phỏp thực hiện hiệu quả được xỏc
định dưới dạng ngụn ngữ mức thấp trờn cỏc cơ sở dữ liệu cục bộ. Ngụn ngữ mức cao cú thể
hiểu là cỏc phộp tớnh quan hệ, cỏc ngụn ngữ mức thấp là sự mở rộng của đại số quan hệ và cỏc thao tỏc truyền dữ liệu giữa cỏc vị trớ dữ liệụ
Tối ưu hoỏ truy vấn là một vấn đề quan trọng trong việc xử lý truy vấn. Cú nhiều phộp biến đổi một truy vấn mức cao trờn cơ sở dữ liệu phõn tỏn thành nhiều giải phỏp thực hiện dưới dạng ngụn ngữ mức thấp, nhưng trong đú chỉ cú một giải phỏp thực hiện cú hiệu quả,
tối ưu về chi phớ sử dụng tài nguyờn của mạng bao gồm chi phớ sử dụng bộ nhớ, thời gian xử lý và thời gian truyền dữ liệụ
Chỉ số đỏnh giỏ chi phi sử dụng tài nguyờn mạng hoặc là tổng thời gian xử lý cỏc thao tỏc truy vấn tại cỏc vị trớ khỏc nhau và việc truyền dữ liệu giữa cỏc vị trớ [Sacco and Yao,1982]. Hoặc đỏnh giỏ theo chỉ số theo thời gian đỏp ứng của truy vấn [Epstein et al, 1978] là tổng thời gian thực hiện truy vấn. Cỏc thao tỏc cú thể được thực hiện đồng thời
song song tại cỏc vị trớ khỏc nhau, vỡ vậy thời gian đỏp ứng cú thể nhỏ hơn tổng chi phớ. Trong mụi trường cơ sở dữ liệu phõn tỏn, chỉ số đỏnh giỏ tối ưu hoỏ truy vấn cú thể dựa vào tổng chi phớ giảm thiểu sử dụng bộ nhớ, chi phớ thời gian cần thiết khi thực hiện cỏc thao tỏc vào/ra dữ liệu trong bộ nhớ và chi phớ cần thiết để trao đổi dữ liệu giữa cỏc bờn
tham gia vào trong quỏ trỡnh xử lý truy vấn. Chi phớ truyền thụng là một trong cỏc nhõn tố quan trọng, được quan tõm trong cơ sở dữ liệu phõn tỏn.
5.2.3 Độ phức tạp của cỏc thao tỏc đại số quan hệ
Độ phức tạp của cỏc phộp toỏn đại số quan hệ cú ảnh hưởng trực tiếp đến thời gian thực
hiện cỏc thao tỏc truy vấn. Độ phức tạp của cỏc phộp toỏn phụ thuộc vào lực lượng của
quan hệ (Cardinality), phương phỏp phõn mảnh, cấp phỏt dữ liệu cũng như cỏc vấn đề về cấu trỳc lưu trữ cỏc mảnh. Độ phức tạp của cỏc thao tỏc đơn ngụi và hai ngụi theo thứ tự tăng dần, vỡ thế cũng tăng dần thời gian thực hiện. Độ phức tạp O(n) là tuyến tớnh đối với cỏc phộp toỏn đơn ngụi, trong đú n là lực lượng của quan hệ, với điều kiện cỏc bộ độc lập với nhaụ Độ phức tạp O(n*logn) đối với cỏc phộp tốn hai ngơi nếu cỏc bộ tồn tại phộp so sỏnh dựa trờn giỏ trị của một thuộc tớnh nào đú. Độ phức tạp O(n2) đối với cỏc phộp nhõn, tớch Đề cỏc của hai quan hệ, vỡ mỗi bộ trong quan hệ này phải tổ hợp với tất cả cỏc bộ trong quan hệ kiạ. Độ phức tạp của cỏc thao tỏc đại số quan hệ cú thể được xỏc định như sau:
Phộp toỏn Độ phức tạp
Phộp chọn (Select)
Project (Khụng loại bỏ trựng lặp) O(n) Project (cú loại bỏ trựng lặp)
Cỏc phộp gộp nhúm O(n*log n) Phộp nối (Join)
Phộp nửa nối (Semijoin) Phộp chia (Division)
Cỏc phộp tập hơp (Setoperators)
O(n*log n) Tớch Đề cỏc (Cartesian Product) O(n2)