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 461 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 343,66 KB

Nội dung

Quy trình ngẫu nhiên hoá như sau: Trước tiên một hoặc nhiều QEP khởi đầu được xây dựng trực tiếp theo ý thích chủ quan, sau đó cải thiện phương án bằng cách thăm dò các lân cận của QEP

Trang 1

CHƯƠNG VI

TỐI ƯU HOÁ VẤN TIN PHÂN TÁN

PGS.NCVC.TS LÊ HUY THẬP

Trang 2

Hình 2.3b Quan hệ PROJ

MontrealNew YorkNew YorkParis

150000135000250000310000

InstrumentationDabatase DevelopCAD/ CAM

Maintenance

P1P2P3P4

LOC BUDGET

PNAME PNO

Hình 2.3a Quan hệ EMP

Elect EngSyst AnalMech.EngProgrammerSyst.Anal Elect.Eng Mech.EngSyst Anal

J.Doe

M SmithA.LeeJ.MmithB.CaseyL.ChuR.DavidJ.Jones

ENO

Hình 2.3c Quan hệ PAY

40000340002700024000

Hình 2.3c Quan hệ ASG

1224610481824483640

ManagerAnalystAnalystConsultantEngineerProgrammerManagerManagerEngineerManager

P1P1P2P3P4P2P2P4P3P3

E1E2 E2E3E3E4E5E6E7E8

DUR RESP

PNO ENO

Trang 3

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 là một tập các cây toán tử tương đương, có được bằng cách

áp dụng các qui tắc biến đổi Để nêu bật các đặc trưng của thể tối ưu hoá vấn tin, chúng ta thường tập trung nghiên cứu các cây nối (Join tree) là loại cây toán tử với các phép toán nối hoặc phép toán tích Descartes hoặc 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 đang tham gia một dự án nào đó”

SELECT ENAME FROM EMP , ASG , PROJWHERE (EMP.ENO = ASG.ENO) AND (ASG.PNO = PROJ.PNO)Câu vấn tin này sinh ra ba cây nối tương đương ở hình 6.1–2 (Thực ra có thể có có tới n! cây)

JoinPNO

JoinENO

JoinENO

JoinPNO

JoinENO, PNO

Hình 6.1–2 Các cây nối tương đương

Trang 4

Việc dùng qui hoạch động và các phương án trên bảo đảm tìm ra tất cả các QEP tuy nhiên với chi phí cao, vì thế người ta đang 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 của tối ưu hoá, nhưng tất nhiên là không đảm bảo tìm được phương án tối ưu toàn cục

Ngẫu nhiên hoá Quy trình ngẫu nhiên hoá như sau:

Trước tiên một hoặc nhiều QEP khởi đầu được xây dựng trực tiếp (theo ý thích chủ quan), sau đó cải thiện phương án bằng cách thăm dò các lân cận của QEP đã có, ví

dụ ở hình 6.1–5 là một cách biến đổi điển hình bằng cách hoán đổi hai quan hệ toán hạng được chọn ngẫu nhiên từ QEP hình 6.1-5(a) sang QEP hình 6.1-5(b)

6.1.2 Các chiến lược tìm kiếm

Trang 5

Hình 6.1–4 X.dựng tối ưu hoá một

cách đơn định kiểu Q.hoạch động

R2 R1

R2 R1

thể tối ưu hoá trong chiến

lược ngẫu nhiên hoá

Trang 6

6.1.3 Mô hình chi phí phân tán

Hàm chi phí là một loại chi phí nào đó, nếu hiểu theo thời gian thì hàm chi phí có thể là:

Total_Time = TCPU #insts + TI/O  I/Os + TMSG  #msgs + TTR  #bytesHai thành phần đầu là thời gian xử lý cục bộ, trong đó

TCPU là thời gian xử lý một chỉ thị (lệnh) của CPU và #insts là số chỉ thị;

TI/O­ là thời gian cho một xuất, nhập đĩa và I/Os số lần xuất nhập đĩa;

TMSG là thời gian cố định để khởi hoạt và nhận một thông báo #msgs là số thông báo;

TTR là thời gian cần để truyền một đơn vị dữ liệu từ vị trí này sang vị trí khác, đơn vị dữliệu ở đây tính theo byte, #bytes là số byte dữ liệu, nhưng cũng có thể tính theo những đơn

vị khác

