Cây truy vấn với thuộc tính phân mảnh khác nhau

Một phần của tài liệu (LUẬN văn THẠC sĩ) các thuật toán tô màu tối ưu cho một cây truy vấn và ứng dụng 04 (Trang 46)

Cây truy vấn đầu tiên ở Hình: 2.7 sử dụng điều kiện nối là thuộc tính MSPB nên bảng Nhanvien phải đƣợc phân mảnh lại. Cây truy vấn thứ hai sử dụng điều kiện nối là thuộc tính TP, do đó bảng Phongban phải phân mảnh lại. Để mô hình hoá cho trƣờng hợp này, chúng ta sử dụng tập màu{MSPB, TP} để tô cho nút "phép nối”. Do vậy, việc chọn điều kiện nối có thể ảnh hƣởng đến chi phí nối.

Tƣơng tự đối với các toán tử cảm thuộc tính khác. Chẳng hạn, để gộp nhóm các nhân viên theo thuộc tính MSNV và TP, chúng ta cũng tô màu trƣớc nút (toán tử) GROUP BY bằng tập màu{MSPB, TP}. Một phân mảnh bảo đảm rằng những bộ cùng thoả mãn điều kiện phân mảnh đƣợc đặt cùng vị trí.

Cho trƣớc một tập thuộc tính X, một phân mảnh trên bất kỳ tập con khác rỗng nào của X cũng là một phân mảnh trên X. Cách tổng quát nhất để mô hình hoá cho tình huống này là tô màu trƣớc một toán tử cảm thuộc tính có thuộc tính kép X bằng một tập màu, mỗi màu đại diện cho một tập con (khác rỗng) của X.

Các hàm phân mảnh

Giả sử hai bảng cơ sở cùng đƣợc phân mảnh theo thuộc tính A, nhƣng hàm phân mảnh khác nhau. Chúng ta xem hai thuộc tính là "giống nhau nếu chúng xuất hiện trong một câu truy vấn dƣới hình thức một phép so sánh bằng.

Ví dụ, một bảng đƣợc phân mảnh băm trên thuộc tính A và một bảng khác đƣợc phân mảnh theo khoảng cũng trên thuộc tính A. Chúng ta sẽ biểu diễn trạng thái này bằng hai tập màu khác nhau (chẳng hạn Cl, C2) lên hai bảng, bất kỳ một toán tử cảm thuộc tính nào cần một phân mảnh trên thuộc tính A cũng có thể sử dụng một trong hai phân mảnh này.

2.3. Tô màu tối ƣu cây truy vấn với tính chất vật lý

Chúng ta đã xét chi phí truyền thông do phân mảnh ngang lại dữ liệu và đã xét chi phí thực hiện của một toán tử độc lập với thuộc tính phân hoạch. Trong phần này chúng ta sẽ nghiên cứu chi phí thực hiện chiến lƣợc khi phân mảnh ngang lại dữ liệu các quan hệ.

Chiến lược thực hiện

Mỗi phép toán đại số quan hệ, chẳng hạn phép nối, phép chiếu,... có nhiều cách thực hiện khác nhau dựa trên tính chất vật lý của các toán hạng. Ví dụ nhƣ phép nối có các chiến lƣợc thực hiện nhƣ: nối lặp-lồng, nối-trộn, nối-băm, . . . Tùy thuộc vào tính chất vật lý của các bảng (có đƣợc sắp xếp? có chỉ mục? thuộc tính phân mảnh?...) để chọn chiến lƣợc phù hợp nhất, giảm tối đa chi phí về không gian và thời gian. Nói cách khác, toán hạng đầu vào (bảng đầu vào) phải thỏa mãn yêu cầu về tính chất vật lý nhất định.

Một cách tổng quát, chúng ta sẽ biểu diễn màu bằng một bộ ba <p:a1, s:a2, i:a3> trong đó a1 là thuộc tính phân mảnh; a2 là thuộc tính sắp xếp và a3 là thuộc tính chỉ mục. Nếu có nhiều tính chất vật lý thì có thể tổng quát hoá bằng bộ 4, bộ 5, ...

Chẳng hạn, điều kiện để thực hiện phép nối:

Nhanvien Nhanvien.MSPB = Phongban.MSPBPhongban theo phƣơng pháp nối-sắp trộn là:

Nhanvien: cần có màu <p:MSPB, s:MSPB, i: *>

