Datenbanken 1. Kapitel 4: Interne Datenorganisation 4-1. Datenbanken 1 (Bachelor)

Größe: px
Ab Seite anzeigen:

Download "Datenbanken 1. Kapitel 4: Interne Datenorganisation 4-1. Datenbanken 1 (Bachelor)"

Transkript

1 Datenbanken 1 Kapitel 4: Interne Datenorganisation 4-1

2 Interne Datenorganisation Inhalte des Kapitels Aufbau eines Speichermediums, Pages und Pufferverwaltung Datenorganisation Index und B-Baum Hash-Indexe Lernziele Die mit dem Zugriff auf den Sekundärspeicher verbundenen Performance- Probleme sollen klar sein. Die grundlegende Idee der Pufferverwaltung sollte bekannt sein. Die interne Datenorganisation und unterschiedliche Zugriffsstrukturen sollen in ihrer Implementierung und strategisch verstanden sein. 4-2

3 Datensuche wertebasiert heap-organisiert Wo finde ich die Prüfungsakte des Studenten mit der Matrikelnummer ? Irgendwo hier, in einem dieser Ordner! Suchstrategie? Aufwand? Suchstrategie? Aufwand? C 4-3

4 Datensuche wertebasiert sequenzielle Ablage Klar, in welchem Ordner ich die Prüfungsakte des Studenten mit der Matrikelnummer finde! C 4-4

5 Datensuche wertebasiert mit direkter Referenz Wo finde ich die Prüfungsakte des Studenten mit der Matrikelnummer ? Woher weiß er das so genau??? Suchstrategie? Aufwand? Du findest sie in Ordner Nr. 18, darin die 4. Akte! C 4-5

6 Aufbau eines Speichermediums Pages Magnetplattengerät mehrere Platten (Oberflächenspeicherung, beidseitige Speicherung) Spuren, die konzentrische Kreise um die Drehachse bilden Zylinder (unmittelbar übereinander liegende Spuren) a b Lese- / Schreibkopf Sektoren *) (kleinste Einheiten, die das DBMS adressieren und auf die es zugreifen kann) Pages (Datenseiten, Datenblöcke) nennt man die Zusammenfassung von mehreren benachbarten Sektoren zu einer Verarbeitungseinheit (Größe einer Page: zwischen 512 Bytes und 8k Bytes). In einer Page können ein oder mehrere vollständige Datensätze, Teile von Datensätzen oder Indexeinträge gespeichert werden. *) Sektorenadresse: Angaben zu Zylinder, Plattenoberfläche und Nr. des Sektors auf der Spur 4-6

7 Aufbau eines Speichermediums Pages Zum Lesen der Daten muss das DBMS eine Page komplett in den Hauptspeicher laden. Eine Page ist die kleinste physische Einheit, die vom DBMS in den Hauptspeicher geladen werden kann (und ist deshalb immer der kleinsten physischen Einheit, die das Betriebssystem mit einem Zugriff in den Hauptspeicher laden kann). Pages sind grundlegende Einheiten für das Lesen und Transferieren von Daten. Adressierung von Datenblöcken (Pointer) Die Adressierung einer Page erfolgt über physische Adressen (relevant für das Betriebssystem) und logische Adressen (relevant für das DBMS). Ein Pointer kann sich nicht nur auf eine Page beziehen, sondern auch auf einen bestimmten Datensatz innerhalb einer Page. Man nennt einen solchen Pointer dann auch Record-ID (RID): RID = Adresse der Page + Aufsetzpunkt für den Datensatz innerhalb der Page 4-7

8 Zugriffszeiten Größenordnung Zugriffszeiten Beispiel: 100 Pages lesen Hauptspeicher: 100 x 100 ns = ns = 0,01 ms Plattenspeicher: 100 x 10 ms = ms = 1 s Zugriffslücke: ns Register ns Cache ns Hauptspeicher 10 ms Plattenspeicher sec Archivspeicher Quelle: Kemper:

9 Pufferverwaltung Puffer: ausgezeichneter Bereich des Hauptspeichers. Er ist in Pufferrahmen gegliedert, jeder Pufferrahmen kann eine Page (Seite) der Platte aufnehmen. DB-Buffer B A C D Einlagerung D A B E F Auslagerung G... E F Jede Seite, die von der Platte in den DB-Puffer gelesen wird, wird dort so lange wie möglich vorgehalten, um unnötige I/Os auf die Platte zu vermeiden (vgl. auch Kapitel 7, Transaktionsmanagement). 4-9

10 Interne Datenorganisation Aufbau eines Speichermediums, Pages und Pufferverwaltung Datenorganisation Index und B-Baum Hash-Indexe 4-10

