Nhân đơi một phần tử trong khi xoá

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 32 - 33)

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 xố. 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 tố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

… <s, 0, 2, B> <t, 0, 2, C> <u, 0, *, D> <v, 0, *, E> <w, 2, *, F> A <a, 0, *> <b, 0, *> <c, 0, *> <d, 0, *> <h, 0, *> <a, 0, *> <b, 0, *> <c, 0, *> <d, 0, *> <h, 0, 2> … <s, 0, 2, B> <t, 0, 2, C> <u, 0, 2, D> <v, 0, *, E> <w, 2, *, F> <u’, 2, *, D> D A D

MV3R-tree. MV3R-tree có thể xử lý hiệu quả tất cả các kiểu của truy vấn với không gian yêu cầu nhỏ.

Khoảng cách giữa hai cấu trúc độc lập thu được : (a) bằng cách sử dụng những nút lá phía trên cây thay vì các đối tượng hiện thời để xây dựng phần R- tree và (b) bằng cách thay thế HR-tree với MVR-tree chứa nhiều không gian hiệu quả hơn.

Do MV3R-tree kết hợp các ý tưởng của MVR-tree và 3DR-tree, vì vậy nó thừa hưởng các ưu điểm của cả 2 loại cây. Trong thử nghiệm của [9] cho thấy rằng nó có thể xử lý cả truy vấn theo vết thời gian (timeslice) và khoảng thời gian một cách hiệu quả với yêu cầu không gian tương đối nhỏ.

Tuy nhiên MV3R-tree cũng thừa hưởng những nhược điểm, nó khơng hiệu quả cho các khi hầu hết các đối tượng đang chuyển động ở tốc độ ổn định, hơn thế nữa kết quả địi hỏi khơng gian rất lớn với cả 2 cấu trúc.

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 32 - 33)