Một số hãng phát triển GIS trên thế giới đã có những sản phẩm theo hướng CSDL không gian như: ERSI, Oracle, Intergraph, MapInfo… Cơ sở hạ tầng dữ liệu không gian Spatial Data Infrastruct
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Trung Quân
PHƯƠNG PHÁP TỔ CHỨC CƠ SỞ DỮ LIỆU CHO ĐỐI
TƯỢNG CHUYỂN ĐỘNG
LUẬN VĂN THẠC SỸ HỆ THỐNG THÔNG TIN
Hà Nội - 2014
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Trung Quân
PHƯƠNG PHÁP TỔ CHỨC CƠ SỞ DỮ LIỆU CHO ĐỐI
TƯỢNG CHUYỂN ĐỘNG
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Trang 3Tôi, Nguyễn Trung Quân xin cam đoan toàn bộ nội dung luận văn này
do tôi tự sưu tầm, tra cứu và sắp xếp cho phù hợp với nội dung yêu cầu của đề tài Nội dung luận văn này chưa từng được công bố hay xuất bản dưới bất kỳ hình thức nào và cũng không được sao chép từ bất kỳ một công trình nghiên cứu nào
Phần mã nguồn của chương trình do tôi thiết kế và xây dựng, trong đó
có sử dụng một số thư viện chuẩn và các thuật toán được các tác giả xuất bản công khai và miễn phí trên mạng Internet
Nếu sai tôi xin hoàn toàn chịu trách nhiệm
Người cam đoan
Nguyễn Trung Quân
Trang 4Sau một thời gian tìm hiểu và nghiên cứu, luận văn “Phương pháp tổ chức cơ sở dữ liệu cho đối tượng chuyển động” đã hoàn thành.Ngoài sự cố
gắng hết mình của bản thân, tôi đã nhận được nhiều sự khích lệ từ phía nhà trường, thầy cô, gia đình và bạn bè
Lời đầu tiên tôi xin chân thành cảm ơn sự giúp đỡ, chỉ bảo và hướng dẫn nhiệt tình của thầy giáo TS Hoàng Đỗ Thanh Tùng – Viện Công Nghệ Thông Tin - Viện Hàn Lâm Khoa Học và Công Nghệ Việt Nam là giáo viên hướng dẫn tôi trong suốt thời gian làm luận văn
Tôi xin chân thành cảm ơn các thầy cô làm việc tại Viện Công Nghệ thông tin, các thầy cô tại trường Đại học Công Nghệ - Đại học Quốc GiaHà Nội đã giúp đỡ truyền đạt những kiến thức quý báu cho tôi trong quá trình học tập
Xin cảm ơn tất cả bạn bè đã và đang động viên, giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn tốt nghiệp này
Hà Nội, ngày 5tháng 5 năm 2014
Học viên
Nguyễn Trung Quân
Trang 5DANH SÁCH TỪ VIẾT TẮT III DANH SÁCH BẢNG IV DANH SÁCH HÌNH V
PHẦN MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục tiêu nghiên cứu của đề tài 2
3 Đối tượng và phạm vi nghiên cứu 2
4 Ý nghĩa khoa học của đề tài 2
5 Bố cục luận văn 2
CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU KHÔNG THỜI GIAN VÀ ĐÁNH CHỈ MỤC 3
1.1 Hệ thống cơ sở dữ liệu không gian 3
1.1.1 Cơ sở dữ liệu không gian (Spatial Database) 3
1.1.2 Hạ tầng CSDL không gian 4
1.1.3 Các chức năng của quản lý cơ sở dữ liệu 5
1.1.5 Mô hình cơ sở dữ liệu không gian 6
1.1.6.Khái quát các khái niệm dữ liệu cơ sở trong CSDL không gian 7
1.2 Các cách đánh chỉ số không gian và thời gian 9
1.2.1 Cách đánh chỉ số không gian ( R-tree) 9
1.2.2 Cách đánh chỉ số thời gian ( Snapshot index) 12
CHƯƠNG 2 CÁC PHƯƠNG PHÁP TỔ CHỨC CƠ SỞ DỮ LIỆU CHO ĐỐI TƯỢNG CHUYỂN ĐỘNG 14
2.1 Lập chỉ mục quá khứ tiến trình không-thời gian 14
2.1.1 Phương pháp tiếp cận đơn giản 15
2.1.2 Phương pháp tiếp cận từng phần liên tục 17
2.1.3 MV3Rtree 22
2.1.4 Lập chỉ mục cho các quỹ đạo (quá khứ) của các vị trí 23
Trang 62.2 Lập chỉ mục cho hiện tại và tương lai của đối tượng chuyển động 28
2.2.1 Khái niệm TPR-tree 29
2.2.2 Cấu trúc và thuật toán TPR-tree (Time parameterizer R-tree) 30
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 36
3.1 Thiết kế dữ liệu 36
3.2 Thiết kế file chỉ mục 37
3.3.Sử dụng cache cho TPR-Tree 38
3.4 Thiết kế chương trình 39
3.4.1 Biểu đồ lớp 39
3.4.2 Biểu đồ tuần tự 43
3.5 Một số kết quả thử nghiệm chương trình 46
3.5.1 Form chương trình 46
3.4.2 Thử nghiệm 48
3.4.3 Đánh giá 51
KẾT LUẬN 53
TÀI LIỆU THAM KHẢO 54
Trang 7DANH SÁCH TỪ VIẾT TẮT
Trang 8DANH SÁCH BẢNG
Bảng 3.1 Dữ liệu của một số đối tượng chuyển động tại thời điểm hiện tại 36
Bảng 3.2 Thông tin cấu trúc của file trên đĩa 37
Bảng 3.3 Thông tin của TPR-tree 37
Bảng 3.5 Thông tin phần tử 37
Bảng 3.6 Chức năng của các lớp 39
Bảng 3.7 TRP-tree tại khoảng thời gian khác nhau với 10k 49
Bảng 3.8 TRP-tree tại khoảng thời gian khác nhau với 30k 49
Bảng 3.9 TRP-tree tại khoảng thời gian khác nhau với 50k 49
Bảng 3.9 TRP-tree với cache size khác nhau 51
Trang 9DANH SÁCH HÌNH
Hình 1.1: (a)Một region mẫu 7
(b) Biểu diễn dạng mảng nhị phân của region, 7
(c) Các khối cực đại và các khối phổ thông được chia sẻ trong region 7
(d) quadtree tương ứng 7
Hình 1.2: Ví dụ một PR quadtree 8
Hình 1.3: Ví dụ về R-Tree 10
Hình 2.6 Hình hộp giới hạn với chiều thời gian 15
Hình 2.7 (1) Kiểu hình hộp (2) 3DR-tree 16
Hình 2.8 Một ví dụ của truy vấn theo mốc thời gian 17
Hình 2.9 Một R-tree ở thời gian T 0 , T 1 , T 2 17
Hình 2.10 Phương pháp chồng chéo 18
Hình 2.11 Chèn vào một phiên bản mới e 1 thay thế đối tượng e 0 19
Hình 2.12 Chèn một phiên bản mới của e 1 thay thế đối tượng e 0 20
Hình 2.13 Nhân đôi một phần tử trung gian 20
Hình 2.14 Xử lý overflow 21
Hình 2.15 Làm dư thừa các phần tử khi bị tràn 21
Hình 2.16 Nhân đôi một phần tử trong khi xoá 22
Hình 2.17 Kết hợp của MVR-tree và 3DR-tree 23
Hình 2.18 Chuyển động của một đối tượng không gian và quỹ đạo tương ứng 24
Hình 2.19 (a) Xấp xỉ quỹ đạo sử dụng MBB (b) Ánh xạ của đoạn đường thẳng trong một MBB 24
Hình 2.20 Xử lý chèn cho STR-tree 25
Hình 2.21 Các kiểu chia đoạn 25
Hình 2.22 (a) Nút cha là không đầy đủ, (b) Nút cha đầy đủ 26
Hình 2.23 Cấu trúc TB-tree 27
Hình 2.24 (a) truy vấn Topological, (b) truy vấn Combined 28
Hình 2.25 Các điểm di chuyển và kết quả Leaf-Level MBRs 29
Hình 2.26 Ví dụ các điểm di chuyển như các Leaf Node của TPR-tree 30
Hình 2.27 Ví dụ các điểm di chuyển như các Internal Node của TPR-tree 31
Hình 2.28 Ví dụ cập nhật khoảng giới hạn theo tham số thời gian 32
Hình 2.29 Ví dụ truy vấn Timeslice trong TPR-tree 33
Trang 10Hình 2.30 Ví dụ giao của một khoảng thời gian giới hạn và một truy vấn 34
Hình 3.1 Biểu đồ lớp của R-tree 42
Hình 3.2 Biểu đồ tuần tự 43
Hình 3.3 Form chính của chương trình 46
Hình 3.4 Form cấu hình dữ liệu 46
Hình 3.5 Form tạo cây Rtree 47
Hình 3.6 Form truy vấn dữ liệu 47
Hình 3.7 Form kết quả nhận được sau khi truy vấn 48
Hình 3.8 Kết quả thử nghiệm Avg data retrieves 50
Hình 3.9 Kết quả thử nghiệm Avg Node access 50
Hình 3.10 Kết quả thử nghiệm Avg Node với cache size 51
Trang 11PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Năm 2008, Việt Nam đã phóng vệ tinh đầu tiên vào trong quỹ đạo mở ra nhiều bước tiến mới cho ngành viễn thông Công nghệ GPS (Global Positioning System) đã được giới thiệu và nhiều ứng dụng khác nhau trong cuộc sống, việc khai thác thông tin phục vụ con người là rất cần thiết, mang lại hiệu quả cao trong nhiều lĩnh vực khoa học công nghệ, phục vụ đời sống sản xuất
Năm 2012, Việt Nam phóng thêm một vệ tinh nữa lên quỹ đạo và đã đưa những hình ảnh chụp trên lãnh thổ Việt Nam được rõ nét hơn phục vụ đắc lực trong công tác nghiên cứu khoa học Với những vệ tinh này việc quản lý, theo dõi đối tượng chuyển động dễ dàng hơn, việc lưu trữ cơ sở dữ liệu (CSDL) được thuận tiện khi nó được đánh chỉ mục cho việc theo dõi, quản lý Cùng với sự tăng trưởng nhanh chóng của lượng thông tin cũng như sự đa dạng về thể loại thông tin cần lưu trữ và xử lý, chúng ta ngày càng nhận ra những hạn chế của các Hệ quản trị CSDL quan hệ truyền thống, và nhu cầu cần phải có các hệ quản trị CSDL với các dịch vụ phù hợp chính là yếu tố thúc đẩy những nghiên cứu mới trong lĩnh vực này Một trong các mô hình CSDL được quan tâm nhất hiện nay chính là mô hình CSDL không gian - Spatial DataBase (SDB) xử lý các đối tượng dữ liệu không gian, chẳng hạn dữ liệu bản đồ, dữ liệu multimedia và mở rộng hơn nữa là kho dữ liệu không gian - Spatial Data Các nghiên cứu trên lĩnh vực này đã thu được rất nhiều thành tựu, tuy nhiên cũng còn không ít khó khăn
và thách thức đòi hỏi phải có các giải pháp mới
Cơ sở dữ liệu không gian tập trung vào hỗ trợ mô hình và truy vấn dạng hình học liên quan đến các đối tượng trong CSDL còn cơ sở dữ liệu thời gian tập trung vào tình trạng của đối tượng ở các thời điểm khác nhau Vì vậy đòi hỏi hai CSDL không gian và thời gian liên kết chặt chẽ với nhau tạo thành một ứng dụng quan trọng đó là “cơ sở dữ liệu không – thời gian” hay là cơ sở dữ liệu cho các đối tượng chuyển động
Từ thực tiễn trên tác giả lựa chọn đề tài “Phương pháp tổ chức cơ sở dữ liệu cho đối tượng chuyển động”
1
Trang 122 Mục tiêu nghiên cứu của đề tài
2.1 Mục tiêu chung
Quản lý được cơ sở dữ liệu một cách có hiệu quả và việc truy vấn cơ sở
dữ liệu dễ hơn, trong tất cả lĩnh vực so với Hệ quản trị cơ sở dữ liệu quan hệ truyền thống Từ đó đưa ra những giải pháp nhằm nâng cao hơn nữa trong việc lưu trữ và tìm kiếm dữ liệu
3 Đối tượng và phạm vi nghiên cứu
- Mô hình, tổ chức đánh chỉ số cho cơ sở dữ liệu hiện tại
- Nghiên cứu, xây dựng phương pháp đánh chỉ mục cơ sở dữ liệu hiện tại cho các đối tượng chuyển động
4 Ý nghĩa khoa học của đề tài
- Hỗ trợ việc mô hình hoá và truy vấn cơ sở dữ liệu để quản lý đối tượng chuyển động
- Hiểu rỗ các phương pháp tổ chức cơ sở dữ liệu mới cho các đối tượng chuyển động, giúp cho quá trình truy xuất, lưu trữ dữ liệu nhanh hơn và hiệu quả hơn
- Áp dụng hỗ trợ cơ sở dữ liệu cho các phần mềm quản lý và truy vấn các đối tượng chuyển động hiện tại hoặc quá khứ
5 Bố cục luận văn
Chương 1: Tổng quan về cơ sở dữ liệu không thời gian và đánh mục Chương 2: Các phương pháp tổ chức dữ liệu cho đối tượng chuyển động Chương 3 Xây dựng chương trình thử nghiệm
Trang 13Chương 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU KHÔNG THỜI GIAN VÀ
ĐÁNH CHỈ MỤC 1.1 Hệ thống cơ sở dữ liệu không gian
Hệ thống cơ sở dữ liệu không gian – Spatial Database System – là hệ thống quản lý dữ liệu liên quan đến các đối tượng không gian (không gian địa lý), ra đời trước yêu cầu đặt ra trong thực tế là cần một hệ thống để lưu trữ các
dữ liệu trong không gian địa lý Như vậy việc quản lý hệ CSDL không gian phụ thuộc vào hai công nghệ: Một là phương tiện lưu trữ cố định và một là CSDL không gian
Các không gian:
Không gian hai chiều (2D): Các không gian hình học (Các bề mặt trên mặt đất ở tỉ lệ co giãn lớn hoặc nhỏ)
Hệ thống thông tin địa lý (GIS – Geographic Information System)
Cơ sở dữ liệu đặt tại Luxembourg (LIS - Luxembourg Income Study) lưu trữ dữ liệu về các quốc gia
Urban planning – quy hoạch sử dụng không gian địa lý (sử dụng đất, quy hoạch xây dựng đô thị….)
Không gian ba chiều (3D): Nghiên cứu vũ trụ, thiên văn học, nghiên cứu
bộ não con người trong y học, nghiên cứu cấu trúc phân tử trong ngành sinh học Yêu cầu đặt ra với hệ thống này là khả năng quản lý và xử lý một khối lượng thông tin khổng lồ của tập hợp các đối tượng địa lý đặt trong mối quan hệ chặt chẽ với nhau
Theo G.H.Guting[]:
Hệ quản trị cơ sở dữ liệu không gian (Spatial Database Management System): Là một hệ CSDL sử dụng kiểu dữ liệu không gian trong mô hình dữ liệu và ngôn ngữ truy vấn, hệ thống hỗ trợ việc thực thi với kiểu dữ liệu không gian bằng việc cung cấp cách đánh chỉ mục và các thuật toán hiệu quả trong trường hợp liên kết các không gian với nhau
Kiểu dữ liệu không gian (Spatial Data type): Kiểu dữ liệu biểu diễn các đối tượng trong không gian Dữ liệu không gian là những mô tả số của hình ảnh bản đồ, chúng bao gồm toạ độ, quy luật và các ký hiệu dùng để xác định một hình ảnh bản đồ cụ thể trên từng bản đồ Hệ thống thông tin địa lý dùng các số liệu không gian để tạo ra một bản đồ hay hình ảnh bản đồ trên màn hình hoặc trên giấy thông qua thiết bị ngoại vi, … Dữ liệu không gian thường được biểu diễn bằng điểm, đường và vùng
1.1.1 Cơ sở dữ liệu không gian (Spatial Database)
Cơ sở dữ liệu không gian là một mô hình hướng đối tượng cho phép tích hợp thông tin địa lý và thông tin thuộc tính trong cùng một cơ sở dữ liệu theo
Trang 14mô hình dữ liệu quan hệ Như vậy đây là cơ sở dữ liệu lưu trữ vị trí, hình dạng của các đối tượng không gian cùng với đặc điểm thuộc tính của chúng
Một số hãng phát triển GIS trên thế giới đã có những sản phẩm theo hướng CSDL không gian như: ERSI, Oracle, Intergraph, MapInfo…
Cơ sở hạ tầng dữ liệu không gian (Spatial Data Infrastructure - SDI) là nền tảng để dữ liệu không gian và lý lịch dữ liệu cùng với người sử dụng và các công cụ có thể kết nối trong mối quan hệ tương tác lẫn nhau với mục đích sử dụng được các thông tin dữ liệu không gian một cách hiệu quả và linh hoạt
Trong những năm gần đây Hệ thống cơ sở dữ liệu quản lý đối tượng không gian và thời gian ngày càng nhận được nhiều sự quan tâm Cơ sở dữ liệu lưu trữ các đối tượng không gian, mà các thay đổi mức độ, vị trí của các đối tượng theo thời gian, được gọi là cơ sở dữ liệu không-thời gian Trong các cơ sở
dữ liệu này việc dự kiến các vị trí tương lai, mức độ của các đối tượng thường được quan tâm Những ứng dụng về các đối tượng không thời gian như là: sự thay đổi toàn cầu(khí hậu,dữ liệu của vùng đất liền), giao thông vận tải( giám sát giao thông), xã hội( nhân khẩu, sức khỏe), đa phương tiện (phim hoạt hình) Dưới đây ví dụ về ứng dụng không thời gian
Ví dụ tiên chúng ta xem xét một cơ sở dữ liệu quản lý phương tiện di chuyển (xe ô tô) trong một hệ thống đường cao tốc Ngày nay công nghệ GPS cho phép để xác định vị trí con người và phương tiện ở bất kỳ vị trí trên trái đất, với độ chính xác cao Cần phải có một cơ sở dữ liệu lưu trữ các vị trí hiện tại của phương tiện di chuyển, cũng như định hướng và tốc độ Từ đó phát sinh những truy vấn dành riêng cho cơ sở dữ liệu này Ví dụ một người muốn tìm khách sạn gần nhất với mình trong 10 phút nữa Hay là công ty quản lý xe tải muốn tìm chiếc xe tải gần với nhà kho cụ thể Hay tìm chiếc xe cứu thương gần nhất với
vụ tai nạn giao thông xảy ra
Do đặc điểm của thời gian, cơ sở dữ liệu không thời gian phải quản lý lượng lớn dữ liệu Một phương pháp để trả lời các câu truy vấn là đọc tất cả dữ liệu của tất cả đối tượng sau đó trả về đối tượng phù hợp với câu truy vấn Tuy nhiên cách này phát sinh vấn đề liên quan đến kích thước của dữ liệu Một giải pháp tốt hơn là xây dựng chỉ mục dữ liệu và trả lời truy vấn bằng cách chỉ phải đọc một phần nhỏ của cơ sở dữ liệu
Chỉ mục là một cách để tổ chức dữ liệu trên trang đĩa để trả lời hiệu quả các truy vấn, bằng cách đọc một phần nhỏ của dữ liệu
1.1.2 Hạ tầng CSDL không gian
Công nghệ (technology)
Chính sách (policies)
Chuẩn (standards)
Trang 15Nguồn nhân lực (human resources)
Qui trình (procedures)
Được xây dựng để đáp ứng yêu cầu thu nhận, xử lý, lưu trữ, phân phối và nâng cao tính hữu dụng của dữ liệu địa lý, làm cơ sở cho việc sản xuất và chia sẻ
dữ liệu địa lý giữa các cơ quan, đơn vị,…
VD: Cơ sở hạ tầng dữ liệu không gian của một thành phố là một thành phần trong Cơ sở hạ tầng thông tin quốc gia (siêu xa lộ thông tin) nhằm cung cấp những thông tin thiết thực cho mọi người
1.1.3 Các chức năng của quản lý cơ sở dữ liệu
Cho phép giảm thiểu sự trùng lặp dữ liệu nhằm tiết kiệm chi phí, sẵn sàng trợ giúp ra quyết định trên một vùng địa lý dựa trên dữ liệu chính xác và hiện thời (cập nhập dữ liệu), người sử dụng dễ dàng biết được tỉ lệ bản đồ gốc (mức
độ chi tiết), nguồn gốc dữ liệu, quy trình nhập dữ liệu, kết quả kiểm tra độ chính xác dữ liệu, cấu trúc dữ liệu,… được mô tả bởi lý lịch dữ liệu (metadata)
Nhờ tính mở cao, cơ sở dữ liệu quan hệ ngày càng được sử dụng phổ biến trong các hệ thống thông tin địa lý Mô hình hệ quản trị cơ sở dữ liệu 3 tầng (3-tier) sẽ được sử dụng phổ biến để tăng khả năng cung cấp và tích hợp dữ liệu của nhiều ngành theo thời gian thực
Hiện nay, hầu hết các quốc gia đều hướng đến xây dựng cơ sở hạ tầng dữ liệu không gian theo kiến trúc hướng đến dịch vụ (Service Oriented Architecture
- SOA) sử dụng các chuẩn mở quốc tế như OpenGIS (OGC) hoặc ISO/TC
Đối với Việt Nam và các nước đang phát triển thì thời điểm hiện nay là cơ hội lớn để chúng ta tiếp cận những tinh hoa từ các tổ chức này để xây dựng những hệ thống tương tự (đa mục tiêu, đa thành viên) Trên cơ sở đó, Việt Nam cần tiến hành xây dựng cơ sở hạ tầng dữ liệu không gian cho mình với các tầm nhìn đều hướng đến một nền tảng để đưa dữ liệu không gian địa lý đến tay người sử dụng một cách đơn giản, dễ dàng và minh bạch
Trang 161.1.4 Các bước thiết kế CSDL không gian
Thiết kế CSDL không gian cần tiến hành qua những bước cơ bản sau Xác định nội dung CSDL
Chọn cấu trúc CSDL
Thiết kế chi tiết CSDL
Phân phối dữ liệu đến người sử dụng
Duy trì, cập nhật dữ liệu và vận hành hàng ngày
Các thành phần của cơ sở dữ liệu không gian:
Tập hợp các dữ liệu dạng vector (tập các điểm, đường và vùng)
Tập hợp các dữ liệu dạng raster (dạng mô hình điểm hoặc ảnh)
Tập hợp các dữ liệu dạng mạng lưới (đường giao thông, lưới cấp thoát nước, lưới điện )
Tập hợp các dữ liệu địa hình 3 chiều và bề mặt khác
Dữ liệu đo đạc
Dữ liệu dạng địa chỉ
Các bảng dữ liệu: Là thành phần quan trọng của cơ sở dữ liệu không gian, được liên kết với các thành phần đồ họa với nhiều kiểu liên kết khác nhau
1.1.5 Mô hình cơ sở dữ liệu không gian
Do tính chất phức tạp của kiểu dữ liệu không gian dẫn đến việc quản lý
dữ liệu loại này không thể sử dụng hệ quản trị cơ sở dữ liệu truyền thống Trong những năm gần đây, đã có rất nhiều nghiên cứu đang được triển khai về vấn đề quản lý dữ liệu không gian, vì những lí do trên mà nhiều công trình nghiên cứu liên quan đến dữ liệu không gian đãđược tiến hành bao gồm nhiều lĩnh vực như: Thiết kế cấu trúc dữ liệu vật lý tối ưu và các phương pháp truy cập, nghiên cứu việc xử lý truy vấn và tối ưu hóa các kỹ thuật, giao diện tương tác ảo… Tất cả các cách tiếp cận này chắc chắn sẽ đưa ra một mô hình dữ liệu không gian theo cách gián tiếp trong đó mô hình này sẽ không đóng vai trò là đối tượng chính
Về khía cạnh công nghệ, hình thể, vị trí không gian của các đối tượng cần quản
lý, được miêu tả bằng các dữ liệu đồ hoạ Trong khi đó, tính chất các đối tượng này được miêu tả bằng các dữ liệu thuộc tính
Mô hình cơ sở dữ liệu không gian không những quy định mô hình dữ liệu với các đối tượng đồ hoạ, đối tượng thuộc tính mà còn quy định liên kết giữa chúng thông qua mô hình quan hệ và định nghĩa hướng đối tượng bao gồm các tính chất như thừa kế (inherit), đóng gói (encapsulation) và đa hình Ngoài ra, cơ
sở dữ liệu không gian hiện đại còn bao gồm các ràng buộc các đối tượng đồ hoạ ngay trong cơ sở dữ liệu, được gọi là topology (tương quan không gian) - Phương thức thể hiện các ràng buộc đối với các đối tượng đồ hoạ ngay trong cơ
Trang 17sở dữ liệu
1.1.6.Khái quát các khái niệm dữ liệu cơ sở trong CSDL không gian
Dữ liệu vùng - Region Data
Một region có thể được biểu diễn bằng đường biên hoặc nội dung bên trong của chính nó Trong phần này, region được hiểu theo cách biểu diễn nội tại của nó Một cách biểu diễn thông dụng nhất của region là mảng hình ảnh Trong trường hợp này, ta có một tập các phần tử ảnh (gọi là các pixel) Khi số lượng các phần tử trong mảng quá lớn, phải tiến hành động thái là giảm bớt kích thước mảng bằng cách kết hợp các pixel tương tự (đồng nhất hay có cùng giá trị) Ở đây có hai hướng tiếp cận cơ bản Hướng tiếp cận đầu tiên là của [Rutovitz 1968]: phân chia mảng thành 1*m khối Đây là cách biểu diễn theo hàng và nó được biết với tên runlength code Một hướng tiếp cận khác xem region như là một tập các khối vuông cực đại (hoặc các khối có hình dạng bất kỳ) Thông thường các khối được xác định bởi tâm và radii của chúng Sự biểu diễn này được gọi là medial axis transformation (MAT)
Hình 1.1: (a)Một region mẫu (b) Biểu diễn dạng mảng nhị phân của region, (c) Các khối cực đại và các khối phổ thông được chia sẻ trong region
(d) quadtree tương ứng
Thuật ngữ quadtree (cây tứ phân) là chỉ số không gian được dùng để phân chia đệ quy một tập hợp dữ liệu (chẳng hạn, một ảnh) thành các ô vuông cho đến khi mỗi ô vuông có một giá trị thuần nhất Cây tứ phân thường được dùng để lưu trữ dữ liệu raster Ở đây quadtree được sử dụng để mô tả rất nhiều phần tử của các cấu trúc dữ liệu có thứ bậc (dựa trên nguyên tắc đệ quy hay còn gọi là các phương pháp chia để trị)
Dữ liệu điểm - Point Data
Dữ liệu điểm đa chiều có thể được biểu diễn dưới rất nhiều hình thức khác nhau Sự lựa chọn sau cùng cho một tác vụ cụ thể sẽ bị ảnh hưởng bởi kiểu operation sẽ được thực hiện trên dữ liệu Phần này đề cập chủ yếu đến kiểu biểu diễn PR quadtree (P: Point và R: Region) là phương thức phân ly chủ đạo Đây
Trang 18là sự lắp ghép giữa region quadtree và point data, và PR quadtree được tổ chức tương tự như region quadtree Chỉ có một sự khác biệt đó là các nút lá hoặc là rỗng (ở đây biểu diễn bằng màu TRẮNG), hoặc chứa dữ liệu điểm (màu ĐEN)
và các giá trị tương ứng của chúng
Hình vẽ sau là một PR quadtree tương ứng với một số lượng nhất định point data:
Hình 1.2: Ví dụ một PR quadtree
Điểm bất lợi của PR quadtree là mức phân chia tối đa phụ thuộc vào sự phân ly tối thiểu giữa hai point Trong những trường hợp đặc biệt, nếu hai point
Trang 19là rất gần nhau thì sự phân chia là rất nhỏ
Dữ liệu kiểu chữ nhật - Rectangle Data
Kiểu dữ liệu rectangle nằm đâu đó giữa kiểu dữ liệu point và region Rectangle thường được sử dụng để làm xấp xỉ với các đối tượng khác trong một bức ảnh Ví dụ các rectangle biên thường được sử dụng trong các ứng dụng bản
đồ để làm xấp xỉ các đối tượng như hồ nước, rừng, đồi,…
[Hinrichs and Nieverglt 1983] đã suy giảm mỗi rectangle thành một điểm trong không gian đa chiều lớn, và các vấn đề phát sinh như một tập các điểm chứ không phải hình Mỗi rectangle trong một sản phẩm Cartesian (Hệ toạ độ Đề-các) có hai interval (khoảng không gian) một chiều trong đó mỗi interval được biểu diễn bởi trọng tâm và quy mô của chúng
Mỗi một tập interval trong một chiều cụ thể được biểu diễn bởi một grid file
Dữ liệu đường - Line Data
Line data là một hình thức biểu diễn xác định các biên của các region Cách biểu diễn đơn giản nhất là đa giác gồm có các véc-tơ xác định khuôn dạng của các liệt kê các cặp giá trị x và y tương xứng với điểm bắt đầu và kết thúc của chúng Các véc-tơ thường được sắp xếp theo liên kết của chúng Một trong những cách biểu diễn thông dụng nhất là chain code [Freeman 1974]
Dữ liệu không gian - Spatial (High-dimentional) Data
Rất nhiều các cấu trúc SAM (Spatial Access methods) thành công dựa trên nguồn gốc của sự phân ly không gian có thứ bậc Ý tưởng ở đây là đánh chỉ mục một cách liên tục các vùng không gian, như vậy việc tìm kiếm có thể được xuất phát ở mức cao hướng về những vùng không gian thích hợp
Một cách thức phổ biến và khả quan để tổ chức và truy cập các đối tượng
đa chiều là sử dụng R-tree hoặc các biến thể của nó bởi vì trong R-tree, không gian dữ liệu được phân ly liên tiếp nhau thành các rectangle, còn gọi là hyper-rectangle
1.2 Các cách đánh chỉ số không gian và thời gian
1.2.1 Cách đánh chỉ số không gian ( R-tree)
Kỹ thuật Phân nhánh-và-giới hạn (branch-and-bound) đang là một kỹthuật thành công nhất sử dụng trong việc thiết kế các thuật toán giải quyết các câu hỏi của ngôn ngữ truy vấn trên cấu trúc dạng cây Hàm chức năng giới hạn thấp hơn
và giới hạn cao hơn là nền tảng cơ bản của hiệu năng tính toán trong thuật toán phân nhánh-và-giới hạn Kỹ thuật giả định cơ bản sử dụng trong các thuật toán truy vấn khoảng cách là các tập dữ liệu không gian được đánh chỉ mục bởi cấu trúc của họ R-Tree R-Tree và các biến thể của nó được đánh giá là sự lựa chọn hoàn hảo trong việc đánh chỉ mục cho rất nhiều loại dữ liệu không gian (điểm, đoạn thẳng, hình chữ nhật, đa giác…) và vẫn đang được tiếp tục phát triển trong các hệ thống thương mại như Informix và Oracle R-Tree là các cấu trúc cây dữ
Trang 20liệu sử dụng cho dữ liệu không gian đa chiều, có tính chất cân bằng độ cao và có thứ tự, được thiết kế cho thiết bị lưu trữ thứ cấp, và là sự tổng quát hóa của B-treecho các không gian dữ liệu đa chiều Chúng được sử dụng để tổ chức động các đối tượng trong không gian d-chiều được biểu diễn bởi Đường biên d-chiều tối thiểu (Minimum Bounding d-dimentional hyper-Rectangle – MBR – hoặc khung giới hạn d-chiều nhỏ nhất) Một MBR được xác định bởi hai điểm trong không gian d chiều thuộc bề mặt của nó, một điểm là tọa độ d nhỏ nhất và một điểm là tọa độ d lớn nhất (chúng là các điểm kết thúc của các đường chéo thuộc MBR) Một nút trong cây R-Tree tương ứng với MBR bao gồm cả các nút con của nó Các lá của cây bao gồm nhiều con trỏ trỏ đến các đối tượng của CSDL thay vì các con trỏ trỏ đến các nút con Các nút được xử lý giống như các trang nhớ trên đĩa
Hình 1.3: Ví dụ về R-Tree
Hình trên mô tả R-Tree và cấu trúc tương ứng ở phía bên phải Các đường
ba chấm biểu thị khung giới hạn của cây con đã được phát sinh từ nút bên trong Với các kiểu cấu trúc cây khác như cấu trúc chỉ mục, một chỉ mục của cây R-Tree phân chia không gian đa chiều bằng cách nhóm các đối tượng trong từng loại thứ tự Một không gian con chứa bởi một nút thuộc cây R-Tree luôn phải nằm trong không gian con của nút cha của nó, đó là đặc tính bao đóng MBR Theo đặc tính này, một MBR của một nút R-tree (ở bất cứ tầng nào ngoại trừ phía bên trái cây) luôn bao trọn MBR của nút R-tree con cháu của nó Đặc điểm này của kỹ thuật giới hạn không gian giữa các MBR của các nút trong cây R-tree thường được sử dụng trong thuật toán nối không gian và thuật toán truy vấn liên quan đến khoảng cách Chú ý rằng MBR – Đường biên tối thiểu - và thuộc tính
đi kèm MBR chính là các kỹ thuật xấp xỉ cơ bản Ở tầng bên trái, một khu vực xấp xỉ MBR được bao phủ bởi các đối tượng nó đi kèm, trong khi tại các tầng bên trong một khu vực xấp xỉ MBR lại được bao phủ bởi các cây con của các nút tương ứng Một thuộc tính quan trọng khác của R-tree là MBR face property (tạm dịch: thuộc tính bề mặt MBR) – mỗi bề mặt của bất kỳ MBR của mỗi nút R-tree (tại bất kỳ tầng nào) liền kề ít nhất một điểm của một số đối tượng không gian trong CSDL không gian
Trang 21Một cách tổng quát, R-tree là một cấu trúc chỉ mục cho các đối tượng không gian n-chiều và nó tương tự như B-tree Cấu trúc chỉ mục này là thực sự linh động, thao tác chèn, xóa, cập nhật có thể kết hợp với phép tìm kiếm và có thể thực hiện theo chu kỳ
Các nút lá trong cây chứa chỉ mục vì vậy chúng có khuôn dạng: (MBR, object_ptr) - trong đó object_ptr tham chiếu đến một bộ dữ liệu trong cơ sở dữ liệu và MBR là một hình chữ nhật n-chiều chứa các đối tượng không gian nó thể hiện
Các nút không phải lá có khuôn dạng: (MBR, chirld_ptr) - trong đó chirld_ptr là địa chỉ một nút khác trong cây và MBR bao gồm các hình chữ nhật trong các nút thấp hơn
Nói cách khác, không gian MBR chứa mọi đối tượng được đánh chỉ mục trong các cây con có gốc là đầu vào của MBR Cho M là số lượng tối đa đầu vào
có thể vừa đủ với một nút và cho tham số m xác định số lượng tối thiểu đầu vào tại một nút
Một R-tree thỏa mãn các thuộc tính sau:
- Mỗi một nút chứa số lượng nút con trong khoảng m và M ngoại trừ nút gốc
- Đối với mỗi đầu vào dạng (MBR, object_ptr) tại nút lá, MBR là một hình chữ nhật nhỏ nhất có chứa đối tượng dữ liệu n-chiều được biểu diễn bởi object_ptr
- Đối với mỗi đầu vào dạng (MBR, chirld_ptr) tại nút không phải nút lá, MBR là một hình chữ nhật nhỏ nhất có chứa hình chữ nhật trong chirld node
- Nút gốc có ít nhất là 2 nút con ngoại trừ đó là nút lá
- Đây là một loại cây cân bằng
Trang 221.2.2 Cách đánh chỉ số thời gian ( Snapshot index)
Chỉ mục Ảnh chụp
Trước khi chúng tôi mô tả các chỉ mục Ảnh chụp, tôi trình bày một mô hình của một quá trình tiến hóa theo thời gian Xem xét đơn giản một bộ rỗng ban đầu S Khi tiến hành thời gian, các đối tượng có thể được thêm vào hoặc bị xóa từ bộ này Khi một đối tượng được bổ sung vào S cho đến khi bị xóa từ S,
nó được gọi là "alive" Điều này được thể hiện bằng cách kết hợp đối tượng với một khoảng thời gian có dạng: [START_TIME, END_TIME] Trong khi một đối tượng là còn sống nó có thể không được tái bổ sung vào S, tức là S không chứa các bản sao Việc xóa đối tượng chỉ có thể được áp dụng cho đối tượng sống (alive) Khi một đối tượng mới được bổ sung t, thời gian bắt đầu của nó là t nhưng kết thúc thời gian của nó là chưa được biết rõ Do đó khoảng thời gian tuổi thọ của nó được bắt đầu như [t, now] “now” là một biến đại diện cho thời gian hiện tại Nếu đối tượng này sau đó đã bị xóa từ S, thời gian “now” của nó được cập nhật thành thời gian xóa của đối tượng Một đối tượng có thể được thêm vào và xóa nhiều lần, các đối tượng này có cùng oid cùng có thể tồn tại nhưng với khoảng thời gian tuổi thọ khác nhau Trạng thái của bộ tại một thời điểm t, cụ thể là S (t), là bộ sưu tập của tất cả các đối tượng còn sống tại thời điểm t
Chỉ mục Ảnh chụp sử dụng ba cấu trúc cơ bản: một cây cân bằng (time tree) chỉ mục dữ liệu trang theo thời gian, một cấu trúc con trỏ (access-forest) trong các trang dữ liệu và một chương trình băm Time-tree và access-forestcho phép trả lời truy vấn nhanh, chương trình băm được sử dụng để cập nhật nhanh chóng
-Trước tiên chúng ta thảo luận về việc cập nhật Đối tượng được lưu trữ liên tục trong trang dữ liệu theo thứ tự như chúng được thêm vào tập S Khi một đối tượng mới với OID k được thêm vào tại thời điểm t, một bản ghi mới của mẫu <k, [t, now]> được tạo ra và được gắn tiếp vào trang dữ liệu Ngay lập tức
có một trang dữ liệu chấp nhận chứa bản ghi được tạo ra Khi trang chấp nhận bị full thì một node mới được tạo ra Thời gian khi một trang chấp nhận được tạo
ra cùng với địa chỉ trang của nó được lưu trữ trong cây thời gian Như trang chấp nhận được tạo ra liên tục thời gian cây có thể dễ dàng duy trì (phân bổ O (1) I / O cho chỉ mục mỗi trang chấp nhận mới)
Xem xét số lượng bản ghi "alive" của trang chứa sau khi nó bị đầy ( full) Cho rằng tất cả các trang này chứa các bản ghi sống UB nó được gọi là hữu ích Đối với những lần t trang có chứa một phần tốt đẹp của câu trả lời cho S (t) Trả lời một câu hỏi thuần ảnh chụp về một số thời điểm t chỉ cần xác định vị trí các trang hữu ích vào thời điểm đó, mỗi trang như vậy sẽ đóng góp ít nhất là đối tượng UB để trả lời Tham số u hữu ích là một hằng số mà giai điệu của hành vi của chỉ mục ảnh chụp
Một trang được chấp nhận là đặc biệt khi một trang có thể chứa ít hơn các bản ghi còn sống UB Theo định nghĩa một trang cũng được gọi là hữu ích cho
Trang 23miễn là nó là trang chấp nhận Một trang như vậy có thể không cung cấp đủ trả lời để biện minh cho việc tiếp cận nó, nhưng nó vẫn phải được truy cập Vì mỗi lần ngay lập tức có tồn tại chính xác một trang chấp nhận, điều này không ảnh hưởng đến hiệu suất truy vấn
Coi [u.Start_time, u.End_time] biểu thị thời gian hữu dụng của trang; u.Start_time là thời trang bắt đầu là trang chấp nhận Khi trang bị đầy nó, hoặc tiếp tục là hữu ích (và cho đến khi trang có ít nhất các bản ghi còn sống UB) hoặc nó trở nên không hữu ích (nếu tại thời điểm đó đã trở thành đầy đủ trang có
ít hơn các bản ghi còn sống UB) Bước tiếp theo là nhóm các bản ghi còn sống cho mỗi t trong số các trang hữu ích tại t Khi một trang trở nên không hữu ích, một bản sao nhân tạo xảy ra mà các bản sao các bản ghi còn sống của trang này
để trang chấp nhận hiện tại (như trong một timesplit Trang vô dụng cư xử như thể tất cả các đối tượng của nó được đánh dấu là bị xóa nhưng bản sao bản ghi sống của nó vẫn có thể được tìm thấy từ các trang chấp nhận Bản sao của cùng một bản ghi chứa khoảng thời gian không chồng chéo tiếp theo của tuổi thọ của đối tượng Các thủ tục sao chép làm giảm vấn đề ban đầu của việc tìm kiếm các đối tượng sống tại t vào việc tìm kiếm các trang web hữu ích tại t Các giải pháp của vấn đề giảm được hỗ trợ thông qua việc tiếp cận rừng
Access-forest là một cấu trúc con trỏ tạo ra một " forest of trees" hợp lý giữa các trang dữ liệu Mỗi trang chấp nhận mới được nối vào cuối của một danh sách gấp liên kết kép và tồn tại trong danh sách cho đến khi nó vẫn còn hữu ích Khi một trang dữ liệu d trở nên không hữu ích: (a) nó được lấy ra từ danh sách và (b) nó trở thành trang con tiếp theo dưới trang c trước đó trong danh sách (ví dụ, c là các anh chị em bên trái của d trong danh sách khi d trở thành không hữu ích) Khi tiến hành thời gian, quá trình này sẽ tạo ra cây của các trang dữ liệu không hữu ích bắt nguồn từ trong các trang dữ liệu hữu ích của danh sách Danh sách liên kết kép và danh sách con sử dụng bốn con trỏ trên một trang Do đó, mỗi trang có một con trỏ trỏ đến trang tiếp theo, một con trỏ đến trang trước đó, một con trỏ trỏ đến trang đầu tiên, một con trỏ trỏ đến trang cuối cùng danh sách con của nó Các con trỏ con tiếp theo, trước và cuối cùng được cập nhật để luôn luôn trỏ đến trang hiện tại ở các vị trí tương ứng
Trang 24Chương 2 CÁC PHƯƠNG PHÁP TỔ CHỨC CƠ SỞ DỮ LIỆU CHO ĐỐI
TƯỢNG CHUYỂN ĐỘNG
Nhiều thập kỷ qua có rất nhiều phương pháp tổ chức dữ liệu cho đối tượng chuyển động được nghiên cứu và phát triển Phương pháp tổ chức dữ liệu cho đối tượng chuyển động chủ yếu tập trung vào 02 hướng là: (1) lập chỉ mục quá khứ, (2) lập chỉ mục hiện tại và dự đoán tương lai Trong phần này tôi sẽ tìm hiểu và phân tích một số phương pháp tổ chức dữ liệu dựa trên cấu trúc cơ bản của các phương pháp lập chỉ mục
2.1 Lập chỉ mục quá khứ tiến trình không-thời gian
Dữ liệu lịch sử của đối tượng chuyển động là rất hữu ích trong các ứng dụng như lập kế hoạch và quản lý tài nguyên Tuy nhiên trong cơ sở như vậy không gian để lưu trữ thông tin vị trí của đối tượng là rất lớn khi đối tượng chuyển động Do đó vấn đề quyết định là dữ liệu lịch sử nào là tốt nhất và lưu trữ chúng như thế nào để đạt hiệu quả cao
Hình 2.5 Mô tả tổng quan một tiến trình không-thời gian
Hình 2.5 mô tả một trường hợp thể hiện sự di chuyển của các đối tượng
và sự thay đổi như thu nhỏ/mở rộng của các đối tượng trong những điểm thời gian khác nhau Tuy nhiên trong trường hợp tổng quát sự thay đổi này không xác định được rõ ràng như sự chèn/xóa đối tượng Xem xét một ví dụ của 1 đối tượng di chuyển từ vị trí A tại thời điểm ti đến một vị trí C trong thời gian kế tiếp ti+1 Cách đơn giản nhất để mô tả cho hành động này là xoá đối tượng từ vị trí A tại thời điểm ti+1 và chèn lại đối tượng tại vị trí C tại thời điểm ti+1 Điều này nó tạo ra 02 bản ghi (record) cho đối tượng: một bản ghi để lưu vị trí A với khoảng thời gian tồn tại (lifetime) kết thúc tại ti+1 và một bản ghi để lưu vị trí C với khoảng thời gian tồn tại bắt đầu tại ti+1 Thời gian tồn tại của đối tượng đã được chia nhỏ thành 2 bản ghi với khoảng thời gian liên tiếp và không chồng chéo Tuy nhiên, cách tiếp cận này là không hiệu quả nếu đối tượng liên tục thay đổi vị trí hay kích thước của nó theo thời gian dẫn đến việc nó sẽ phải tạo ra số lượng lớn các bản ghi chèn vào cơ sở dữ liệu, dẫn đến không gian lưu trữ lớn
Trang 25Có một cách tốt hơn để giải quyết cho việc này là chỉ lưu trữ các hàm mô
tả của kích thước hoặc vị trí của các đối tượng di chuyển Hàm mô tả được sử dụng như các hàm tuyến tính theo thời gian vì các đối tượng có thể thay đổi hay được thu nhỏ/mở rộng theo thời gian Các bản ghi mới được chèn vào chỉ khi đối tượng có sự thay đổi vị trí hay kích thước của nó Các bản ghi mới sẽ duy trì thời gian tồn tại của đối tượng dưới một hàm chuyển động/kích thước mới Trong trường hợp tổng quát số lượng N chèn vào tương ứng với: (1) đối tượng chèn thường xuyên và (2) đối tượng chèn vào khi tham số của hàm thay đổi
2.1.1 Phương pháp tiếp cận đơn giản
Một phương pháp tiếp cận đơn giản cho việc lập chỉ mục dữ liệu thời gian là coi trục thời gian như là một chiều giống như những chiều khác của không gian
không-Sau đó mỗi đối tượng có thể lưu trữ như một hình hộp chữ nhật 3 chiều trong đó độ cao của hình hộp chữ nhật chính là khoảng thời gian tồn tại của đối tượng Các phương pháp truy nhập không gian truyền thống SAM (R-tree [2], Quad-tree[8]) sẽ sử dụng không gian d+1 chiều, trong đó d là số chiều của không gian tham chiếu và bổ sung thêm chiều của thời gian
Theo cách tiếp cận này, phương pháp 3DR-tree [11] sử dụng trục thời gian như là một chiều giống như những chiều khác của không gian Tại mốc thời gian ti các đối tượng không gian chỉ đơn giản là được bổ sung vào hay xoá đi Khi một đối tượng di chuyển từ vị trí này sang vị trí khác một MBR được tạo ra
để mô tả những thay đổi của đối tượng MBR này chứa kích thước không gian
và thời gian tồn tại của đối tượng Đối tượng sẽ được mô tả như một hình hộp 3 chiều, với chiều thời gian chính là thời gian tồn tại của đối tượng như hình 2.6
Trang 26Hình 2.7 minh hoạ: (1) một đối tượng chuyển động được mô tả bởi nhiều hình hộp, mỗi hình hộp tương ứng với một phiên bản (version) khác nhau của đối tượng và (2) tương ứng với cấu trúc 3DR-tree Việc tìm kiếm các đối tượng trong phạm vi không thời gian giới hạn (tìm tất cả các đối tượng mà không bị chồng chéo nhau trong cả 2 chiều không gian và thời gian) được minh hoạ và nó
là loại truy vấn 3D điển hình trong cấu trúc R-tree
Hình 2.7 (1) Kiểu hình hộp (2) 3DR-tree
Việc sắp xếp các chỉ mục chỉ bao gồm: 01 chỉ mục không gian (3D) để đặt vị trí đối tượng trong hệ toạ độ không gian và thời gian (thời gian là một trục giống như chiều khác của không gian) Vì đã có sẵn các công cụ để xử lý dữ liệu
đa chiều (ví dụ như R-tree và các mở rộng của nó), do đó người khai thác thực hiện truy vấn và xử lý như đối với việc lập chỉ mục trong không gian 3D
Ưu điểm của 3D R-tree là: thứ nhất nó rất dễ dàng để thực hiện vì cơ chế lập chỉ mục hoàn toàn dựa trên một khung cấu trúc dữ liệu không gian thống nhất R-tree và thứ hai nó làm tăng hiệu quả không gian vì nó không lưu trữ các đối tượng bị trùng lăp Vì vậy trong nhiều cuộc thử nghiệm [11] truy vấn theo khoảng thời gian dài là hiệu quả nhất đối với phương pháp này
Tuy nhiên nhược điểm của nó là thực hiện truy vấn trên khoảng thời gian ngắn và mốc thời gian là hạn chế vì quá trình thực hiện truy vấn mốc thời gian
nó không những phụ thuộc vào các dữ liệu còn tồn tại tại mốc thời gian mà còn phụ thuộc vào tất cả các dữ liệu trong quá khứ, trong khi đó 3DR-tree nó không lưu trữ các trạng thái quá khứ Trong Hình 2.8 minh họa kích thước của hình hộp phụ thuộc vào nhiều đối tượng ở những mốc thời gian khác nhau 3DR-tree
có thể bị chồng chéo do 2 vấn đề: đầu tiên là đối tượng tồn tại trong một thời gian dài được thể hiện bằng hình hộp chữ nhật dài, thứ 2 khi đối tượng mới được chèn vào ở thời gian t, nó sẽ xoá thời gian cũ vì vậy thời gian tồn tại mới của nó bắt đầu [t, tnow] trong đó tnow là một biến đại diện cho thời gian hiện tại, tnow được lưu trữ như một giá trị rất lớn để thời gian tồn tại của các đối tượng sẽ có một kết thúc chung
x
t
y
Trang 27Hình 2.8 Một ví dụ của truy vấn theo mốc thời gian
2.1.2 Phương pháp tiếp cận từng phần liên tục
Không giống như các ý tưởng trước đây, ý tưởng này để duy trì các trạng thái quá khứ của R-tree (hoặc các chỉ mục) bằng cách giữ lại các trạng thái hiện tại và trạng thái quá khứ của R-tree Nó tái tạo lại gốc R-tree từ trạng thái này sang trạng thái khái, nó không quan tâm tới gốc (root) hay các nhánh (branches)
đã được thay đổi hay không Cấu trúc này cho phép cập nhật trạng thái tại thời điểm cuối cùng của nó Một truy vấn quá khứ tại thời điểm t được chuyển trực tiếp tới trạng thái mà cấu trúc được thực hiện như thể 1 cây R-tree được lập chỉ mục trạng thái S(t)
Phương pháp tiếp cận này được minh hoạ trên hình 2.9, nó cho thấy rằng chỉ một vài nhánh và gốc được thay đổi Các nhánh con không thay đổi nó cũng được sao chép lại, việc sao chép toàn bộ cây tại mỗi thời điểm là giải pháp không hợp lý
Hình 2.9 Một R-tree ở thời gian T 0 , T 1 , T 2
Để giải quyết vấn đề này, có 2 phương pháp tiếp cận hiệu quả nhất: (1) tiếp cận chồng chéo HR-tree và (2) tiếp cận đa phiên bản (Multiversion) MVR-tree
Phương pháp tiếp cận chồng chéo HR-tree
Trang 28HR-tree [5] sử dụng phương pháp chồng chéo này với giả định rằng các S(t) liên tiếp không có nhiều sự khác nhau Nó giữ các R-tree như một cây duy nhất Một mặt, nếu nút nào không thay đổi giữa 2 mốc thời gian thì các nhánh chung sẽ được chia sẻ giữa các cây với nhau để tiết kiệm không gian Mặt khác, nếu một nhánh có chứa nội dung đối tượng đã thay đổi nó được sao chép hoàn toàn và đánh dấu với một mốc thời gian như trong Hình 2.10
Hình 2.10 Phương pháp chồng chéo
Phương pháp chồng chéo khắc phục thiếu sót của phương pháp tiếp cận từng phần liên tuc Nó ngăn chặn việc sao chép các nhánh con từ bất kỳ thời điểm nào, đối với các nhánh và nút gốc khi có sự thay đổi nó sẽ chỉ ra các nút và nhánh mới, vì vậy nó tiết kiệm được không gian lưu trữ Các thuộc tính thời gian
là thời gian thực hiện, khoảng thời gian thực hiện là thời gian một đối tượng đã được lưu trong cơ sở dữ liệu không gian Do đó một MBR được lưu trữ trong cơ
sở dữ liệu không gian kể từ thời điểm được đưa vào cho đến khi nó được cập nhật hay bị xoá đi
Lập chỉ mục thuật toán HR-tree nó tương tự như của R-tree [2] Tuy nhiên, nó có một số khác biệt từ R-tree:
Deletion
Chỉ có 02 sửa đổi cần thiết trong Guttman’s CondenseTree [2]: (1) trong thuật toán chèn, thuật toán chèn trên phải được sử dụng thay thế gốc của nó và (2) một nút có chứa mục để chèn vào trong tập Q sẽ được xóa bỏ chỉ khi nó là
Trang 29mốc thời gian hiện tại Mặt khác, một nút sẽ được xóa bỏ nếu nó là trùng lặp Nếu nó thuộc về trạng thái trước đó của R-tree, nó sẽ không được xóa bỏ
Ưu điểm của HR-tree là hiệu suất truy vấn mốc thời gian nhanh vì truy vấn mốc thời gian là truy vấn trực tiếp tới R-tree và tìm kiếm thực hiện bên trong cây
Tuy nhiên, nhược điểm của HR-tree là không gian đòi hỏi lớn, bởi vì phần lớn các bộ dữ liệu HR-tree độc lập với R-tree tại mỗi mốc thời gian
Trong ví dụ Hình 2.11, nếu 1 bản ghi mới e1 của e0 được chèn vào nút D0, nó sẽ tạo ra 2 nút mới: D1 (chứa phần tử của D0 cộng với e1), và E1 (chứa phần tử E0 trừ đi e0) Sự thay đổi sẽ được đưa vào gốc B1 và C1, vì vậy ngay
cả khi đối tượng thay đổi vị trí của nó toàn bộ tuyến (path) cần phải nhân đôi
Từ tóm tắt này, nếu đối tượng thường xuyên thay đổi thì kết quả của nó sẽ nhiều bản sao Hơn thế nữa, hiệu quả suy giảm rất nhanh cho khoảng truy vấn (như là khoảng độ dài tăng lên do bản sao tăng)
Hình 2.11 Chèn vào một phiên bản mới e 1 thay thế đối tượng e 0
Phương pháp tiếp cận đa phiên bản (multiversion)
HR+-tree sử dụng phương pháp tiếp cận này tương tự như phương pháp tiếp cận chồng chéo trong việc giữ nhiều R-tree như là một cây duy nhất Tuy nhiên HR+-tree (multiversion R-tree) cho phép đưa vào nhiều mốc thời gian để đặt trong cùng một nút Các nút mới là được tạo chỉ khi nó vượt khỏi giới hạn, mỗi phần tử có khuôn dạng (S, tstart, tend, pointer), trong đó S thể hiện MBR như định nghĩa trong R-tree, tstart (tend) đại diện cho mốc thời gian tại đó các mục tương ứng sẽ được chèn (xoá) Thời gian tồn tại của một mục là khoảng đóng [tstart, tend) Nếu có một mục là không bị xoá cho đến thời gian hiện tại,
nó được đánh dấu “*” (một từ với nghĩa là thời gian hiện tại)
Xem Hình 2.12 nếu nút lá E0 là có chỗ (tối đa là 4) chúng có thể chèn e1 (phiên bản khác của e0) tại thời gian T1 trong cùng một nút và cập nhật được đưa vào gốc của thời gian hiện tại
Trang 30Hình 2.12 Chèn một phiên bản mới của e 1 thay thế đối tƣợng e 0
Thuật toán lập chỉ mục của HR+-tree cũng gần tương tự như R-tree và cập nhật sẽ thực hiện trong phiên bản quá khứ gần nhât của R-tree
Insertion
Không giống như thường lệ R-tree chọn một mục để chèn vào nút lá, tuy nhiên lựa chọn đưa vào có thể được nhân đôi để đảm bảo cho hiệu suất truy vấn mốc thời gian tốt nhất Ví dụ trong Hình 2.13 nút lá được lựa chọn bởi thuật toán cây con là D, thực hiện bằng cách làm theo mục u trong nút A Nếu chèn
<h,2,*> vào D mà không mở rộng phạm vi không gian của D, thì việc chèn không làm thay đổi bất kỳ cấu trúc trong cây Tuy nhiên nếu chèn là nguyên nhân mở rộng phạm vi, một mục mới u’ được tạo ra trong khi u là bị xoá (xu hướng của nó là thay đổi đến 2 lần) Đưa (a,b,c,d) trong khoảng thời gian [0, 2) vào không gian giới hạn (bounds) u , trong khi giới hạn u’ còn hoạt động ở mốc thời gian 2
(a)Before insertion (b)After insertion
Hình 2.13 Nhân đôi một phần tử trung gian
Tràn (overflow) xảy ra khi một phần tử (phần tử) là được chèn vào một nút, nút đó đã chứa tối đa các phần tử Xử lý tràn như quá trình tại Hình 2.14
Trang 31Hình 2.14 Xử lý overflow
Chia khoá (Key split) xảy ra chỉ khi tất cả các mục trong nút được chèn tại mốc thời gian hiện tại và đảm bảo điều kiện phiên bản mạnh (strong version): thời gian các mục tồn tại B*Psvo, B thể hiện khả năng của nút, Psvo là một tham số [0,1]
Chia phiên bản (Version Split) được thực hiện và đảm bảo điều kiện phiên bản yếu (weak version): thời gian các mục tồn tại B*Psvo
Tuy nhiên chúng ta luôn cố gắng để tránh việc Version Split bởi vì nó sẽ xảy ra các mục dư thừa Xem hình 2.15, khi khả năng của nó là 3 nút lá bị phân chia và sau đó làm cho dư thừa mục C0 và d0
Hình 2.15 Làm dƣ thừa các phần tử khi bị tràn Deletion
Tương tự như R-tree nhưng chỉ có các mục tồn tại mới bị xoá ở mốc thời gian hiện tại Một mục là bị xoá vật lý chỉ khi tstart là bằng thời gian hiện tại Thuật toán xoá có thể gây ra lỗi tràn bởi vì nó cần tạo những mục mới để phục
vụ cho việc truy vấn, như thể hiện trong Hình 2.12
Trang 32Hình 2.16 Nhân đôi một phần tử trong khi xoá
Thiếu mục (Underflow) xảy ra là hậu quả của việc vi phạm các điều kiện phiên bản yếu (weak version) sau khi xoá Chúng ta có 3 lựa chọn để xử lý việc Underflow:
(1) Xuất phát trực tiếp từ R-tree, chèn lại các mục tồn tại vào nút Underflow Tuy nhiên việc chèn lại các mục có thể dẫn đến dư thừa phiên bản
và sẽ còn lại tối thiểu
(2) Một nút có thể không còn underflow nếu một vài mục được chèn cùng một mốc thời gian Vì vậy chúng ta không xử lý các underflow mà làm một danh sách các nút underflow Trước khi xử lý ở mốc thưòi gian tiếp theo, chúng
ta kiểm tra mỗi nút trong danh sách , nếu có bất kỳ một nút underflow nào thì chúng ta chèn lại các mục đang tồn tại
(3) Chúng ta không áp dụng việc chèn lại tất cả, mà cố gắng để hợp các nút underflow với một nút anh em của nó
Trong các thử nghiệm HR+-tree tiêu tốn một phần nhỏ không gian cần thiết tương ứng HR-tree (thường ít hơn 20%) HR+-tree kế thừa hiệu quả của HR-tree trong mốc thời gian truy vấn, thực hiện tốt hơn nhiều trong khoảng truy vấn Tuy nhiên từ phân tích các thuật toán của nó, khi đối tượng thay đổi ở tốc
độ ổn định, nó tốn rất nhiều không gian nhớ từ khi các đối tượng được nhân bản rông rãi Hơn nữa, nó vẫn còn hạn chế phương pháp thực hiện để truy vấn khoảng thời gian từ khi phiên bản được nhân rộng
2.1.3 MV3Rtree
Bởi vì không một phương nào trong số 3DR-tree, HR-tree, HR+-tree có thể giải quyết việc truy vấn theo vết thời gian (timeslice) và khoảng thời gian một cách hiệu quả, do đó Multiversion 3DR-tree (MV3R-tree) [10] được đề xuất
để thực hiện cho yêu câu trên MV3R-tree nó khắc phục vấn đề này bằng cách kết hợp 2 cấu trúc: a multiversion R-tree (MVR-tree) và một phần nhỏ 3DR-tree xây dựng trên các nút lá của MVR-tree Hình 2.17 minh hoạ một ví dụ của