Bài giảng Cơ sở dữ liệu đa phương tiện - Chương 3: Các cấu trúc dữ liệu đa chiều cung cấp cho người học các kiến thức: k-D trees, cây tứ phân dạng điểm, MX-Quadtrees, R-trees,... Mời các bạn cùng tham khảo nội dung chi tiết.
Chương 3: Các cấu trúc liệu đa chiều Nguyễn Thị Oanh Bộ môn HTTT – Viện CNTT & TT oanhnt@soict.hut.edu.vn Plan Lưu DL dạng điểm – k-D trees – Point Quadtrees – MX-Quadtrees Lưu DL dạng vùng (chữ nhật): – R-trees k-D trees k-D trees Dành lưu trữ liệu điểm đa chiều (k-dimension) – 2-tree: lưu DL điểm chiều – 3-tree: lưu DL điểm chiều –… – Mỗi điểm vector có k phần tử Khơng lưu DL vùng k-D trees Là mở rộng nhị phân Ở mức, ghi chia theo giá trị chiều định – Mức 0: giá trị chiều – Mức 1: giá chị chiều 1, … – Mức k-1: giá trị chiều k-1 – Mức k: giá trị chiều 0, … VD: 2-D trees VD: 3-D trees x y z x Cây xây dựng phụ thuộc vào thứ tự điểm đưa vào 2-D trees Cấu trúc nút: INFO LLINK XVAL YVAL RLINK Định nghĩa: 2-d tree nhị phân thỏa mãn: – Nếu nút N mức chẵn : M N LLINK : M XVAL N XVAL & P N RLINK : P XVAL N XVAL – Nếu nút N mức lẻ: M N LLINK : M YVAL N YVAL & P N RLINK : P.YVAL N YVAL 2-D trees Ví dụ: Thứ tự insert: INFO XVAL YVAL Banja Luka 19 45 Derventa 40 50 Toslic 38 38 Tuzla 54 40 Sinji 4 Insertion/ Search in 2-D trees Nút cần thêm: P(info, x, y) Lặp: – Nút duyệt: N – Nếu N.XVAL = x N.YVAL = y ghi đè N kết thúc – Nếu N mức chẵn (0, 2, 4, …): Nếu x < N.XVAL duyệt bên trái, không duyệt bên phải – Nếu N mức lẻ (1, 3, 5, …): Nếu y < N.YVAL duyệt bên trái, 10 không duyệt bên phải R-trees: Insert (…) G2 R6 R7 R5 R1 R4 G3 R3 R2 R11 R8 R10 R9 G1 45 Solution R-trees: Insert (…) G2 R6 R7 R5 R1 R4 G3 R3 R2 R11 R8 G4 R10 R9 G1 46 Solution R-trees: Insert (…) G2 R6 R7 R5 R1 R4 G3 R3 R2 R11 R8 G4 R10 R9 G1 47 Incorrect insertion R-trees: Insert (…) – Có thể phải tách để tạo thêm nút – Thêm nút phải thực nhiều mức (level) – Tiêu chí tách: Tối thiểu tổng khơng gian chiếm MBR Tránh phải quản lý vùng khơng có DL Giảm chồng chéo MBR tăng hiệu tìm kiếm – Có thuật toán để xác định cách tách với độ phức tạp khác 48 R-trees: Delete Có thể gây nút có số vùng (MBR) < K/2 Sắp lại DL số vùng nút < K/2 Ví dụ: Xóa R8 49 R-trees: Delete (…) 50 R-trees: Lưu ý Tìm kiếm: phải thực theo nhiều nhánh có chồng chéo MBR Hình dáng phụ thuộc vào thứ tự insert DL Các biến thể: tối thiểu overlap MBR – R+-tree (1987): không cho phép MBR giao – R*-tree (1990): tối thiểu vùng chồng không gian chiếm MBR SS-tree (similar-search tree), SR-tree (sphere-rectangle tree),TV-tree (telescopic vector tree) 51 – X-tree (1996): tạo nút để quản lý tốt giao vùng R-trees: Lưu ý SS-tree SR-tree: kết hợp R*-tree SS-tree 52 Tổng kết Point Quadtrees: – Dễ cài đặt – Thêm/Tìm kiếm: Nếu có n nút có độ cao n xem tìm kiếm DL có độ phức tạp O (n) – Xóa: phức tạp phải tìm nút thay cho nút xóa – Truy vấn phạm vi : 53 ( n) Tổng kết k-D trees: – Dễ cài đặt – Thêm/Tìm kiếm: Nếu có n nút có độ cao n xem tìm kiếm DL có độ phức tạp O (n) – Thực tế: độ sâu tìm kiếm thường dài Point Quadtree – Xóa: cần tìm nút thay (không phức tạp) – Truy vấn phạm vi : 54 (k n 11 / k ) Tổng kết MX-quadtrees: – Đảm bảo độ cao =N.VAL[i] i = level(N) mod k 15 k-D trees: Lưu ý Cây không cân Tùy thuộc vào thứ tự liệu insert vào Một số biến thể: – k-D-B-tree: k-D tree + cân (B-tree) – LSD-tree (Local Split Decision tree):