Mehrdimensionale Zugriffspfade und Dateiorganisation

Größe: px
Ab Seite anzeigen:

Download "Mehrdimensionale Zugriffspfade und Dateiorganisation"

Transkript

1 Mehrdimensionale Zugriffspfade und Dateiorganisation Thomas Molka IN05

2 Inhaltsverzeichnis 1 Einleitung Anforderungen Implementierungen Eindimensionale Ansätze k-d-bäume Homogener k-d-baum Heterogener k-d-baum k-d-b-baum hb-baum Grid-File Mehrdimensionales Hashing Quellen

3 1 Einleitung Durch die Verbreitung von Datenbanken auf immer mehr Anwendungsgebiete, steigen ebenso die Anforderungen an diese. Eine der wichtigsten Anforderungen ist der schnelle Zugriff auf die Daten. Dafür sind zum Einen effiziente Speicherstrukturen und zum Anderen effiziente Zugriffsmethoden auf diese Speicherstrukturen von Nöten. Oft werden bei Datenbankanfragen Selektionsbedingungen angegeben, welche sich über mehrere Attribute erstrecken. Mittels einer mehrdimensionales Zugriffspfades können solche Anfragen wesentlich schneller verarbeitet werden. Im Besonderen gilt dies natürlich für Anwendungen, welche räumliche Daten verarbeiten, wie zum Beispiel in geographischen Informationssystemen. Auch bei der Verarbeitung geometrischer Daten (z.b. CAD), in Multimedia-Datenbanken und beim Informationretrieval kann von mehrdimensionalen Zugriffspfaden profitiert werden. Weitere Anwendungen finden sich z.b. in der Medizin (mehrdimensionale Speicherung von tomographisch aufgenommenen Bildern), sowie im Bereich der Architektur beim Laserscannen von Gebäuden. Im Allgemeinen kann bei Anfragen mit Selektionsbedingungen über k Attribute mit einem k- dimensionaler Zugriffspfad unter Nutzung von k Schlüsseln der/die entsprechende/n Datensatz/sätze direkt gefunden werden. Wichtig dabei ist neben einer möglichst gleichgewichteten Bedeutung der Schlüssel auch die Möglichkeit nur eine Teilmenge der k Schlüssel für eine Anfrageverarbeitung zu benutzen. Am einfachsten kann man sich das gesamte System als eine Struktur vorstellen, die im Folgenden als n-dimensionaler Datenraum bezeichnet wird. Dabei stellt jedes der vorkommenden Attribute eines Datensatzes eine Dimension dar. Das könnten etwa vier Attribute für einen medizinischen Datensatz sein, der zu jedem mit einer Kamera aufgenommenen Punkt eines menschlichen Armes, seine 3 Raumkoordinaten und die Farbe speichert, wobei die Farbe z.b. für eine bestimmte Knochendichte stehen könnte. Mit Hilfe von 3 Schlüsseln wird nun ein 3-dimensionaler Suchraum aufgespannt der das Auffinden der Datensätze im natürlich linear organisierten Plattenspeicher ermöglicht und so auch das Ermitteln der Knochendichte an einer bestimmten Stelle. Abbildung 1: 3-dimensionaler Datenraum, unterteilt in Blöcke (Buckets) 3

4 Auf dem Gebiet der mehrdimensionalen Zugriffspfade gibt es zahlreiche Ausarbeitungen unterschiedlichster Verfahren. Einige der in der Literatur am häufigsten erwähnten werde ich hier vorstellen. Dabei wird hier nur auf die Speicherung von Punktobjekten eingegangen und nicht auf räumlich ausgedehnte. 2 Anforderungen Bei Daten, für welche diese Zugriffsstrukturen von Nöten sind, ist dementsprechend hohes Datenvolumen zu erwarten. Die hauptsächlich ausgeführte Operation ist auf diesen Daten ist üblicherweise das Suchen. Dennoch sollten natürlich auch das Löschen, Einfügen und Ändern von Datensätzen unterstützt werden. Zur Bewertung der Strukturen wird dabei hauptsächlich die Anzahl der anfallenden I/O-Zugriffe genommen. Eine weitere Bewertungsmöglichkeit ist die Speicherplatzausnutzung, welche möglichst hoch sein sollte. Zur weiteren Einschätzung der Verfahren muss auch geklärt werden was für Anfragen auf die Speicherstruktur gestellt werden. Zunächst einmal lassen sich Anfragen auf mehrdimensionale Zugriffspfade in 4 Typen von sogenannten schnittbildenden Anfragen klassifizieren. Die exact match query nutzt jeden Schlüssel des k-dimensionalen Zugriffspfades, d.h. für jeden Schlüssel ist in der Anfrage ein Attributwert vorgegeben. In der partial match query sind nur für einen Teil der k Schlüssel Werte spezifiziert. Eine range query gibt für jeden der k Schlüssel einen bestimmten Bereich von Werten vor, die die Attribute einnehmen können. Bei der partial range query, einem Mix aus range- und partial match query wird ein Bereich für einen Teil der k Schlüssel vorgegeben. Ein weitere Anfragetyp stellen die nearest neighbour Anfragen dar, welche besonders bei Raumkoordinaten-Attributen eine Rolle spielen, wo zu einem gegebenen Punkt der nächstliegende Punkt bestimmt werden muss. Hier wird die matching Anforderung der Datensätze an die in der Anfrage spezifizierten Attributwerte in dem Sinne gelockert, dass die jeweiligen Werte nicht exakt vorkommen müssen, sondern auch Datensätze zurückgegeben werden, welche der Anfrage möglichst nahe kommen. Natürlich muss dieser Bereich durch eine bestimmte Distanzfunktion vorgegeben werden, die mitunter schwierig zu definieren ist, denn nicht immer kann dies, wie bei Raumkoordinaten durch ein einfaches Maß wie dem euklidischen Abstand geschehen. Ungeachtet der logischen Speicherstrukturen muss die physische Speicherung der Datensätze letztlich auf einem linear organisierten Plattenspeicher erfolgen. Deswegen müssen auch in der Organisation der Daten auf diesem Speicher einige Kriterien definiert werden, um die Geschwindigkeit der Anfrageverarbeitung und die effiziente Speicherplatzausnutzung physisch realisieren zu können. Ebenso wie der physische Speicher in Seiten eingeteilt ist, werden Datensätze der mehrdimensionalen Speicherstruktur gruppiert und zu im Weiteren als Buckets beschriebenen Blöcken zusammengefasst. In Abbildung 1 ist das Prinzip des in Buckets aufgeteilten Datenraumes anhand eines 3-dimensionalen Beispieles veranschaulicht. 4