11 Interne Datenorganisation Die interne Datenorganisation sollte so eingerichtet sein, dass die Anzahl der Plattenzugriffe bei der Recherche oder der Manipulation von Daten minimal ist. Hierfür wird die Anordnung der gespeicherten Daten auf der Platte so optimiert, dass der gewünschte Datensatz durch möglichst wenige I/Os gefunden wird. Eine solche Anordnung nennen wir Speicherstruktur. Verschiedene Speicherstrukturen haben verschiedene Performance- Charakteristika, die für jeweils unterschiedliche Applikationen / Datenbankbereiche von Vorteil sein können. Eine optimale Datenorganisation kann nur erzielt werden, wenn die Datenstrukturen, statistische Informationen zum Datenvolumen sowie Ausprägungen innerhalb der Wertebereiche bekannt sind und berücksichtigt werden ( Optimizer, Systemkatalog, Kapitel 5). Es gibt keine Speicherstruktur, die optimal für alle Applikationen ist! 4-11

12 Datenorganisation Beim Zugriff auf die Daten einer Datenbank spielt neben dem Mindest- Füllgrad der Pages auch die Organisationsform der zugrunde liegenden Daten eine Rolle. Unter der Organisationsform von Daten versteht man die Form des Abspeicherns und die Möglichkeiten des Zugriffs. Folgende Organisationsformen werden vorgestellt: - Heap-Organisation mit linearer Suche, - Sequenzielle Organisation mit binärer Suche, - Indexsequentiellen Organisation, bei der eine sequenzielle Datei- Organisationsform durch eine Indexdatei über dem Sortierattribut der sequenziellen Datei ergänzt wird. Im Folgenden wird generell von Dateien gesprochen, im Zusammenhang mit relationalen DBMS kann man sich jeweils Tabellen vorstellen. 4-12

13 Die Heap-Organisation lineare Suche Die Daten der Datei liegen in unsortierter Form vor: Heap-Organisation einer Datei ISBN Titel VerlagID EJahr Preis Record ID 3011 YYY ,90 Record Klm ,95 Record mmm ,80 Record Abc ,80 Record rst ,80 Record 5 Die Daten werden fortlaufend in der Reihenfolge ihrer Eingabe gespeichert. In dieser Reihenfolge werden sie auch wieder gelesen und verarbeitet. Der Aufwand für (Lineare) Suche in einer unsortierten Datei mit n Datensätzen beträgt O(n), d.h. im worst case müssen alle Datensätze durchlaufen werden, bis der gesuchte Satz gefunden ist. 4-13

14 Die Sequenzielle Organisation binäre Suche Verbesserungsansatz gegenüber linearer Suche: Die Datei wird nach einem Schlüssel, z.b. nach dem Primärschlüssel, sortiert abgespeichert, mehrere Records werden in einer Page untergebracht, und die Adresse der Pages in einem Pointer verfügbar gemacht. Primär Schlüssel ISBN Titel VerlagID EJahr Preis Page ID 1011 XXX ,90 Page Abc , Klm , mmm ,80 Page YYY ,90 Page rst ,

15 Die Sequenzielle Organisation binäre Suche Vorteil: Binäre Suche ist möglich, in der jeweiligen Page müssen die Daten jedoch immer noch sequentiell gelesen werden. Der Aufwand für Binäre Suche in einer sortierten Datei mit n Records beträgt O(log 2 (n)) vgl. auch Anhang A. ABER: Das Update in einer Datei, die nach einem Schlüssel sortiert ist, ist mit erheblichen Aufwänden verbunden, insbesondere wenn beim Einfügen oder Löschen von Datensätzen Pagegrenzen überschritten werden! Die Sortierreihenfolge nach einem bestimmten Attribut lässt sich i. d. R. innerhalb einer Datei nicht mit der Sortierreihenfolge nach einem anderen Attribut vereinbaren. 4-15

16 Interne Datenorganisation Aufbau eines Speichermediums, Pages und Pufferverwaltung Datenorganisation Index und B-Baum Hash-Indexe 4-16

17 Die Indexdatei Zu Attributen, die in einer Datei besonders oft als Selektionskriterien verwendet werden, wird eine zweite, sortierte Datei angelegt, die zu jeder Ausprägung des Attributes den Pointer auf die entsprechende Page bzw. den zugehörigen Record enthält. Diese Datei nennt man Index(-datei). Als Plural im Kontext mit Datenbanken spricht man häufig von Indexen. Eine Indexdatei hat im Prinzip eine 2-spaltige Struktur : Wert des indizierten Attributes auf- oder absteigend sortiert physische Adresse PID oder RID 4-17

18 Die Indexdatei Ein Index ist immer sortiert nach dem ihm zugeordneten Attribut und deshalb geeignet, binäre Suche zu unterstützen. Index für die eindeutigen Werte des Attributes ISBN Index für die nicht notwendig eindeutigen Werte des Attributes Erscheinungsjahr EJahr ISBN Page ID EJahr Record ID

