Lý phan lu ll true I It yen O I.A I'

Một phần của tài liệu Khai thác dữ liệu và xử lý phân tích trực tuyến (Trang 63)

Trong mỗi trường hợp chúng ta liệt ké các thuộc tính khóa tìm kiếm như là chỉ số với subcube: (p,s), mà trong đó index dược xây dựng được lưu ý đặt trong dấu ngoặc. Mỗi lập con các thuộc tính của một quan sát (view), chúng ta có thổ xác định một chỉ số theo một thứ tự nào dó. Như vật các chí số có thể của một khung nhìn (view) với m thuộc tính là:

Như vậy, sô các chỉ sô là quá lớn. Nói chung, chỉ sỏ có thể hỗ trợ trà lời các câu hỏi uổ xử lý dữ liệu nhanh, chính xác thì phải xử lý trước về các lát cắt khi một tiền tố (prefix) của các thuộc tính dược chỉ số hóa iưưng ứng những thuộc tính lựa chọn (Selection Attribute) trong câu hỏi hay chí số hóa các killing nhìn vào KDL.

3 . 3 . 1 . 4 Q uan h ệ tính to á n và phụ th u ô c

Giữa các câu hỏi (queries) và các khung nhìn (views) chúng ta định nghĩa quan hệ tính toán « như sau:

Với môi câu hỏi Q và khung nhìn V:

Q « V nếu kết quả của Q (câu trá lời) tính toán dược mà ch ỉ sứ (lụng các bộ (tuples) có trong V. Q dược trả lời trong V.

Ví du 2 : Xét câu hỏi Q! - yt.ôs từ KDL ở ví dụ 1. Câu hỏi này có thể tính toán (trả lới dược) trong view Vị = sc và cũng có thể trong view V2 = psc. Vậy:Q| « Vị, và Q,« v 2.

Nhưng Vị sẽ không có câu trả lời trong V-, = pc. Chúng ta định nghĩa quan hệ thứ tự bộ phận < đối với các view như sau:

V I < V 2 khi và ch ỉ khi tập các tliuộc lính của V7 ! là lập con của tập các thuộc tính của V2- V\ hẹp hơn V 2.

Theo định nghĩa thì tất nhiên ta có part < part; và part < (part, customer), nhưng part < customer và ngược lại cũng vậy.

Tập hợp các subcube của data cube tạo ra dàn xác định trên < sẽ dược gọi là quan hệ phụ thuộc của các view. Ví du, các suhcnbe của data cube đã nêu ở ví dụ 1 cùng với quan hệ <, tạo thành dàn các subcube của một CSDL như sau:

Iĩl 1

pcs

trong đó non là tập rỗng.

Chúng ta dễ dàng nhận thấy: nếu Vị < V2 và Q, « V ị , thì Qi « v 2> nghĩa là tổn tại quan hệ phụ thuộc giữa Vị với v 2, và quan hệ lính toán giữa Qị với các view đó. Có thể sử dụng đồ thị dể mô tả cho quan hệ tính toán dược định nghĩa ở trên, trong đó tập đỉnh là tất cả các câu hỏi và các view của mội data cube. Nếu câu hỏi Q tính toán được trong view V thì ta vẽ cạnh nối Q với V và bổ sung cạnh đó vào trong E. Mỗi cạnh (Q,V) lại có thể có trọng số f - chính là phí tổn (cost - thường là thời gian) để trả lời Q trong view V.

Vấn đé là chúng ta tìm cách xây dựng cách đánh chỉ số trên khung nhìn V để sao cho có được câu trả lời nhanh hơn khi phân tích dĩr liệu trực tuyến. Chỉ số đó phải không ảnh hưởng đến kết quả tính toán trong mọi cách, nhưng nó làm tăng tốc độ tính toán để xác định câu trả lời.

Để tiện lợi cho ký hiệu và xử lý. Chúng ta có thể gộp chỉ số i vào cùng với cost phải mất để trả lới câu hỏi Q khi sử dụng V thành một cặp nhãn cho mỗi cạnh (Q,V).

Từ những phân tích trên, chúng ta có thể tổng quát hóa công thức đánh giá cost những câu trả lời cho câu hỏi Q Khi sử dụng view V và chỉ số J.

Giả thiết Q là câu hỏi yAôB trong đó A và B là các tập về chiều. B = 0 khi và chỉ khi Q là câu hỏi về subcube, và B = 0 nghĩa là dề cập đến tất cả các chiều.

Giả thiết V là view c . Nếu Q « V, thì A u B C c , c = 0 ký hiệu cho view non - view rỗng (phần tử nhỏ nhất trong dàn các view).

Giả thiết J là chỉ số ID(V) và D là một thứ tự của các thuộc tính. D =<> (dãy trống) ký hiệu trường hợp không sử dụng chỉ số.

Ký hiệu E là tập con lớn nhất của B sao cho các thuộc tính của E tạo thành tiền tố (prefix) của D (không cần thiết phải thực sự). Cost của câu trả lời cho Q khi sử dụng V có sử dụng chỉ số J sẽ đuợc xác định Iìhư sau:

C ( 0 V J) - (*)

l(E)l 1

Trong đó l(C)l và l(E)l ký hiệu số các dòng của các bảng dữ liệu tương ứng với view c và E.

Công thức trên luôn tính được trong mọi trường hợp. Trường hợp E = 0 , nghĩa là không có chỉ số được đánh với V, hoặc Q là câu hỏi về subcube, khi đó 101 = 1 do vậy C(Q,V,J) = IVI, nghĩa là chúng ta phải xử lý tất cả các dòng trong V mới có được câu trả lời cho Q.

Chúng ta hãy xét ví dụ về CSDL quản lý hàng bán ra với view V = (p,s,e) bao gồm 6 triệu dòng, câu hỏi Q = y^ôp, và chỉ số J = Istp trên subcube (p,s,c). ở đây c = (p,s,c) và E = (s), bởi vì tập con lớn nhất tạo thành tiền tô' của scp là s. Giả thiết bảng s có 0.01 triệu dòng. Theo công thức thì:

C ( Q ,V ,J ) = ..- 4 ^ v 0 .0 1 tr.

3 . 3 . 2 T h u ậ t to á n c h ọ n v ie w và in d ex

Đổ thực hiện thuật loán chúng ta cần biết cụ thể những (hông tin sau: - Kích thước của các view,

- Kích thước của từng chỉ số, (adsbygoogle = window.adsbygoogle || []).push({});

- Với mỗi bộ 3: (query, view, index), cost của câu Irả lời c(Q ,V,Y ) là bao nhiêu. Ở trên chúng ta đã dưa ra công thức (*) để tính C(Q,V,J). Vấn đề còn lại ở đây là cần xác định cụ thể kích thước của từng view và từng index. Đây không phải là vấn đề đơn giản vì kích thước của chúng thường rất lớn.

[1] Ư ố c tín h k ích th ư ớ c củ a m ỗ i v iew

Có nhiều cách xác định kích thước của view mà không cần thiết phải cụ thể cụ thể hóa tất cả các view. Chúng ta có thể sử dụng phương pháp phân tích và lấy mẫu để xác định kích thước của view từ nhiều view khác m à chúng ta chỉ cần cụ thể hóa phần tử Vị lớn nhất (view chứa tất cả các chiều) trong dàn các view. Với một view, nếu các

thuộc tính nhóm lại mà độc lập tĩnh, thì chúng ta có thể xác định theo phương pháp giải tích theo kích thước của view. Ngược lại có thể dùng mẫu Vị để tính kích thước của các view khác. Kích thước của một view là số các giá trị khác nhau của các thuộc tính m à chúng được nhóm lại.

[2] Ư ớc tính kích th ư ớ c củ a ch ỉ s ô Index

Cho trước kích thước của mỗi view, chúng ta hãy tính kích thước của chỉ số tương ứng. Thông thường kích thước của view trong mô hình của chúng ta là số dòng trong view đó. Kích thước của Index (B-cây) là sô' các lá của B-cây theo cách đánh chỉ số Index. Mặt khác số các nút lá của B-cây cho một Index thì xấp xỉ số dòng của một view tương ứng. Vậy chúng tu có kết luận: Kích thước của một chỉ số Index trên view V cũng là kích thước của bản thân view V.

Chúng ta hãy xét hai Index J| = IA(V) và J2 = Tịj(V) đối với cùng mội view V. Nếu B là tiền tố thực sự của A thì C(Q,V,Jị) < C(Q,V,J2) với mọi câu hỏi Q.

Mạt khác, kích thước của J| và J2 là cùng xấp xi’ với một kích thước của một view theo cùng một độ chính xác, cho nên chúng ta có bỏ J2 mà chỉ xét J|. Như vậy là với từng view, chúng ta chỉ cần chọn chí số dài nhất (béo nhất) để xử lý: đó là những chỉ số m à các thuộc tính khóa tìm kiếm của nó không phải là tiền tố thực sự của các thuộc tính tìm kiếm cúa các Index khác trong cùng một view.

Nếu V là view (C), thì tập các chỉ số Index sẽ là {IU(V) I D là một hoán vị của C ) .

[3] X á c đinh b ài to á n

Như ở trên đã nêu, nhiệm vụ của chúng ta là xây dựng các thuật toán để chọn các view và Index cụ thể đổ trả lời cho những câu hỏi đặt ra đối với một data cube cho trước. Một cách không hình thức, cho trước một tập các view, mỗi view lại xác định một tập các Index, và một tập các câu hỏi mà hệ thống (HT) cần phải trả lời. Mục đích của chúng ta là chọn view và Index trong số đó dể có được câu trả lời cho các

c â u h ỏ i v ớ i c o s t th ấ p n h ấ t với m ộ t đ iề u k iệ n r à n g b u ộ c là tập c á c view v à tập c á c

Index không chiếm nhiều không gian hơn một không gian cho trước s. Đày là bài toán NP_ đầy đủ. Do vậy để giải quyết được bài toán trên chúng ta phải xây dựng những thuật toán có tính heuristic, nhưng phải đảm bảo thuật toán thực hiện hiệu quả.

Trước tiên chúng ta tiến hành hình thức hóa bài toán nêu trên. Xét đồ thị lưỡng phân, G = (V u Q, E) được gọi là đồ thị câu hỏi - khung nhìn (query - view graph), V là tập các view còn Q chứa các cáu hỏi.

Với mỗi V; e V xác định lương ứng một bộ (S„ í,), trong dó Sl là không gian

mà: Vj c h iế m , I, - tập cá c chí s ố trên Vj.

K ý h i ệ u Ilk là c h ỉ s ố th ứ k c ủ a V,.

V ớ i m ỗ i q, e Q x á c đ ị n h t ư ơ n g ứ n g c o s t Tj trả lời c h o c â u h ỏ i CỊ|.

M ỗ i c ạ n h (q,, Vj) c ó n h ã n d ư ợ c g á n liftin g ứ n g là (k , tjjk), tr o n g đ ó t,jk là c o s t

câu trả lời câu hỏi t]j sử dụng view V, vả chỉ sô thứ k của nó. Khi k = 0, tljk là cost của

câu trả lời c h o q, m à chỉ sử dụng Vj.

Bài t o á n : Cho lập các view V và tập các câu hỏi Q, cần xác định M C V, tập các view và các chỉ số cụ thể sao cho không gian mà các view và các chỉ số đó chiếm không vượt quá s (không gian giới hạn) đồng thời với cách chọn M cũng đảm bảo dược cực tiểu hóa cost toàn bộ để có dược câu trả lời cho câu hỏi Q lừ một trong các cách nhìn (view) của M. Nghĩa là chúng ta cán cực lieu hóa đại lượng sau:

IQI

X (G,M) = Ỵ ' min(Ti, min tljk) (**)

' = 1 v r !Jk 6 M

Sao cho tổng không gian mà các cấu trúc được lựa chọn từ M nhỏ hơn s.

Bài toán trên dễ dàng tổng quát hóa thành bài loán xác định các view và Index trong data cube.

[4] G iải q u y ết b ài to á n

Trước tiên chúng ta hãy định nghĩa một số ký hiệu, c - lệp bất kỳ các view và index trong đổ thị G. S(C) là không gian các cấu trúc chiếm trong c . B(C,M) - là sinh lợi của c so với M và: B(C,M) = t(G, M) - X (G, M u C); B(C, 0 ) là sinh lợi tuyệt đối của c .

Về không gian, lợi của c so với M sẽ là B(C, M) / S(C). (adsbygoogle = window.adsbygoogle || []).push({});

A/ Thuât toán r - câu trúc

Một phần của tài liệu Khai thác dữ liệu và xử lý phân tích trực tuyến (Trang 63)