5 Jeder der 18 Blöcke auf dem Bild repräsentiert eine Seite im Speicher, wobei man sich einzelne Punkte innerhalb der Buckets als Datensätze innerhalb einer Seite im Extern- Speicher vorstellen kann. Der wichtigste Aspekt für die Geschwindigkeit ist die Erhaltung der topologischen Struktur. Das bedeutet, dass man Datensätze welche in der logischen Struktur benachbart abgespeichert sind auch auf physischer Ebene benachbart ablegt. Insbesondere gilt diese Forderung für die Buckets bzw. die Seiten. Man kann hier von einer lokalen Clusterung innerhalb der Buckets sprechen. Dies wird auch als lokale Ordnungshaltung bezeichnet. Eine globale Clusterung ist natürlich wesentlich schwieriger einzuhalten und effektiv nur nach einer der k Dimensionen realisierbar. Leicht einzusehen ist große Bedeutung dieses Kriteriums, wenn man Bereichsanfragen betrachtet. Hier sollen benachbarte Datensätze bei einer Anfrage natürlich in einem Schwung aus dem externen Speicher in den Puffer gelesen werden können, um die Latenzzeiten bei Zugriffen auf entfernte Bereiche der Platte einzusparen. Ein weiterer wichtiger Punkt ist die Dichte der Datensätze. Auch bei extremen Verteilungen im logischen Datenraum, sollten die Buckets in etwa den gleichen Füllgrad haben, um eine akzeptable Speicherbelegung zu erzielen. Des Weiteren darf die logische Struktur bei einer Folge von Einfüge- oder Löschvorgängen nicht entarten. Das hätte unterschiedliche Zugriffszeiten auf die verschiedenen Datensätze als Auswirkung, ein höchst unerwünschtes Phänomen. Deswegen ist eine dynamische Reorganisation der Struktur notwendig, wobei darauf geachtet werden muss, dass die effiziente Speicherbelegung und lokale Ordnungshaltung erhalten bleiben. Abbildung 2: Dynamische Reorganisation 5

6 3 Implementierungen 3.1 Eindimensionale Ansätze Mehrattributzugriff ist auch mittels eindimensionalen Zugriffspfaden möglich. Dazu werden hier kurz einige Möglichkeiten betrachtet und ihre Nachteile erläutert. Der einfachste Ansatz ist sicherlich, für jedes Attribut in einer Anfrage einen entsprechenden Index wie etwa einen B*-Baum zu erstellen. Bei einer Anfrage vom Typ 'A1=a1i AND A2=a2j' würde man mit 2 Indexen auf die Attribute A1 und A2 nun nacheinander suchen und aus beiden Ergebnissen schließlich die Schnittmenge bilden. Die Nachteile dieser Methode sind offensichtlich: für hohe Dimensionsanzahlen entsprechend viele einzelne Indexe notwendig Sperrprotokoll für jeden einzelnen Index einzuhalten hoher Aufwand bei Inserts/Deletes Eine weitere Variante Mehrattributzugriff mit eindimensionalen Indexen zu realisieren, ist das Konkatenieren von Attributen. Dabei werden die einzelnen Schlüssel verkettet und damit eine Sortierreihenfolge vorgegeben. Damit sind exact match querys sowie Lösch- und Einfügevorgänge problemlos möglich. Die Nachteile dieser Methode liegen aber zum einen in der fehlenden Symmetrie, d.h. ein Index aus den Attributen A1 A2 kann nicht für Anfragen genutzt werden die die Reihenfolge A2 A1 verlangen. Man muss also für k Schlüssel k! verschiedene Indexe anlegen. Auch sind keine partial match querys möglich, was bedeutet dass man auch sämtlich Untermengen von Schlüsselkombinationen als Index anlegen müsste. Auch für nearest neighbour Anfragen fehlt jede Grundlage. 3.2 k-d-bäume Daher wird im Folgenden die Klasse der k-d-bäume vorgestellt, ein echter Vertreter mehrdimensionaler Zugriffspfade. Bei k-d-bäumen besteht der Gesamtschlüssel aus k Teilschlüsseln, wobei jeder Schlüssel ein Attribut und damit eine Dimension im Datenraum repräsentiert Homogener k-d-baum Die einfachste Variante aus dieser Familie heißt homogener k-d-baum. Der Aufbau gleicht einem gewöhnlichen binären Suchbaum. Das heißt also, trotz k Dimensionen findet auf jeder 6