19 Die Indexdatei Ein Index erhöht die Geschwindigkeit beim Suchen, aber er reduziert die Geschwindigkeit bei Updates. Bei jedem Hinzufügen eines neuen Records oder beim Ändern der entsprechenden Attribute wird auch unmittelbar der Index modifiziert. Diese Updates erfolgen analog den entsprechenden Vorgängen in sortierten Dateien. Zu einer Datei kann es beliebig viele Indexe geben. Ein Index kann auch aus mehreren Attributen eines Records zusammengesetzt sein. Der Begriff des Index ist nicht spezifisch für relationale DBMS sondern spielt auch in DBMS auf der Grundlage anderer Datenbankmodelle eine wichtige Rolle als Zugriffspfad! 4-19

20 Beispiele von Indexen Index auf dem Attribut VerlagID für die Buch-Datei VerlagID (Index) Buch-Datei (Daten) Dekor (Index) YYY Fisch Klm Fisch XXX Rose Abc Rose mmm Rose 4-20

21 Beispiele von Indexen Index auf dem Attribut VerlagID und auf dem Attribut Erscheinungsjahr (EJahr) für die Buch-Datei VerlagID (Index) Buch-Datei (Daten) EJahr (Index) YYY Klm XXX Abc mmm

22 Beispiele von Indexen Index über die zwei Attribute VerlagID und Erscheinungsjahr (EJahr) für die Buch-Datei VerlagID EJahr (Index) Buch-Datei (Daten) YYY Klm XXX Abc mmm

23 Dünne und dichte Indexe Man unterscheidet grundsätzlich zwei Arten von Indexen: dünner Index: die Schlüsselwerte sind eindeutig, und die zugehörigen Tupel werden sortiert gespeichert. dichter Index: die Schlüsselwerte sind eindeutig, aber die zugehörigen Tupel werden unsortiert gespeichert (Heap-Organisation), oder die Schlüsselwerte können in der Datei mehrmals vorkommen. Welche Schlüsselwerte einer Relation sind immer eindeutig, welche können mehrmals vorkommen? Inwiefern kann man bei eindeutigen Schlüsselwerten und zugehörigen, sortiert gespeicherten Tupeln die Anzahl der Einträge im Index reduzieren? 4-23

24 Dünner Indexe Dünner Index auf dem Primärschlüsselfeld ISBN der Buch-Datei. Der Index enthält jeweils den ersten Schlüssel, der in einer Page vorkommt. ISBN (Index) ISBN PID 1000 PID PID PID PID 4.. Wo findet man den Datensatz mit ISBN 2889? PID XXX 1997, 1012 Abc Klm 2005 PID PID YYY rst

25 Dünner Indexe Dünner Index (non dense index) Die Index-Datei enthält nicht für jeden gespeicherten Record einen Eintrag, sondern nur für jede Page (Datenblock). Die Index-Datei hat weniger Datensätze als die eigentliche Datei, sie ist also dünner! Der Index enthält jeweils den ersten (oder letzten) Schlüssel, der in einer Page vorkommt und dessen Adresse (Pagepointer). Um die RID des gesuchten Record in der Index-Page zu finden, muss diese Page im Hauptspeicher noch sequentiell durchsucht werden. Dünne Indexe werden im allgemeinen für die Primärschlüssel der Records einer Datei erstellt (Primärindex). 4-25

26 Dichter Indexe Dichter Index (dense index) Die Index-Datei enthält für alle Records einen eigenen Index-Eintrag. Die Index-Datei hat genau so viele Datensätze, wie die eigentliche Datei, sie ist also genau so dicht wie die eigentliche Datei! Die Suche im dichten Index erfolgt analog einer Suche in sortierten Dateien. Der Index enthält jeweils den Schlüsselwert und die Adresse des zugehörigen Records (Record-pointer, RID). Dichte Indexe werden im allgemeinen für die Sekundärschlüssel der Records einer Datei erstellt (Sekundärindex). In relationalen Datenbanken ist es i. d. R. sinnvoll, auf einen Fremdschlüssel einen Sekundärindex zu legen (vgl. auch Kapitel 5). 4-26

27 Indexsequenzielle Dateiorganisation Eine sequenzielle Datei-Organisationsform kann durch eine Indexdatei über dem Sortierattribut der sequenziellen Datei ergänzt wird. Man spricht dann von indexsequenzieller Dateiorganiation. Eine indexsequentielle Datei kann man sich als Baum mit mindestens zwei Ebenen vorstellen: Blattebene: Hauptdatei mit den gespeicherten Datensätzen Die Knoten in allen anderen Ebenen des Baumes sind Indexdateien Man spricht von einem n-stufigen Index, wenn es eine Hauptdatei und n Indexdateien gibt Der ISBN-Index auf Folie 4-24 ist ein 1-stufiger Index. Der i+1-te Index zeigt auf den i-ten Index. Wird eine Indexdatei selbst zu groß, so kann diese wieder indexsequenziell verwaltet werden. 4-27