Tác nhân chính ảnh hưởng đến hiệu qủa hoạt động của một chiến lược là kích thước các quan hệ trung gian Khi phép toán tiếp theo nằm tại một vị trí khác, quan hệ trung gian phải được di chuyển đến đó Vì thế phải biết kích thước của các kết quả trung gian của các phép toán đại số quan hệ

6.1.3.2 Số liệu thống kê CSDL

6.1.3.1 Hàm chi phí (hàm mục tiêu)

Trang 7

Ví dụ 6.2-1 "Cho biết tên của các nhân viên đang làm việc trong dự án CAD/CAM” Câu SQL như sau:

q1 : SELECT EMP.ENAME FROM EMP , ASG , PROJ

WHERE EMP.ENO=ASG.ENO

AND PROJ.PNO = ASG.PNOAND PNAME = "CAD/CAM”

Cách thực hiện q1 như sau:

Chọn PNAME = "CAD/CAM”, trong PROJ (Thấy rằng chỉ có một kết quả của PNAME =

"CAD/CAM" với mã P3) Từ phép nối PROJ.PNO= ASG.PNO thấy rằng trong ASG, ứng với P3, có E3, E7 và E8 của ENO

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 được sử dụng cho CSDL tập trung và phân tán: INGRES và System R

6.2.1 Thuật toán INGRES

Cuối cùng từ quan hệ EMP, qua phép nối ASG.ENO = EMP.ENO cho ta có kết quả

EMP.ENAME = {A.Lee , R.David , J.Jones}, do E3A.Lee , E7  R.David và E8 J.Jones

Trang 8

Phép tách Tách các phép chọn, q1 được thay bởi q11 và q', trong đó JVAR là một quan

hệ trung gian

q11: SELECT PROJ.PNO INTO JVAR FROM PROJ

WHERE PNAME = "CAD/CAM"

Kết quả trong JVAR chỉ có P3

q ' : SELECT EMP.ENAME FROM EMP, ASG , JVAR

WHERE EMP.ENO = ASG.ENO AND ASG.PNO = JVAR.PNO

Bây giờ q' được tách ra q12 và q13 như sau:

q12: SELECT ASG.ENO INTO GVAR FROM ASG , JVAR

WRERE ASG.PNO = JVAR PNO

Kết quả trong GVAR chỉ có E3, E7 và 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 sẽ thực hiện các phép toán đơn quan hệ và cố gắng giảm thiểu kích thước

của các kết quả trung gian bằng cách xếp lại thứ tự các phép toán hai quan hệ

Kí hiệu qi-1qi để chỉ q được chia thành qi-l và qi, trong đó qi-1 được thực hiện trước và kết quà sẽ được qi sử dụng

Trang 9

Cho câu vấn tin q có n quan hệ, INGRES phân rã q thành n câu vấn tin con q1 q2 …

 qn Phân rã này sứ dụng hai kỹ thuật cơ bán: tách và thay thế

Tách là kỹ thuật chuyển câu vấn tin q thành q'  q“, q‘ được xử lí trước và kết quả đưa cho q” xử lí tiếp Nếu câu vấn tin q được biểu diễn bằng 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 và A’i là các danh sách thuộc tính của quan hệ Ri, p1 là vị từ có chứa các thuộc tính của quan hệ R1, và p2 là vị từ đa quan hệ có chứa các thuộc tinh của các quan hệ R1, R2,…, Rn

Câu vấn tin dạng này có thể được 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)

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 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ệ) không thể tách tiếp được nữa (chẳng hạn q12 và q13 trong

ví dụ 6.2-1) được gọi là bất khả giản

Các vấn tin bất khả giản được biến đổi thành câu vấn tin đơn quan hệ nhờ phép thế bộ như sau

Trang 10

Cho câu vấn tin q có n-quan hệ, 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 câu vấn tin (n-1)–biến

Phép thế bộ được tiến hành như sau:

Trước tiên chọn một quan hệ trong q để thay thế Gọi R1 là quan hệ đó Với mỗi bột1i trong R1, các thuộc tính được tham chiếu trong q được thay bằng các giá trị thực sựtrong t1i, tạo ra một câu vấn tin q’ có (n - l) quan hệ Vì vậy tổng số câu vấn tin q’ được sinh ra hởi phép thế bộ là card(R1) Như vậy:

q(R1, R2,…,Rn) được thay bằng {q(t1i, R2,…,Rn) | t1i  R1)}

Vì thế đối với mỗi bộ thu được, câu vấn tin con được xử lý đệ qui bằng phép thế nếu