7 Ebene des Baumes nur eine binäre Entscheidung statt. Der Unterschied zum binären Suchbaum besteht hier allerdings in der Auswahl des Attributs nach dem entschieden wird. Während dies beim binären Suchbaum immer das gleiche ist, wechselt beim homogenen k-d- Baum in jeder Ebene das Attribut. In jedem Knoten wird dafür ein sogenannter Diskriminator gespeichert, welcher entscheiden welcher Teilschlüssel zur Ordnung der Kind-Elemente des Knotens herangezogen wird. Eine einfache Formel zur Berechnung des Diskriminators wäre z.b. '(i mod k)+1' wobei k für die Anzahl der Teilschlüssel steht und i für die Nummer der Ebene auf der sich der aktuelle Knoten im Baum befindet. Ein Knoten speichert im homogenen k-d-baum also folgende Komponenten: den kompletten Datensatz, den Diskriminator und die Zeiger auf linkes bzw. rechtes Kind-Element. Bei einem 2-dimensionalen k-d-baum, welcher als Teilschlüssel in 2 Attributen die Koordinaten x und y besitzt, könnte zum Beispiel auf Wurzelebene der erste Punkt A mit den Koordinaten (60,40) eingefügt werden. Beim Einfügen eines weiteren Punktes B (30,60) könnte nun nach der x-koordinate entschieden werden und der Knoten somit als linkes Kind- Element eingefügt werden (da 30<60). Ein Punkt C (75,70) würde als rechtes Kind-Element eingefügt werden (da 75>60). Müsste nun ein weiterer Punkt D (45,30) eingefügt werden, muss dieser in der 2.Ebene gespeichert werden. Dazu wird in der Wurzel zunächst nach x- Koordinate entschieden und somit in das linke Kind-Element gegangen. Da hier ein Ebenenwechsel stattfindet muss nun auch das Attribut gewechselt werden nach dem entschieden wird. Das heißt auf der 2.Ebene wird nun nach der y-koordinate entschieden und der Punkt wird somit als linkes Kind-Element des Knoten B gespeichert (da 30<60). Abbildung 3: homogener k-d-baum 7

8 Zu bemerken ist hier die Abhängigkeit der Struktur des Baumes von der Einfüge-Reihenfolge. Wären die Knoten beispielsweise in der Reihenfolge 'E,F,B,G,A,C,D' eingefügt worden, wäre der Baum zu einer Liste entartet. Zu bemängeln ist also das fehlenden Konzept der dynamischen Reorganisation des Baumes, welche eine Entartung verhindern würde. Des Weiteren existieren keine Anhaltspunkte, wie die Knoten im physischen Speicher abgelegt werden könnten, d.h. Regeln für eine Zuordnung der Knoten in den Buckets. Damit ist das Prinzip der lokalen Topologieerhaltung verletzt. Bereichsanfragen und partial match querys sind nur über Rekursion möglich, da keine weitere Verkettung der Knoten untereinander besteht außer der 'Eltern-Kind' Beziehung. Hier noch einmal eine Zusammenfassung der Nachteile: keine Topologieerhaltung Bereichsanfragen, partial match querys nur über Rekursion möglich Entwartung des Baumes zur Liste möglich damit keine garantierte Gleichheit der Zugriffszeiten auf verschiedene Datensätze Insgesamt scheidet der homogene k-d-baum damit für den Einsatz in Datenbanksystemen aus Heterogener k-d-baum Der heterogen k-d-baum unterscheidet sich vom homogenen dadurch, dass Datensätze hier nur noch in den Blattknoten gespeichert werden und nicht mehr wie beim homogenen k-d- Baum auch in den Zwischenknoten. Damit kann man die Blätter 1:1 auf die Buckets abbilden und somit eine lokale Topologieerhaltung erzwingen. Falls ein Bucket überläuft kommt es zu einem Split und das Blatt wird zum Zwischenknoten, der nun auf 2 neue Blätter verweist. Dabei wechselt die Dimension nach der über die Ordnung der Nachfolgerknoten entschieden wird wieder, genau wie beim homogenen k-d-baum. Konnte man beim homogenen k-d-baum noch von einer Organisation der Datensätze sprechen, verfährt der heterogene nach dem Prinzip Organisation des umgebenden Datenraumes. 8

9 Abbildung 4: heterogener k-d-baum Dieses Prinzip kann man gut erkennen, wenn man Abbildung 3 mit Abbildung 4 vergleicht. Während die Datensätze beim homogenen k-d-baum noch keine feste Zuordnung zu Buckets erhielten, wird beim heterogenen k-d-baum der Datenraum in Buckets aufgeteilt und bei Einfüge oder Löschoperationen werden diese Gebiete weiter aufgeteilt beziehungsweise zusammengeführt. Dieses Prinzip nennt man auf Divide and Conquer. Am Beispiel ist zu sehen, dass mehrere Datensätze in eine Zelle untergebracht sind. Dazu wird eine feste maximale Zellgröße festgelegt. Wird diese Überschritten, kommt es zur Zellteilung, welcher die Zelle möglichst in der Mitte teilen sollte (z.b. durch einen Median- Split). In der Abbildung fand die erste Zellteilung des Datenraumes bei x=50 statt, die jeweils zweiten Zellteilungen bei y=60 und y=20. Dabei wird jeweils das Blatt was die Zelle repräsentiert in 2 Blätter aufgeteilt und selbst zum Zwischenknoten, die Datensätze teilen sich auf die beiden neuen Blätter auf. Die Vorteile dieses Prinzips liegen zum einen in der angesprochenen Topologieerhaltung, zum anderen ist durch die Restriktion, Datensätze nur in Blättern abspeichern zu dürfen, die Funktionalität der Zwischenknoten auf ihre Zeigereigenschaft und den Diskriminator verringert, was die Struktur natürlich beschleunigt. Es muss schließlich nicht in jedem Zwischenknoten ein kompletter Datensatz mit eingelesen werden. Allerdings beinhaltet diese Struktur immer noch einige Nachteile: auch hier existiert eine Abhängigkeit von der Einfüge-Reihenfolge damit sind wiederum Entartungen möglich auch für Bereichsanfragen und partial match querys gilt das Gleich wie beim homogenen k-d-baum Eine Weiterentwicklung des heterogenen k-d-baumes ist der sogenannte LSD-Baum. LSD steht hier für 'Local Split Decision'. Hier wurde die Zerlegung der Zellen und die Zuordnung zu den Buckets verbessert. Außerdem kann dieser Baum auch für räumlich ausgedehnte Objekte benutzt werden. 9

