6 Kỹ thuật để xử lý truy vấn hiệu quả trên OLAP
6.2.2 Định nghĩa hình thức
Phần trên chúng ta thảo luận sơ bộ trên tập các chiều. Tuy nhiên trong trường hợp tổng quát, thì còn phải xét đến sự có mặt của phân cấp các chiều. Sau đây là một số khái niệm hình thức hóa nhằm đưa ra những cơ sở toán học vững chắc cho việc tối ưu tính trước dữ liệu khối
Quan hệ phụ thuộc của các truy vấn: Ta nói truy vấn Q1 phụ thuộc truy vấn Q2 trong trường hợp kết quả của Q1 có thể suy ra từ kết quả của Q2. Ký hiệu Q1 ≤Q2.
Quan hệ phụ thuộc có các tính chất sau: - tính phản xạ Q1 ≤Q1
- tính bắc cầu: Q1 ≤Q2 , Q2 ≤Q3 suy ra Q1 ≤Q3
Gọi L là tập hợp các truy vấn, (L, ≤) là tập hợp có quan hệ thứ tự từng phần
(L, ≤) là một lưới vì mỗi truy vấn đều có truy vấn ở trên (truy vấn phụ thuộc vào nó) và truy vấn cao nhất (có mặt tất cả các chiều).
Phân cấp của chiều: Thông thường các chiều đều có sự phân cấp. Ví dụ: khách hàng phân theo huyện, tỉnh (vị trí địa lý) hay sản phẩm phân theo loại hình (may mặc, đồ uống, dụng cụ thể thao,…). Chúng ta sẽ kết hợp tính chất phân cấp vào lưới trên.
Quan hệ phụ thuộc của các truy vấn như thế sẽ được chia làm 2 kiểu: - Phụ thuộc do tương tác giữa các chiều (như ví dụ đã mô tả ở trên) - Phụ thuộc do phân cấp thuộc tính:
o Truy vấn doanh số bán hàng trên từng khách hàng sẽ suy ra được truy vấn doanh số khách hàng nhóm theo huyện, theo huyện sẽ được nhóm theo tỉnh. Mở rộng truy vấn (view) sẽ được ký hiệu bằng (a1,a2,a3,…,an) trong đó ai là 1 điểm trên hệ thống phân cấp của chiều thứ i.
Quan hệ phụ thuộc sẽ được ghi nhận lại như sau:
(a1,a2,..,an) ≤ (b1,b2,..,bn) nếu và chỉ nếu (ai) ≤ (bi) với mọi i. Với quan hệ trên ta cũng có một lưới tương ứng.
Ví dụ:
- khách hàng được phân cấp theo quốc tịch
Ta có sơ đồ lưới trên truy vấn như trên.
Mô hình chi phí tuyến tính: Để xác định được tập các view nào được tính trước là có lợi thì hẳn nhiên ta phải chỉ ra định lượng “lợi” như thế nào trong không gian nào. Dưới đây là một mô hình tuyến tính chi phí:
Với (L, ≤) là một lưới các truy vấn, để trả lời một truy vấn Q trên lưới chúng ta sử dụng truy vấn cha ông của Q trên lưới là Qa
đã được cài đặt vật lý. Sau đó chúng ta phải xử lý bảng tương ứng với Qa , như vậy thời gian để xử lý cho Q là một hàm theo đối số là kích thước của Qa , ở đây chúng ta chọn mô hình chi phí tuyến tính đơn giản:
- Chi phí để xử lý Q khi sử dụng Qa
là số hàng tương ứng với bảng Qa Theo thực nghiệm thì chúng ta có công thức sau
T=m*S + c , trong đó T là thời gian chạy trên 1 view có kích thước S, c là một số cố định và m là tỷ lệ của thời trian truy vấn với kích thước của view
Không gian chi phí:
Chi phí nhớ của một view là số dòng kết quả của view đó, ký hiệu là C(v). Tập S các view trong đó có view đỉnh, độ lợi của view v(nằm ngoài S) đối với S, ký hiệu B(v,S) được định nghĩa như sau:
- Với mỗi w v, độ lợi Bw được xác định như sau
o Gọi u là view có chi phí thấp nhất trong S sao cho w u. Chú ý rằng S chứa view đỉnh nên nên tồn tại u.
o Nếu C(v) <C(u) thì Bw=C(u)-C(v) ngược lại Bw=0 - B(v,S) được xác định theo công thức sau
B(v,S)= Bw = (C(u)-C(v))
Kích thước của view: theo các định nghĩa trên chúng ta nhận thấy có sự có mặt của kích thước các view trong việc chọn lựa cài đặt trước. Tất nhiên chúng ta không thể tính hết view rồi lấy kích thước được vì vậy các view được đưa ra xem xét dựa trên lấy mẫu dữ liệu từ dữ liệu thô (tức là một phần nhỏ của dữ liệu thô). Từ view đỉnh đã được tính toán trước và tính chất độc lập thống kê của các chiều trong các view (truy vấn) nên chúng ta có thể thực hiện được việc này.