Khi cần cho việc quản lý các đối tượng chuyển động, dự đoán các vị trí tương lai như giải quyết các bài toán xung đột, tắc nghẽn thì hệ thống VNTracking chưa thể đưa ra được các kết quả
Trang 2LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Hoàng Đỗ Thanh Tùng
Trang 3tô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
Lương Thành Được
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 dữ liệu cho các đối tượng chuyển động hỗ trợ hệ thống VNTracking” đã
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 thuộc Viện 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ệ thông tin và Truyền thông - Đại học Thái Nguyên đã 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
Tôi xin chân thành cảm ơn các anh chị làm việc tại Trung tâm Tin học Viễn thông Hải Phòng đã tạo điều kiện giúp đỡ tôi hoàn thành luận văn này
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
Thái Nguyên, ngày 10 tháng 10 năm 2012
Học viên
Lương Thành Được
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
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG GPS VÀ ÁP DỤNG BÀI TOÁN GPS CHO HỆ THỐNG VNTRACKING 2
1.1 Tổng quan về hệ thống GPS 2
1.1.1 Khái niệm cơ bản về GPS 2
1.1.2 Cấu trúc của hệ thống GPS 2
1.1.3 Hoạt động của GPS 3
1.1.4 Thành phần tín hiệu của GPS 4
1.2 Bài toán GPS trong quản lý đối tượng chuyển động VNTracking 5
1.2.1 Mô hình hệ thống 5
1.2.2 Các phương thức hoạt động của hệ thống VNTracking 6
1.2.3 Nguyên tắc hoạt động của hệ thống VNTracking online 7
2.3 Phân tích mô hình cơ sở dữ liệu của hệ thống VNTracking 11
CHƯƠNG 2 CÁC PHƯƠNG PHÁP TỔ CHỨC DỮ LIỆU CHO ĐỐI TƯỢNG CHUYỂN ĐỘNG 13
2.1 Cơ sở dữ liệu không gian truyền thống 13
2.1.1 Khái niệm R-tree 13
2.1.2 Cấu trúc R-tree 14
2.1.3 Thuật toán R-tree 16
2.2 Các phương pháp lập chỉ mục 23
2.2.1 Lập chỉ mục quá khứ tiến trình không-thời gian 24
2.2.1.1 Phương pháp tiếp cận đơn giản 25
2.2.1.2 Phương pháp tiếp cận từng phần liên tục 28
2.2.1.3 MV3Rtree 35
Trang 62.2.1.4 Lập chỉ mục cho các quỹ đạo (quá khứ) của các vị trí 36
2.2.2 Lập chỉ mục cho hiện tại và tương lai của đối tượng chuyển động 43
2.2.2.1 Khái niệm TPR-tree 44
2.2.2.2 Cấu trúc và thuật toán TPR-tree (Time parameterizer R-tree) 45
CHƯ Ơ NG 3 XÂY DỰNG CHƯ Ơ NG TRÌNH THỬ NGHIỆM 52
3.1 Thiết kế dữ liệu 52
3.2 Thiết kế file chỉ mục 53
3.3 Thiết kế chương trình 54
3.3.1 Biểu đồ lớp 55
3.3.2 Biểu đồ tuần tự 59
3.4 Một số kết quả thử nghiệm chương trình 61
3.4.1 Form chương trình 61
3.4.2 Thử nghiệm 64
3.4.3 Đánh giá 67
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
Trang 7DANH SÁCH TỪ VIẾT TẮT
GPS Global Positioning System
GSM Global System for Mobile Communications
GPRS General Packet Radio Service
GIS Geographic Information System
SMS Short Message Services
MBR Minimum Bounding Rectangle
HR-tree Historical R-tree
MBB Minimum Bounding Box
STR-tree Spatio-Temporal R-tree
TB-tree Trajectory-Bundle tree
SAM Spatio Access Methods
MV3R-tree Multiversion 3D R-tree
TPR-tree Time Parameterized R-tree
VBR Velocity Bounding Rectangle
Trang 8DANH SÁCH BẢNG
Bảng 1.1 Các thành phần cơ bản của hệ thông GPS 4
Bảng 1.2 Diễn giải của một khung bản tin 7
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 53
Bảng 3.2 Thông tin cấu trúc của file trên đĩa 53
Bảng 3.3 Thông tin của TPR-tree 54
Bảng 3.5 Thông tin phần tử 54
Bảng 3.6 Chức năng của các lớp 55
Bảng 3.7 TRP-tree tại khoảng thời gian khác nhau với 10k 65
Bảng 3.8 TRP-tree tại khoảng thời gian khác nhau với 30k 65
Bảng 3.9 TRP-tree tại khoảng thời gian khác nhau với 50k 66
Trang 9DANH SÁCH HÌNH
Hình 1.1 Sơ đồ cấu trúc của hệ thống GPS 2
Hình 1.2 Ý tưởng định vị của hệ thống GPS 3
Hình 1.3 Mô hình của hệ thống VNTracking 5
Hình 1.4 Mối quan hệ giữa các bảng của hệ thống VNTracking 8
Hình 1.5 Tìm kiếm vị trí và thông tin hiện thời của xe trên bản đồ 9
Hình 1.6 Xem nhanh các lộ trình của đối tượng 10
Hình 1.7 Kết xuất các báo cáo dừng đỗ của đối tượng 10
Hình 2.1 Biểu diễn cây R-tree 15
Hình 2.2 Biểu diễn 02 chiều của một R-tree 15
Hình 2.3 Trường hợp phân chia node (a) bad split, (b) good split 21
Hình 2.4 Phân chia phần tử thành các nhóm node mới 21
Hình 2.6 Hình hộp giới hạn với chiều thời gian 26
Hình 2.7 (1) Kiểu hình hộp (2) 3DR-tree 27
Hình 2.8 Một ví dụ của truy vấn theo mốc thời gian 28
Hình 2.9 Một R-tree ở thời gian T0, T1, T2 29
Hình 2.10 Phương pháp chồng chéo 29
Hình 2.11 Chèn vào một phiên bản mới e 1 thay thế đối tượng e0 31
Hình 2.12 Chèn một phiên bản mới của e 1 thay thế đối tượng e0 32
Hình 2.13 Nhân đôi một phần tử trung gian 33
Hình 2.14 Xử lý overflow 33
Hình 2.15 Làm dư thừa các phần tử khi bị tràn 34
Hình 2.16 Nhân đôi một phần tử trong khi xoá 34
Hình 2.17 Kết hợp của MVR-tree và 3DR-tree 36
Hình 2.18 Chuyển động của một đối tượng không gian và quỹ đạo tương ứng 37
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 38
Hình 2.20 Xử lý chèn cho STR-tree 39
Hình 2.21 Các kiểu chia đoạn 39
Hình 2.22 (a) Nút cha là không đầy đủ, (b) Nút cha đầy đủ 40
Hình 2.23 Cấu trúc TB-tree 41
Hình 2.24 (a) truy vấn Topological, (b) truy vấn Combined 42
Trang 10Hình 2.25 Các điểm di chuyển và kết quả Leaf-Level MBRs 44
Hình 2.26 Ví dụ các điểm di chuyển như các Leaf Node của TPR-tree 46
Hình 2.27 Ví dụ các điểm di chuyển như các Internal Node của TPR-tree 46
Hình 2.28 Ví dụ cập nhật khoảng giới hạn theo tham số thời gian 48
Hình 2.29 Ví dụ truy vấn Timeslice trong TPR-tree 49
Hì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 50
Hình 3.1 Biểu đồ lớp của R-tree 58
Hình 3.2 Biểu đồ tuần tự 59
Hình 3.3 Form chính của chương trình 62
Hình 3.4 Form cấu hình dữ liệu 62
Hình 3.5 Form tạo cây Rtree 63
Hình 3.6 Form truy vấn dữ liệu 63
Hình 3.7 Form kết quả nhận được sau khi truy vấn 64
Hình 3.8 Kết quả thử nghiệm Avg data retrieves 66
Hình 3.9 Kết quả thử nghiệm Avg Node access 66
Trang 11PHẦN MỞ ĐẦU
Ngày nay công nghệ GPS được ứng dụng rất nhiều, mang lại hiệu quả cao trong nhiều lĩnh vực khoa học công nghệ, phục vụ sản xuất đời sống và nhu cầu xã hội, đặc biệt là quản lý các đối tượng chuyển động với nhiều bài toán giao thông VNTracking là sản phẩm của tập đoàn VNPT sử dụng hệ thống định vị toàn cầu GPS với mục đích để định vị, giám sát, quản lý các phương tiện giao thông như xe tải, xe taxi, xe khách, xe cá nhân Tuy nhiên việc tối ưu hoá và tìm ra phương pháp tổ chức dữ liệu nhằm tăng hiệu quả sử dụng tài nguyên và tăng tốc độ truy xuất là cần thiết khi sản phẩm được sử dụng rộng rãi
Trong luận văn này tôi tập trung tìm hiểu, nghiên cứu các phương pháp
tổ chức cơ sở dữ liệu cho đối tượng chuyển động, từ đó đưa ra phương pháp tối ưu để hỗ trợ cho các hệ thống quản lý các đối tượng chuyển động nói chung và hệ thồng VNTracking nói riêng Đề tài luận văn tốt nghiệp
“Phương pháp tổ chức dữ liệu cho các đối tượng chuyển động hỗ trợ hệ thống VNTracking” được xây dựng dựa trên quá trình tìm hiểu các thành tựu
khoa học kỹ thuật, các bài báo trong lĩnh vực này và hệ thống lại một cách bài bản, chi tiết Luận văn gồm: phần mở đầu, phần nội dung, phần kết luận Phần nội dung bao gồm 3 chương cụ thể như sau:
Chương 1: Tổng quan về hệ thống GPS và áp dụng bài toán GPS cho
hệ thống VNTracking: phần này giới thiệu tổng quan về hệ thống GPS và áp dụng bài toán GPS trong quản lý đối tượng chuyển động
Chương 2: Các phương pháp tổ chức dữ liệu cho đối tượng chuyển động: phần này tìm hiểu một số phương pháp tổ chức dữ liệu quá khứ, dữ liệu hiện tại và tương lai, tìm hiểu và phân tích cấu trúc TPR-tree
Chương 3: Xây dựng chương trình thử nghiệm: phần này phân tích về xây dựng chương trình và một số kết quả thử nghiệm
Trang 12Chương 1 TỔNG QUAN VỀ HỆ THỐNG GPS VÀ ÁP DỤNG BÀI
TOÁN GPS CHO HỆ THỐNG VNTRACKING 1.1 Tổng quan về hệ thống GPS
1.1.1 Khái niệm cơ bản về GPS
Hệ thống định vị toàn cầu GPS (Global Positioning System) [1] là một
hệ thống xác định vị trí dựa trên vị trí của các vệ tinh nhân tạo Trong cùng một thời điểm, ở một vị trí bất kỳ trên trái đất nếu xác định được khoảng cách đến tối thiểu ba vệ tinh thì ta có thể tính được tọa độ của vị trí đó
1.1.2 Cấu trúc của hệ thống GPS
Hệ thống GPS gồm 3 thành phần:
- Phần không gian: bao gồm các vệ tinh nhân tạo mà nó truyền tín hiệu
về thời gian và vị trí tới bộ phận người dùng
- Phần điều khiển: bao gồm toàn bộ thiết bị trên mặt đất được sử dụng
để giám sát và điều khiển các vệ tinh
- Phần người dùng: bao gồm các máy thu tín hiệu vệ tinh và phần mềm
xử lý, tính toán số liệu
Trang 13Hình 1.2 Ý tưởng định vị của hệ thống GPS
Theo nguyên tắc thông thường để xác định vị trí của 1 vật nào đó ta cần xác định được khoảng cách của chúng tới các vật chuẩn khác, ví dụ như khi ta lạc đường , một người chỉ cho ta biết rằng anh đang cách Hà Nội 50Km, ta chỉ biết được là đang nằm đâu đó trong trên đường tròn bán kính 50Km quanh Hà nội, nếu 1 người khác bảo là ta cách Hải Phòng 50Km thì ta biết được là đang
Trang 14nằm đâu đó trên đường tròn bán kính 50Km quanh Hải Phòng, ta xác định được 2 vị trí bằng cách cho 2 đường tròn cắt nhau, và nếu 1 người khác lại cho ta biết rằng vị trí đó cách Bắc Ninh 10 Km thì ta sẽ xác định được chính xác vị trí của mình GPS cũng sử dụng nguyên tắc đó để xác định vị trí, tuy nhiên trong không gian, 3 mặt cầu cắt nhau cho ra 2 điểm, nếu sử dụng trái đất là mặt cầu thứ tư thì sẽ xác định được vị trí của mình Vì vậy tất cả máy thu GPS bắt được tín hiệu của ít nhất ba vệ tinh để có thể tính được vị trí hai chiều (kinh độ và vĩ độ) và nếu máy thu GPS bắt được tín hiệu của bốn hay nhiều hơn số vệ tinh trong tầm nhìn thì máy GPS có thể tính được vị trí theo
ba chiều (kinh độ, vĩ độ và độ cao)
Bảng 1.1 Các thành phần cơ bản của hệ thông GPS
Trang 151.2 Bài toán GPS trong quản lý đối tƣợng chuyển động VNTracking
Hiện nay bài toán công nghệ định vị bằng GPS khi kết hợp với hạ tầng của hệ thống viễn thông hiện đại sẽ tạo ra một hệ thống giám sát và quản
lý các phương tiện giao thông vận tải một cách lý tưởng Hệ thống VNTracking là một giải pháp để giải quyết bài toán quản lý phương tiện giao thông một cách toàn diện, từ theo dõi vị trí tới quản lý tốc độ, lượng xăng dầu tiêu thụ và cảnh báo dấu hiệu bất thường nếu có
VNTracking quản lý phương tiện trực tuyến, sử dụng công nghệ định vị
vệ tinh toàn cầu GPS, với giải pháp này khách hàng có thể sử dụng máy điện thoại di động truy cập Internet qua phương thức GPRS, 3G hoặc Wifi, hoặc
sử dụng màn hình tivi để quản lý các phương tiện vận tải mọi lúc , mọi nơi trên toàn quốc
1.2.1 Mô hình hệ thống
Hình 1.3 Mô hình của hệ thống VNTracking
Trang 16Trong mô hình hệ thống VNTracking có các thành phần như sau:
Hộp đen (thiết bị GPS Tracking): là thiết bị nhỏ gon được gắn trên xe Hộp đen có 02 thành phần chính hoạt động dựa trên sự kết hợp giữa sóng vệ tinh GPS và GSM/GPRS (sử dụng mạng viễn thông di động MobiFone, VinaPhone)
Hệ thống máy chủ: có cài phần mềm VNTracking để cập nhật, lưa trữ,
xử lý toàn bộ thông tin từ các phương tiện chuyển về và đưa ra các thông tin khi được truy vấn
Hệ thống truyền dẫn: sử dụng hệ thống thông tin di động GSM để truyền dữ liệu từ hộp đen gắn trên phương tiện về trung tâm lưu trữ và sử dụng hệ thông Internet, GSM/GPRS để truy vấn và lấy thông tin từ trung tâm lưu trữ
1.2.2 Các phương thức hoạt động của hệ thống VNTracking
VNTracking có thể giám sát hoạt động của phương tiện trong 02 chế độ: quản lý trực tuyến (online) và quản lý không trực tuyến (offline)
Quản lý theo phương thức trực tuyến (online) : là sự kết hợp của bản đồ
số Google Map và thông tin di động GSM qua cơ chế SMS hoặc GPRS, tất cả thông tin của phương tiện giao thông được thể hiện trên hệ thống, giúp cho việc định vị và giám sát chuyển động của phương tiện giao thông trong thời gian thực
Quản lý không trực tuyến (offline): hệ thống chỉ gồm máy thu GPS và thiết bị có chức năng lưu trữ như hộp đen, tự động thu thập các thông tin về vị trí, tốc độ của phương tiện giao thông trong suốt hành trình Sau khi kết thúc hành trình người quản lý có thể lấy số liệu ra để quản lý và kiểm tra xem có chạy đúng hành trình và đúng tốc độ quy định hay không
Trang 171.2.3 Nguyên tắc hoạt động của hệ thống VNTracking online
Bước 1 Các hộp đen được gắn trên các phương tiện chuyển động sẽ có nhiệm vụ nhận các tín hiệu từ vệ tinh, xử lý các tín hiệu từ vệ tinh và đưa ra các thông số (toạ độ long, lat, chiều cao, chiều cao so với mặt nước biển; thời gian; tốc độ và hướng của xe; số vệ tinh nhận được tín hiệu) Các thông số trên được thể hiện dưới dạng bản tin và theo khung chuẩn nhất định Ví dụ về khung bản tin có khuôn dạng như sau:
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,*10
Bảng 1.2 Diễn giải của một khung bản tin
Bước 2 Các dữ liệu từ hộp đen sẽ được gửi định kỳ theo chu kỳ 10s/1bản tin về hệ thống máy chủ qua tín hiệu tin nhắn SMS của GSM/GPRS Các ID của từng phương tiện giao thông được thể hiện qua các ID của SMS nhận về
Trang 18Bước 3 Tại hệ thống máy chủ sẽ nhận các bản tin từ hộp đen đưa về sau đó lưu trữ các dữ liệu vào cơ sở dữ liệu Tại đây các dữ liệu được lưu trữ
và cập nhật trong một hệ thống cơ sở dữ liệu có sẵn Các cơ sở dữ liệu được
tổ chức trong các bảng dữ liệu riêng để có thể thuận tiện cho việc lấy dữ liệu, truy vấn và đưa dữ liệu ra bản đồ nền Ví dụ về sơ đồ quan hệ giữa các bảng
dữ liệu trong hệ thống VNTraking:
Hình 1.4 Mối quan hệ giữa các bảng của hệ thống VNTracking
Bước 4 Tại các máy chủ và máy trạm tuỳ theo nhu cầu quản lý với hệ thống thông tin GIS (Geographic Information System) sẽ cài các phần mềm chuyên dụng để sử dụng Thông thường phần mềm sẽ được cài đặt với bản đồ nền GoogleMap để trực quan trong việc xác định vị trí của các đối tượng
Tại các máy trạm được cài đặt phần mềm sẽ được kết nối tới Server lưu trữ dữ liệu qua đường truyền Internet/GSM, tại đây người sử dụng có thể thực
Trang 19hiện theo dõi, giám sát các đối tượng và tìm kiếm, truy vấn các thông tin cần thiết liên quan đến các đối tượng quản lý
Một số ví dụ về các chức năng của hệ thông VNTracking:
Tìm kiếm: Nhập biển số xe vào ô trắng bên cạnh nút , hệ thống
tự động trỏ tới vị trí của xe trên bản đồ thông tin chi tiết của xe hiển thị cùng vị trí của xe trên bản đồ Hoặc tìm xe bằng cách chọn biển số trong danh sách xe, hệ thống tự động trỏ tới vị trí của xe trên bản đồ cùng với
thông tin chi tiết của xe
Hình 1.5 Tìm kiếm vị trí và thông tin hiện thời của xe trên bản đồ
Xem nhanh lộ trình: xem lộ trình của các xe trong ngày, 15 phút, 30 phút gần đây của 1 xe đã chọn trên bản đồ Xem lộ trình của các đối tượng trong khoảng thời gian theo khoảng thời gian đã chọn hoặc xem trực tiếp trên bản đồ Người dùng có thể giám sát lộ trình của xe đang ở đâu, đang
Trang 20chuyển động hay dừng, tốc độ di chuyển của xe một cách trực quan, và tổng
số km cũng như thời gian hoạt động
Hình 1.6 Xem nhanh các lộ trình của đối tƣợng
Hình 1.7 Kết xuất các báo cáo dừng đỗ của đối tƣợng
Trang 212.3 Phân tích mô hình cơ sở dữ liệu của hệ thống VNTracking
Hệ thống VNTracking lưu trữ dữ liệu dưới dạng các bảng dữ liệu như bảng lưu thông tin dữ liệu trả về từ các hộp đen EVEN_DATA (DeviceID, GpsTime, Latitude, Longtitude, Heading, VehicleSpeed,….), bảng lưu thông tin dữ liệu khách hàng Customer (CustomerID, Address, PhoneNumber, EmailAddress,….), bảng lưu thông tin phương tiện DRIVER_INFOR (CustomerID, DriverName, Driver_code,…), … Các bảng dữ liệu lưu các thông tin cố định không thay đổi và các thông tin thường xuyên thay đổi
Các dữ liệu cập nhật thường xuyên được lưu trữ tại bảng lưu dữ liệu trả
về từ hộp đen EVEN_DATA Các dữ liệu này được trả về từ các hộp đen là rất lớn (10s/1 bản tin), vì vậy một ngày số liệu bản ghi cho một đối tượng có thể lên đến 8640 bản ghi Khi quản lý đối tượng với số lượng lớn như 1000 phương tiện thì số bản ghi lên đến 8.640.000 bản ghi/ngày Với số lượng bản ghi lớn như vậy thì đòi hỏi cơ sở dữ liệu là rất lớn dẫn đến tốn không gian bộ nhớ Với số lượng các đối tượng ít và thời gian truy vấn ngắn thì việc lưu trữ
và truy vấn là đơn giản, nhưng với số lượng đối tượng lớn và thời gian truy vấn dài thì việc cập nhật và truy vấn gặp rất nhiều khó khăn, đặc biệt là thời gian truy vấn không cao
Trong hệ thống cơ sở dữ liệu VNTracking đã đưa ra một số giải pháp
để thực hiện bài toán cho việc truy vấn như chia các các bảng dữ liệu theo từng thời gian nhất định để thuận tiện cho việc lưu trữ và truy vấn, tuy nhiên hiệu quả thực hiện là chưa cao Khi thực hiện truy vấn các đối tượng, dữ liệu được ghép lại từ các bảng dữ liệu riêng biệt do đó tốc độ truy vấn không hiệu quả, bên cạnh đó các đối tượng chuyển động chưa được hỗ trợ các phương pháp lập chỉ mục
Các dữ liệu được lưu trữ thường xuyên vào cơ sở dữ liệu theo thời gian định kỳ cho dù nó có thay đổi hay không (ví dụ khi các đối tượng đứng im
Trang 22không chuyển động thì cơ sở dữ liệu vẫn phải lưu các dữ liệu trả về của đối tượng theo thời gian đều dặn 10s/1 bản tin) dẫn đến các bản tin dư thừa và tốn không gian bộ nhớ
Khi cần cho việc quản lý các đối tượng chuyển động, dự đoán các vị trí tương lai (như giải quyết các bài toán xung đột, tắc nghẽn) thì hệ thống VNTracking chưa thể đưa ra được các kết quả cho mục đích sử dụng này mặc
dù cơ sở dữ liệu hệ thống VNTracking đã lưu trữ các đối tượng chuyển động theo những khoảng thời gian nhất định Trong khi đó đối với một cơ sở dữ liệu không thời gian thì các vị trí của đối tượng trong hiện tại, quá khứ, cũng như dự kiến trong tương lai sẽ được xem xét đến để sử dụng tối ưu cho các bài toán quản lý, dự đoán xung đột, tắc nghẽn Ví dụ dựa vào vị trí hiện tại của phương tiện (phương hướng và vận tốc) ta có thể dự đoán được các điểm
đỗ của phương tiện trong 10 phút tiếp theo, tìm các điểm đỗ xe hoặc tìm một phương tiện giao thông gần nhất đến vị trí cần thiết
Trong khuôn khổ luận văn này tôi sẽ tìm hiểu một số phương pháp tổ chức dữ liệu cho các đối tượng chuyển động trong không gian, từ đó sẽ tìm hiểu một phương pháp cụ thể để có thể hỗ trợ cho hệ thống VNTracking nhằm đạt hiệu quả và tối ưu hơn
Trang 23Chương 2 CÁC PHƯƠNG PHÁP TỔ CHỨC DỮ LIỆU CHO ĐỐI
TƯỢNG CHUYỂN ĐỘNG
Trong chương này, đầu tiên tôi sẽ trình bày tóm tắt phương pháp lập chỉ mục truyền thống trong cơ sở dữ liệu không gian Sau đó sẽ trình bày một
số phương pháp lập chỉ mục cho các đối tượng chuyển động
2.1 Cơ sở dữ liệu không gian truyền thống
Phần lớn các phương pháp lập chỉ mục của đối tượng chuyển động dựa trên cơ cở của các phương pháp lập chỉ mục truyền thống, đặc biệt là R-tree [2] và các mở rộng của nó Do đó tôi sẽ trình bày về R-tree để làm cơ sở hiểu hơn về các phương pháp tổ chức dữ liệu sẽ nghiên cứu tại phần sau
2.1.1 Khái niệm R-tree
Các nghiên cứu về công nghệ cũng như ứng dụng trong lĩnh vực cơ sở
dữ liệu đang tăng trưởng với một sức mạnh đáng kinh ngạc 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ị cơ sở dữ liệu quan hệ truyền thống, và nhu cầu cần phải có các hệ quản trị cơ sở dữ liệu 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 Trong các hệ thống quản lý cơ sở
dữ liệu truyền thống (DBMSs) dữ liệu được lưu trữ trong cơ sở dữ liệu và không thay đổi trừ khi có thay đổi thông qua một bản cập nhật mới 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 Phương pháp R-Tree được xây dựng để truy xuất nhanh các vùng không gian, bằng cách chia nhỏ không gian thành các vùng nhớ và tạo chỉ mục cho các vùng không gian nhớ nhỏ này, sau đó áp dụng lý thuyết cây đồ thị để quản lý, lưu trữ và truy xuất các vùng không gian này R-tree là phương pháp phân
Trang 24chia không gian dữ liệu thành các khối có thể lồng nhau hoặc chồng chéo lên nhau Đơn giản nhất, hình khối thường được sử dụng là hình chữ nhật giới hạn nhỏ nhất chứa dữ liệu (Minimum Bounding Rectangle – MBR) Chính các MBR được lưu trữ trên cấu trúc cây chứ không phải bản thân dữ liệu, khi đó việc tìm kiếm dữ liệu sẽ thực hiện trên các nút
2.1.2 Cấu trúc R-tree
Mộ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
Trang 25- Đố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
Hình 2.1 Biểu diễn cây R-tree
Hình 2.2 Biểu diễn 02 chiều của một R-tree
Trang 262.1.3 Thuật toán R-tree
Các chỉ mục sẽ nằm tại các nút lá chứa các điểm dữ liệu, khi đó việc tìm kiếm không gian sẽ thực hiện trên một số lượng nhỏ các nút Một cơ sở
dữ liệu không gian bao gồm tập hợp của các bộ đại diện cho các đối tượng trong không gian, mỗi bộ có một nhận biết duy nhất, ta cóthể dùng nhận biết này để truy xuất nó Các node lá trong R-Tree chứa các đầu vào mẫu tin chỉ mục với khuôn dạng (I, tuple-identifier) trong đó tuple- identifier tham khảo đến một bộ trong cơ sở dữ liệu và I là hình chữ nhật n chiều, hình này là khung giới hạn nhỏ nhất MBR của các chỉ mục đối tượng không gian
I = (I0, I1,… In)
n - số chiều không gian
Ii - một khoảng biên khép kín [a,b], mô tả phạm vi của đối tượng cùng
với chiều i
Một node không phải là node lá (Internal node) chứa các phần tử như sau (I, child-pointer), child-point là địa chỉ của node thấp hơn trong R-Tree và
I bao phủ tất cả các hình chữ nhật trong các phần tử của các node thấp hơn
a Tìm kiếm trong cấu trúc dữ liệu tổ chức dưới dạng R-Tree
Thuật toán tìm kiếm duyệt cây từ gốc (root) đi xuống theo cách tương
tự như B-tree Tuy nhiên khi thăm một node sẽ có nhiều hơn một cây con dưới node đó cần được tìm kiếm, vì lý do đó thuật toán không thể bảo đảm thực hiện tốt trong các trường hợp xấu nhất Tuy nhiên với nhiều kiểu của dữ liệu, thuật toán cập nhật sẽ duy trì hình dạng của cây, cho phép thuật toán tìm kiếm loại đi các vùng không liên quan của không gian được đánh chỉ mục, và kiểm tra duy nhất dữ liệu gần vùng tìm kiếm Chúng ta sẽ biểu diễn phần hình chữ nhật của một chỉ mục E là EI, và phần nhận dạng dữ liệu hay child-pointer là Ep
Thuật toán tìm kiếm:
Trang 27Cho R-tree có root là T, tìm tất cả các mẫu tin chỉ mục mà có các hình
chữ nhật chồng lên một hình chữ nhật cần tìm S
- S1 [Tìm kiếm trên cây con] Nếu T là một node lá, kiểm tra mỗi mục E
để xác định xem Ei có trùng lên S hay không Với tất cả các mục trùng
nhau, thực hiện tìm kiếm trên cây mà node root của nó được chỉ bởi Ep
- S2 [Tìm kiếm trên node lá] NếuT là một lá, kiểm tra tất cả các mục E
để xác định EI có trùng lên S hay không Nếu trùng E là một record đủ
tiêu chuẩn
b Chèn (Insertion)
Việc thêm các chỉ mục cho các bộ dữ liệu mới giống như thêm trong tree là các chỉ mục mới được thêm vào cho các lá, các node chứa quá số lượng sẽ bị tách ra và quá trình tách này sẽ lan truyền lên phía trên cây
B-Thuật toán Chèn (Insert):
Thêm một mục nhập chỉ mục mới E vào trong R-tree
- I1: [Tìm vị trí cho dữ liệu mới] dùng thuật toán chọn lá (ChooseLeaf)
để chọn một node lá L để thêm E
- I2: [Thêm dữ liệu cho node lá] nếu L có chỗ cho một entry khác, thêm
E nếu không thì dùng thuật toán chia node (SplitNode) để có được L và
LL chứa E và tất cả các mục nhập của L
- I3: [Lan truyền các thay đổi lên phía trên] Dùng thuật toán điều chỉnh cây (AdjustTree) trên L, đồng thời bỏ qua LL nếu việc phân chia đã được thực hiện
- I4: [Tăng trưởng cây] nếu phân chia node lan truyền làm cho root phân chia, tạo ra một root mới, mà con của root mới này là 2 node kết quả
c Thuật toán Chọn lá (ChooseLeaf)
Chọn một node lá mà node lá này đặt một chỉ mục mới E
- CL1: [Khởi tạo] cho tập N là node root
Trang 28- CL2: [Kiểm tra lá] Nếu N là một lá, trả về N
- CL3: [Chọn cây con] Nếu N không phải là một lá, cho F là phần tử trong N mà các hình chữ nhật của nó FI cần mở rộng lá để tính EI Giải quyết các hạn chế bằng cách chọn phần tử với hình chữ nhật có diện tích nhỏ nhất
- CL4: [Đi xuống cho đến khi một node lá được tìm thấy] tập N là node con được chỉ đến bởi Fp và lặp lại từ CL2
d Thuật toán điều chỉnh cây (AdjustTree)
Đi lên từ một node lá L đến root, điều chỉnh hình chữ nhật bao phủ và lan truyền phân chia các node chia khi cần thiết
- AT1: [Khởi tạo] cho tập N=L, nếu L đã được phân chia trước đó, tập
NN là kết quả của node thứ hai
- AT2: [Kiểm tra nếu thực hiện] Nếu N là root, ngưng
- AT3: [Điều chỉnh vùng phủ hình chữ nhật trong mục nhập cha] Cho P
là node cha của N và cho EN là các entry của N trong P Điều chỉnh EN
I để cho nó bao sát xung quanh tất cả các hình chữ nhật entry trong N
- AT4: [Lan truyền node bị tách lên phía trên] Nếu N có NN (partner) kết quả từ một phân chia mới nhất, tạo một entry mới ENN P trỏ đến NN
và ENN I bao quanh tất cả các hình chữ nhật trong NN, thêm ENN vào
P nếu có chỗ Nếu không dùng SplitNode đểtạo ra P và PP chứa ENN
và tất cả các entry của P
- AT5: [Di chuyển đến mức kết tiếp] Cho tập N=P và tập NN=PP nếu có
sự phân chia xảy ra Lặp lại bước AT2
e Xóa (Deletion)
Thay đổi vị trí chỉ mục của record E từ R-tree
- D1: [Tìm node chứa record] thực hiện thuật toán FindLeaf để xác định
vị trí node lá L chứa E Ngừng nếu record được tìm thấy
Trang 29- D2: [Xóa record] Xóa E từ L
- D3: [Lan truyền thay đổi] dùng thuật toán CondenseTree bỏ qua L
- D4: [Rút ngắn cây] Nếu root có duy nhất một con sau khi cây đã được điều chỉnh, tạo con cho root mới
f Thuật toán tìm lá (FindLeaf)
Cho R-tree có root là T, tìm node lá chứa đầu vài chỉ mục E
- FL1: [Tìm cây con] nếu T không phải là node lá, kiểm tra mỗi entry F trong T để xác định, nếu FI chồng lấp với EI Với mỗi entry thực hiện thuật toán FindLeaf trên cây mà root của nó được trỏ đến bởi Fp cho đến khi E được tìm thấy hay tất cả các entry đã được kiểm tra
- FL2: [Tìm node lá cho mục cho record] Nếu T là lá, kiểm tra mỗi entry
để xem nếu nó phù hợp với E, nếu E được tìm thấy trả về T
g Thuật toán Gom cây (CondenseTree)
Cho một node lá L, mộtentry được xóa từ node lá này, loại ra node này nếu nó có quá ít các chỉ mục và xây dựng lại các entry của nó Lan truyền việc loại node này lên trên khi cần thiết Điều chỉnh các hình chữ nhậtbao phủ trên đường dẫn đến root, làm cho các hình chữ nhật này nhỏ hơn nếu có thể
- CT1: [khởi tạo] cho tập N=L, tập Q là tập của các node bịloạibỏ, Q là tập rổng
- CT2: [Tìm entry cha] nếu N và root, nhảy tới bước CT6 Nếu không thì
cho P là cha của N, và cho EN là các entry của N trong P
- CT3: [Loại node không đủ (Eliminate under-full node)] Nếu N có ít hơn m entry, xóa EN khỏi P và thêm N vào tập Q
- CT4: [Điều chỉnh hình chữ nhật bao phủ] Nếu N không bị loại bỏ, điều chỉnh EN I để chứa sát lại các entry trong N
- CT5: [Di chuyển lên trên một mức trong cây] Cho tập N=P và lặp lại
các bước từ CT2
Trang 30- CT6: [Chèn lại các entry bị mồ côi (Re-insert orphaned entries)]
Chèn lại vào tất cà các phần tử của các node trong tập Q Các entry từ các node lá bị loại bỏ được chèn lại vào trong các lá của cây như đã được mô
tả trong thuật toán Insert, nhưng các entry từ các node có mức cao hơn phải được đặt cao hơn trong cây, vì vậy các lá của các cây con phụ thuộc vào chúng sẽ nằm trên cùng mức như các lá của cây mẹ
h Cập nhật (Update)
Nếu một bộ dữ liệu được cập nhật để cho hình chữ nhật bao phủ nó bị thay đổi, bản ghi chỉ mục của nó phải bị xóa, cập nhật và chèn lại, vì vậy nó
sẽ phải tìm cách để đặt đúng vị trí trong cây
Một cách tìm kiếm khác so với cách được mô tả ở trên có thể hữu ích hơn, ví dụ để tìm tất cả các đối tượng dữ liệu được chứa hoàn toàn trong một vùng tìm kiếm, hoặc tất cả các đối tượng chứa vùng tìm kiếm
Các bước thực hiện có thể được thực hiện bằng các biến đổi dễ hiểu trên thuật toán đã cho Tìm một phần tử cụ thể mà nhận dạng của nó đã được biết trước cần đến thuật toán xóa và được thực hiện bằng thuật toán FindLeaf Các biến đổi của phạm vi xóa, trong phạm vi này, tất cả các đối tượng dữ liệu trên diện tích liên quan được xóa đi, cũng được R-tree cung cấp khá tốt
i Thuật toán tách node (Node Splitting)
Để thêm một phần tử mới, một node chứa đầy M các chỉ mục, cần phải phân chia tập hợp của M+1 các phần tử thành 2 node Sự phân chia nên được thực hiện theo cách làm cho nó không chắc có thể thực hiện được việc phân chia cả hai node mới sẽ cần được kiểm tra trên việc tìm kiếm thứ tự Khi đó
sự quyết định thăm một node phụ thuộc vào hình chữ nhật bao phủ nó có chồng lên diện tích tìm kiếm Tổng số diện tích của hai hình chữ nhật bao phủ sau khi tách có thể được giảm đến mức tối thiểu Hình dưới đây minh họa
Trang 31điều này Diện tích của các hình chữ nhật trong trường hợp “bad split”lớn hơn nhiều so với trường hợp “good split”
Hình 2.3 Trường hợp phân chia node (a) bad split, (b) good split Cùng tiêu chuẩn đã được dùng trong thủ tục ChooseLeaf để quyết định xem nơi nào có thể chèn một chỉ mục mới vào tại mỗi mức trong cây, cây con được chọn là một cây mà hình chữ nhật bao phủ của nó phải được mở rộng ít
Bad nhất khi chèn chỉ mục mới vào
Chúng ta quay lại thuật toán phân chia tập M+1 phần tử thành hai nhóm cho mỗi node mới
Hình 2.4 Phân chia phần tử thành các nhóm node mới
j Thuật toán A Quadractic Cost
Thuật toán này cố gắng tìm một vùng được tách ra có diện tích nhỏ, nhưng không bảo đảm là có thể tìm được một vùng có thể có diện tích nhỏ nhất Chi phí là bậc 2 theo M và tuyến tính theo số lượng của các chiều
Trang 32Thuật toán chọn 2 phần tử trong số M+1 phần tử làm phần tử đầu tiên của hai nhóm mới, bằng cách chọn này, hai phần tử mới này có thể làm lãng phí diện tích lớn nhất nếu cả hai được đặt trong cùng một nhóm Như vậy diện tích hình chữ nhật bao phủ cả hai phần tử, trừ đi diện tích của chính các phần
tử, sẽ là lớn nhất Các phần tử còn lại được gán vào các nhóm cùng lúc Tại mỗi bước, việc mở rộng diện tích đòi hỏi phải thêm mỗi phần tử còn lại cho mỗi nhóm được tính toán, và phần tử được gán thì sẽ xuất hiện một sự khác biệt lớn nhất giữa hai nhóm
k Thuật toán Quadratic Split
Phân chia một tập M+1 các chỉ mục thành hai nhóm
- QS1: [chọn phần tử đầu tiên cho mỗi nhóm] Áp dụng thuật toán PickSeeds để chọn hai phần tử làm các phần tử đầu tiên của các nhóm Gán mỗi phần tử cho một nhóm
- QS2: [Kiểm tra nếu đã thực hiện] Nếu tất cả các phần tử đã được gán, ngừng Nếu một nhóm có một vài phần tử mà tất cả những phần tử còn lại phải được gán vào nó theo thứ tự để cho nhóm này có m nhỏ nhất, gán các phần tử và ngừng
- QS3: [Chọn phần tử để gán] Thực hiện thuật toán PickNext để chọn phần tử kế tiếp để gán Thêm phần tử này vào nhóm mà hình chử nhật bao phủ của nó sẽ phải mở rộng ít nhất để chứa phần tử này Giải quyết các hạn chế bằng cách thêm phần tử vào nhóm có diện tích nhỏ nhất, khi đó nhóm này có các phần tử ít hơn nhóm khác Lặp lại QS2
l Thuật toán PickSeeds
Chọn hai phần tử làm phần tử đầu tiên của các nhóm
- PS1: [Tính toán sự thiếu hiệu quả của việc nhóm các phần tử với nhau] Cho mỗi cặp các phần tử E1 và E2 , tạo một hình chữ nhật J bao gồm E1I và E2I Tính d = area(J) – area (E1I) - area(E2I)
Trang 33- PS2: [Chọn cặp gây lãng phí nhất] Chọn cặp có d lớn nhất
m Thuật toán PickNext
Chọn một mục còn lại để phân loại vào một nhóm
- PN1: [Xác định giá trị của việc đặt mỗi phần tử trong mỗi nhóm] Cho
mỗi phần tử E chưa được phân nhóm, tính d1 = diện tích được yêu cầu tăng trong hình chữ nhật bao phủ của nhóm 1 để bao gồm EI, tính toán
d2 tương tự như trên cho nhóm 2
- PN2: [Tìm phần tử thích hợp nhất cho một nhóm] Chọn bất kỳ phần tử
nào có sự khác biệt lớn nhất giữa d1 và d2
o Thuật toán LinearPickSeeds
Chọn hai phần tử làm các phần tử đầu tiên của các nhóm
- LPS1: [Tìm các hình chữ nhật xa nhất theo tất cả các chiều] Theo mỗi chiều, tìm các phần tử mà hình chữ nhật của nó có cạnh dưới cao nhất
và có cạnh trên thấp nhất Ghi lại việc phân chia
- LPS2: [Điều chỉnh hình dạng của cụm hình chữ nhật] Chuẩn hóa việc phân chia bằng cách chia chiều rộng của toàn bộ các tập theo chiều tương ứng
hóa lớn nhất theo bất kỳ chiều nào
2.2 Các phương pháp lập chỉ mục
Nhiều thập kỷ qua có rất nhiều phương pháp tổ chức dữ liệu không-thời gian được nghiên cứu và phát triển Phương pháp tổ chức dữ liệu không-thời gian 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
Trang 342.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
Trong phần này sẽ mô tả cấu trúc lập chỉ mục của dữ liệu quá khứ từ các tiến trình không-thời gian Có thể hiểu đơn giản tiến trình là một quá trình mà đối tượng giữ lại các kích thước và vị trí của nó từ thời điểm nó được chèn vào cơ sở dữ liệu đến thời điểm nó bị được xoá khỏi cơ sở dữ liệu Sự kết thúc và thay đổi của một tiến trình chỉ đơn giản là các đối tượng được bổ sung và xoá khỏi cơ sở dữ liệu
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
Trang 35Đ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
Có 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.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 không-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
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
Trang 36Theo 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
Hình 2.6 Hình hộp giới hạn với chiều thời gian
Hì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
Trang 37
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
x
t
y
Trang 38dà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
Hình 2.8 Một ví dụ của truy vấn theo mốc thời gian
2.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
Trang 39Hì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
HR-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
Trang 40Phươ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:
Insertion
Đầu tiên nút lá để chèn vào các phần tử mới được tìm thấy bằng cách
áp dụng chức năng choosesubtree của R*-tree [3] Nếu một vài cây trước đó
là nút lá, nó sẽ được nhân đôi Sau đó, các mục mới được chèn và cập nhật vào thư mục gốc của cây hiện tại Chú ý răng những cây trước mốc thời gian
là không bao giờ được sửa đổi
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à mố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