28 Indexiert-nichtsequenzieller Zugriffspfad Ist keine Sortierung in der Hauptdatei gegeben, so kann man dennoch einstufige oder mehrstufige, indexiert-nichtsequenzielle Zugriffspfade aufbauen. Die höheren Indexstufen sind dann wieder indexsequentiell organisiert. Unabhängig von der zugrunde liegenden Dateiorganisation der Hauptdatei gilt: Eine Indizierung von Indexstufen kann beliebig oft weiter geführt werden. Man erhält dann eine Baumstruktur, die in der Praxis i.d.r. als B-Baum (balancierter Baum, Bayer-Baum) realisiert wird, um eine Homogenität der Zugriffspfade zu erreichen. 4-28

29 Indexe und Bäume Ein mehrstufiger Index als Baumstruktur besitzt die folgenden Komponenten: Die unterste Ebene eines mehrstufigen Index (Indexbaum) nennt man Blätter des Baumes (sie entsprechen den Records der Datei). Die Adressverweise auf bestimmte Pages des Speichers nennt man Knoten. Der oberste Knoten in der Hierarchie, der keinen Vorgänger mehr hat, heißt Wurzel. Für einen Knoten x nennen wir einen darunter liegenden Knoten Sohn, einen darüber liegenden Knoten Vater (bzw. child und parent)

30 B-Baum Ein B-Baum (Bayer-Baum (1972), balancierter Baum) ist ein mehrstufiger Index, bei dem alle Pfade von der Wurzel zu den Blättern gleich lang sind, ein B-Baum ist also immer höhenbalanciert. Im Datenbankbereich sind die Knoten der Suchbäume zugeschnitten auf die Seitenstruktur des DBMS. Ein B-Baum der Ordnung m hat die folgenden Eigenschaften: Alle Knoten sind gleich groß (aber sie müssen nicht alle immer gleich viele Einträge haben!). Jeder Knoten enthält höchstens 2m Records. Jeder Knoten - mit Ausnahme der Wurzel - enthält mindestens m Records. Die Wurzel enthält maximal 2m Records und mindestens einen Record. Jeder Record besteht aus einem Schlüssel- und einem nicht-schlüssel-anteil. Ein Knoten - mit Ausnahme von Wurzel und Blättern - hat n+1 Nachfolgeknoten, wenn er n Schlüssel enthält (m n 2m). a b c n=3 a a, b b, c c 4-30

31 Seitenformat des B-Baums Seitenformat: Z 0 S 1 Z 1 D 1 S 2 Z 2 D 2 S 3 S m Z m D m frei Z i = Zeiger auf Seite der nächsten Stufe S i = Schlüssel (Zugriffsattributwert) D i = Daten des Satzes oder Verweis auf den Satz (bzw. die Sätze) d.h. materialisiert oder referenziert Ein B-Baum ist als Primär- und Sekundärindex geeignet. Um in einem B-Baum mit n Knoten der Ordnung m einen Wert zu suchen, muss man höchstens log m (n)-mal auf die Platte bzw. den Index zugreifen. 4-31

32 Variante B + -Baum Der B + -Baum ist die in der Praxis am häufigsten eingesetzte Variante des B-Baumes: Änderungsoperationen sind effizienter, die Baumhöhe ist verringert. Die Daten befinden sich nur auf den Blattseiten. Die inneren Knoten enthalten nur Schlüssel und Zeiger auf die nachfolgende Seite der nächsten Stufe: Seitenformat innere Knoten: Z 0 S 1 Z 1 S 2 Z 2 S 3 S m Z m frei Z i = Zeiger auf Seite der nächsten Stufe S i = Schlüssel Seitenformat Blattknoten: V S 1 D 1 S 2 D 2 S 3 S m D m frei N S i = Schlüssel D i = Daten des Satzes oder Verweis auf den Satz V = Vorgänger-Zeiger N = Nachfolger-Zeiger 4-32

33 B-Baum vs. B + -Baum 13 Schulz 14 Meier keine Daten(-verweise) in den inneren Knoten es passen mehr Einträge auf eine Seite Reduktion der Höhe des Baumes weniger Seitenzugriffe bei lookup, insert, delete aber jetzt immer log m (n) 4-33