10 3.2.3 k-d-b-baum Eine weitere Verbesserung des k-d-baumes ist der k-d-b-baum. Das ist eine Mischung aus k- d-baum und B*-Baum. Die Datensätze bleiben wie beim heterogenen k-d-baum nur in den Blättern gespeichert. Allerdings ist bei dieser Struktur die Balancierungseigenschaft gewährleistet (durch die Eigenschaften des B*-Baumes). Durch die gleiche Länge aller Pfade von Wurzel bis Blatt isz damit ein gleich schneller Zugriff auf alle Datensätze garantiert. Hier wird findet also das Prinzip der Dynamischen Reorganisation statt, welche jegliche Entartung des Baumes verhindert. Dabei muss erwähnt werden, dass die Dynamische Reorganisation hier deutlich schwieriger und kostspieliger ist als bei einem gewöhnlichen B*-Baum. Bei einem Bucketüberlauf muss die Verfeinerung nach Aufteilung eines Blattes eventuell bis zur Wurzel hinauf stattfinden. Das Problem dabei ist, dass für den k-d-b-baum immer noch die Eigenschaft erhalten bleiben muss, dass auf jeder Ebene nach einer vorher festgelegten Diskriminatorfunktion geordnet werden muss. Bei den üblichen Reorganisationsmethoden des B*-Baumes wie etwa Rotation und Austausch von Datensätzen unter Geschwistern ist diese Eigenschaft nicht mehr gewährleistet, da die Ordnung wirklich für jede der k Dimensionen erhalten bleiben muss. Leicht einzusehen ist, dass dies enorm komplex ist für hohe k. Zudem ist keine Speicherauslastung von >50% garantiert. Experimentell konnte jedoch nachgewiesen werden das die Speicherauslastung im Average-Case bei 60% +-10% liegt. Der einzige große Nachteil ist damit wie erwähnt: eine sehr komplexe und teure Reorganisation Wird also hauptsächlich von Suchanfragen ausgegangen ist der k-d-b-baum eine gute Speicherstruktur. Bei viele Inserts und Deletes hingegen sollte man andere Implementierungen benutzen. 3.3 hb-baum Für den hb-baum sei hier nur kurz erwähnt, dass er eine Verbesserung des k-d-b-baumes darstellt. hb steht für holey brick und bedeutet, dass die Zellen nicht wie beim k-d-b-baum immer als Rechtecke ausgelegt sein müssen, sondern auch Löcher entstehen können. Damit lassen sich auch orthogonale Punktlinien ohne Probleme abspeichern und die Datensätze auf diesen Linien möglichst gleich auf Buckets aufteilen, was beim k-d-b-baum nicht erreicht werden kann. Durch eine höhere Anzahl an Freiheitsgraden pro Ebene muss auch nicht so oft reorganisiert werden wie bei k-d-b-baum. Der hb-baum ist damit sehr gut für den Einsatz in Datenbanksystemen geeignet. 10

11 3.4 Grid-File In der Klasse der Verfahren mit dem Prinzip 'Organisation des umgebenden Datenraumes' gibt es neben den 'Divide and Conquer' Verfahren auch noch das Prinzip der Dimensionsverfeinerung. Als Begründer dieser Theorien sind Nievergelt, Sevcik und Hinterberger zu nennen. Während bei den Divide and Conquer Verfahren immer nur lokal entschieden wird, ob es zu einem Split kommt und das Ergebnis dieses Splits auf möglichst lokal gehalten wird, um eine teure Reorganisation der kompletten Struktur zu verhindern, wird dies beim Prinzip der Dimensionsverfeinerung von vorn herein in Kauf genommen. Auch hier teilt man den Datenraum wiederum nach den entsprechenden Dimensionen geordnet in Zellen ein. Kommt es Allerdings zu einem Split einer Zelle nach wird nicht nur die Zelle sondern die gesamte Ebene auf der sich die Zelle befindet durch die entsprechende Dimension geschnitten. Veranschalicht ist dies am 3-dimensionalen Beispiel in Abbildung 5. Abbildung 5: Schnitt eines 3-dimensionalen Datenraumes nach Dimension A1 Das Grid-File gilt als bekannteste Implementierung dieses Ansatzes und auch als eine sehr häufig angewendete Technik in Datenbanksystemen. Es wurde konzipiert, um neben exact match querys auch Bereichs-, partial match- und nearest neighbour Asnfragen zu unterstützen. Die in Abbildung 5 gezeigte Struktur trifft auch auf das Grid-File zu, wobei erwähnt werden muss, dass nicht unbedingt für jede Zelle ein seperates Bucket benutzt wird sondern auch mehrere Zellen in einem Bucket zusammengefasst werden können. Dies geschieht je nachdem, ob die Anzahl der in der Zelle liegenden Punkte die maximale Größe eines Buckets erreicht hat oder kleiner ist, dann könnten soviele Zellen zu einem Bucket zusammengefasst werden, wie es die Bucketgröße erlaubt. Dadurch gewährleistet man eine bessere Speicherauslastung und verhindert größere Freistellen im Speicher zwischen den Buckets. Durch die damit höhere Datendichte ist natürlich ein schnelleres Auslesen größerer Blöcke von der Platte in den Puffer möglich, was I/O Kosten spart. 11

