www.wikidata.de-de.nina.az
Ein R Baum englisch R tree ist eine in Datenbanksystemen verwendete mehrdimensionale raumliche dynamische Indexstruktur Ahnlich wie bei einem eindimensionalen B Baum handelt es sich hier um eine balancierte Indexstruktur Er kann als eine Struktur angesehen werden die die Eigenschaften des eindimensionalen B Baums mit dem mehrdimensionalen k d Baum kombiniert Ein Beispiel eines R Baums3 dimensionaler R Baum mit wurfelformigen Seiten visualisiert durch ELKIDie Knoten des Baums enthalten eine sortierte Menge von Koordinaten die zum Beispiel mit Arrays oder Listen realisiert werden kann Fur die Verknupfungen zwischen den Koordinaten konnen Zeiger verwendet werden Inhaltsverzeichnis 1 Verwendungszweck 2 Algorithmus 2 1 Suche nach Knoten 2 2 Hinzufugen eines neu erstellten Knotens 3 Varianten 3 1 R Baum 3 2 R Baum 4 Probleme von R Baumen 5 Verfugbarkeit 6 Siehe auch 7 Weblinks 8 EinzelnachweiseVerwendungszweck BearbeitenEin R Baum erlaubt die schnelle Suche in mehrdimensionalen ausgedehnten Objekten Neben einfachen Punkten gehoren dazu auch Polygone im zweidimensionalen Raum und geometrische Korper im dreidimensionalen Raum Typisch sind aber auch hochdimensionale Objekte wie sie in der Mathematik oder Bioinformatik vorkommen Hochdimensional bedeutet hierbei dass die Anzahl der unabhangigen Suchkriterien in der Grossenordnung von 100 bis 1000000 liegt Erfahrungswerte sagen aber dass ein R Baum nur bis etwa 10 Dimensionen gut funktioniert Dies ist aber von den konkreten Daten abhangig und es gibt R Baum Varianten die hier Optimierungen enthalten Ein R Baum kann effizient Bereichs Anfragen d h Rechtecks bzw Intervall Anfragen beantworten Auch die Auswertung von nachste Nachbar Anfragen ist effizient moglich fur geometrische Distanzen die mit Rechtecken begrenzt werden konnen Ein R Baum ist dynamisch d h er kann bei Anderungen effizient aktualisiert werden Typisches Einsatzgebiet eines R Baum Index sind Geodatenbanken Hier werden z B Strassendaten Grenzbereiche oder Gebaudedaten verwaltet Diese werden als Polygone in der Datenbank gespeichert Der R Baum erlaubt spater das effiziente Auffinden bestimmter Polygone anhand der Ortskoordinaten Da hier Rechtecks Anfragen z B Kartenausschnitte typisch sind ist ein R Baum dazu gut geeignet Weniger Vorteile bringt der R Baum bei Unterraum Anfragen also Anfragen bei denen nicht alle Dimensionen spezifiziert sind denn hier entstehen sehr grosse Anfragebereiche oder bei nicht geometrischen Distanzen die nicht in Rechtecksbereiche ubersetzt werden konnen Hier sind andere Indexstrukturen besser geeignet Algorithmus BearbeitenDas Prinzip eines R Baums als raumliche Indexstruktur wurde von Antonin Guttman vorgestellt 1 Ahnlich wie bei einem B Baum enthalten Blattknoten eines R Baumes die zu indizierenden raumlichen Daten Im Gegensatz zu diesem enthalt er aber keine trennenden Schlussel sondern speichert in den Indexknoten rechteckige Datenregionen minimal umgebende Rechtecke die alle im Teilbaum darunter liegenden Datenregionen umfassen In den Datenseiten konnen Datenpunkte rechteckige Bereiche oder auch Polygone gespeichert sein Letztere werden oft aber durch ein minimal umgebendes Rechteck approximiert Realisiert wird die Speicherung eines Rechtecks durch die Angabe von Intervallen fur alle seine Dimensionen Mithilfe eines R Baumes konnen Punkt oder Enthaltenseinanfragen wie ist Punkt P in Figur F enthalten ist Figur F1 in Figur F2 enthalten oder welche Figuren sind in Figur F enthalten beantwortet werden Durch die verwendete Naherung minimal umgebende Rechtecke in den Blattknoten kann es zu Fehltreffern kommen die durch Uberprufung der Anfrage an den konkreten Objekten aufgelost werden mussen Bei Polygonen spricht man bei der Berechnung auf den Rechtecken von einem Filterschritt bei dem Test mit dem exakten Polygon von dem Verfeinerungsschritt Die eigentliche Indexstruktur liefert hier also nur Kandidaten Daten in R Baumen werden in Seiten organisiert die eine variable Anzahl von Eintragen aufweisen konnen bis zu einem vordefinierten Maximum und in der Regel uber einer Mindestfullung Jeder Eintrag innerhalb eines Non Leaf Knotens speichert zwei Datenstucke Eine Moglichkeit einen Kinderknoten zu identifizieren und die Begrenzungsbox aller Eintrage innerhalb dieses untergeordneten Knotens Blattknoten speichern die fur jedes Kind erforderlichen Daten oft einen Punkt oder Begrenzungskasten der das Kind und eine externe Kennung fur das Kind darstellt Fur Punktdaten konnen die Blatteintrage nur die Punkte selbst sein Fur Polygondaten das haufig die Speicherung grosser Polygone erfordert ist das gemeinsame Setup nur das minimale Begrenzungsrechteck des Polygons zusammen mit einem eindeutigen Kennung im Baum zu speichern Suche Im Bereich Suchen ist der Eingang ein Suchrechteck Abfragekarton Die Suche ist sehr ahnlich um in einem B Baum zu suchen Die Suche beginnt am Wurzelknoten des Baums Jeder interne Knoten enthalt einen Satz von Rechtecken und Hinweisen auf den entsprechenden untergeordneten Knoten und jeder Blattknoten enthalt die Rechtecke von raumlichen Objekten denn der Zeiger auf ein raumliches Objekt kann dort sein Fur jedes Rechteck in einem Knoten muss festgelegt werden ob es das Suchrechteck uberlappt oder nicht Wenn ja muss der entsprechende Kinderknoten auch gesucht werden Suche nach Knoten Bearbeiten Die Suche erfolgt auf rekursive Weise bis alle uberlappenden Knoten durchquert wurden Wenn ein Blattknoten erreicht ist werden die vorhandenen Rechtecke gegen das Suchrechteck getestet und ihre Objekte in das Ergebnis eingefugt wenn sie im Suchrechteck liegen Bei der Prioritatssuche und der Suche nachstgelegener Knoten besteht die Abfrage aus einem Punkt oder einem Rechteck Der Wurzelknoten wird in die Prioritatswarteschlange eingesetzt Bis die Warteschlange leer ist oder die gewunschte Anzahl von Ergebnissen der Suche zuruckgegeben wurde wird der nachste Eintrag in der Warteschlange fortgesetzt Die Knoten des R Baums werden erweitert und dieser Vorgang mit ihren Kindknoten wiederholt Eintrage in den Blattknoten werden zuruckgegeben wenn in der Warteschlange angetroffen wird Dieser Ansatz kann mit verschiedenen Entfernungsmetriken verfolgt werden auf mit der Grosskreisentfernung fur geografische Daten Um ein Objekt einzulesen wird der Baum rekursiv vom Wurzelknoten ausgedehnt Bei jedem Schritt werden alle Rechtecke im aktuellen Verzeichnisknoten untersucht und ein Kandidat wird mithilfe einer Heuristik ausgewahlt z B das Rechteck das die geringste Erweiterung erfordert Die Suche steigt dann auf diese Seite ab bis ein Blattknoten erreicht wird Wenn der Blattknoten voll ist muss er geteilt werden bevor das Einfugen vorgenommen wird Da wiederum eine umfassende Suche zu teuer ist wird eine Heuristik eingesetzt um den Knoten in zwei aufzuteilen Hinzufugen eines neu erstellten Knotens Bearbeiten Auf der vorherigen Ebene kann dieses Niveau erneut uberlaufen und diese Uberlaufe konnen sich bis zum Wurzelknoten ausbreiten Wenn dieser Knoten auch uberlauft wird ein neuer Wurzelknoten erstellt und die Hohe des Baums wird um 1 vergrossert Der Algorithmus muss entscheiden in welchem Bereich des R Baums sich der Teilbaum zum Einfugen befindet Wenn ein Datenobjekt vollstandig in einem einzelnen Rechteck enthalten ist ist die Auswahl des Teilbaums klar Wenn mehrere Knoten oder Rechtecke an der Erweiterung des R Baums beteiligt sind kann diese Auswahl erhebliche Auswirkungen auf die Effizienz des Baums haben Die Objekte werden in den Teilbaum eingefugt der die geringste Erweiterung benotigt Varianten BearbeitenR Baum Bearbeiten Eine beliebte R Baum Variation ist der R Baum von Norbert Beckmann Hans Peter Kriegel Ralf Schneider und Bernhard Seeger 2 Diese Variante versucht durch eine weiterentwickelte Split Strategie das Uberlappen von Rechtecksregionen zu minimieren Dadurch brauchen bei einer Suchanfrage meistens weniger Teilbaume durchsucht zu werden und die Anfragen an den Baum werden dadurch effizienter Zusatzlich konnen beim Uberlauf einer Seite auch Elemente neu in den Baum eingefugt werden re insert was eine Aufteilung engl split und die damit unter Umstanden steigende Hohe des Baumes vermeiden kann Dadurch wird ein hoherer Fullgrad erreicht und dadurch ebenfalls eine verbesserte Effizienz Der resultierende Baum ist aber stets auch ein R Baum die Anfragestrategie ist unverandert R Baum Bearbeiten Im R Baum und R Baum konnten sich die Suchraume uberlappen Das ist im R Baum nicht erlaubt die Suchraume sind hier disjunkt Umschliessende Rechtecke werden falls notwendig an den Suchraumgrenzen abgetrennt Hierbei konnen auch Objekte zerschnitten werden so dass ein Teil des Objekts sich im einen Suchraum und ein anderer Teil des Objekts sich im anderen Suchraum befindet In solchen Fallen mussen Objekte dann mehrfach im Baum abgelegt werden R Baume lassen sich fur statische Daten gut vorberechnen insbesondere fur Punktdaten bei denen ein solches Zerschneiden entfallt Bei Anderungen wird es jedoch aufwendiger die Disjunktheit sicherzustellen Probleme von R Baumen BearbeitenWie jede Indexstruktur stellen R Baume einen Kompromiss dar Die Verwaltung und Aktualisierung des Baumes erfordert zusatzliche Berechnungen es wird auch zusatzlicher Speicher fur die Indexseiten benotigt Umgekehrt kann dafur der Baum bei geeigneten Anfragen und Daten oftmals die gesuchten Datensatze schneller auffinden Nimmt man erhohten Speicherverbrauch und erhohte Rechenzeit bei Anderungen in Kauf so kann man oft bessere Leistung bei Suchanfragen erzielen So wird ein R Baum meist mehr Speicher benotigen als ein R oder R Baum Er liefert hohere Leistung bei der Suche dafur benotigt er mehr Aufwand bei Anderungen R Baume sind eine beliebte Wahl da sie ohne zusatzlichen Speicheraufwand gegenuber einem R Baum im Gegensatz zum R Baum der Objekte bei Bedarf mehrfach speichert auskommen und ihr Implementierungs und Rechenaufwand nicht wesentlich hoher ist als bei einem R Baum Genauer gesagt ist ein R Baum im Speicher auch stets ein R Baum sie unterscheiden sich nur bei der Einfuge und Split Strategie R Baume sind reihenfolgeabhangig eine wichtige Massnahme zur Optimierung sind daher bulk loads bei denen der Baum nicht durch elementweises Einfugen aufgebaut wird sondern versucht wird direkt einen verbesserten Baum zu konstruieren Hierzu werden oft die Elemente zunachst sortiert und dann der Baum bottom up konstruiert Wird ein R Baum elementweise in einer ungunstigen Reihenfolge gefullt so kann er eine geometrisch unbalancierte Struktur aufweisen Ein optimierter R Baum hat zwar die annahernd gleiche Tiefe seine Regionen uberlappen sich aber weniger und uberdecken den Datenraum daher gleichmassiger In hoheren Dimensionen tritt der sogenannte Fluch der Dimensionalitat auf Beim R Baum fuhrt das dazu dass sich die entstehenden Rechtecksregionen zu immer grosseren Teilen uberlappen wodurch die Suche immer grossere Teile des Baumes verarbeiten muss Dies reduziert die Leistung der Indexstruktur Der X Baum von Stefan Berchtold Daniel A Keim und Hans Peter Kriegel 3 stellt hier eine wichtige Variation des R Baum Konzeptes fur hohere Dimensionalitaten dar Eine wichtige Massnahme hierbei sind sogenannte Supernodes das sind vergrosserte Seiten die vom X Baum verwendet werden um ungunstige Splits mit einer hohen Uberlappung zu vermeiden Im Extremfall kann er so auch zu einer linearen Datei degenerieren was gewunscht sein kann Wahrend ein R Baum als dynamische Indexstruktur konzipiert ist so kann sich seine Leistung durch systematische Einfuge oder Loschoperationen verschlechtern In solchen Fallen kann es sinnvoll sein den Baum von Zeit zu Zeit durch einen bulk load neu aufzubauen um ihn zu optimieren Es gibt auch inkrementelle Optimierungsstrategien wie die re inserts im R Baum mit denen ein Datenbanksystem in Leerlaufzeiten den Index verbessern kann Verfugbarkeit BearbeitenEine Referenzimplementierung des R Baums ist im Software Paket ELKI des Lehrstuhls von Professor Hans Peter Kriegel verfugbar inklusive Implementierungen eines M Baumes und anderen Vergleichsverfahren Ein R Baum findet sich auch beispielsweise in den Datenbanksystemen SQLite fur 2 bis 5 Dimensionen und Oracle fur 2 bis 4 Dimensionen Bei PostgreSQL war der Indextyp rtree bis Version 8 1 vorhanden 4 wurde dann jedoch von der Generalized Search Tree Schnittstelle GiST abgelost da er keine nennenswerten Vorteile besass 5 Siehe auch BearbeitenQuadtree K d Baum UB Baum Bereichsbaum Gridfile als AlternativeWeblinks BearbeitenSplitting Rules englisch R Tree Demonstration Java Applet Einzelnachweise Bearbeiten A Guttman R Trees A Dynamic Index Structure for Spatial Searching In Proc ACM SIGMOD International Conference on Management of Data 1984 doi 10 1145 602259 602266 PDF N Beckmann Hans Peter Kriegel R Schneider B Seeger The R Tree An Efficient and Robust Access Method for Points and Rectangles In Proc 1990 ACM SIGMOD International Conference on Management of Data 1990 S 322 331 doi 10 1145 93597 98741 PDF Memento vom 17 April 2018 im Internet Archive S Berchtold D A Keim Hans Peter Kriegel The X Tree An Index Structure for High Dimensional Data In VLDB Conference 1996 S 28 39 PS CREATE INDEX 1 Januar 2012 abgerufen am 7 Februar 2021 englisch CREATE INDEX 12 November 2020 abgerufen am 7 Februar 2021 englisch Abgerufen von https de wikipedia org w index php title R Baum amp oldid 234340760