1. Trang chủ
  2. » Công Nghệ Thông Tin

Tối ưu hóa vấn tin phân tán (CSDL phân tán)

25 447 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

CHƯƠNG VI  TỐI ƯU HOÁ VẤN TIN PHÂN TÁN PGS.NCVC.TS LÊ HUY THẬP ENO ENAME TITLE PNO PNAME BUDGET LOC E1 E2 E3 E4 E5 E6 E7 E8 J.Doe M Smith A.Lee J.Mmith B.Casey L.Chu R.David J.Jones Elect Eng Syst Anal Mech.Eng Programmer Syst.Anal Elect.Eng Mech.Eng Syst Anal P1 P2 P3 P4 Instrumentation Dabatase Develop CAD/ CAM Maintenance 150000 135000 250000 310000 Hình 2.3a Quan hệ EMP TITLE SAL Elect Eng Syst Anal Mech.Eng Progammer 40000 34000 27000 24000 Hình 2.3c Quan hệ PAY Montreal New York New York Paris Hình 2.3b Quan hệ PROJ ENO PNO E1 E2 E2 E3 E3 E4 E5 E6 E7 E8 P1 P1 P2 P3 P4 P2 P2 P4 P3 P3 RESP DUR Manager Analyst Analyst Consultant Engineer Programmer Manager Manager Engineer Manager 12 24 10 48 18 24 48 36 40 Hình 2.3c Quan hệ ASG 6.1 QUÁ TRÌNH TỐI ƯU HÓA VẤN TIN 6.1.1 Không gian tìm kiếm Không gian tìm kiếm tập toán tử tương đương, có cách áp dụng qui tắc biến đổi Để nêu bật đặc trưng thể tối ưu hoá vấn tin, thường tập trung nghiên cứu nối (Join tree) loại toán tử với phép toán nối phép toán tích Descartes phép toán hợp Ví dụ 6.1–1 Câu vấn tin “Cho biết tên nhân viên tham gia dự án đó” SELECT ENAME FROM EMP , ASG , PROJ WHERE (EMP.ENO = ASG.ENO) AND (ASG.PNO = PROJ.PNO) Câu vấn tin sinh ba nối tương đương hình 6.1–2 (Thực có có tới n! cây) JoinPNO JoinENO ASG EMP (a) JoinENO JoinPNO PROJ ASG JoinENO, PNO  EMP PROJ (b) PROJ ASG EMP (c) Hình 6.1–2 Các nối tương đương 6.1.2 Các chiến lược tìm kiếm Quy hoạch động Chiến lược tìm kiếm tối ưu hoá vấn tin sử dụng nhiều qui hoạch động với tính chất đơn định Đơn định Bắt đầu từ quan hệ sở sau nối thêm quan hệ sở bước thu tất QEP có Hình 6.1–4 cho thấy cách quy hoạch động xây dựng (đơn định) tất QEP có theo chiều ngang trước chọn QEP tốt Để hạ thấp chi phí tối ưu hoá, trình xây dựng phương án, phương án khả dẫn đến QEP tối ưu bỏ Ngược lại xét QEP theo chiều sâu Việc dùng qui hoạch động phương án bảo đảm tìm tất QEP nhiên với chi phí cao, người ta tập trung vào lối tiếp cận chiến lược ngẫu nhiên để làm giảm độ phức tạp tối ưu hoá, tất nhiên không đảm bảo tìm phương án tối ưu toàn cục Ngẫu nhiên hoá Quy trình ngẫu nhiên hoá sau: Trước tiên nhiều QEP khởi đầu xây dựng trực tiếp (theo ý thích chủ quan), sau cải thiện phương án cách thăm dò lân cận QEP có, ví dụ hình 6.1–5 cách biến đổi điển hình cách hoán đổi hai quan hệ toán hạng chọn ngẫu nhiên từ QEP hình 6.1-5(a) sang QEP hình 6.1-5(b) J R1 J J J R2 J R3 R4 Bước R1 J R2 R3 Bước R1 Hình 6.1–4 X.dựng tối ưu hoá cách đơn định kiểu Q.hoạch động R2 Bước Bước J J R1 J R3 J Hình 6.1–5.Hành động thể tối ưu hoá chiến lược ngẫu nhiên hoá R2 R1 R2 R3 6.1.3 Mô hình chi phí phân tán 6.1.3.1 Hàm chi phí (hàm mục tiêu) Hàm chi phí loại chi phí đó, hiểu theo thời gian hàm chi phí là: Total_Time = TCPU #insts + TI/O  I/Os + TMSG  #msgs + TTR  #bytes Hai thành phần đầu thời gian xử lý cục bộ, TCPU thời gian xử lý thị (lệnh) CPU #insts số thị; TI/O­ thời gian cho xuất, nhập đĩa I/Os số lần xuất nhập đĩa; TMSG thời gian cố định để khởi hoạt nhận thông báo #msgs số thông báo; TTR thời gian cần để truyền đơn vị liệu từ vị trí sang vị trí khác, đơn vị liệu tính theo byte, #bytes số byte liệu, tính theo đơn vị khác 6.1.3.2 Số liệu thống kê CSDL Tác nhân ảnh hưởng đến hiệu qủa hoạt động chiến lược kích thước quan hệ trung gian Khi phép toán nằm vị trí khác, quan hệ trung gian phải di chuyển đến Vì phải biết kích thước kết trung gian phép toán đại số quan hệ 6.2 TỐI ƯU HÓA VẤN TIN TẬP TRUNG Hai thuật toán tối ưu hóa thông dụng sử dụng cho CSDL tập trung phân tán: INGRES System R 6.2.1 Thuật toán INGRES Ví dụ 6.2-1 "Cho biết tên nhân viên làm việc dự án CAD/CAM” Câu SQL sau: q1 : SELECT EMP.ENAME FROM EMP , ASG , PROJ WHERE EMP.ENO=ASG.ENO AND PROJ.PNO = ASG.PNO AND PNAME = "CAD/CAM” Cách thực q1 sau: Chọn PNAME = "CAD/CAM”, PROJ (Thấy có kết PNAME = "CAD/CAM" với mã P3) Từ phép nối PROJ.PNO= ASG.PNO thấy ASG, ứng với P3, có E3, E7 E8 ENO Cuối từ quan hệ EMP, qua phép nối ASG.ENO = EMP.ENO cho ta có kết EMP.ENAME = {A.Lee , R.David , J.Jones}, E3A.Lee , E7  R.David E8  J.Jones Phép tách Tách phép chọn, q1 thay q11 q', JVAR quan hệ trung gian q11: SELECT PROJ.PNO INTO JVAR FROM PROJ WHERE PNAME = "CAD/CAM" Kết JVAR có P3 q ' : SELECT EMP.ENAME FROM EMP, ASG , JVAR WHERE EMP.ENO = ASG.ENO AND ASG.PNO = JVAR.PNO Bây q' tách q12 q13 sau: q12: SELECT ASG.ENO INTO GVAR FROM ASG , JVAR WRERE ASG.PNO = JVAR PNO Kết GVAR có E3, E7 E8 q13: SELECT EMP.ENAME FROM EMP , GVAR WHERE EMP.ENO = GVAR.ENO Từ quan hệ EMP ta có EMP.ENAME = {A.Lee , R.David , J.Jones} Tóm tắt thuật toán INGRES: Trước tiên thực phép toán đơn quan hệ cố gắng giảm thiểu kích thước kết trung gian cách xếp lại thứ tự phép toán hai quan hệ Kí hiệu qi-1qi để q chia thành qi-l qi, qi-1 thực trước kết quà qi sử dụng Cho câu vấn tin q có n quan hệ, INGRES phân rã q thành n câu vấn tin q1 q2 …  qn Phân rã sứ dụng hai kỹ thuật bán: tách thay Tách kỹ thuật chuyển câu vấn tin q thành q'  q“, q‘ xử lí trước kết đưa cho q” xử lí tiếp Nếu câu vấn tin q biểu diễn SQL dạng: SELECT R1.A1, R2.A2 ,…, Rn.An FROM R1, R2, … , Rn WHERE p1(R1.A’1) AND p2(R1.A1 , R2.A2,…, Rn.An) Trong Ai A’i danh sách thuộc tính quan hệ Ri, p1 vị từ có chứa thuộc tính quan hệ R1, p2 vị từ đa quan hệ có chứa thuộc tinh quan hệ R1, R2,…, Rn Câu vấn tin dạng phân rã thành hai câu vấn tin con, q'  q" qua phép tách quan hệ chung R1 q': SELECT R1.A1 INTO R’1 FROM R1 WHERE P1(R1.A’1) R’1 quan hệ tạm thời chứa thông tin cần thiết để thực tiếp tục câu vấn tin: q”: SELECT R2.A2, R3.A3 ,…, Rn.An FROM R’l , R2 , …, Rn WHERE p2(R1.A1 , R2.A2,…, Rn.An) Nếu q” (câu vấn tin đa quan hệ) tách tiếp (chẳng hạn q12 q13 ví dụ 6.2-1) gọi bất khả giản Các vấn tin bất khả giản biến đổi thành câu vấn tin đơn quan hệ nhờ phép sau Phép Cho câu vấn tin q có n-quan hệ, biến thay giá trị chúng, tạo tập câu vấn tin (n-1)–biến Phép tiến hành sau: Trước tiên chọn quan hệ q để thay Gọi R1 quan hệ Với t1i R1, thuộc tính tham chiếu q thay giá trị thực t1i, tạo câu vấn tin q’ có (n - l) quan hệ Vì tổng số câu vấn tin q’ sinh hởi phép card(R1) Như vậy: q(R1, R2,…,Rn) thay {q(t1i, R2,…,Rn) | t1i  R1)} Vì thu được, câu vấn tin xử lý đệ qui phép chưa bất khả giản Ví dụ 6.2-2 Xét tiếp câu vấn tin q13 (trong ví dụ 6.2-1): SELECT EMP.ENAME FROM EMP, GVAR WHERE EMP.ENO = GVAR.ENO Đây câu vấn tin đa quan hệ (2 quan hệ) Do q13 sau q12 q12: SELECT ASG.ENO INTO GVAR FROM ASG , JVAR WRERE ASG.PNO = JVAR PNO Kết GVAR có E3, E7 E8 tương ứng với Còn EMP có (xem CSDL_MAU) 10 Quan hệ định nghĩa biến GVAR có thuộc tính ENO dom(ENO) E3, E7 E8 Phép cho GVAR tạo ba câu vấn tin đơn quan hệ: q131: SELECT EMP.ENAME FROM EMP WHERE EMP.ENO = "E3” q132: SELECT EMP.ENAME FROM EMP WHERE q133: SELECT EMP.ENAME FROM EMP WHERE EMP.ENO = "E7" EMP.ENO = "E8" Các câu vấn tin q131, q132, q133 OVQP xử lý Nội dung thuật toán INGRES Thuật toán INGRES gọi INGRES-QOA dùng để xử lý đệ qui câu vấn tin Thuật toán áp dụng phép chọn phép chiếu kỹ thuật tách Kết quả: Các câu vấn tin đơn quan hệ lưu lại, sau OVQP (One-Variable Query Processor-xử lí vấn tin đơn biến) sử dụng Câu vấn tin bất khả giản lại ký hiệu MRQ' [MRQ (MultiRelation Query – Vấn tin đa quan hệ, ORQ One-Relation Query– Vấn tin đơn quan hệ) Quan hệ nhỏ MRQ’ biết từ kết qủa câu vấn tin trước chọn để nhằm tạo số lượng vấn tin Các vấn tin đơn quan hệ tạo OVQP xử lý 11 Thuật toán 6-1 INGRES – QOA (Tự đọc TL) Vào: MRQ câu vấn tin có n quan hệ Ra: Là câu vấn tin đơn quan hệ Begin1 Output   If n = then Output = run (MRQ) //thực câu vấn tin quan hệ xong// Else begin //có câu vấn tin đa quan hệ// MRQ = {ORQ1, ORQ2, … , ORQm, MRQ’} //tách MRQ thành tập m câu// // vấn tin đơn quan hệ câu vấn tin đa quan hệ// For i = to m Do Begin2 Output’ = run(ORQi) //thực ORQi} Output = Output  Output’ //trộn tất kết lại// End Begin Next i R = CHOOSE _VARIABLE(MRQ’) //R chọn cho phép bộ// For Each t In R Do //t biến bộ// Begin MRQ” = thay giá trị cho t MRQ’ Output’ = INGRES–QOA(MRQ”) //gọi đệ qui// Output = Output  Output’ //Trộn tất kết lại// End Begin3 Next t End-if End Begin1 //INGRES–QOA// 12 6.2.2 Thuật toán System R Tóm tắt thuật toán System R Vào System R toán tử Ra phương án thực (cây toán tử tối ưu) Tập chiến lược khác xây dựng động, hai nối tương đương nối có chi phí nhỏ hơnđược giữ lại Cây dùng phép tích Descartes bị loại bỏ Thuật toán tối ưu hóa bao gồm hai bước Dự đoán phương án có chi phí thấp để truy xuất đến quan hệ dựa vị từ chọn Đối với quan hệ R, thứ tự nối tốt ước lượng, trước tiên R truy xuất cách sử dụng phương pháp truy xuất đơn quan hệ tốt Thứ tự có chi phí thấp trở thành sở cho phương án thực tốt Khi nối hai quan hệ, quan hệ đọc trước gọi quan hệ ngoại cảnh, quan hệ lại quan hệ có cần tìm dựa theo giá trị có từ quan hệ ngoại cảnh gọi quan hệ nội Chọn phương pháp nối chọn đường truy xuất có chi phí thấp đến nội Phương pháp thứ nhất, gọi vòng lồng nhau, tạo tích hai quan hệ Đó với ngoại cảnh, nội thỏa vị từ nối truy xuất để tạo quan hệ kết Phương pháp thứ hai gọi nối trộn, trộn hai quan hệ xếp theo thuộc tính nối Chỉ mục thuộc tính nối sử dụng làm đường truy xuất 13 Phiên đơn giản thuật toán System R cho câu vấn tin chọn chiếu - nối có hai vòng: Vòng chọn đường truy xuất quan hệ tốt đến quan hệ câu vấn tin Vòng kiểm tra tất hoán vị có thứ tự nối (có n! hoán vị cho n quan hệ) chọn chiến lược truy xuất tốt cho câu vấn tin Các hoán vị tạo cách xây dựng động chiến lược khác Trước tiên cần xét nối quan hệ với quan hệ khác, sau nối ba quan hệ, tiếp tục nối n quan hệ tối ưu Thực thuật toán không tạo tất hoán vị có số hoán vị hoàn toàn vô ích Chẳng hạn, hoán vị có chứa tích Descartes Với hai heuristic này, số lượng chiến lược cần kiểm tra có cận 2n Thuật toán 6-2 R_QOA (Tự đọc Tài liệu) Kí hiệu nối >JJ< Ri2) >J< Ri3) >J< >J< Rin) tính chi phí strategy End-for Output  strategy có chi phí nhỏ End //R-QOA// 6.3 XẾP THỨ TỰ NỐI TRONG CÁC VẤN TIN THEO MẢNH 6.3.1 Xếp thứ tự nối Nhắc lại phép nối >J< Cho hai quan hệ R S nối R S ký hiệu T = R >JJ size(S) R S Nếu size(R) < size(S) Hình 6.3-1 Tuyền toán hạng phép toán hai Vị trí Ví dụ 6.3-1 ASG Xét câu vấn tin biểu diễn đại số quan hệ sau: ENO PNO PROJ >JJJ< ASG EMP'  Vị trí Vị trí tính EMP’ >J< PROJ ASG  vị trí Vị trí tính EMP' = EMP >J< ASG EMP'  vị trí Vị trí tính EMP >J< PROJ ASG  vị trí Vị trí tính ASG' = ASG >J< PROJ ASG'  vị trí Vị trí tính ASG’ >J< EMP PROJ  vị trí Vị trí tính PROJ' = PROJ >J< ASG PROJ'  vị trí Vị trí tính PROJ' >J< EMP EMPvị trí PROJvị trí Vị trí tính EMP >J< PROJ >J< ASG 16 Để chọn P.án số này, phái biết dự đoán kích thước: size(EMP), size(ASG), size(PROJ), size(EMP>JJ< PROJ) Hơn xét thời gian đáp ứng, việc tối ưu hóa phải tính truyền liệu (có thể thực song song chiến lược 5) 6.3.2 Nối nửa Nhắc lại phép nối nửa nối nửa, kí hiệu J cost(ES - SJ) then ES  ES - SJ end-if end-for end-for end { SDD-1-QOA } Ví dụ 6.11 Cho quan hệ EMP, PAY, PROJ ASG “Hãy tìm lương kỹ sư làm việc cho dự án CAD/CAM” Vấn tin đại số quan hệ 24 Đê đơn giàn, giả thiết chiếu dài (của quan hệ) 1, nghĩa kích thước quan hệ với lực lượng Hơn vị trí đặt quan hệ tùy ý Dựa độ tuyển chọn nối, biết size(EMPPAY) = size(EMP), size(PROJ ASG) = 2 size(PROJ) size(ASG EMP) = size(ASG) Nếu xét vấn đề truyền liệu, giải pháp thi ban đầu chọn vị trí làm vị trí kết qủa, sinh lịch biểu ES0: EMP  vị trí PAY  vị trí PROJ  vị trí Total-cost(ESo) = + + = 13 Điều chi phí giải pháp khác lớn giải pháp 25 [...]... size(R) 17 6.4 THUẬT TOÁN TỐI ƯU HÓA VẤN TIN PHÂN TÁN 6.4.1 Thuật toán INGRES phân tán Tóm tắt thuật toán Thuật toán tối ưu hóa phân tán INGRES được dẫn xuất từ thuật toán INGRES tập trung Hàm mục tiêu của thuật toán là làm giảm tối đa chi phi tổ hợp của thời gian truyền tin và thời gian đáp ứng Đầu vào câu vấn tin được diễn tả bằng phép tính quan hệ bộ (ở dạng chuẩn hội) và thông tin lược đồ (kiểu mạng,... Các câu vấn tin đơn quan hệ được lưu lại, sau đó sẽ được OVQP (One-Variable Query Processor-xử lí vấn tin đơn biến) sử dụng Câu vấn tin bất khả giản còn lại được ký hiệu là MRQ' [MRQ (MultiRelation Query – Vấn tin đa quan hệ, ORQ One-Relation Query– Vấn tin đơn quan hệ) Quan hệ nhỏ nhất của MRQ’ đã được biết từ kết qủa của câu vấn tin trước đó sẽ được chọn để thế bộ nhằm tạo ra số lượng vấn tin con... của nó, chúng ta mô tả thuật toán tối ưu hóa vấn tin phân tán cho trường hợp câu vấn tin truy xuất (chỉ đọc) Thuật toán này được thực hiện tai một vị trí được gọi là vị trí chính là nơi câu vấn tin được kích hoạt Thuật toán, với tên gọi DINGRẸS-QOA, ở thuật toán 6-3 sau Thuật toán 6-3 D-INGRES-QOA(Tự đọc Tài liệu) Vào: Câu vấn tin đa quan hệ MRQ Ra: Kết quả của câu vấn tin đa quan hệ cuối cùng 18 (Thuật... Thuật toán System R* Tóm tắt thuật toán tối ưu hóa của R* Thuật toán tối ưu hóa vấn tin phân tán của System R* là một mở rộng của System R (xem Phần 6.2.2) Nó thực hiện tìm kiếm vét cạn tất cả các chiến lược có thể có để chọn ra chiến lược có chi phí nhỏ nhất Dù rằng có chi phí rất cao nhưng cũng cho hiệu quả cao nếu vấn tin này được sử dụng thường xuyên Thể tối ưu hóa của vị trí chính đưa ra mọi quyết... vấn tin đơn quan hệ được tạo ra sẽ do OVQP xử lý 11 Thuật toán 6-1 INGRES – QOA (Tự đọc TL) Vào: MRQ là câu vấn tin có n quan hệ Ra: Là các câu vấn tin đơn quan hệ Begin1 Output   If n = 1 then Output = run (MRQ) //thực hiện câu vấn tin một quan hệ là xong// Else begin //có câu vấn tin đa quan hệ// MRQ = {ORQ1, ORQ2, … , ORQm, MRQ’} //tách MRQ thành tập m câu// // vấn tin đơn quan hệ và một câu vấn. .. hệ cần cho câu vấn tin, sẽ chịu trách nhiệm về các quyết định cục bộ còn lại (chắng hạn việc sắp thứ tứ các nối tại một vị trí) và tạo ra các phương án truy xuất cục bộ cho câu vấn tin Hàm mục tiêu của thể tối ưu hoá trong System R* là hàm tổng thời gian bao gồm cả chi phí xử lý cục bộ và chi phí truyền (xem phần 6.1.1) Đầu vào là câu vấn tin đã cục bộ hóa được diễn tả như một cây vấn tin với vị trí... lược có chi phí khó nhất for mỗi vị trí k có lưu quan hệ cớ mặt trong QT do begin LSk  chiến lược cục bộ (chiến lược, k) send(LSk vị trí k) { mỗi chiến lược cục bộ được tối ưu hóa tại vị trí k} end-for end {R*-QOA} 21 6.4.3 Thuật toán SDD-1 Tóm tắt thuật toán Thuật toán tối ưu hóa SDD-1 có tên là thuật toán leo đồi, được xem là thuật toán xử lý vấn tin phân tán đầu tiên Trong thuật toán này, chúng ta... TỰ NỐI TRONG CÁC VẤN TIN THEO MẢNH 6.3.1 Xếp thứ tự nối Nhắc lại phép nối >J< Cho hai quan hệ R và S nối của R và S được ký hiệu T = R >JJJJ ... + size(R J

Ngày đăng: 21/01/2016, 19:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w