12 Für das Grid-File müssen für k Dimensionen auch k 'scales' angelegt werden. Dies sind Arrays welche die Schnitte (also die Grenzen zwischen den Zellen) innerhalb einer Dimension beschreiben. Für jede Grenze ist ein Element im Array abgespeichert. An das Erweiterbare Hashing angelehnt, basiert das Grid-File auf einem sogenannten Grid- Directory, in welchem letztlich die Bucket-Adressen gespeichert sind. In Abbildung 6 sind die 'scales' (als s1 und s2 bezeichnet) und das Grid-Directory (GD) an einem 2-dimensionalen Beispiel veranschaulicht. Das Grid-File garantiert für Lookup Querys, das gleich oder weniger als 2 Plattenzugriffe ausreichen um den Datensatz in den Puffer zu laden. Ein Zugriffs ist natürlich der Speicherzugriff auf den Datensatz selbst, der zweite wird benötigt, falls der entsprechende Teil des Grid-Directorys noch nicht im Puffer steht. Die Speicherplatzauslastung des Grid- Files liegt bei sehr guten 70%. Diese Vorteile machen es zur populärsten mehrdimensionalen Organisationsform in Datenbanksystemen. Das einzige Problem des Grid-Files ist das nichtlineare Wachstum des Grid-Directory, was dazuführen kann, dass es nicht komplett im Puffer gehalten werden kann und damit eventuell mehr als ein Plattenzugriff für Lookup Operationen benötigt wird. Auch kann der Datenraum dadurch teilweise viele leere Zellen enthalten. Verbessert werden können diese Eigenschaften mit Interpolationsbasierten Grid-Files, welche im worst case allerdings eine schlechtere Speichplatzauslastung haben. Auf diese Variante wird hier nicht näher eingegangen. Stattdessen wird noch an einem Beispiel die Reaktion dieser Organisationsform auf Einfüge- Operationen veranschaulicht. 12

13 Beispiel anhand einer Folge von Inserts: Datenraum und Grid-Directory (Bucketgröße 2) im Ausgangszustand Buckets A,B,C,E umfassen 2 Zellen nach dem einfügen des Punktes (200,250) ist die Bucketgröße 2 in A überschritten (Dimensionslinie nach der geschnitten wird ist schon vorhanden) ->Split von A in A und F, sodass diese nur noch eine Zelle umfassen Einfügen eines zweiten Punktes in A ->Grid-Directory bleibt wie es ist da Bucketgröße noch nicht überschritten 13

14 Einfügen eines dritten Punktes in A ->Zellteilung notwendig da Bucketgröße in A überschritten ->vertikaler Schnitt durch die komplette Ebene ->auch die Zellen F und D werden geteilt (Buckets F und D bleiben aber da sie je beide Zellen umfassen können) ->Grid-Directory muss vergrößert werden (neue Grenze im 'x-scale' mit x=250 eingefügt) 14

15 3.5 Mehrdimensionales Hashing Das mehrdimensionale Hashing wurde entwickelt um dem Nachteil des Grid-Directorys zu entgegnen, dass eventuell 2 Plattenzugriffe für eine Lookup-Operation notwendig sind und das Grid-Directory mit dem Einfügen großer Datenmengen nichtlinear wächst. Das mehrdimensionale Hashing baut auf dem linearen Hashing auf und benötigt damit kein Directory. Die Zuordnung der Zellen zu den Buckets erfolgt über eine Adressierungsfunktion. Dadurch wird eine garantierte Obergrenze von nur einem Plattenzugriff erreicht. Abbildung 6: Mehrdimensionales Hashing Bei annähernder Gleichverteilung ist diese Technik dem Grid-File weit überlegen, da kein Directory gepflegt und erweitert werden muss. Das gilt nicht nur für Lookup- sondern ebenfalls für partial match- und Bereichsanfragen. Außerdem weist es in diesen Fällen auch eine sehr gut Speicherplatzauslastung auf. Probleme treten allerdings bei starken Ungleichverteilungen auf, da in diesem Fall viele Buckets im Füllgrad stark variieren bzw. sogar leer sein können. Zusammenfassen kann man diese nicht, da sonst die Adressierungsfunktion nicht mehr korrekt arbeiten würde. Damit ist der wichtige Aspekt der effizienten Speicherauslastung nicht mehr gegeben. Aus diesen Gründen hat sich das mehrdimensionale Hashing in Datenbanksystem bis heute nicht durchsetzen können. 15

16 4 Quellen Bücher: Datenbanksysteme: Konzepte und Techniken der Implementierung Theo Härder, Erhard Rahm Taschenbuch Datenbanken Internet: (Insert- Beispiele) 16

Mehrdimensionale Zugriffspfade und Dateiorganisation

Mehrdimensionale Zugriffspfade und Dateiorganisation Mehrdimensionale Zugriffspfade und Dateiorganisation Gliederung Begriffe, Anforderungen und Probleme, Anwendungsgebiete Konkrete Techniken Bäume Grid-File Mehrdimensionales Hashing Begriffe Eindimensionale

Mehr

Indexstrukturen in Datenbanken

Indexstrukturen in Datenbanken für Zeichendaten und Texte sowie mehrdimensionale Dateiorganisation und Zugriffspfade 3. Juli 2014 Inhaltsverzeichnis 1 Einleitung 2 Präfix B+-Baum 3 Tries 4 k-dimensionale Bäume 5 Grid-File 6 mehrdimensionales

Mehr

Ausarbeitung zum Thema:

Ausarbeitung zum Thema: Hochschule für Technik, Wirtschaft und Kultur Leipzig Ausarbeitung zum Thema: Mehrdimensionale Dateiorganisation und Zugriffspfade Eingereicht von: Thomas Reinhardt, 05IN-B Inhaltsverzeichnis 1 Einleitung

Mehr

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil X Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 13.

Mehr

Hash-Verfahren. Prof. Dr. T. Kudraß 1

Hash-Verfahren. Prof. Dr. T. Kudraß 1 Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen

Mehr

Hash-Verfahren. Einführung

Hash-Verfahren. Einführung Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.

