Các loại chỉ mục Không gianHệ cơ sở dữ liệu sử dụng các chỉ mục index để nhanh chóng tìm các giá trị và cách chỉ mục này không phải là tối ưu cho các truy vấn không gian.. Các chỉ mục
CHƯƠNG 4: TRUY VẤN DỮ LIỆU KHÔNG GIAN (TT) Bài Truy vấn không gian Khái niệm Các ngôn ngữ truy vấn Truy vấn liệu ngữ nghĩa Truy vấn liệu không gian Các loại mục Các loại mục Không gian Hệ sở liệu sử dụng mục (index) để nhanh chóng tìm giá trị cách mục tối ưu cho truy vấn không gian Các mục biết trước thường mục thuộc tính có kiểu liệu: số, chuỗi Các mục không gian dựa thuộc tính có kiểu liệu hơng gian Thay vào đó, sở liệu không gian sử dụng mục không gian để tăng tốc độ hoạt động sở liệu Các mục không gian phổ biến gồm: Các mục không gian phổ biến Grid Z-order Quadtree Octree UB-tree R-tree: R+ tree R* tree Chỉ mục (Index) Là phương pháp nhằm tăng tốc truy cập FILE Tập tin mục FILE với mẫu tin có cột : khóa địa block, thuộc tính khóa Địa khóa cho biết vị trí block chứa mẫu tin đĩa Tập tin mục có kích thước nhỏ nhiều so với FILE liệu Vì tập tin mục đọc vào nhớ chương trình CSDL khởi động Vì tập tin mục nên dùng thuật tốn tìm kiếm nhị phân tìm kiếm Nếu mẫu tin tập tin mục tương ứng mẫu tin File liệu ta gọi mục dày (dense index) Nếu mẫu tin tập tin mục tương ứng nhiều mẫu tin File liệu ta gọi mục thưa (nondense index) Tổ chức liệu File FILE mẫu tin không thứ tự Tổ chức FILE mẫu tin có thứ tự, có FILE có mẫu tin khơng thứ tự, trường hợp mẫu tin chèn vào cuối FILE Cách tổ chức phù hợp cho FILE chưa biết khai thác để làm Insert mẫu tin: block cuối file copy vào buffer Mẫu tin chèn vào buffer Ghi từ buffer vào đĩa Delete mẫu tin: Tìm kiếm mẫu tin thỏa, Copy block chứa mẫu tin vào buffer, xóa mẫu tin, ghi từ buffer vào đĩa Tổ chức liệu File File mẫu tin có thứ tự File mẫu tin có thứ tự dựa vào giá trị cột Cột có thứ tự gọi cột khóa (key field), cột đảm bảo giá trị Thuận lợi: dễ dàng cho việc tìm kiếm nhị phân Insert mẫu tin: tốn chi phí thời gian để tính tóan vị trí chèn thích hợp di chuyển số mẫu tin xuống đơn vị Nếu FILE có kích thước lớn chi phí đáng kể Delete mẫu tin: tiến hành xóa mẫu tin x, dời tất mẫu tin sau x lên đơn vị Kĩ thuật băm (hashing) Đây cách tổ chức FILE nhằm bảo đảm việc truy xuất nhanh record Thông thường cột chọn băm khóa, cột dùng tìm kiếm Ý tưởng kĩ thuật băm dùng hàm ngẫu nhiên (randomizing function) áp lên cột chọn băm Internal hashing Dùng cấu trúc mảng để xử lí nên gọi internal Gọi T tập hợp phần tử đặc trưng giá trị khóa (key) Các phần tử có quan hệ thứ tự khóa Cần tổ chức FILE cho việc tìm kiếm khóa có trị x nhanh? Dùng mảng M dịng, dùng hàm băm chuyển giá trị khóa thành số nguyên [0 M-1] Khi mẫu tin có khóa x, hàm băm H tính H[x] = a a số mảng, vị trí chứa mẩu tin cần tìm External hashing Là băm dựa nhớ Người ta sử dụng trỏ chứa: địa trực tiếp (hay gián tiếp) mẫu tin Grid Các đối tượng hình học có hình dạng đa dạng, phức tạp, dùng đối tượng hình học đơn giản để xấp xỉ hóa Khơng gian tìm kiếm phân chia thành ô Thông thường sau: Chia có mảng chiều kích thước: Nx, Ny Mỗi ô C liên kết với địa đĩa Đối tượng P gán cho ô C C chứa P Các đối tượng C lưu trữ địa liên kết với C Nếu khơng gian tìm kiếm có kích thước Sx, Sy chữ nhật có [Sx/nx, Sy/ny] có chữ số 1, (hay A, B ) Thì D[i, j] chứa địa lưu trữ P gán tới ô Cij Giả sử đối tượng Điểm Chỉ mục Z- order Cách tạo Cách tạo mục Z- order thể qua 2k dòng 2k cột, với k=0, 1, 2, … Nếu k=1, lĩnh vực hệ thống thông tin địa lý ta thường nói đến bốn hướng Bắc(N), Nam(S), Tây(W), Đơng(E) Hình 1.18 tương ứng với k=3, chia thành 64 ô đánh số từ [000333] (Các hình vẽ phần mục tham khảo từ [42]) 13 14 Cây tứ nhánh tuyến tính (Q - tree) Giới thiệu Q-tree phương pháp đánh mục dựa đường cong Space-Filling Curves Việc đánh mục dựa việc phân chia không gian liệu theo cách đệ quy Hình 1.21 - Minh họa mục Q Tree Q-tree phương pháp phân chia theo cách đệ quy, chuyển khơng gian liệu thành góc phần tư (hình 1.22) Trong cấu trúc này, nút có ứng với bốn góc phần tư đánh số Nếu không gian liệu không phân bố đối xứng Q-tree bị lệch, Q-tree khơng phải cân Do tập liệu lớn, hiệu suất truy cập liệu hiệu có phấn bố không đối xứng 15 16 Bài tập Input Cho HCN R có điểm pi (rất nhiều) có thứ tự (p1, p2, pn) Cho điểm pk Output Tìm vị trí điểm pk R Giải thuật Chia R thành ma trận MxN (dòngxcột) Một R[i,j] chứa vài pi không chứa Lập bảng T gồm cột: chứa pi, R[i,j] Cột pi có thứ tự, Tìm T dịng thứ k (chứa pk), Bài tập Input Cho HCN R có điểm pi (rất nhiều) có thứ tự (p1, p2, pn) Cho điểm pk có tọa độ: a, b HCN có kích thước chiều Xo, Yo HCN chia theo tỉ lệ: m dịng, n cột Output Tìm (dịng, cột) HCN chứa pk DS: i=a/(Xo/n)+1; j=b/(Yo/m)+1 HD Ri,j Xmin=(i-1)Xo/n Ymin=(m-j)Yo/m Xmax=iXo/n Ymax=(m-j+1)Yo/m Xmin