nó 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 là 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 quả trong GVAR chỉ có E3, E7 và E8 tương ứng với 3 bộ Còn trong EMP có 8 bộ(xem CSDL_MAU)

Phép thế bộ

Trang 11

Quan hệ được định nghĩa bởi biến GVAR chỉ có thuộc tính ENO và dom(ENO) là E3, E7 và E8 Phép thế cho GVAR tạo ra ba câu vấn tin con đơn quan hệ:

q131: SELECT EMP.ENAME FROM EMP WHERE EMP.ENO = "E3”

q132: SELECT EMP.ENAME FROM EMP WHERE EMP.ENO = "E7"

q133: SELECT EMP.ENAME FROM EMP WHERE EMP.ENO = "E8"

Các câu vấn tin q131, q132, q133 sẽ do OVQP xử lý

Nội dung thuật toán INGRES

Thuật toán INGRES được gọi là INGRES-QOA dùng để xử lý đệ qui các câu vấn tin Thuật toán áp dụng các phép chọn và các phép chiếu ngay khi có thể bằng kỹ thuật

tách

Kết quả:

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 ít nhất

Các vấn tin đơn quan hệ được tạo ra sẽ do OVQP xử lý

Trang 12

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 tin đa quan hệ//

For i = 1 to m DoBegin2

Output’ = run(ORQi) //thực hiện ORQi}

Output = Output  Output’ //trộn tất cả các kết quả lại//

End Begin2Next i

R = CHOOSE _VARIABLE(MRQ’) //R được chọn cho phép thế bộ//

For Each t In R Do //t là biến bộ//

Begin3MRQ” = 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//

End Begin3Next t

End-if

End Begin1 //INGRES–QOA//

Thuật toán 6-1 INGRES – QOA (Tự đọc TL)

Trang 13

Vào của System R là cây toán tử Ra là phương án thực hiện (cây toán tử tối ưu).

Tập các chiến lược khác nhau được xây dựng động, khi hai cây nối tương đương nhau thì cây 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ỏ ngay khi có thể

Thuật toán tối ưu hóa bao gồm hai bước chính

1 Dự đoán phương án có chi phí thấp nhất để truy xuất đến mỗi quan hệ dựa trên một vị từ chọn

2 Đối với mỗi quan hệ R, thứ tự nối tốt nhất sẽ được ước lượng, trong đó trước tiên R

sẽ được truy xuất bằng cách sử dụng phương pháp truy xuất đơn quan hệ tốt nhất của

nó Thứ tự có chi phí thấp nhất trở thành cơ sở cho phương án thực hiện tốt nhất

6.2.2 Thuật toán System R

Khi nối hai quan hệ, quan hệ được đọc trước gọi là quan hệ ngoại cảnh, quan hệ còn lại là quan hệ có các bộ cần tìm dựa theo các giá trị có được từ quan hệ ngoại cảnh được gọi là quan hệ nội sự

Chọn phương pháp nối ở đây là chọn đường truy xuất có chi phí thấp nhất đến nội sự

Phương pháp thứ nhất, được gọi là vòng lồng nhau, tạo ra tích của hai quan hệ Đó

là với mỗi bộ của ngoại cảnh, từng bộ của nội sự thỏa vị từ nối sẽ được truy xuất lần lượt để tạo ra quan hệ kết quả

Phương pháp thứ hai được gọi là nối trộn, trộn hai quan hệ đã được sắp xếp theo thuộc tính nối Chỉ mục trên thuộc tính nối có thể được sử dụng làm đường truy xuất

Tóm tắt thuật toán System R

Trang 14

Phiên bản đơn giản của thuật toán System R cho câu vấn tin chọn chiếu - nối này có hai vòng:

Vòng 1 chọn ra đường truy xuất một quan hệ tốt nhất đến mỗi quan hệ trong câu vấn tin.Vòng 2 kiểm tra tất cả các hoán vị có thể có của các thứ tự nối (có n! hoán vị cho n quan hệ) và chọn ra chiến lược truy xuất tốt nhất cho câu vấn tin Các hoán vị được tạo ra bằng cách xây dựng động một cây các chiến lược khác nhau Trước tiên cần xét nối của mỗi quan hệ với mỗi quan hệ khác, sau đó là các nối của ba quan hệ, tiếp tục cho đến khi nối n quan hệ đều tối ưu Thực sự thuật toán không tạo ra tất cả các hoán vị có thể có bởi vì một 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 các chiến lược cần kiểm tra có cận trên là 2n