Mehr

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme B / B* - Bäume Guido Hildebrandt Seminar Datenbanksysteme 25.11.2010 Gliederung Einleitung Binärbaum B - Baum B* - Baum Varianten Zusammenfassung Quellen Gliederung Einleitung Binärbaum B - Baum B* - Baum

Mehr

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1 Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet

Mehr

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen 4.4 MX-Quadtrees (I) MatriX Quadtree Verwaltung 2-dimensionaler Punkte Punkte als 1-Elemente in einer quadratischen Matrix mit Wertebereich {0,1} rekursive Aufteilung des Datenraums in die Quadranten NW,

Mehr

Datenbanken: Indexe. Motivation und Konzepte

Datenbanken: Indexe. Motivation und Konzepte Datenbanken: Indexe Motivation und Konzepte Motivation Warum sind Indexstrukturen überhaupt wünschenswert? Bei Anfrageverarbeitung werden Tupel aller beteiligter Relationen nacheinander in den Hauptspeicher

Mehr

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen Suchbäume Suchbäume Prinzip Suchbaum Der Wert eines Knotens wird als Schlüssel verstanden Knoten kann auch weitere Daten enthalten, die aber hier nicht weiter betrachtet werden Werte der Schlüssel müssen

Mehr

Dynamische Datenstrukturen

Dynamische Datenstrukturen Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten

Mehr

Mehrwegbäume Motivation

Mehrwegbäume Motivation Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und

Mehr

WINTERSEMESTER 2006/2007. Mehrdimensionale Bäume

WINTERSEMESTER 2006/2007. Mehrdimensionale Bäume ALGORITHMISCHE ANWENDUNGEN WINTERSEMESTER 2006/2007 Team: B_blau_Ala0607 Wilhelm Faber 11032935 Ioannis Chouklis 11042438 1 Inhaltsverzeichnis Inhaltsverzeichnis...2 1. Der k-d Baum...3 1.1. Inhomogene

Mehr

Geometrie II. Deniz Neufeld Deniz Neufeld Geometrie II / 39

Geometrie II. Deniz Neufeld Deniz Neufeld Geometrie II / 39 Geometrie II Deniz Neufeld 20.06.2016 Deniz Neufeld Geometrie II 20.06.2016 1 / 39 Ziel Umgehen mit großen, mehrdimensionalen Datenmengen Bereichssuche Nearest-Neighbour-Search Mehrdimensionale Datenverarbeitung

Mehr

Teil VII. Hashverfahren

Teil VII. Hashverfahren Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:

Mehr

Informatik II Bäume zum effizienten Information Retrieval

Informatik II Bäume zum effizienten Information Retrieval lausthal Informatik II Bäume zum effizienten Information Retrieval. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Binäre Suchbäume (binary search tree, BST) Speichere wieder Daten als "Schlüssel

Mehr

4.3 R-Bäume (I) Idee. basiert auf der Technik überlappender Seitenregionen verallgemeinert die Idee des B + -Baums auf den 2-dimensionalen Raum

4.3 R-Bäume (I) Idee. basiert auf der Technik überlappender Seitenregionen verallgemeinert die Idee des B + -Baums auf den 2-dimensionalen Raum 4.3 R-Bäume (I) Idee basiert auf der Technik überlappender Seitenregionen verallgemeinert die Idee des B + -Baums auf den 2-dimensionalen Raum Geo-Informationssysteme 98 4.3 R-Bäume (I) Definition Ein

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 2 Übung zur Vorlesung Grundlagen: Datenbanken im WS3/4 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws34/dbsys/exercises/

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 10 Übung zur Vorlesung Grundlagen: Datenbanken im WS15/16 Harald Lang, Linnea Passing (gdb@in.tum.de)

Mehr

Seminar Datenbanken Martin Gerstmann

Seminar Datenbanken Martin Gerstmann Seminar Datenbanken Martin Gerstmann Gliederung 1. Ziele 2. Arten 2.1. erweiterbares Hashing 2.2. lineares Hashing 2.3. virtuelles Hashing 3. Bewertung 1. Ziele wachsende/schrumpfende Datenmengen verwalten

Mehr

Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE)

Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE) 4.4 Quadtrees Überblick Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE) Verwaltung von Punkten, Kurven, Flächen usw., häufig

Mehr

4.4 Quadtrees. Literatur

4.4 Quadtrees. Literatur 4.4 Quadtrees Überblick Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE) Verwaltung von Punkten, Kurven, Flächen usw., häufig

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2 Hashorganisation HASHORGANISATION Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 982, Kapitel 2.2 Die Sätze der Datei werden auf eine Menge von Buckets aufgeteilt. Jedes Bucket

Mehr

Datenbanksysteme II Multidimensionale Indizes (Kapitel 14) Felix Naumann

Datenbanksysteme II Multidimensionale Indizes (Kapitel 14) Felix Naumann Datenbanksysteme II Multidimensionale Indizes (Kapitel 14) 14.5.2007 Felix Naumann Motivation 2 Annahme bisher: Eine Dimension Ein einziger Suchschlüssel Suchschlüssel kann auch Kombination von Attributen

Mehr

Überlaufbehandlung ohne Verkettung

Überlaufbehandlung ohne Verkettung 3.2 Statische Hash-Verfahren direkte Berechnung der Speicheradresse (Seitenadresse) eines Satzes über Schlüssel (Schlüsseltransformation) Hash-Funktion h: S {, 2,..., n} S = Schlüsselraum, n = Größe des

Mehr

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus 2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus {0, 1,..., B 1} d in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gemäß dem letzten

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 9 Übung zur Vorlesung Grundlagen: Datenbanken im WS4/5 Harald Lang (harald.lang@in.tum.de) http://www-db.in.tum.de/teaching/ws45/grundlagen/

Mehr

Rolf Wanka Sommersemester Vorlesung