34 B- und B + -Bäume B- und B + -Bäume sind geeignet sowohl für Punktanfragen ("Prodnr = ) als auch für Bereichsanfragen ("Preis und Preis "). In einem B- bzw. B + -Baum werden neben dem Suchen (Lookup) alle Arten von Update-Operationen ausgeführt (insert, update, delete). Bei Update- Operationen muss jeweils für die Balanciertheit des Baumes gesorgt werden. vgl. Hörsaalübung Algorithmen zum Suchen, Einfügen und Löschen in B-Bäumen: vgl. Anhang B. 4-34

35 Index inclusion Anmerkung zu Praktikum 2 Warum kommt es im angegebenen Fall zu einer Index inclusion? Wie kann man diese Index inclusion verhindern???? /*=========================================================*/ /* Table: BOOT */ /*=========================================================*/ create table BOOT ( BOOTSTYP VARCHAR2(20) not null, BOOTSNR INTEGER not null, LETZTEWARTUNG DATE, constraint PK_BOOT primary key (BOOTSTYP, BOOTSNR) ); /*=========================================================*/ /* Index: BOOTSTYPZUORDNUNG_FK */ /*=========================================================*/ create index BOOTSTYPZUORDNUNG_FK on BOOT ( BOOTSTYP ASC ); 4-35

36 Interne Datenorganisation Aufbau eines Speichermediums, Pages und Pufferverwaltung Datenorganisation Index und B-Baum Hash-Indexe 4-36

37 Hash-Indexe Nachteil der Datenverwaltung über B-Bäume: In der Regel sind beim Durchlaufen der Pfade mehrere I/Os auf externen Speicher notwendig. Eine alternative Methode zur Datenverwaltung mit Hilfe von Indexen sind die Hash-Indexe: Die Record-Adressen werden über einen geeigneten Algorithmus, der Hash-Funktion, aufgrund des Schlüsselwertes unmittelbar berechnet. Eine Hash-Funktion sollte einfach zu berechnen sein, und die Menge der Schlüsselwerte möglichst gleichmäßig und zufällig auf die Menge der verfügbaren Adressen abbilden. Schlüsselmenge (Keys k) {1011, 1012, 1013, , 1022, 1023, , 3012,...} Hash-Funktion h(k) Menge der Speicherplätze (Adressen) logisch physisch 4-37

38 Hash-Indexe Voraussetzung : Datenbestände, die relativ statisch sind, und bei denen möglichst selten Löschoperationen auftreten. Hash-Indexe eignen sich also nicht für sehr dynamische Datenbestände. Die bekannteste Hash-Funktion ist die Modulo-Funktion (Divisions- Rest-Verfahren): h(k) = k mod p k=schlüsselwert, p=anzahl der vorhandenen Adressen Die Modulo-Funktion lässt sich nur auf ganzzahlige numerische Schlüssel anwenden. Alphanumerische oder dezimale Schlüssel müssen so umgewandelt werden, dass sie ebenfalls in ganzzahliger, numerischer Form vorliegen. Beispiel: p=1000, k={27, 489, 1.020, 2.027,...} h(27) = 27 h(489) = 489 h(1.020) = 20 h(3027) =

39 Hash-Indexe Kollisionsbehandlung (1) Für jede Adresse wird ein Überlaufbereich vorgesehen, und gleiche Hash- Funktionswerte werden durch Pointer linear verkettet. Suche nach einem Record entspricht der Berechnung des Hash- Funktionswertes und anschließender sequentieller Suche nach dem Schlüssel. Nachteil: Dieses Verfahren benötigt u. U. viel Speicherplatz und ist häufig ineffizient in der Suche. 4-39

40 Hash-Indexe Kollisionsbehandlung (2) Offene Hash-Verfahren Im Fall einer Kollision wird für den betroffenen Record durch Anwenden einer zweiten Hash-Funktion eine Ersatzadresse ermittelt. Dieses Verfahren kann falls nötig beliebig oft fortgeführt werden, und Adressen aus kollidierenden Bereichen können durch lineare Listen verkettet werden (Kollisionsketten). Die Berechnung des ersten Hash-Funktionswertes bezeichnet man als Streuen, die Berechnung der Ersatzwerte als Sondieren. Beispiel: h i (k)=(h(k)+c i) mod m, c=const., lineares Sondieren h i (k)=(h(k)+i 2 ) mod m, quadratisches Sondieren Sind Hash-Indexe für Punkt- und Bereichsabfragen gleichermaßen geeignet? 4-40

41 Zusammenfassung Persistente Daten werden auf dem Plattenspeicher in Form von Pages verwaltet. Der DB-Puffer ist geeignet, einmal geladene Pages im Hauptspeicher vorzuhalten, um den Zugriff auf die Daten zu beschleunigen. Indexe (B-Bäume und Hash-Indexe) sind Zugriffsstrukturen, die dazu geeignet sind, wertebasierte Suche performant zu unterstützen. Primärindexe sind geeignet für Primärschlüsselspalten, Sekundärindexe für Fremdschlüsselspalten. Ein strategisches Unterscheidungsmerkmal für unterschiedliche Zugriffsstrukturen ist ihre Eignung für Punkt- und / oder Bereichsabfragen. 4-41

42 Datenbanken Einführung Semantische Datenmodellierung Relationenmodell Interne Datenorganisation 5. SQL - Structured Query Language 6. Prozedurale Spracherweiterungen von SQL, Stored Procedure und Trigger, JDBC 7. Transaktionsmanagement 4-42

43 Anhang A: Binäre Suche in Arrays Der Algorithmus a[n] sei ein geordnetes Array mit n Elementen, d.h. anfangs 0 = min (Index-Minimum), n-1 = max (Index-Maximum). x sei der gesuchte Wert. x wird gesucht im Bereich a[min]... a[max]. Wähle einen Index pos zwischen min und max, idealerweise [(min+max)/2], wobei [ ] die Gauss-Klammer darstellt. Folgende Schritte werden wiederholt durchgeführt: a[pos] > x suche weiter im Bereich a[min]... a[pos-1] a[pos] < x suche weiter im Bereich a[pos+1]... a[max] a[pos] = x Der Wert x befindet sich im Array bei Index pos. Der Wert x ist nicht im Array enthalten, wenn min > max erreicht wird. 4-43

44 Anhang A: Binäre Suche in Arrays Wählt man für den Start-Index pos zwischen min und max den Wert in der Mitte, so halbiert sich der Aufwand für die Lösung des Problems bei jedem Schritt. eine Verdoppelung der Arraygröße bewirkt beim linearen Suchen eine Verdoppelung des Aufwandes, beim binären Suchen eine Erhöhung des Aufwandes um einen Schritt! Einen Bereich von n Elementen kann man höchstens log 2 (n) mal halbieren.*) Zu jeder natürlichen Zahl n gibt es eine natürliche Zahl m, sodass n zwischen den Zahlen 2m und 2m+1 liegt, d.h. 2m n 2m+1. *) Zur Erinnerung: log 2 (n) = y : n = 2 y, z.b. log 2 (32) = 5, denn 2 5 =

