Nhưở trên đã nêu, nhiệm vụ của 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 truy vấn đối với một Data Cube cho trước. Ta có thể phát biểu 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 truy vấn mà hệ thống cần phải trả lời. Mục đích của ta là chọn View và Index trong số đó để có được câu trả lời cho các câu truy vấn với phí tổn thấp nhất với một điều kiện ràng buộ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, 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 ∪ Q, E) được gọi là đồ thị câu truy vấn - khung nhìn (Query - View Graph), V là tập các View còn Q chứa các câu truy vấn. Với mỗi vi∈ V xác định tương ứng một bộ (Si, Ii) trong đó Si là không gian mà vi
chiếm và Ii là tập các chỉ số trên vi. Ký hiệu Iik là chỉ số thứ k của vi.
• Với mỗi qi∈ Q xác định tương ứng phí tổn Ti trả lời cho câu truy vấn qi.
• Mỗi cạnh (qi, vj) có nhãn được gán tương ứng là (k, tijk), trong đó tijk là phí tổn câu trả lời cho câu truy vấn qi sử dụng View vj và chỉ số thứ k của nó. Khi k = 0, tijk là phí tổn của câu trả lời cho qi mà chỉ sử dụng vj. Bài toán: Cho tập các View V và tập các câu hỏi Q, cần xác định M ⊆
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 được cực tiểu hóa phí tổn toàn bộ để có được câu trả
lời cho câu truy vấn Q từ một trong các View của M.
Nghĩa là ta cần cực tiểu hóa đại lượng sau 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: | | ijk 1 ( , ) min( , min ) Q i G M Ti t τ = = ∑ (**) , j jk V I ∈M
Bài toán trên dễ dàng tổng quát hóa thành bài toán xác định các View và Index trong Data Cube.