ArticleslgStudy

science

R*-tree

R*-tree is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand R*-tree rather than just read about it. In short: In data processing R*-trees are a variant of R-trees used for indexing spatial information. R*-trees have slightly higher construction cost than standard R-trees, as the data may need to be reinserted; but the resulting tree will usually have a better query performance.

R*-tree — main illustration
R*-tree — illustration

Key takeaways

  • R*-tree belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect R*-tree to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of R*-tree from memory before moving on to harder problems.

Reference excerpt

In data processing R*-trees are a variant of R-trees used for indexing spatial information. R*-trees have slightly higher construction cost than standard R-trees, as the data may need to be reinserted; but the resulting tree will usually have a better query performance. Like the standard R-tree, it can store both point and spatial data. It was proposed by Norbert Beckmann, Hans-Peter Kriegel, Ralf Schneider, and Bernhard Seeger in 1990.

Difference between R*-trees and R-trees

Minimization of both coverage and overlap is crucial to the performance of R-trees. Overlap means that, on data query or insertion, more than one branch of the tree needs to be expanded (due to the way data is being split in regions which may overlap). A minimized coverage improves pruning performance, allowing exclusion of whole pages from search more often, in particular for negative range queries. The R*-tree attempts to reduce both, using a combination of a revised node split algorithm and the concept of forced reinsertion at node overflow. This is based on the observation that R-tree structures are highly susceptible to the order in which their entries are inserted, so an insertion-built (rather than bulk-loaded) structure is likely to be sub-optimal. Deletion and reinsertion of entries allows them to "find" a place in the tree that may be more appropriate than their original location. When a node overflows, a portion of its entries are removed from the node and reinserted into the tree. (In order to avoid an indefinite cascade of reinsertions caused by subsequent node overflow, the reinsertion routine may be called only once in each level of the tree when inserting any one new entry.) This has the effect of producing more well-clustered groups of entries in nodes, reducing node coverage. Furthermore, actual node splits are often postponed, causing average node occupancy to rise. Re-insertion can be seen as a method of incremental tree optimization triggered on node overflow. The R*-tree describes three metrics by which the quality of a split can be quantified. These being overlap (common between R*-trees and R-trees), defined as the intersection area of the bounding boxes of two clusters; Area-value, being the sum of the area of two cluster bounding boxes and Margin-value being the sum of the perimeters of two cluster bounding boxes.

Performance Improved split heuristic produces pages that are more rectangular and thus better for many applications. Reinsertion method optimizes the existing tree but increases complexity. Efficiently supports point and spatial data at the same time.

Algorithm and complexity The R*-tree uses the same algorithm as the regular R-tree for query and delete operations. When inserting, the R*-tree uses a combined strategy. For leaf nodes, overlap is minimized, while for inner nodes, enlargement and area are minimized. When splitting, the R*-tree uses a topological split that chooses a split axis based on perimeter, then minimizes overlap. In addition to an improved split strategy, the R*-tree also tries to avoid splits by reinserting objects and subtrees into the tree, inspired by the concept of balancing a B-tree. Worst case query and delete complexity are thus identical to the R-Tree. The insertion strategy to the R*-tree is with O ( M log ⁡ M ) {\displaystyle {\mathcal {O}}(M\log M)} more complex than the linear split strategy ( O ( M ) {\displaystyle {\mathcal {O}}(M)} ) of the R-tree, but less complex than the quadratic split strategy ( O ( M 2 ) {\displaystyle {\mathcal {O}}(M^{2})} ) for a page size of M {\displaystyle M} objects and has little impact on the total complexity. The total insert complexity is still comparable to the R-tree: reinsertions affect at most one branch of the tree and thus O ( log ⁡ n ) {\displaystyle {\mathcal {O}}(\log n)} reinsertions, comparable to performing a split on a regular R-tree. So, on overall, the complexity of the R*-tree is the same as that of a regular R-tree. An implementation of the full algorithm must address many corner cases and tie situations not discussed here.

References

External links Media related to R*-tree at Wikimedia Commons

Illustrations

R*-tree illustration
R*-tree illustration
R*-tree illustration

Worked examples

Example 1 — a first encounter with R*-tree

Start with the simplest possible case. Write down what R*-tree claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to R*-tree before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about R*-tree ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of R*-tree

In research
R*-tree appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses R*-tree in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
R*-tree is common in secondary-school and first-year university syllabi. It links to neighbouring topics Database index techniques, R-tree, so understanding it makes those chapters shorter.
In everyday life
Look for R*-tree outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “R*-tree” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study R*-tree in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what R*-tree means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain R*-tree out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is R*-tree in simple terms?

In data processing R*-trees are a variant of R-trees used for indexing spatial information. R*-trees have slightly higher construction cost than standard R-trees, as the data may need to be reinserted; but the resulting tree will usually have a better query performance.

Why does R*-tree matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study R*-tree?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on R*-tree.

Tags

  • Database index techniques
  • R-tree

Keep exploring