45 Anhang A: Binäre Suche in Arrays Beispiel Es sei n=19 m =4, denn 24 = 16 < 19 < 32 = 24+1 = 25. Um in einem Array mit 19 Elementen einen vorgegebenen Wert zu finden, benötigen wir maximal 4 Schritte: n=19 n=9 n=4 n=2 n=1 4-45

46 Anhang A: Binäre Suche in Arrays Die Komplexität f(n) eines Algorithmus ist i.d.r. funktional abhängig von einer Leitgröße n. Beim linearen Suchen können wir lineare Abhängigkeit beobachten, beim binären Suchen dagegen logarithmische Abhängigkeit: best case average case worst case lineare Suche 1 n/2 n binäre Suche 1 log 2 (n)-1 log 2 (n) Es ist schwierig, den genauen Aufwand zu bestimmen. Man schätzt deshalb für große n den Aufwand durch eine Funktion g(n) ab, sodass gilt: f(n) c g(n), mit einer Konstanten c. Man sagt, f(n) ist höchstens von der Ordnung g(n) und schreibt f(n) = O(g(n)) ( O-Notation ). Es gilt also: n/2 entspricht O(n), n entspricht O(n), log 2 (n)-1 entspricht O(log(n)) und log 2 (n) entspricht O(log(n)). Häufige Komplexitäten von Algorithmen sind: konstant, linear, polynomial (alle Komplexitäten der Form n 2 -quadratisch, n 3 -kubisch, n 4,...), logarithmisch, log-linear und exponentiell. 4-46

47 Anhang B: Suche in B-Bäumen Suchen eines Schlüssels s im B-Baum 1. Prüfe, beginnend bei der Wurzel, ob s im gerade betrachteten Knoten x enthalten ist. Falls ja fertig. Falls nein Prüfe, ob x ein Blatt (= Knoten ohne Söhne ) ist. Falls ja erfolgloses Ende der Suche. Falls nein Stelle fest, zwischen welchen Schlüsseln s i-1 und s i des Knotens x der Schlüssel s liegt (bzw. ob s < s 1 oder s > s k ist) und setze die Suche danach mit 1. beim Knoten x.sohn[i] fort. 4-47

