Thông tin phần tử

Một phần của tài liệu Phương pháp tổ chức cơ sở dữ liệu cho đối tượng chuyển động (Trang 47 - 49)

Data types Data Description

Float Bounces // tọa độ góc trái và phải

Float Velocity //vận tốc

3.3.Sử dụng cache cho TPR-Tree

Ý tƣởng:

*Giả sử tại thời điểm t=T1 có truy vấn q1 đi qua các đối tượng p4,p6:

- p6: phải đi qua các node: u1->u2->u5 (cost=3) đưa địau1,u2,u5 vào bộ

nhớ cache như vậy có 3 node được duyệt đưa vào trong cache lúc này chi phí để duyệt là Cost=3. Cache lúc này lưu: u1,u2,u5

- p4: đi qua các node: u1->u3 ->u6 (cost=3). Kiểm tra cache thấy u1 đã

được duyệt đưa vào cache khi duyệt p6 . Như vây chi phí khi duyệt p4 lúc này chỉ phải duyệt 2 node mới là: u3,u6. Đưa u3,u6 vào cache. Như vậy chi phí thật lúc này khi duyệt qua p4 là Cost=2 . Như vậy chi phí đã giảm đi được 3-2=1 chi phí. Cache lúc này lưu: u1,u2,u5,u3,u6

*Tại thời điểm t=T2 có truy vấn q2 chỉ đi qua đối tượng p6:

- p6: phải đi qua các node: u1->u2->u5 (cost=3). Kiểm tra trong cache

thấy có địa chỉ u1,u2,u5. Như vậy chi phí thật của q2 lúc này sẽ là cost=0

*Tại thời điểm t= Tq truy vấn qn đi qua đối tượng pn:

Kiểm tra xem các node khi duyệt đối tượng pn đã được lưu vào cache hay chưa Nếu có rồi: thì lấy từ cache ra địa chỉ tinh cost của pn

Chưa có: thì duyệt pn sau đó đưa vào bộ nhớ cache. Tính cost của pn Khi các node đã được lưu trong cache nhiều sẽ phát sinh cache bị đầy. Sẽ có những thuật toán thay thế trang trong cache như LRU, LFU,FIFO

Kết luận : thay vì việc phải duyệt tất cả các node khi các có các truy vấn, việc

đưa các node đã được duyệt vào cache đã làm giảm chi phí duyệt node, làm tăng hiệu năng khi truy vấn đối tượng cho đối tượng

3.4. Thiết kế chƣơng trình.

Trong phần này tơi sẽ thiết kế một TPR-tree có nguồn gốc từ cấu trúc của R-tree vì TPR-tree là mở rộng của R-tree. Để làm rõ thiết kế của chương trình tơi trình bày 2 biểu đồ: biểu đồ đầu tiên là biểu đồ lớp minh họa tất cả lớp và các mối quan hệ của chúng, biểu đồ thứ hai là biểu đồ tuần tự minh họa nhiệm vụ giữa các lớp chính.

3.4.1. Biểu đồ lớp

Bởi vì TPR-tree là mở rộng của R*-tree, do đó kiến trúc của chúng thiết kế tương tự như của R-tree. Như thể hiện trong bảng 3.6, chúng ta có 3 lớp chính: Rtree (tương ứng với cây), RTNode (tương ứng với nút cây),, Phần tử(tương ứng với các phần tử của nút). Bảng 3.7 minh họa nhiệm vụ chi tiết của mỗi lớp. Để xử lý truy nhập file, lớp BlockFile chứa tất cả các dữ liệu hoạt động xử lý. Mặc dù thử nghiệm của tôi không sử dụng bộ nhớ cache để test, nhưng vẫn thiết kế lớp Cache, trong đó Cacheable là các khối bộ nhớ. Bộ nhớ đệm (cache) giúp tăng hiệu suất truy vấn bằng cách lưu trữ các khối đĩa thường được truy nhập trong bộ nhớ chính. Bên cạnh các lớp chính, các lớp còn lại hỗ trợ hoạt động của R-tree và TPR-tree. Lớp LinList, SortedLinList được sử dụng cho hoạt động xóa và chèn trong việc lưu trữ các phần tử hay các nút bị xóa tạm thời (các phần tử hay các nút này sau đó được chèn vào cây). Các đối tượng Struc được sử dụng như các thành phần dữ liệu của các hoạt động.

Một phần của tài liệu Phương pháp tổ chức cơ sở dữ liệu cho đối tượng chuyển động (Trang 47 - 49)