Phongban cần có màu <p:MSPB, s:MSPB, i: *>, với * là tùy chọn.

Một trong hai bảng Nhanvien và Phongban không thỏa mãn yêu cầu về màu nhƣ trên thì cần chọn chiến lƣợc phù hợp khác hoặc cải tạo màu cho phù hợp với chiến lƣợc nối-sắp-trộn. Việc cải tạo màu (tô màu lại) sẽ phát sinh thêm chi phí.

Kết quả của phép toán, xem nhƣ bảng đầu ra. Mỗi chiến lƣợc nhất định sẽ có một màu nhất định. Trong ví dụ trên, thực hiện theo chiến lƣợc nối-sắp-trộn sẽ cho màu của bảng đầu ra (màu đầu ra) là: <p:MSPB, s:MSPB, i: không>.

Mỗi chiến lƣợc thực hiện sẽ có màu đầu vào ứng với mỗi toán hạng và màu đầu ra. Mỗt toán tử có thể sử dụng nhiều chiến lƣợc khác nhau với chi phí khác nhau.

Ví dụ 2.5:

Cho các lƣợc đồ quan hệ Nhanvien(MSNV, LUONG, MSPB, TP) và Phongban(MSPB , TP). Câu truy vấn sau đây để "Tìm lương trung bình của các nhân viên theo từng thành phố mà những nhân viên này cư trú cùng thành phố với phòng ban họ đặt trụ sở", câu truy vấn SQL:

SELECT N.TP, Avg(N.LUONG) FROM Nhanvien N, Phongban P

WHERE N.MSPB = P.MSPB AND N.TP = P.TP GROUP BY N.TP

Giả sử quan hệ Nhanvien đƣợc phân mảnh theo thuộc tính TP, mỗi lớp đƣợc lƣu trữ và sắp thứ tự theo thuộc tính TP.

Giả sử bảng Phongban đƣợc phân mảnh theo thuộc tính MSPB và mỗi lớp có một chỉ mục theo thuộc tính MSPB. Hình: 2.8, Hình: 2.9 biểu diễn hai cây truy vấn của câu truy vấn đã cho.

Cây truy vấn đầu tiên sử dụng điều kiện nối là thuộc tính MSPB và phân hoạch lại bảng Nhanvien. Do có sẵn một chỉ mục trên bảng Phongban, nên chiến lƣợc nối lặp-lồng là chiến lƣợc có chi phí thấp nhất để nối từng mảnh của bảng Nhanvien (vòng lặp ngoài) với các mảnh tƣơng ứng của nó trên bảng Phongban (vòng lặp trong). Phép nhóm đƣợc cài đặt theo chiến lƣợc nhóm-băm.

Cây thứ hai sử dụng điều kiện nối dựa trên thuộc tính TP và phân hoạch lại bảng Phongban. Do mỗi mảnh của bảng Nhanvien đã đƣợc sắp xếp, nên chọn phƣơng pháp nối sắp-trộn để nối các mảnh tƣơng ứng của Nhanvien và Phongban cho chi phí thấp nhất. Kết quả đầu ra của phép nối sắp-trộn đã đƣợc sắp xếp, nên phép toán nhóm sẽ dùng chiến lƣợc sắp-nhóm.

Một số điểm rút ra:

- Phân hoạch dữ liệu ảnh hƣởng đến chi phí truyền thông. Các tính chất vật lý nhƣ sắp thứ tự, chỉ mục sẽ ảnh hƣởng đến chi phí thực hiện toán tử.

- Chiến lƣợc yêu cầu đầu vào cần đảm bảo một số tính chất vật lý nhất định và kết quả đầu ra lại có tính chất khác. Chúng ta sẽ mô tả các ràng buộc về

Nhanvien Phongban

Hình 2.9: Điều kiện nối là thuộc tính: TP Group By PP_Nhóm: Sắp-nhóm TT_nhóm: TP PP_Nối: sắp-trộn ĐK nối: N.TP = P.TP <p:TP,s:TP,i:không> <p:TP,s:TP,i:không> <p:MSPB,s:không,i:MSPB> Nhanvien Phongban

Hình 2.8: Điều kiện kết nối là thuộc tính MSPB Group By PP_Nhóm: băm Thuộc tính nhóm:TP PP_nối: lặp-lồng ĐK_nối:N.MSPB=P.MSPB <p:TP,s:TP,i:không> <p:MSPB,s:không,i:MSPB> <p:MSPB,s:TP,i:không>