Rolf Wanka Sommersemester Vorlesung Peer-to to-peer-netzwerke Rolf Wanka Sommersemester 2007 7. Vorlesung 05.06.2007 rwanka@cs.fau.de basiert auf einer Vorlesung von Christian Schindelhauer an der Uni Freiburg Lookup in CAN Verbindungsstruktur:

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Organisationsformen der Speicherstrukturen

Organisationsformen der Speicherstrukturen Organisationsformen der Speicherstrukturen Bäume und Hashing 1 Motivation Ablage von Daten soll einfachen, schnellen und inhaltsbezogenen Zugriff ermöglichen (z.b. Zeige alle Schüler des Lehrers X am heutigen

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

Kapitel 8: Physische Datenorganisation

Kapitel 8: Physische Datenorganisation Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Datenbanksysteme I Wintersemester 2017/2018 Kapitel 8: Physische Datenorganisation

Mehr

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN

GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN Informationssysteme - Indexstrukturen I: B-Bäume und ihre Varianten Seite 1 GRUNDLAGEN VON INFORMATIONSSYSTEMEN INDEXSTRUKTUREN I: B-BÄUME UND IHRE VARIANTEN Leiter des Proseminars: Dr.Thomas Bode Verfasser

Mehr

Indizes B+Bäume in Oracle. Jörg Winkler

Indizes B+Bäume in Oracle. Jörg Winkler Indizes B+Bäume in Oracle Vortragende: Conrad Kobsch Jörg Winkler Inhalt Allgemeines Aufbau / Eigenschaften von B+Bäumen Vorteile / Nachteile B+Baum-Indexe Kriterien für Indizes Anlegen eines Indizes Anfrageoptimierung

Mehr

Kapitel 8: Physischer Datenbankentwurf

Kapitel 8: Physischer Datenbankentwurf 8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen

Mehr

The Grid File An Adaptable, Symmetric Multikey File Structure

The Grid File An Adaptable, Symmetric Multikey File Structure The Grid File An Adaptable, Symmetric Multikey File Structure Vortrag von Markus Apell im Rahmen des Seminars Support for Non-Standard Datatypes in DBMS Inhalt: 1.Einführung 3 Eine symmetrische, sich anpassende

Mehr

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. .3 B-Bäume t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. Wird der t-äre Baum zur Verwaltung von Daten

Mehr

Indexstrukturen für Zeichendaten und Texte

Indexstrukturen für Zeichendaten und Texte Indexstrukturen für Zeichendaten und Texte Felix Hain HTWK Leipzig 29.06.15 Gliederung 29.06.15 Felix Hain 2 1 B + -Baum 1.1 Präfix-B + -Baum 1.2 B + -Baum für BLOBs 2 Digitale Bäume 2.1 Trie 2.2 Patricia

Mehr

ADS 1: Algorithmen und Datenstrukturen

ADS 1: Algorithmen und Datenstrukturen ADS 1: Algorithmen und Datenstrukturen Teil IX Uwe Quasthoff Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 1 Dezember 017 [Letzte Aktualisierung: 04/1/017, 10:56]

Mehr

Exkurs: Datenstruktur Quad Tree

Exkurs: Datenstruktur Quad Tree Exkurs: Datenstruktur Quad Tree Prof. Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering LS11 Universität Dortmund 27. VO WS07/08 04. Februar 2008 1 Mehrdimensionale Suchstrukturen Gegeben: Menge S von

Mehr

4.3 Splitstrategien für R-Bäume (I)

4.3 Splitstrategien für R-Bäume (I) 4.3 Splitstrategien für R-Bäume (I) Der Knoten K läuft mit K = M+1 über: Aufteilung auf zwei Knoten K 1 und K 2, sodaß K 1 m und K 2 m Erschöpfender Algorithmus Suche unter den O(2 M ) Möglichkeiten die

Mehr

Sortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2

Sortieren und Suchen. Jens Wächtler Hallo Welt! -Seminar LS 2 Sortieren und Suchen Jens Wächtler 17.05.2017 Hallo Welt! -Seminar LS 2 Überblick Sortieren kurze Wiederholung Binäre & Ternäre Suche Binäre Suche in einer Liste Bisektionsverfahren (Nullstellensuche)

Mehr

Kapitel 9: Physische Datenorganisation

Kapitel 9: Physische Datenorganisation Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2008/2009 Kapitel 9: Physische Datenorganisation Vorlesung:

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 9. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Balancierte Binärbäume Der ausgeglichene binäre Suchbaum verursacht

Mehr

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n). 2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

4. Tries und kd-bäume

4. Tries und kd-bäume 4. Tries und kd-bäume Digitale Suchbäume (Tries) kd-bäume Prof. Dr. O. Bittel, HTWG Konstanz Algorithmen und Datenstrukuren Tries und kd-bäume SS 2019 4-1 Tries (1) Problem mit den bisherigen Suchbäumen

Mehr

Randomisierte Datenstrukturen

Randomisierte Datenstrukturen Seminar über Algorithmen DozentInnen: Helmut Alt, Claudia Klost Randomisierte Datenstrukturen Ralph Schäfermeier 13. 2. 2007 Das Verwalten von Mengen, so dass ein schneller Zugriff auf deren Elemente gewährleistet

Mehr

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16 Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen

