### r-tree

#### Why does the unique R-Tree node appear to be in two enclosing rectangles?

The image from Efficient Batch Query Processing on R-Trees using Floating Buffers - R-Tree Structure shows a number of rectangles along with a corresponding r-tree as: t(n(a,b),p(c,d,e),q(f,g))),u(r(h,i,j),s(k,l,m))) In the image of the rectangles e appears to be within both p and q. Given that the tree has each node only once, I would expect to see only one enclosing rectangle for e, either p or q but not both. Where is my misunderstanding?

The R-tree is different than space partitioning data structures like kd-tree or quad-tree which partition space an then assigns objects into the sub-regions of partitioned space. The R-tree balancing algorithm groups objects together and encloses them with bounding rectangles representing space occupied by underlying groups. In order to group objects together various algorithms can be used, some of them tend to generate more overlapping groups, other less overlapping groups. So a bounding rectangle enclosing some group of objects (a node) can overlap a different bounding rectangle enclosing other group of objects (another node). And by coincidence one of the objects can fit into intersection of those two bounding rectangles like in your case. This doesn't mean that it is present in both nodes, it is still stored only in one node. The bounding rectangles of nodes simply overlap. This means for instance that when a spacial query is performed somewhere inside the intersection of bounding rectangles of different nodes they both must be checked for the existence of objects in this region.

If you are unlucky, the data may be unfortunately arranged. You cannot guarantee that there is only a single option for placing an object. In particular if data changes and consist of rectangles (not just points). That is why advanced R trees such as the R*-tree try to reinsert data. This way, they may eventually move this rectangle to another node and reduce the overlap. IIRC, the R+-tree will insert the rectangle in both leaves.

### Related Links

How does R+-Tree manages intersecting objects?

Why does the unique R-Tree node appear to be in two enclosing rectangles?

ELKI DBSCAN R* tree index

R-Tree vs R+-Tree vs R*-Tree

How to bulk-load an r-tree in C#?

how to construct a RTree using given data points