T h u ậ t to á n 1: T huật loán 1 - cấu trúc Cho tnrớc: Đ ồ thị câu hỏi - khung nhìn Cì
S: tổng không gian hạn ch ếBEGIN BEGIN
M = 0 ; /* M = lập các cấu trúc tlã dược chọn */W hile (S(M ) < s j W hile (S(M ) < s j
BEGIN
T im lất cả các lập V iew và Index của một irong các dạng sau: ♦ K . I„|. I,p. sao cho V, Ể M,
fằJị Ể M với 1 < 1, 0 < p < r hoặc
♦ {I.J} sao ch o vi ứng vói I(J 6 M và ltJ * M.
C họn c là lììội trong số các lệp trên mà sinh lợi vể không gian so với M là cực dại.
Đật M = M ^ C; E N D w hile
R eturn M;END; END;
Thuật toán 1 - cấu trúc thực hiện troug niột số bước, mà mõi bước thì chọn tập con của c chứa nhiều nhất r cấu ti úc. c là lập hợp gồm:
- Một view và một số chỉ số tương ứng của nó hoặc - Một chỉ số mà view đã dược chọn ở bước trước.
Vấn đề chính của thuật toán là chọn c ớ mỗi bước sao cho sinh lọi của nó so với M là cực đại.
Đ á n h tiiá tlinât t o á n : Giả thiết có n view trong data cube và mỗi view có nhiều nhất 1 chỉ số. Khi dó thuật toán r - cấu trúc phái thực hiện ở mỗi bước cần tính toán sinh lợi của n * l+ n * ( l / r - l ) lập hợp. Nlur vậy độ phức tạp của thuật toán 1 sẽ là 0 (kmr) trong đó m là số cấu trúc cho trước của đồ ihị G và k là số cấu trúc được chọn trong thuật toán, tr ư ờ n g hợp xấu nhất là bằng s.
B/ Thuât toán tổnti (iuát
Cũng như trên, mỗi bước của thuật toán cần chọn mội lập con c bao gồm: Một view và một số chỉ số dược chọn không bị hạn chế về số krợng hoặc - Một chỉ sô' mà view tương ứng đã dược chọn ở bước trước.
Cần lưu ý là kích thuớc của c sẽ không bị giới hạn bởi r như thuật loàn 1 Mỗi bước của thuật toán phải thực hiện hai phần:
V ớ i m ỗ i v i e w Vj c h ú n g ta x â y d ự n g tập 1G, m à lú c đ ầ u c h ỉ c h ứ a Vj. S a u đ ó b ổ
sung thêm dần các chỉ số vào IG; cho đến khi sinh lợi về không gian của IG|, tập các cấu trúc đã dược chọn, đạt tới cực đại.
Tiếp theo là chọn chỉ số index mà sinh lợi về không gian của view tương ứng so với M đạt được cực đại.
So sánh sinh lợi trên với sinh lợi của c với M, cái nào tốt hơn thì bổ sung vào M. Thuật toán này được mô tả hình thức như sau:
T h u ậ t toán 2: T huật toán lổng quát
C ho trước: Đ ổ thị q u e ry - view G K hô n g gian khống c h ế s B EG IN M = 0 ; /* M = tập các cấu trú c dã dược chọn */ While (S ( M ) < S ) ‘ B E G IN
c = 0 ; /* tập tốt nhất clìứa V iew và một sò Index cho thời điểm xét */ F or V, e M V,
B EG IN
1G = ( V,); /* IG = lập chứa V, và các cấu trúc chọn ra */ W h ile (S(IG ) < S)
B EG IN
C h ọ n IK là chỉ sò của V, m à sinh lợi so với (M IG ) là cực đại; 1G = IG u IÍL;
EN D w hile;
If (B(lG,M)/S(ICi) > B(C,M)/ICI 01 c= 0 then c = ICi;
E N D for F or I(J m à V, e M If (Bd^MVSdiP > B(C,M)/S(C) then c = (Ụ ; M = M u C; E N D w hile R e tu rn M; E N D
Đánlì tĩiá t h u â t t o á n : Độ phức tạp của thuật toán là 0 (k2mr), trong đó m là tổng số cấu trúc của đổ thị G và k là số cấu trúc cực dại de hợp với không gian s, trường hợp xấu nhất là bằng s.
3 . 3 . 3 Kết lu ân
Việc thực hiện các câu hỏi theo OLAP phụ thuộc lất nhiều vào việc tạo lập bảng tổng hợp theo các view trong các kho dữ liêu. Để lãng hiệu quả xử lý các câu hỏi chúng ta có thổ sử dung chỉ sô' hóa (index) trôn các khung nhìn (view ). Thuại toán 1 và thuật toán 2 mô tả cách chọn các view (hay subcube) và các xác đinh chỉ số index cần phải tính toán trước để tăng hiệu qủa xử lý các câu hỏi O LAP đối với KDL.