48 Anhang B: Einfügen in B-Bäume Das Einfügen eines Schlüssels s geschieht grundsätzlich in den Blättern. 1. Durchlaufe den B-Baum mit dem neu einzutragenden Schlüssel wie beim Suchen, bis das Blatt gefunden wird, wo der Schlüssel einzutragen ist. Die Zahl der Schlüssel je Knoten (mit Ausnahme der Wurzel) muss zwischen m und 2m liegen. 2.a Anzahl der Schlüssel im Knoten < 2m Einfügen erfolgreich beendet. 2.b Anzahl der Schlüssel im Knoten = 2m es entsteht ein Überlauf, da das Blatt nach Einfügen 2m + 1 Schlüssel enthalten würde. Teile den Knoten in zwei Knoten zu je m Schlüsseln. Der mittlere Schlüssel des Knoten wird vom Vater aufgenommen; die beiden Zeiger rechts und links dieses Schlüssels im Vater zeigen dann auf das alte und das neue darunterliegende Blatt. Läuft auch der Vaterknoten über, so muss dieser ebenfalls in zwei Knoten aufgeteilt werden etc. 3. Läuft die Wurzel über, dann wird sie aufgespalten und eine neue Wurzel angelegt. Der B-Baum ist dann um eine Stufe gewachsen. B-Bäume wachsen von den Blättern zur Wurzel hin! 4-48

49 Anhang B: Löschen in B-Bäumen 1. Suche den Knoten x, in dem der Schlüssel s enthalten ist. 2. x ist ein Blatt lösche s (ggf. muß ein Unterlauf bereinigt werden, s.u.), andernfalls Ermittle den nächstgrößeren Schlüssel s zu s in einem Blatt des Baumes. 4. Ersetze s durch s und lösche s im Blatt x. Enthält das Blatt x weiterhin m Schlüssel, so ist das Löschen beendet; andernfalls In x stehen nur noch (m-1) Schlüssel, man spricht von einem Unterlauf. Fasse x und einen benachbarten Knoten x, der den selben Vater wie x hat, zu einem neuen Knoten zusammen und übernehme dabei denjenigen Schlüssel aus dem Vaterknoten, dessen beide Zeiger auf die benachbarten Knoten gezeigt haben. 6.a Ist der neue Knoten zu groß, muß er entsprechend dem Überlaufverfahren (s. Einfügen) wieder in zwei gleichgroße Knoten aufgeteilt werden, wobei der mittlere Schlüssel vom Vater aufgenommen wird. 6.b Ist der Vater beim Zusammenfassen von x und x zu klein geworden, so muß auch er mit einem benachbarten Knoten zusammengefaßt werden etc. Dieser Prozeß kann sich bis zur Wurzel fortsetzen. Enthält die Wurzel vor dem Zusammenfassen nur einen Schlüssel, so verringert sich die Höhe des Baumes um 1. Die Höhe eines B-Baumes kann sich beim Löschen verringern! 4-49

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

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

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

Datenstrukturen. Dortmund, Oktober 1998

Datenstrukturen. Dortmund, Oktober 1998 Datenstrukturen Dortmund, Oktober 1998 Prof. Dr. Heinz-Michael Winkels, Fachbereich Wirtschaft FH Dortmund Emil-Figge-Str. 44, D44227-Dortmund, TEL.: (0231)755-4966, FAX: (0231)755-4902 1 Inhalt Seite

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

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

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

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

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

Physische Datenorganisation

Physische Datenorganisation Physische Datenorganisation Physische Datenorganisation 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 Übersicht Datenbanken, Relationen und Tupel werden auf der untersten Ebene der bereits vorgestellten

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

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

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

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

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

Baum-Indexverfahren. Einführung

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

Mehr

Baum-Indexverfahren. Prof. Dr. T. Kudraß 1

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

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

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

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

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

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

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

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

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

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Aufbau Datenbanksysteme

Aufbau Datenbanksysteme Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem c Ingo Claßen, Martin Kempa Softwarearchitektur

