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 - Nguyễn Thị Oanh
            k-D trees
4
 Dành lưu trữ dữ liệu điểm đa chiều (k-dimension)
– 2-tree: lưu DL điểm 2 chiều
– 3-tree: lưu DL điểm 3 chiều
– …
– Mỗi điểm là vector có k phần tử
 Không lưu DL vùng
        
        4
 Dành lưu trữ dữ liệu điểm đa chiều (k-dimension)
– 2-tree: lưu DL điểm 2 chiều
– 3-tree: lưu DL điểm 3 chiều
– …
– Mỗi điểm là vector có k phần tử
 Không lưu DL vùng
Bạn đang xem 20 trang mẫu của tài liệu "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 - Nguyễn Thị Oanh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
        
        File đính kèm:
 bai_giang_co_so_du_lieu_da_phuong_tien_chuong_3_cac_cau_truc.pdf bai_giang_co_so_du_lieu_da_phuong_tien_chuong_3_cac_cau_truc.pdf
Nội dung text: 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 - Nguyễn Thị Oanh
- 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 2
- k-D trees  Dành lưu trữ dữ liệu điểm đa chiều (k-dimension) – 2-tree: lưu DL điểm 2 chiều – 3-tree: lưu DL điểm 3 chiều – – Mỗi điểm là vector có k phần tử  Không lưu DL vùng 4
- VD: 2-D trees 6
- 2-D trees  Cấu trúc 1 nút: INFO XVAL YVAL LLINK RLINK  Định nghĩa: 2-d tree là cây 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 & 8 P N.RLINK : P.YVAL N.YVAL
- Insertion/ Search in 2-D trees  Nút cần thêm: P(info, x, y)  Lặp: – Nút đang duyệt: N – Nếu N.XVAL = x và N.YVAL = y thì ghi đè N và kết thúc – Nếu N ở mức chẵn (0, 2, 4, ):  Nếu x < N.XVAL thì duyệt cây bên trái,  nếu không duyệt cây con bên phải – Nếu N ở mức lẻ (1, 3, 5, ):  Nếu y < N.YVAL thì duyệt cây bên trái,  nếu không duyệt cây con bên phải 10
- Tìm nút thay thế cho nút bị xóa ?  Nếu xóa N tìm nút thay thế R: mọi nút thuộc cây con trái (N.LLINK) / phải của N cũng thuộc cây con trái (R.LLINK) / phải tương ứng của R: – Nếu nút N ở mức chẵn : M N.LLINK : M.XVAL R.XVAL & P N.RLINK : P.XVAL R.XVAL – Nếu nút N ở mức lẻ: M N.LLINK : M.YVAL R.YVAL & P N.RLINK : P.YVAL R.YVAL 12
- Truy vấn phạm vi trên 2-D trees  Truy vấn phạm vi (range query): 1 điểm (xc, yc) + 1 khoảng cách r  Tìm các điểm (x,y) trên cây 2-D sao cho khoảng cách từ đó đến (xc, yc) <= r – L1: xc r x xc r yc r y yc r – L2 (Euclide) – 14
- k-D trees: Lưu ý  Cây không cân bằng  Tùy thuộc vào thứ tự dữ liệu được insert vào  Một số biến thể: – k-D-B-tree: k-D tree + cây cân bằng (B-tree) – LSD-tree (Local Split Decision tree): đánh chỉ mục 2 mức: main memory + disk – VA-file (Vector Approximation file) 16
- Cây tứ phân dạng điểm  Mỗi điểm trong cây sẽ chia 1 vùng thành 4 vùng con theo cả 2 chiều ngang và dọc (N.XVAL & N.YVAL): – NW (Northwest) – SW (Southwest) – NE (Northeast) – SE (Southeast) NW NE YVAL SW SE 18 XVAL
- Thêm DL vào cây tứ phân  Banja Luka (19, 45)  Derventa (40, 50) Toslic  Toslic (38, 38) Tuzla  Tuzla (54, 40)  Sinji (4,4) 20
- Xóa DL trong cây tứ phân  Nút lá: đơn giản – Thiết lập lại con trỏ ở nút cha = NULL và giải phóng nút cần xóa  Nút trong: phức tạp – Cần tìm nút thay thế ????? – VD: Xóa nút gốc trong ví dụ trên ? 22
- Xóa DL trong cây tứ phân ( )  Xóa nút trong tìm nút thay thế chèn lại các nút trỏ bởi NW, SW, NE, SE Trường hợp tồi nhất: tất cả các nút bị thay đổi!!!!! 24
- 3. MX-Quadtrees 26
- MX-Quadtrees  Dữ liệu được chia theo lưới 2k x 2k  k tự chọn, nhưng sau khi chọn thì k phải không được thay đổi  Cấu trúc nút: – Tương tự cây tứ phân dạng điểm – Thông tin về vùng biểu diễn (XLB, XUB, YLB, YUB) – Nút gốc (root) : XLB = 0, XUB = 2k, YLB = 0, YUB = 2k 28
- MX-Quadtree: Insert NW SW NE SE A (30, 50) root 60 nil nil nil nil nil nil 0,0 80 A (30,50) nil nil nil nil 30
- MX-Quadtree: Insert NW SW NE SE A (30, 50) B (70, 55) root 60 nil nil nil nil nil nil nil nil nil nil 0,0 80 A (30,50) B(70,55) C (65, 25) nil nil nil nil nil nil nil nil C(65,25) nil nil nil nil 32
- MX-Quadtree: Nhận xét  Tất cả các điểm được biểu diễn bởi nút lá  Nếu N là nút trong của cây MX-quadtree, thì vùng biểu diễn bởi N chứa ít nhất 1 điểm dữ liệu Xóa dễ dàng (Độ phức tạp: O(k)) 34
- MX-Quadtree: Truy vấn phạm vi  Tương tự cây tứ phân dạng điểm  Điểm khác biệt: – Kiểm tra 1 điểm có nằm trong phạm vi truy vấn hay không chỉ thực hiện ở mức lá 36
- 4. R-trees 38
- G2 R7 R6 R5 R1 R4 G3 R2 R3 R8 G1 R9 R-tree bậc 4 42
- R-trees: Insert G2 R7 R6 R5 R1 R4 G3 R3 R2 R11 R8 G1 R10 R9 44
- R-trees: Insert ( ) G2 R7 R6 R5 R1 R4 G3 R3 R2 R11 R8 G4 R10 R9 G1 46 Solution 2
- R-trees: Insert ( ) – Có thể phải tách để tạo thêm các nút mới – Thêm 1 nút có thể phải thực hiện ở nhiều mức (level) – Tiêu chí tách: Tối thiểu tổng không gian chiếm bởi các MBR  Tránh phải quản lý các vùng không có DL  Giảm sự chồng chéo của các MBR tăng hiệu quả khi tìm kiếm – Có các thuật toán để xác định cách tách với độ phức tạp khác nhau 48
- R-trees: Delete ( ) 50
- R-trees: Lưu ý  SS-tree  SR-tree: kết hợp của R*-tree và SS-tree 52
- Tổng kết  k-D trees: – Dễ cài đặt – Thêm/Tìm kiếm: Nếu cây có n nút có thể cây cũng có độ cao là n xem hoặc 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 hơn Point Quadtree – Xóa: cần tìm nút thay thế (không phức tạp) – Truy vấn phạm vi : (kn1 1/ k ) 54
- Tổng kết  R-trees: – Hiệu quả trong việc truy nhập đĩa (do nhiều vùng được lưu trên 1 nút cây ko quá cao), thích hợp với DL lớn Được sử dụng rộng rãi – Có thể không hiệu quả khi tìm kiếm nhất là truy vấn phạm vi do các MBR có thể giao nhau  R-tree: thích hợp cho DL lớn  DL có kích thước indexes nhỏ: MX-quadtree hợp lý 56
- Curse of dimensionality  Các kỹ thuật đánh chỉ mục giảm nhanh khi số chiều dữ liệu tăng: curse of dimensionality – Số các vùng được phân hoạch tăng theo hàm mũ: kd  (d: số chiều, k: số phân hoạch trên 1 chiều) Nhiều vùng rỗng hoặc chỉ có 1 phần tử ko hiệu quả – Hiệu ứng biên: nếu câu truy vấn nằm gần biên của 1 vùng nhiều điểm « hàng xóm » ko hiệu quả trong tìm kiếm – Không gian của hyper-rectangle, hyper-sphere tăng theo hàm mũ theo d tìm kiếm toàn bộ KGian 58 – Kết quả tìm kiếm KNN không ổn định