đầu vào - đầu ra bằng các mẫu màu.

- Tổng chi phí sẽ giảm đi nếu đầu vào của chiến lƣợc thực hiện thỏa mãn một số tính chất vật lý mong muốn.

- Nếu tách chi phí thực hiện phép toán thành hai phần: (1) chi phí thực hiện chiến lƣợc và (2) chi phí chuyển đổi đầu vào đáp ứng yêu cầu thì chi phí chuyển đổi đầu vào đƣợc xem nhƣ chi phí tô màu lại. Chi phí này có thể đƣợc tính hoặc không tùy từng trƣờng hợp cụ thể.

2.3.1. Chi phí của cây truy vấn tiền xử lý

Cây truy vấn tiền xử lý là cây truy vấn có thêm chú giải. Mỗi nút trong của cây đƣợc ghi chú chiến lƣợc thực hiện, một màu đầu ra và một màu cho mỗi đầu vào. Mọi nút lá chỉ có màu đầu ra, không có chiến lƣợc thực hiện.

Mỗi chiến lƣợc thực hiện phải chỉ rõ thuật toán dùng để thực hiện một toán tử. Chiến lƣợc đòi hỏi đầu vào thoả mãn một số ràng buộc để đảm bảo cho tính chất của đầu ra. Mẫu màu đƣợc sử dụng để chỉ định ràng buộc vào-ra, có dạng Input1, ...,Inputn, ~ Output , trong đó các Inputj (j=1..n) Output là các

mẫu màu. Một mẫu màu có ký pháp tƣơng tự nhƣ một màu, nhƣng cho phép chúng ta sử dụng biến và các kí hiệu đại diện.

Bảng 2.1 cho thấy các ràng buộc đầu vào-đầu ra đối với một số chiến lƣợc thực hiện phép toán.

Nếu có một vài đầu vào không có màu nhƣ chiến lƣợc mong đợi thì cần phải tô màu lại. Việc tô màu lại đòi hỏi phải phân hoạch, sắp xếp và xây dựng chỉ mục lại.

Chiến lƣợc Output Inputl Input2 Yêu cầu bổ sung

Nối lặp lồng <p:X, s:Y,i:không > <p:X, s:Y, i:*> < p:X, s:*, i:*> Điều kiện nối trên X Nối sắp trộn <p:X, s:Y, i:không > <p:X, s:X, i:*> <p:X, s:Y, i: *> Điều kiện nối trên X Nhóm băm <p:X, s:không, i:không> <p:X, s:*, i:*> X là thuộc tính phân nhóm Nối băm lại <p:X, s:Y,i: không> <p:X. s:Y, i:*> <p:X. s:*, i:*> Điều kiện nối trên X Nhóm trộn <p:X, s:X, i:không> <p:X, s:X, i:*> X thuộc tính phân nhóm Giao băm <p:X, s:kbông, i:không> <p:X, s:*,i:*> <p:X, s:*,i: *>

Bảng 2.1:Các ví dụ về ràng buộc Đầu vào-Đầu ra

Ví dụ 2.6:

Bảng Nhanvien trong ví dụ 2.1 có màu đầu ra <p:TP, s:TP, i: không>, bảng Phongban có màu đầu ra là <p:MSPB. s:không, i:MSPB>. Câu truy vấn ở hình 2.8, chiến lƣợc sử dụng nối-lặp-lồng và kết quả đầu ra có màu <p:MSPB, s:TP, i:không>. Từ hàng đầu tiên của bảng 2.1 nhận thấy màu của Input1(Nhanvien) nên là <p:MSPB, s:TP, i:*>, màu của Input2(Phongban) nên là <p:MSPB, s:*, i:MSPB>. Nhƣ vậy, màu của Phongban thoả mãn yêu cầu đầu vào của chiến lƣợc nối-lặp-lồng nhƣng Nhanvien thì không thoả mãn.

chi phí cổ điển sẵn có. Mô hình chi phí cổ điển gồm hai phần: (i) ƣớc lƣợng các thông số thống kê (nhƣ kích thƣớc, số lƣợng giá trị duy nhất trong một cột, ...) của các kết quả trung gian. (ii) ƣớc lƣợng chi phí một toán tử dựa vào tính chất vật lý và thống kê của các toán hạng có trƣớc.

Các ký hiệu