Mehr

Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei

Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei 3.1. Flache Indexe Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei Mittel: Definition eines Index über ein (Zugriffs-) Attribut (Schlüssel

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Gleichheitsanfrage vs. Bereichsanfrage

Gleichheitsanfrage vs. Bereichsanfrage Datenbank Indexe Gleichheitsanfrage vs. Bereichsanfrage Gleichheitsanfrage (single key-value) : Abfragen, die eine Bedingung mit = haben Finde den Namen des Studenten mit Alter = 20 Bereichsanfrage (range

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:

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

Programmiertechnik II

Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision: Paar von Schlüsseln mit

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 Binärer Suchbaum Außerdem wichtig: Struktur der Schlüsselwerte! 2 Ordnungsstruktur Linker

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume robert.legenstein@igi.tugraz.at 1 7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen

Mehr

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

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

2000, 2001 Institut für Informatik III, Universität Bonn Grundlagen von Informationssystemen, Seite 1-1

2000, 2001 Institut für Informatik III, Universität Bonn Grundlagen von Informationssystemen, Seite 1-1 Wintersemester 2000/2001 Proseminar: Grundlagen von Informationssystemen - Indexstrukturen I : B-Bäume und ihre Varianten - --- Christoph Tornau --- --- ctornau@yahoo.de ---- 2000, 2001 Institut für Informatik

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

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016

Mehr

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam

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

Praktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07

Praktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07 6 Hashverfahren zum Namen Hash : engl für zerhacken gestreute Speicherung 61 Grundbegriffe Wir unterstellen ein direkt adressierbares Speichermedium mit einer Menge von Adressen, dem Adressraum Die Datensätze

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 6 Suchbäume Version vom 25. November 2016 1 / 75 Vorlesung 10 22. November 2016 2

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

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

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

Datenbanksysteme Kapitel 3: Datenorganisation

Datenbanksysteme Kapitel 3: Datenorganisation Datenbanksysteme Kapitel 3: Datenorganisation Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Peter Chamoni Prof. Dr. Peter

Mehr

Hashing. Überblick Aufgabe Realisierung

Hashing. Überblick Aufgabe Realisierung Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion mit Verkettung der Überläufer Offene Universelles 2/33 Überblick Aufgabe Realisierung Aufgabe Dynamische Verwaltung

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

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 15. Jan Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 15. Jan Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10 Universität Augsburg, Institut für Informatik WS 009/010 Prof. Dr. W. Kießling 15. Jan. 010 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10 Aufgabe 1: B-Bäume Datenbanksysteme I a) Abschätzen der Höhe

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

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

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen Universelles Hashing Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen wir können nicht annehmen, daß die Keys gleichverteilt im Universum liegen (z.b. Identifier im Programm) könnte also

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

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

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:

Mehr

Algorithmen & Datenstrukturen. 3. Suchen

Algorithmen & Datenstrukturen. 3. Suchen Algorithmen & Datenstrukturen 3. Suchen 1 Exponentielle Suche Gesucht wird ein Element mit Schlüssel k. Die exponentielle Suche eignet sich zum Suchen in nach den Schlüsselwerten sortierten Feldern, deren

Mehr

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Oracle Database 12c Was Sie immer schon über Indexe wissen wollten Marco Mischke, 08.09.2015 DOAG Regionaltreffen B* Indexe - Aufbau 0-Level Index A-F G-Z 1-Level Index A-F G-Z 2-Level Index A-F G-M N-Z

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

Mehr

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren

Einführung in die Informatik Algorithmen und Datenstrukturen. Thema 17 Sortieren Einführung in die Informatik Algorithmen und Datenstrukturen Thema 17 Sortieren Sortierproblem Es gibt eine Menge von Datensätzen, und jeder dieser Sätze besitzt einen (möglichst eindeutigen) Schlüssel.

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

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

Ü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

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13 Gliederung 1. Hashtabelle 3 2.B-Baum 3 2.1 Begriffserklärung 3 2.2

Mehr

Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren

Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren Themen Hashverfahren Einleitung Bisher: Suchen in logarithmischer Zeit --> Binärsuche Frage: Geht es eventuell noch schneller/effektiver? Finden von Schlüsseln in weniger als logarithmischer Zeit Wichtig

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 4.1 Grundoperationen Aufgabenstellung: 3 4.1 Grundoperationen Aufgabenstellung: Verwalten

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten Seminararbeit vorgelegt von: Gutachter: Studienbereich: Christian Lechner Dr. Georg Moser Informatik Datum: 6. Juni 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Datenbanken 1 1.1 Motivation....................................

Mehr

Algorithmen und Datenstrukturen I AVL-Bäume

Algorithmen und Datenstrukturen I AVL-Bäume Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum

Mehr

6. Sich selbst organisierende Datenstrukturen

6. Sich selbst organisierende Datenstrukturen 6. Sich selbst organisierende Datenstrukturen 6.1 Motivation einfach, wenig Verwaltungsoverhead effizient im amortisierten Sinn EADS 6.1 Motivation 201/598 6.2 Sich selbst organisierende lineare Listen

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. 07 Übung zur Vorlesung Grundlagen: Datenbanken im WS15/16 Harald Lang, Linnea Passing (gdb@in.tum.de)

Mehr

Physische Datenorganisation

Physische Datenorganisation Vorlesung Datenbanksysteme vom 17.10.2016 Physische Datenorganisation Architektur eines DBMS Speicherhierarchie Index-Verfahren Ballung (Clustering) beste Zugriffsmethode Architektur eines DBMS Wichtigste

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als Kapitel 4 Bäume 4.1 Bäume, Datenstrukturen und Algorithmen Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als eine Menge von Knoten und eine Menge von zugehörigen

Mehr

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11 Hashverfahren: Allgemeiner Rahmen) Prof. Dr. Susanne Albers Das Wörterbuch-Problem (1) Das Wörterbuch-Problem (WBP) kann wie folgt beschrieben

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen 5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume

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

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

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

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen 186.114 Algorithmen und Datenstrukturen 1 UE 2.0 186.099 Programmiertechnik und theoretische

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung

Mehr

2. Hausübung Algorithmen und Datenstrukturen

2. Hausübung Algorithmen und Datenstrukturen Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1

Mehr