UB-tree
{{Short description|Tree structure in information science}}
{{Infobox data structure
| name = UB-tree
| image = Z-curve45.svg
| alt =
| caption = Two dimensional Z-order
| type = tree
| invented_by = Rudolf Bayer and Volker Markl
| invented_year =
| space_avg =
| space_worst =
| search_avg =
| search_worst =
| insert_avg =
| insert_worst =
| delete_avg =
| delete_worst =
| peek_avg =
| peek_worst =
| find_min_avg =
| find_min_worst =
| delete_min_avg =
| delete_min_worst =
| decrease_key_avg =
| decrease_key_worst =
| merge_avg =
| merge_worst =
}}
The UB-tree, also known as the Universal B-Tree,{{Cite book |last=Bayer |first=Rudolf |url=https://wwwbayer.in.tum.de/cgi-webcon/webcon/lehrstuhldb/download/39/application/pdf |title=The Universal B-Tree for multidimensional Indexing |date=September 1996 |year=1996 |language=en}} as proposed by Rudolf Bayer and Volker Markl is a balanced tree for storing and efficiently retrieving multidimensional data. Like a B+ tree, information is stored only in the leaves. Records are stored according to Z-order, also called Morton order. Z-order is calculated by bitwise interlacing of the keys.
Insertion, deletion, and point query are done as with ordinary B+ trees. To perform range searches in multidimensional point data, however, an algorithm must be provided for calculating, from a point encountered in the data base, the next Z-value which is in the multidimensional search range.
The original algorithm to solve this key problem was exponential with the dimensionality and thus not feasible{{cite CiteSeerX |first=V. |last=Markl |title=MISTRAL: Processing Relational Queries using a Multidimensional Access Technique |year=1999 |citeseerx=10.1.1.32.6487 }} ("GetNextZ-address"). A solution to this "crucial part of the UB-tree range query" has been described later.{{cite conference |first1=Frank |last1=Ramsak |first2=Volker |last2=Markl |first3=Robert |last3=Fenk |first4=Martin |last4=Zirkel |first5=Klaus |last5=Elhardt |first6=Rudolf |last6=Bayer |title=Integrating the UB-tree into a Database System Kernel |conference=26th International Conference on Very Large Data Bases |conference-url=http://www.vldb.org/archives/website/2000/ |date=September 10–14, 2000 |pages=263–272 |url=http://www.vldb.org/conf/2000/P263.pdf}} This method has already been described in an older paper{{cite journal |url=http://www.vision-tools.com/h-tropf/multidimensionalrangequery.pdf |first1=H. |last1=Tropf |first2=H. |last2=Herzog |title=Multidimensional Range Search in Dynamically Balanced Trees |journal=Angewandte Informatik (Applied Informatics) |issue=2/1981 |pages=71–77 |issn=0013-5704}} where using Z-order with search trees has first been proposed.