A new R-tree node splitting algorithm using MBR partition policy
In this paper we introduced a new R-tree node splitting algorithm. As an indexing technique for multi-dimensional data, R-tree is widely used in geographical information systems, CAD systems and spatial databases. An R-tree consists of nodes which in turn consist of records. Each node in R-tree must contain limited number of records in order that it can be stored within one disk block, thus a node splitting algorithm is used while inserting a new record into a full node. A node splitting algorithm is one of the crucial factors of the query performance of an R-tree since bad splits would result in an inefficient R-tree structure. At first we gave an efficient, linear node splitting algorithm that could construct an R-tree fast, by partitioning the minimum bounding rectangle of the node according to the shape of the node's MBR and the shapes of the MBRs of the node's records. Then we found that this node splitting algorithm would generate uneven nodes sometimes, that is the node to be split might be split into two nodes with one of them containing less records than the minimum number of records required. We then developed an algorithm to balance those uneven splitting results to meet the demands of the R-tree definition. At Last we improved our node splitting algorithm by considering the siblings of the splitting node. The siblings of the splitting node were picked up during the phase of choosing node to insert record and were put together with the splitting node to generate a better result. We performed several experiments to compare our node splitting algorithms with some other node splitting algorithms on both synthetic and real world data. These experiments tested the tree-construction costs and the query performance of the resulting R-trees. The results showed that the tree-constructing cost of our algorithm was lower than others and although the balancing procedure degraded the performance, our algorithm outperformed other node splitting algorithms in queries of the resulting R-trees.