Thuật toán STING (STatistical INformation Grid) phân rã tập dữ liệu không
gian thành số hữu hạn các cell sử dụng cấu trúc phân cấp chữ nhật, được mô tả như trong hình 3.16 dưới đây [17]-[23].
Các đối tượng dữ liệu lần lượt được chèn vào lưới và các tham số thống kê ở trên được tính trực tiếp thông qua các đối tượng dữ liệu này. Các truy vấn không gian được thực hiện bằng cách xét các cell thích hợp tại mỗi mức của phân cấp. Có nhiều mức khác nhau cho các cell trong cấu trúc lưới, các cell này hình thành nên
cấu trúc phân cấp như sau: Mỗi cell ở mức cao được phân hoạch thành các cell mức thấp hơn trong cấu trúc phân cấp. Giá trị của các tham số thống kê (như các giá trị trung bình, tối thiểu, tối đa) cho các thuộc tính của đối tượng dữ liệu được tính toán và lưu trữ thông qua các tham số thống kê ở các cell mức thấp hơn.
Một số lợi thế của cách tiếp cận này là [23]:
Đây là cách tiếp cận truy vấn độc lập khi thông tin thống kê tồn tại các truy vấn độc lập. Nó trình bày tóm tắt các dữ liệu trong từng ô lưới, tạo điều kiện thuận lợi để trả lời một số lớp lớn các truy vấn.
STING duyệt toàn bộ dữ liệu một lần để tính toán các đại lượng thống kê cho mỗi cell nên độ phức tạp tính toán của STING là O(N), trong đó N là số các đối
tượng. Sau khi xây dựng cấu trúc dữ liệu phân cấp, thời gian xử lý cho các truy vấn là O(K) với K là tổng số cell tại mức thấp nhất (K<<N).
Thuật toán xử lý truy vấn sử dụng cấu trúc song song hoá.
Khi dữ liệu được cập nhật, chúng ta không cần phải tính toán lại tất cả thông tin trong ô phân cấp.
Với mỗi ô, chúng ta có các tham số thuộc tính-độc lập (attribute-independent) và thuộc tính-phụ thuộc (attribute-dependent). Tham số thuộc tính-độc lập là:
n- số các đối tượng (các điểm) trong một ô.
Với tham số thuộc tính-phụ thuộc, chúng ta giả sử rằng các thuộc tính ứng với mỗi đối tượng có giá trị kiểu số. Khi đó, có 5 tham số dưới đây cho mỗi ô:
m – giá trị trung bình của của các thuộc tính trong ô. s – độ lệch chuẩn của tất cả các giá trị thuộc tính trong ô min – giá trị tối thiểu của thuộc tính trong ô
max – giá trị tối đa của thuộc tính trong ô.
Trong đó n, m, s, min, max có thể được tính như sau:
i i nn ; i i i m n m n ; 2 2 2 ( i i ) i i s m n s m n ; min( i) i
min min ; max( i)
i
max max
Thuật toán STING gồm các bước sau [23]: 1. Xác định tầng để bắt đầu.
2. Với mỗi cell của tầng này, tính toán khoảng cách tin cậy (hoặc ước lượng khoảng) của xác suất mà cell này liên quan tới truy vấn.
3. Từ khoảng cách tin cậy của tính toán trên, gán nhãn có liên quan (relevant) hoặc không có liên quan.
4. Nếu lớp này là lớp dưới cùng, chuyển sang bước 6; nếu khác thì chuyển sang bước 5.
5. Duyệt xuống dưới của cấu trúc cây phân cấp một mức. Chuyển sang bước 2 cho các cells liên quan của lớp có mức cao hơn.
6. Nếu đặc tả được câu truy vấn, chuyển sang bước 8; nếu không thì chuyển sang bước 7.
7. Truy vấn dữ liệu vào trong các cells liên quan và thực hiện xử lý. Trả lại kết quả phù hợp yêu cầu của truy vấn. Chuyển sang bước 9.
8. Tìm các miền có các cells liên quan. Trả lại miền phù hợp với yêu cầu của truy vấn. Chuyển sang bước 9.
9. Dừng.