Rs là bảng R với tính chất thống kê s. Rs chỉ phụ thuộc vào nội dung của bảng R mà không phụ thuộc vào cách thức lƣu trữ vật lý của R.

Recolor(Rs , Cold, Cnew) là chi phí tô màu lại bảng R từ màu Coldthành Cnew

InputCol(s, A, j) là mẫu màu cần cho chiến lƣợc s với đầu vào thứ j để đƣợc kết xuất mẫu màu A.

StrategyCost(s, Rl. Rr) là chi phi thực hiện phép nối RlRr bằng chiến lƣợc s.

Ví dụ 2.7:

Màu của Input1 cần cho chiến lƣợc nối-lặp-lồng trong truy vấn đầu tiên ở Hình: 2.8 là Cnew = <p:MSPB, s:TP, i:*>. Do màu đầu ra (gọi là Cold của Nhanvien khác với thuộc tính phân hoạch (TP) nên Recolor(Nhanvien, Cold , Cnew) là chi phi phân mảnh lại bảng Nhanvien dựa trên thuộc tính này.

Chi phí của cây truy vấn tiền xử lý là tổng chi phí của tất cả các toán tử. Chi phí của một toán tử bao gồm chi phí đổi màu đầu vào của toán tử, cộng với chi phí thực hiện chiến lƣợc.

Giả sử gốc của cây truy vấn T sử dụng chiến lƣợc s có màu đầu ra là A.

Gọi c'j = inpCol(s, A, j) là màu của đầu vào thứ j mà chiến lƣợc s đòi hỏi. Giả sử

T k cây con T1, T2,...,Tk sao cho Tj tạo ra bảng Rj với màu cj . Khi đó chi phí của cây truy vấn chú giải T đƣợc tính nhƣ sau[1][2]:

2.3.2. Thuật toán tách màu mở rộng

Chúng ta sẽ trình bày một mở rộng của thuật toán ColorSplit đã đƣợc giới thiệu ở mục 2.2.1. Cho cây truy vấn T với màu của các nút lá. Hãy tìm một chiến lƣợc tô màu có chi phí nhỏ nhất cũng nhƣ màu đầu vào, màu đầu ra của mỗi nút trong của cây T.

Định nghĩa 2.1

OptcStrategy(i, A) là chiến lƣợc thực hiện với chi phí cực tiểu cho

Optc(i,A) (nếu có nhiều chiến lƣợc thì chọn lấy một chiến lƣợc). OptcStrategy(i, A) không định nghĩa cho nút lá.

Định nghĩa 2.2

Strategies(i, A) là tập hợp các chiến lƣợc có thể áp dụng cho phép toán đƣợc biểu diễn bởi nút i và ràng buộc về đầu vào-đầu ra của nó cho phép A nhƣ

       k j j k j j j s j s k s R recolor R c c Cost T R s st StrategyCo T Cost 1 1 , 1,..., ) ( , , ) ( ) , ( ) (

Bổ đề dƣới đây là trƣờng hợp tổng quát của Bổ đề 2.3. Giả sử nút i có các nút con l, 2,...,k và cây con có gốc tại j tạo ra kết xuất là bảng Rj, 1≤ j ≤k. Chi phí thấp nhất của cây con có gốc tại i sao cho i có màu đầu ra A có thể thu đƣợc bằng cách thử tất cả các chiến lƣợc có thể để tạo ra đầu ra có màu A. Bổ đề sẽ cho thấy rằng với chiến lƣợc s bất kỳ, chi phí thấp nhất đạt đƣợc do cực tiểu hoá chi phí của mỗi đầu vào riêng biệt.

Bổ đề 2.4[1][2]

Cho cây truy vấn T,i là một nút trên T. Chi phí tô màu tối ƣu cây con gốc

i sao cho i có màu đầu ra A, ký hiệu Optc(i, A), đƣợc xác định bởi các công thức dƣới đây.

- Trường hợp i là nút lá,

- Trường hơp i không phải là nút lá, Optc(i, A) đƣợc tính theo công thức truy hồi sau:

Optc(i, A) = minsS[StrategyCost(s, Rls, ..., Rks) +

Trong đó, S = Strategies(i, A)OptcStrategy(i, A) là chiến lƣợc thực hiện chi phí cực tiểu Optc(i, A). C là một tập màu mà các cây con gốc tại j có thể nhận. Thuật toán dƣới đây để tính Optc OptcStrategy.

Thuật toán ExtendedColorSplit

Input: Cây truy vấn T với màu của các nút lá, tập màu C.

Output: Chiến lƣợc tô màu có chi phí tối thiểu.

Method

1. For mỗi nút i theo thứ tự hậu tố Do bƣớc 2

2. For mỗi màu aC Do dùng bổ đề 2.4 để tính Optc(i, a)

OptcStrategy(i, a);

3. Xem r là gốc và a là màu sao cho Optc(r, a) ≤ Optc(r, c) với mọi màu

cC;

4. Màu tối ƣu cho r a và chiến lƣợc tối ƣu là OptcStrategy(r, a);

5. For mỗi nút không là nút gốc theo thứ tự tiền tố Do bƣớc 6 6. Tính màu tối ƣu và các chiến lƣợc bằng cách áp dụng bổ đề 2.4;

End.

Thuật toán này có thời gian thực hiện trong trƣờng hợp xấu nhât là nS|C|2

trong đó S là số chiến lƣợc. |C| là số màu đƣợc phép còn n là số nút của cây.

0 nếu i có màu tương thích với A Optc(i, A) =  trƣờng hợp khác ))]] , , ( , , ( ) , ( [ min 1 j A s inpCol c R or recol c Optc s j k j j C c     

Bởi vì n S thƣờng bé nên thời gian thi hành của thuật toán chủ yếu phụ thuộc vào |C|. Có thể giữ cho |C| thật nhỏ bằng hai nhận xét sau:

(1) Không có chiến lƣợc nào tạo ra quan hệ kết xuất có chỉ mục. Do vậy, chỉ mục có 2 thành phần trong bộ 3 thành phần màu là cần thiết cho các nút trong.

(2) Chỉ xem xét những màu có ích cho giai đoạn sau.

2.4. Kết chƣơng

Trong chƣơng 2, tác giả nghiên cứu, trình bày về tối ƣu hóa truy vấn, mô hình chi phí tối ƣu hóa. Trọng tâm của chƣơng, tác giả tập trung nghiên cứu, trình bày các thuật toán tô màu tối ƣu cho cây truy vấn. Thuật toán tách màu (ColorSplit) tìm màu tối ƣu (màu A) cho nút gốc (nút i), sau đó tách nút i thành k nút, kết quả nhận đƣợc là k cây con gốc i đƣợc tô màu A, chi phí tô màu k cây con cũng nhƣ cây ban đầu là Optc(i, A). Nghiên cứu mở rộng thuật toán ColorSplit với cách sử dụng tập màu cho từng bài toán cụ thể. Tiếp đến trình bày Thuật toán tô màu với các tính chất vật lý của các bảng cơ sở. Việc tô màu là việc tìm chiến lƣợc tối ƣu thực hiện truy vấn và cải tạo màu đầu vào để thỏa mãn tính chất đầu ra. Chiến lƣợc đƣợc chọn phụ thuộc vào các tính chất của các quan hệ đầu vào.

Chƣơng 3 : ỨNG DỤNG THUẬT TOÁN TÔ MÀU TỐI ƢU CÂY TRUY VẤN VÀO BÀI TOÁN QUẢN LÝ PHẠM NHÂN

Với đặc thù của công tác quản lý, giam giữ phạm nhân, theo dõi giám sát quá trình cải tạo của mỗi phạm nhân, Bộ Công an phân chia phạm nhân theo các tiêu chí nhƣ địa giới hành chính, vùng miền, đặc thù về mức độ phạm tội và tội danh đảm bảo công tác giam giữ, cải tạo phù hợp, an toàn cho mỗi đối tƣợng thuận lợi cho quản lý, giáo dục đào tạo nghề tái hòa nhập cộng đồng. Dữ liệu về phạm nhân về cơ bản đã đƣợc phân lớp, phân mảnh, phân tán ở các trại giam. Cơ sở dữ liệu quản lý phạm nhân rất phù hợp để ứng dụng các thuật toán đã trình bày ở chƣơng 2 cho các câu truy vấn thƣờng dùng, truy vấn đặc thù của cơ quan quản lý phạm nhân và lãnh đạo chỉ huy các cấp trong Bộ Công an.

Một phần của tài liệu (LUẬN văn THẠC sĩ) các thuật toán tô màu tối ưu cho một cây truy vấn và ứng dụng 04 (Trang 46)

Tải bản đầy đủ (PDF)

(65 trang)