Kí hiệu nối là >J<, nối nửa là J<

Vào: QT là cây vấn tin có n quan hệ

Ra: là kết quả thực hiện

Thuật toán 6-2 R_QOA (Tự đọc Tài liệu)

Vào: QT là cây vấn tin có n quan hệ

Ra: là kết quả thực hiện

Begin

For m ỗi quan hệ Ri  QT Do

For mỗi đường truy xuất AP ij đến Ri Do

Trang 15

xác định cost(APij)

End-for

best_APi  APij có chi phí nhỏ nhất

End-for

For mỗi thứ tự (Ri1, Ri2 ,…, Rin) với i = 1,2,…, n! Do

Xây dựng strategy( .((best_APil >J< Ri2) >J< Ri3) >J< >J< Rin) tính chi phí của strategy

Cho hai quan hệ R và S nối của R và S được ký hiệu T = R >J<FS là một quan hệ con

F là vị từ nối được định nghĩa như sau:

6.3.1 Xếp thứ tự nối

Trang 16

R S

Nếu size(R) > size(S)

Nếu size(R) < size(S)

Hình 6.3-1 Tuyền các toán hạng trong phép toán hai ngôi

Ví dụ 6.3-1

Xét câu vấn tin được biểu diễn bằng đại

số quan hệ sau:

PROJ >J<PNO EMP >J<ENOASG

Với đồ thị nối được trình bày trong hình

6.3-2 Câu vấn tin này có thể được thực

hiện ít nhất là bằng năm cách khác nhau

Chúng ta mô tả những chiến lược này

bằng những chương trình sau, trong đó (R

 vị trí j) biểu thị quan hệ R được truyền

phân tán

1 EMP  vị trí 2 Vị từ 2 tính EMP’ = EMP >J< ASG và

EMP'  Vị trí 3 Vị trí 3 tính EMP’ >J< PROJ

2 ASG  vị trí 1 Vị trí 1 tính EMP' = EMP >J< ASG và

EMP'  vị trí 3 Vị trí 3 tính EMP >J< PROJ

3 ASG  vị trí 3 Vị trí 3 tính ASG' = ASG >J< PROJ và

ASG'  vị trí 1 Vị trí 1 tính ASG’ >J< EMP

4 PROJ  vị trí 2 Vị trí 2 tính PROJ' = PROJ >J< ASG và

PROJ'  vị trí 1 Vị trí 1 tính PROJ' >J< EMP

5 EMPvị trí 2 PROJvị trí 2 Vị trí 2 tính EMP >J< PROJ >J< ASG

Trang 17

Để chọn ra một P.án trong số này, chúng ta phái biết hoặc dự đoán được các kích thước: size(EMP), size(ASG), size(PROJ), size(EMP>J<ASG) và size(ASG>J< PROJ) Hơn nữa nếu xét cả thời gian đáp ứng, việc tối ưu hóa phải tính cả truyền dữliệu (có thể thực hiện song song trong 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 là J<, là phép toán không giao hoán Gọi F là vị

từ nối còn A là tập thuộc tính của R Thì nối nửa

Bỏ qua hằng TMSG trong thời gian truyền khi gíả thịết là toán hạng TTR*size(R) lớn hơn

nó rất nhiếu Chi phí của thuật toán dựa trên nối là chi phí truyền quan hệ R đến vị trí 2 Chi phí của thuật toán dựa trên nối nửa là chi phí của các bước 1 và 3 ở trên Vì thể phương pháp nối nửa sẽ là tốt hơn nếu:

size(A(S)) + size(R J<AS) < size(R)

Trang 18

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, vị trí và kích thước của mỗi mảnh) Giống như trong phiên bản tập trung 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 D-INGRẸS-QOA, ở thuật toán 6-3 sau

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

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

Thuật toán 6-3 D-INGRES-QOA(Tự đọc Tài liệu)

Trang 19

(Thuật toán 6-3 D-INGRES-QOA Tự đọc)

Begin

For mỗi ORQi khả tách trong MRQ Do //chạy tất cả các vấn tin một quan hệ//

Run(ORQi ) ; //(1) End-for

MRQ'-list  REDUCE(MRQ) // MRQ’ gồm các vấn tin bất khả giản (2)//

While n  0 Do // n là số vấn tin bất khả giản ( 3 ) //

di chuyền mảnh F đến vị trí S End-for

n  n - 1 End-while //Kết quả của MRQ' cuối cùng//

End //D-INGRES-QOA//

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