Mehr

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) 5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 10.5.17 Sascha Witt sascha.witt@kit.edu (Mit Folien von Lukas Barth, Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Roadmap Listen Skip List Hotlist Amortisierte

Mehr

Partitionierungsstrategien für Data Vault

Partitionierungsstrategien für Data Vault ierungsstrategien für Data Vault Dani Schnider Trivadis AG Zürich/Glattbrugg, Schweiz Einleitung Während das Laden von Tabellen in Data Vault in der Regel nicht zeitkritisch ist, stellt uns das effiziente

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr. Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen

Mehr

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03.

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03. Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Fachbereich Informatik Technische Universität Kaiserslautern Übungsblatt 2 Für die Übungen in der Woche vom 29. April bis 03. Mai 2013 Aufgabe

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

Kapitel 9: Physische Datenorganisation

Kapitel 9: Physische Datenorganisation Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2006/2007 Kapitel 9: Physische Datenorganisation Vorlesung:

Mehr

Dynamische Mengen. Realisierungen durch Bäume

Dynamische Mengen. Realisierungen durch Bäume Dynamische Mengen Eine dynamische Menge ist eine Datenstruktur, die eine Menge von Objekten verwaltet. Jedes Objekt x trägt einen eindeutigen Schlüssel key[x]. Die Datenstruktur soll mindestens die folgenden

Mehr

7 Weitere Baumstrukturen und Heapstrukturen

7 Weitere Baumstrukturen und Heapstrukturen 7 Weitere Baumstrukturen und Heapstrukturen Man kann kurze Suchzeiten in Baumstrukturen erreichen durch Rebalancierung bei Einfügungen und Löschungen (AVL Bäume, gewichtsbalancierte Bäume, Bruderbäume,

Mehr

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30 Geometrie 2 Julian Fischer 6.7.2009 Julian Fischer Geometrie 2 6.7.2009 1 / 30 Themen 1 Bereichssuche und kd-bäume 1 Bereichssuche 2 kd-bäume 2 Divide and Conquer 1 Closest pair 2 Beispiel: Points (IOI

Mehr

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen?

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen? Integriertes Seminar Datenbanken und Informationssysteme P2P-Computing Lehrgebiet Datenverwaltungssysteme Prof. Dr. Dr. h.c. Härder Prof. Dr. Deßloch Björn Jung b_jun@informatik.uni-kl.de Technische Universität

Mehr

Algorithmen und Datenstrukturen 12

Algorithmen und Datenstrukturen 12 12. Juli 2012 1 Besprechung Blatt 11 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Sortierverfahren Allgemein Heapsort Bubblesort Insertionsort Mergesort Quicksort

Mehr

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden! Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen

Mehr

Dateiorganisation und Zugriffsstrukturen

Dateiorganisation und Zugriffsstrukturen Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet

Mehr

Fragenkatalog 1. Kurseinheit

Fragenkatalog 1. Kurseinheit katalog 1. Kurseinheit 1. Wie sind Algorithmen und Datenstrukturen untrennbar miteinander verknüpft? 2. Worin besteht das Ziel einer Beschreibung auf algorithmischer Ebene? 3. Welche Kriterien gibt es

Mehr

Datenbanken. Interne Datenorganisation:

Datenbanken. Interne Datenorganisation: Interne Datenorganisation: Bisher: Konzeptionelle Betrachtungen einer Datenbank aus Sicht der Anwendung: Modellierung, Normalisieren, Sprache zum Einfügen, Ändern, Löschen, Lesen Jetzt: Betrachtung der

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.05.2011 Geometrie in Datenbanken In einer Personaldatenbank

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Indizierung von Geodaten - Raumbezogene Indexstrukturen. Seminar mobile Geoinformationssystem Vortrag von Markus Steger

Indizierung von Geodaten - Raumbezogene Indexstrukturen. Seminar mobile Geoinformationssystem Vortrag von Markus Steger Indizierung von Geodaten - Raumbezogene Indexstrukturen Seminar mobile Geoinformationssystem Vortrag von Markus Steger Index wozu ist er gut? Index allgemein Effizienter Zugriff auf Daten, i.d.r. mit B-Baum

Mehr

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Nico Düvelmeyer WS 2009/2010, 8.12.2009 Überblick 1 1-dimensionale Bereichsabfragen 2 Kd-Baum Struktur Aufbau Abfrage mit dem Kd-Baum 3 Range-Baum

Mehr

Datenstrukturen und Algorithmen. Vorlesung 5

Datenstrukturen und Algorithmen. Vorlesung 5 Datenstrukturen und Algorithmen Vorlesung 5 Inhaltsverzeichnis Vorige Woche: Sortierte Listen Zyrkuläre Listen Verkettete Listen auf Arrays Heute betrachten wir: Skip Listen ADT Set ADT Map Iterator ADT

Mehr

Mobile Objekte Indexstrukturen

Mobile Objekte Indexstrukturen Verteilung und Integration von Informationen im Verkehrsbereich Mobile Objekte Indexstrukturen Ingo Beutler 07.06.2004 Anfragen: z.b. Welche Transporter befinden sich in der Nähe des HSaF? Wie können räumliche

Mehr

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten

Mehr

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays)

1. Aufgabe (6 Punkte): Java-Programmierung (Arrays) Der folgende Mitschrieb wurde von Prof. Alexa am 16.07.2008 als Probeklausur in der MPGI2 Vorlesung gezeigt und wurde auf http://www.basicinside.de/2008/node/94 veröffentlicht. Die Abschrift ist unter

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Min-Hashing ˆ Gegeben zwei Mengen A und B von Objekten. ˆ Ein oft benutztes

Mehr

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 309 Allgemeines Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 310

Mehr

Freispeicherverwaltung Martin Wahl,

Freispeicherverwaltung Martin Wahl, Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen

Mehr

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

Datenbanksysteme SS 2013

Datenbanksysteme SS 2013 Datenbanksysteme SS 2013 Kapitel 4: Physikalische Datenorganisation Vorlesung vom 16.04.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Speicherhierarchie GB 10 GHertz TB 100 10 ms

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl

Mehr

INDEXDATEIEN ( INDEXED FILES )

INDEXDATEIEN ( INDEXED FILES ) Indexdateien 1 INDEXDATEIEN ( INDEXED FILES ) ISAM (Indexed Sequential Access Method) Sätze werden nach ihren Schlüsselwerten sortiert. Schlüsselwerte sind immer vergleichbar und daher auch sortierbar.

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2018/2019 Vorlesung#15, 18.12.2018

Mehr