Physische Datenorganisation. Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht

Größe: px
Ab Seite anzeigen:

Download "Physische Datenorganisation. Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht"

Transkript

1 Physische Datenorganisation Kapitel IX Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS) Vorlesungsinhalt 9. Physische Datenorganisation Hardwarenahe Aspekte Assoziativer Datenzugriff Realisierungsformen für assoziativen Zugriff auf einzelne Datensätze Problem der Datenabhängigkeit von Anwendungsprogrammen 2 G. Specht: Datenbanksysteme 9-1

2 Hardwarenahe Aspekte 3 Hardwarenahe Aspekte Festplattenlaufwerke, häufig auch: Disk-Arrays viele, kleinere Platten anstelle von wenigen großen Parallelisierung des Zugriffs Erhöhung der Fehlertoleranz Verschiedene Speichertechniken, RAID-Level [1] Auf physischer Ebene blockorientierte (seitenorientierte) Aufzeichnung und Zugriff Typische Blockgrößen (page size, block size): 512 Byte, 1k, 2k, 4k,... Datenorganisation (Hierarchie): Block Spur Zylinder Direkter Zugriff über Seitennummer Umrechnung von Seitennummer auf physische Adresse (Zylinder, Spur, Spur-Offset) durch Betriebssystem oder Platten-Controller/Micro-Code. [1] RAID = Random Array of Inexpensive Disks; 4 G. Specht: Datenbanksysteme 9-2

3 Basismethoden für Plattenzugriff Sequentiell Schneller sequentieller Zugriff in aufsteigender Sortierfolge Datensätze fester und variabler Länge möglich Schnell, aber schlechte Performance falls Anwendung wahlfreien Zugriff benötigt Änderungen (updates) i.d.r. sehr aufwendig Anwendungen: sequential read, log-files, batch processing, Data Warehouse: Reporterstellung) Wahlfrei (random) Zugriffszeit von Position des Schreib-/Lesekopfes abhängig Schneller Zugriff, wenn alle Daten im selben Zylinder (daher erstrebenswert: physisch nahe Speicherung oft gemeinsam benötigter Daten (physical clustering)) Datensätze fester Länge von Vorteil (für variable Satzlänge spezielle Implementierung erforderlich) 5 Performance- und Datensicherheitsaspekte Anzahl der Hintergrundspeicher-Zugriffe (i.d.r. Magnetplatten) i.a. dominierender Performance-Faktor für DBMSe: Abschätzung bzw. Abschätzbarkeit (best case, average case, worst case) der Anzahl der Plattenzugriffe deshalb wichtiges Auswahlkriterium bei Bewertung von Verfahren Zuverlässigkeit des Dateisystems bzw. der physischen Speicherung ausschlaggebend für Brauchbarkeit des DBS Standard-Dateisysteme oft nicht sicher genug (aus DBS-Sicht): Direktes physisches Durchschreiben geänderter Datensätze (tuple) nicht immer gewährleistet (file cache!) Aktualisierung der Dateizuordnungstabelle [1] erst beim Schließen der Datei (CLOSE), dadurch Gefahr von Datenverlusten bei Systemabstürzen Selbst CLOSE bewirkt nicht in allen Fällen ein physisches Zurückschreiben der Dateizuordnungstabelle (Beispiel: IBM VM/CMS: Mini-Disk-Konzept) Standard-Dateisysteme oft zu ineffizient (zuviel Overhead) Funktionalität des Dateisystems deckt DBS-Bedürfnisse nur teilweise ab oft zu wenig Kontrolle über die konkrete physische Speicherung [1] File allocation table (FAT), file directory 6 G. Specht: Datenbanksysteme 9-3

4 Daten- und Dateiorganisation auf Magnetplatten (Bsp. MS-DOS) 7 Daten- und Dateiorganisation auf Magnetplatten cont. Folge Viele kommerzielle DBS-Hersteller implementieren eigene Extern-Speicherverwaltung für ihr DBS auf der (mehr oder weniger) nackten Hardware (z.b. UNIX: raw devices ) Probleme DBS-Code muss bei neuer Platten-Hardware u.u. angepasst werden Standard-Datensicherung des Betriebssystems oft nicht mehr anwendbar Längerfristiger Trend Verlagerung von Datenbank-Funktionalität ins Betriebssystem/Dateisystem führt für DBMS z.t. aber auch zu Problemen Gefahr des Double-Pagings (OS- und DB-Optimierungen spießen sich) Double-Logging Deferred Write... 8 G. Specht: Datenbanksysteme 9-4

5 Assoziativer Datenzugriff 9 Assoziativer Datenzugriff Problemstellung Datensätze werden intern über einen Record-Identifier (Record-ID) adressiert, das kann sein Relative Satznummer Tupel-ID Database Key (Surrogat, Object-ID) Benutzer sprechen Datensätze aber in der Regel über Inhalte an Beispiele Datensatz mit PersNr = 4711 Datensatz mit Name = 'Dadam' und Vorname = 'Peter' Alle Datensatz mit Gehalt > Erforderlich: Abbildung von Feldwert(en) auf Record-IDs Assoziation eines Wertes mit entsprechenden Treffer-Record(s) Realisierungsformen Keine Unterstützung sequentielle Suche + Vergleich Zugriff über relative Satznummer Hash-Zugriff Indexe G. Specht: Datenbanksysteme 9-5

6 Realisierungsformen für assoziativen Zugriff auf einzelne Datensätze Relative Satznummer Zugriff auf Datensätze fester Länge innerhalb einer Datei Blocken/Entblocken der Datensätze durch Betriebssystem Direkter Zugriff auf einen Datensatz mittels dessen relativer Satznummer: 0, 1, 2,... Pascal: seek(filename, recno) read(filename, recordvariable) Wird vor allem als internes Zugriffsverfahren eingesetzt (siehe aber auch TID-/DB-Key-Konzept!) Nur für sehr einfachen assoziativen Zugriff geeignet Beispiele: PersNr rel. SatzNr oder ArtNr rel. SatzNr Potentielles Problem für assoziativen Zugriff: Harte Verdrahtung von physischer und logischer Sicht ( Reorganisationsbedarf) Für komplizierte Abbildungen Hash-Verfahren besser geeignet 11 Hash-Verfahren (gestreute Speicherung) Idee: Ableitung der Satznummer aus dem Primärschlüssel Trivialfall TeileNr = 1 Satznummer = 1 TeileNr = 2 Satznummer = 2 TeileNr = 3 Satznummer = 3... Im Allgemeinen nicht realisierbar, da Wertebereich des Primärschlüssels zu groß (jede mögliche Teilenummer belegt einen Speicherplatz!) Hash-Verfahren gegeben Wertebereich des Primärschlüssel (attributs): dom(pk) Menge der bereitgestellten Satzadressen {0,1,2,...,n}: S Kardinalität der Primärschlüsselwerte card(pk) (wieviele Werte wirklich auftreten, in der Regel geschätzt) 12 G. Specht: Datenbanksysteme 9-6

7 Hash-Verfahren cont. Zu beachten card(dom(pk)) >> card(s) ist erlaubt card(pk) > card(s) macht keinen Sinn Meist wird card(s) so gewählt, dass Belegungsfaktor α < 0.8. α := card(pk) / card(s). Zwei Teilprobleme Was ist eine gute Hashfunktion ( wenig Kollisionen) Effiziente (Sonder-) Behandlung von Kollisionen zusätzlich: was tun wenn Hashbereich voll?? vergrößern oder dynamische Hashverfahren Allgemein zum Verhalten von Hashverfahren Im schlechtesten Fall sehr ineffizient (degeneriert zu linearer Liste) Im Mittel (unter vernünftigen Annahmen) jedoch sehr effizient, besser als baumorientierte Verfahren: oftmals realistisch ~ 1, 2 Zugriffe 13 Hash-Verfahren cont. Bekanntester Ansatz zur Wahl der Hashfunktion Divisionsrest-Verfahren h(pk) := pk mod n n = card(s) Beispiel S := {0,1,..., 996} (für card(s) wird i.a. eine Primzahl gewählt) pk 1 = s1 = mod 997 s1 = 916 pk 2 = s2 = mod 997 s2 = 725 Kollisionsbehandlung verschiedene Alternativen, u.a.: Verkettung der Überläufer... in einem separaten Bereich außerhalb der Hashtabelle Überläufer auch (an anderer Stelle) in der Hashtabelle; Bestimmung dieser anderen Stelle: in der Nachbarschaft ( h(pk) ±1, ± 2, ± 3,...: lineares Sondieren in quadratisch wachsendem Abstand: quadratisches Sondieren zufälliges Sondieren über zusätzliche Hashfunktion: re-hashing G. Specht: Datenbanksysteme 9-7

8 Beispiel Die Hashfunktion sei h = s mod 100 Zu speichern seien die Datensätze mit pk = 3117, 4517, 2917 Fazit: alle werden auf Satznummer 17 abgebildet Anker für Lösung mit Überlaufbereichen Überlaufkette von h 0(s) = 17 h (3117) 0 h 0(1022) h 2 (4517) h (2917) Würdigung Hash-Verfahren Schnellstes Verfahren, wenn Hashfunktion gut gewählt und wenn Speicherplatz nicht zu knapp kalkuliert Verkettung aller Überlaufsätze untereinander mit h 0(s) = 17 Zugriff in Sortierreihenfolge nicht möglich Nur für Primärschlüsselzugriff und damit Punktanfragen geeignet Gängige Variante: Einträge in Hashtabelle ( Buckets ), nehmen mehrere Datensätze auf 15 Index-sequentielle Datenorganisation Merkmale Primärdatei nach Schlüsselattribut sortiert gespeichert Dadurch Lesen der Datensätze in Sortierfolge möglich Ein- oder mehrstufiger Index zum schnelleren Auffinden des richtigen Datenblocks Beim Erstanlegen i.d.r. Freihalten einer Platzreserve in den Datenblöcken für spätere Einfügungen Beim Überlauf (overflow) von Datenblöcken Anlegen von Überlauf-Bereichen (overflow areas) pro Spur pro Gruppe von Spuren pro Zylinder... ISAM (Index Sequential Access Method) Nicht reorganisationsfrei! 16 G. Specht: Datenbanksysteme 9-8

9 B-Bäume Vorüberlegungen Indexbäume Naheliegende Vermutung Guter, ausgeglichener Baum für Internspeicher ergibt auch guten Baum für Externspeicher Zu lösendes Problem: Wie Knoten auf Seiten abbilden, so dass die Anzahl der Seitenzugriffe minimiert wird? 17 Clusterung von Baumknoten auf Seiten Problem Optimale Zusammenfassung (Clusterung) der Knoten schwer bestimmbar (bei dynamischen Strukturen) Lösungsansatz Seitenorientierte Baumverfahren B-Baum (Bayer/McCreight, 1972) 18 G. Specht: Datenbanksysteme 9-9

10 B-Baum Eigenschaften und Merkmale Knoten = Speicherblöcke (Seiten) fester Länge jede Seite kann bis zu 2*n Datensätze (Einträge) aufnehmen n heißt Ordnung des B-Baumes Jede Seite (außer der Wurzel) enthält stets m Datensätze fester Länge, wobei gilt: n m 2*n Jeder Eintrag hat einen Schlüsselteil und einen Datenteil (Datenteil enthält oft nur Zeiger auf den echten Datensatz) Die Datensätze innerhalb einer Seite sind aufsteigend nach Primärschlüssel geordnet Eine Seite ist entweder Blattseite oder sie hat m+1 Nachfolger Alle Blattseiten befinden sich auf derselben Höhe Struktur eines B-Baumes 19 B-Baum (im Bsp: 2. Ordnung (n=2)) Suchen nach Schlüssel S 1. Lese Wurzelseite 2. Suche S in Seite gefunden { gib Datensatz aus; fertig!} nicht gefunden Seite ist Blatt { Schlüssel nicht in Baum; fertig!} Seite ist kein Blatt bestimme kleinstes K i mit S < K i : { setze Suche in Block p i fort} solches K i nicht vorhanden: { setze Suche in Block p m+1 fort} 20 G. Specht: Datenbanksysteme 9-10

11 B-Baum (im Bsp: 2. Ordnung (n=2)) Einfügen von Schlüssel S 1. Suche S in Baum gefunden { Fehlermeldung; fertig!} nicht gefunden { b = Block (Blattseite), in der die Suche nach S abgebrochen wurde} 2. Füge S in b ein b hat noch Platz { Einfügen; fertig!} b läuft über: (*) 1. Füge S temporär in b ein. 2. Mittlerer Schlüssel in b ist nun K n Splitte b in b links (K 1... K n ) und b rechts (K n+2... K 2*n ). 4. Setze S zu K n Füge S in Vater von b ein; setze Pointer in Vater von b auf b links und b rechts. Falls Vaterknoten überläuft, setze b := Vaterknoten, dann weiter bei (*). Ggf. wird hierbei ein neuer Wurzelknoten erzeugt (d.h. der B-Baum wächst um eine Stufe). 21 Einfügen mit Überlauf und Knotensplitt Ausgangssituation Einfügen von "9": mittleres Element Überlauf! Baum nach Einfügen und Knoten-Splitt: G. Specht: Datenbanksysteme 9-11

12 B-Baum 2. Ordnung (n=2) cont. Löschen von Schlüssel S 1. Suche S in Baum nicht gefunden { Fehlermeldung; fertig!} gefunden { ist der Block, in dem S gefunden wurde} 2. Lösche S in b b ist Blatt b hat nach Löschung noch mind. n Einträge: {fertig!} b hat weniger als n Einträge { Unterlaufbehandlung; fertig!} b ist kein Blatt 1. Ersetze S in b durch größtes (kleinstes) Blattelement ( Blatt b') im linken (rechten) Teilbaum von S; 2. Führe ggf. Unterlaufbehandlung für b' durch; fertig!} wichtige Unterscheidung! Unterlaufbehandlung: {b ist der Unterlauf-Knoten} b hat einen linken (rechten) Bruder mit genau n Einträgen { Zusammenfassen; ggf. Unterlaufbehandlung für Vaterknoten; fertig!} [Anmerkung: Gilt sowohl für Blatt als auch Nicht-Blatt] sonst: b ist Blatt {führe kleine Rotation über Vaterknoten nach rechts (links) aus; fertig!} b ist kein Blatt {führe große Rotation über Vaterknoten mit linkem (rechtem) Bruder-Teilbaum von b aus; fertig!} [Anmerkung: Ausgleich durch Umhängen eines ganzen Teilbaumes] 23 Löschen im Blattknoten mit Zusammenfassen auf Blattenebene Löschen von "9": unmittelbar nach Löschen von "9": Baum nach Zusammenfassen der Knoten: Zusammenfassen Unterlauf (under flow) G. Specht: Datenbanksysteme 9-12

13 Löschen im Blattknoten mit Zusammenfassen auf Nicht- Blattebene und Höhenschrumpfung Löschen von "19": Zusammenfassen Unterlauf! unmittelbar nach Löschen von "19" und anschließendem Zusammenfassen: Unterlauf! 30 Zusammenfassen Baum nach Zusammenfassen: Löschen auf Blattebene mit kleiner Rotation Ausgangssituation Löschen von "13": unmittelbar nach Löschung ("kleine") Rotation nach rechts Baum nach durchgeführter Rotation Unterlauf! G. Specht: Datenbanksysteme 9-13

14 Löschen auf Blattebene mit großer Rotation Ausgangssituation 32 Löschen von "38" Ausgleich durch Rotation Unterlauf! große Rotation 49 nach Zusammenfassen von Blatt mit rechtem Bruder Unterlauf! Baum nach Rotation Löschen in Nicht-Blattknoten Ausgangssituation Löschen von "11" Ersetzen des Eintrags durch nächst-kleineren Eintrag Baum nach Löschung 32 Kein Unterlauf im Blattknoten, fertig! Siehe Regel 1. Ersetze S in b durch größtes (kleinstes) Blattelement ( Blatt b') im linken (rechten) Teilbaum von S 2. Führe ggf. Unterlaufbehandlung für b' durch; fertig! 28 G. Specht: Datenbanksysteme 9-14

15 Abschätzung Laufzeitverhalten für lesenden Zugriff N = # Schlüsseleinträge, n = min. Anzahl Schlüssel je Seite Stufe Anzahl Seiten auf Stufe Anzahl Schlüssel auf Stufe (min.): n 2 2 (n+1) 2 (n+1) n 3 2 (n+1)*(n+1) = 2*(n+1)2 2 (n+1)2 n 4 2 (n+1)3 2 (n+1)3 n k 2 (n+1)k-1 2 (n+1)k-1 n Es muss gelten: d.h. ein B-Baum der Ordnung n und der Höhe k enthält mind. 2(n+1)k - 1 Datensätze 29 Abschätzung Laufzeitverhalten für lesenden Zugriff cont. gesucht: Beispiel: 90 Mio Datensätze zu verwalten, B-Baum-Seitengröße = Byte Größe eines Indexeintrages 20 Byte (incl. linkem Teilbaumpointer) pro Seite max. 204 Einträge möglich n = 102 Max. Anzahl von Seitenzugriffen für das Auffinden eines Schlüssels: Insgesamt: 4 Seitenzugriffe für Index + 1 Seitenzugriff für Datensatz = 5 Seitenzugriffe. 30 G. Specht: Datenbanksysteme 9-15

16 Verwendung von B-Bäumen zur Zugriffsunterstützung für Sekundärschlüssel 31 B*-Bäume B-Baum gut für gezieltes Aufsuchen von Schlüsseln bzw. Datensätzen Traversierung in Schlüsselreihenfolge (=Sortierfolge) zwar möglich, aber etwas umständlich Gezielter Einstieg und Weiterverarbeitung in Sortierfolge in praktischen Anwendungen jedoch relativ häufig Ansatz B*-Baum Die Datenseiten befinden sich ausschließlich in den Blättern (und sind untereinander verkettet) Die oberen Baumknoten sind reine Indexknoten und dienen nur der Suchraum-Partitionierung 32 G. Specht: Datenbanksysteme 9-16

17 Beispiel für B*-Baum Bestimmung der Separatoren Für den Separator S xy zweier benachbarter Datenseiten x und y (x links von y) muss gelten: MaxKey(x) < S xy MinKey(y) bezogen auf obige Abbildung muss also gelten, falls Schlüssel ganzzahlig: 10 < S ab 11 : Hier bleibt nur die Wahl für < S bc 17 : Hier wäre 16 oder 17 möglich 40 < S de 44 : Hier wäre möglich usw. (und gilt natürlich auch für die Separatoren der Indexseiten) 33 Beispiel für B*-Baum cont. Anzahl von Seitenzugriffen zum Auffinden eines Datensatzes Seien pl die Länge einer Datenseite und dl die Länge eines Datensatzes, und f (0 < f 1) der durchschnittliche Belegungsfaktor einer Datenseite, dann werden zur Speicherung von N Datensätzen ca. N pl * f dl Datenseiten benötigt. Der B*-Baum habe k (1,2,...) Indexebenen, die Datenseiten befinden sich auf Stufe k+1, dann werden auf der k-ten Indexebene P Zeiger benötigt Analyse Stufe Anzahl Seiten (min.) Anzahl Zeiger (min.) 1 (Wurzel) *(n+1) 3 2*(n+1) 2*(n+1)2 4 2*(n+1)2 2*(n+1)3... k 2*(n+1)k-2 2*(n+1)k-1 Zu bestimmen: Größtes k für das gilt: log P 2*(n+1)k-1 P k = log 2 + log( n + 1) G. Specht: Datenbanksysteme 9-17

18 Beispiel für B*-Baum cont. Beispiel Seitengröße = Byte, 90 Millionen Datensätze die Datensatzlänge sei 730 Byte (Zahl frei erfunden) der Belegungsfaktor sei 0, d.h. es werden ca. P = = = *0, Datenseiten benötigt Es sollen wieder mind. 102 Indexeinträge (und damit 103 Pointer) je Indexseite möglich sein. Damit ergibt sich die max. Anzahl von Indexebenen zu log k = = log 2 + log103 Ergebnis: Es werden insgesamt = 5 Seitenzugriffe benötigt. Anmerkung Bei Neuaufbau eines B*-Baumes werden die Datenseiten physisch benachbart gespeichert. Man spricht daher auch von einem clustering index. 35 B/B*-Bäume - Abschließende Bemerkungen B-Bäume, insbesondere B+-/B*-Bäume, die zur Zeit am meisten verwendete Index-Implementierung in Datenbanksystemen. Erlauben sehr schnellen punktweisen Zugriff und sequentielles Lesen in Primärschlüsselreihenfolge, sowie Bereichsanfragen ( range queries ). Viele Varianten hinsichtlich Minimalem Füllungsgrad der Seiten Art der Behandlung von Löschungen Komprimierung der Schlüsseleinträge (z.b. Präfix-B-Baum) Unmittelbarer Zugriffspfad: Baum enthält Datensätze Mittelbarer Zugriffspfad: Baum enthält (neben Schlüsselattribut) nur Adressen der Datensätze 36 G. Specht: Datenbanksysteme 9-18

19 Problem der Datenabhängigkeit von Anwendungsprogrammen 37 Problem der Datenabhängigkeit von Anwendungsprogrammen Speicherdarstellungen + Zugriffs- und Verarbeitungslogik für Datensätze (Anzahl, Art, Reihenfolge der Attribute) für Hilfsstrukturen (Indexe, Hashtabellen,...) für Primärschlüsselzugriff für Sekundärschlüsselzugriff für Verbindungen zwischen Datensätzen (Kettsätze, Zeigerfelder,...) zur Adressierung (TID, Surrogate, physische Adressen,...) bei konventioneller Programmierung im Anwendungsprogramm hart verdrahtet. Resultierende Probleme Programm kennt nur der Autor genau (Frage: Wie lange?). Benutzung der Datenstrukturen (Dateien) durch andere Benutzer/Programme schafft Abhängigkeiten ( Buch führen!!) Änderungen an den Speicherungsstrukturen in einem Programm pflanzen sich u.u. in anderen Programmen fort. Großes Problem: Haben wir alle betroffenen Programme identifiziert und korrekt geändert? Ein gutes DBS isoliert durch Trennung der logischen und physischen Ebene die Programme von solchen Aspekten 38 G. Specht: Datenbanksysteme 9-19

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

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

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97)

DATEIVERWALTUNG INHALTSVERZEICHNIS. STANZL Martin 4. HB/a. Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97) DATEIVERWALTUNG STANZL Martin 4. HB/a Verwendete Literatur: Konzepte der Betriebssysteme (Seiten 91-97) INHALTSVERZEICHNIS 1. Die Aufteilung des Plattenspeichers... 2 2. Der Aufbau von Dateien... 2 3.

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

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

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

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

Binärbäume: Beispiel

Binärbäume: Beispiel Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen wir uns jetzt Binärbäume an Ein Binärbaum wird rekursiv definiert: Er ist leer oder besteht aus einem Knoten (die Wurzel des

Mehr

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1} 105 4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen

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

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR #7 Terminchaos Nächste Vorlesungen: 27. 5. Vertretung durch Prof. Fekete 3. 6. Exkursionswoche 10. 6. Vertretung durch N.N. 17. 6. back to normal... Experiment Durchlaufe zwei gleichgrosse Arrays: Sortierte

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

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 9 (28.5.2014) Hashtabellen III Algorithmen und Komplexität Offene Adressierung : Zusammenfassung Offene Adressierung: Alle Schlüssel/Werte

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

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 26. März

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

Inhalt. Datenbanken 2. Literatur und Quellen. Inhalt. Indexstrukturen. Nikolaus Augsten. Wintersemester 2015/16. Grundlagen

Inhalt. Datenbanken 2. Literatur und Quellen. Inhalt. Indexstrukturen. Nikolaus Augsten. Wintersemester 2015/16. Grundlagen Inhalt Datenbanken 2 Indexstrukturen Nikolaus Augsten nikolausaugsten@sbgacat FB Computerwissenschaften Universität Salzburg Version 2016-02-01 1 Mehrschlüssel Indices Wintersemester 2015/16 Augsten (Univ

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

Höhe eines B + -Baums

Höhe eines B + -Baums Höhe eines B + -Baums Anzahl der Blätter bei minimaler Belegung Anzahl von (eindeutigen) Elementen bei minimaler Belegung Anzahl der Blätter bei maximaler Belegung Anzahl von Elementen bei maximaler Belegung

Mehr

Physische Datenorganisation

Physische Datenorganisation Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Dr. Thomas Gottron Wintersemester 2012/13 Lernziele Speicherhierarchie ISAM B-Bäume, B + -Bäume,... Hashing Mehrdimensionalen Datenstrukturen

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 13 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

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

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

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne

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

D1: Relationale Datenstrukturen (14)

D1: Relationale Datenstrukturen (14) D1: Relationale Datenstrukturen (14) Die Schüler entwickeln ein Verständnis dafür, dass zum Verwalten größerer Datenmengen die bisherigen Werkzeuge nicht ausreichen. Dabei erlernen sie die Grundbegriffe

Mehr

Dateisysteme. Datei: Objekt zum Abspeichern von Daten Die Datei wird vom Dateisystem als Teil des Betriebssystems verwaltet. c~åüüçåüëåüìäé açêíãìåç

Dateisysteme. Datei: Objekt zum Abspeichern von Daten Die Datei wird vom Dateisystem als Teil des Betriebssystems verwaltet. c~åüüçåüëåüìäé açêíãìåç Dateisysteme Datei: Objekt zum Abspeichern von Daten Die Datei wird vom Dateisystem als Teil des Betriebssystems verwaltet. Die Datei hat einen eindeutigen Namen. 0 max Adressraum der Datei Dateilänge

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

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung Grundlagen von Datenbanken B-Bäume, B*-Bäume Normalisierung B-Bäume Definition: Seien k, h ganze Zahlen, h > 0, k > 0. Ein B-Baum B der Klasse τ(k,h) ist entweder ein leerer Baum oder ein geordneter Suchbaum

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische

Mehr

Algorithmen und Datenstrukturen Hashverfahren

Algorithmen und Datenstrukturen Hashverfahren Algorithmen und Datenstrukturen Hashverfahren Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Prinzip Details Anwendungen Motivation Hashverfahren

Mehr

Verzeichnisbaum. Baumartige hierarchische Strukturierung Wurzelverzeichnis (root directory) Restliche Verzeichnisse baumartig angehängt

Verzeichnisbaum. Baumartige hierarchische Strukturierung Wurzelverzeichnis (root directory) Restliche Verzeichnisse baumartig angehängt Verzeichnisbaum Baumartige hierarchische Strukturierung Wurzelverzeichnis (root directory) Restliche Verzeichnisse baumartig angehängt / tmp etc var usr lib home bin man lib meier mueller schulze 1 Verzeichnisse

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

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke) Datenbank Objekte (, Segemente,, Blöcke) 5. Juni 2007 Datenbank Objekte (, Segemente,, Blöcke) Datenbank Objekte (, Segemente,, Blöcke) Aufbau eines Datenblocks Zeilenverkettung und -verschiebung Freispeicherverwaltung

Mehr

Entwicklung der Datenbanksysteme

Entwicklung der Datenbanksysteme Entwicklung der Datenbanksysteme Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt: 1. Generation: In den fünfziger Jahren waren die

Mehr

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln. 4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

Mehr

1. Übungsblatt zu Algorithmen II im WS 2011/2012

1. Übungsblatt zu Algorithmen II im WS 2011/2012 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Moritz Kobitzsch, Dennis Schieferdecker. Übungsblatt zu Algorithmen II im WS 0/0 http://algo.iti.kit.edu/algorithmenii.php

Mehr

Aufgabe 1 Indexstrukturen

Aufgabe 1 Indexstrukturen 8. Übung zur Vorlesung Datenbanken im Sommersemester 2006 mit Musterlösungen Prof. Dr. Gerd Stumme, Dr. Andreas Hotho, Dipl.-Inform. Christoph Schmitz 25. Juni 2006 Aufgabe 1 Indexstrukturen Zeichnen Sie

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen

Mehr

Datenbanksysteme II Multidimensionale Indizes Felix Naumann

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

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Suchen in Datenmengen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Klausur Grundlagen der Informatik 9. April 2015

Klausur Grundlagen der Informatik 9. April 2015 Lehrstuhl für Graphische Datenverarbeitung Friedrich-Alexander Universität 9. April 2015 Dr.-Ing. Frank Bauer, Prof. Dr.-Ing. Marc Stamminger Klausur Grundlagen der Informatik 9. April 2015 Angaben zur

Mehr

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A) Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld

Mehr

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12 Universität Augsburg, Institut für Informatik WS 2007/2008 Prof Dr W Kießling 18 Jan 2008 Dr A Huhn, M Endres, T Preisinger Übungsblatt 12 Datenbanksysteme I Hinweis: Das vorliegende Übungsblatt besteht

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 11, Donnerstag, 15.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 11, Donnerstag, 15. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 11, Donnerstag, 15. Januar 2015 (Balancierte Suchbäume) Junior-Prof. Dr. Olaf Ronneberger

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten SMART BOOKS Inhaltsverzeichnis..««... Vorwort 13 Kapitel 1 - Einführung 17 Crashkurs: FileMaker Pro 7 anwenden 19 Eine

Mehr

Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005

Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005 Fibonacci-Suche Informatik I Einführung Rainer Schrader Zentrum für Angewandte Informatik Köln 4. Mai 005 Grundidee wie bei der Binärsuche, aber andere Aufteilung Fibonacci-Zahlen: F 0 = 0 F 1 = 1 F m

Mehr

Algorithmen und Datenstrukturen 1-1. Seminar -

Algorithmen und Datenstrukturen 1-1. Seminar - Algorithmen und Datenstrukturen 1-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Inhalt der ersten beiden Vorlesungen Algorithmenbegriff Komplexität, Asymptotik

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

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:

Mehr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr 3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten)

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten) Vorlesung Informatik 2 Algorithmen und Datenstrukturen (25 Sortieren vorsortierter Daten) 1 Untere Schranke für allgemeine Sortierverfahren Satz Zum Sortieren einer Folge von n Schlüsseln mit einem allgemeinen

Mehr

Übungen zu Datenbanksysteme

Übungen zu Datenbanksysteme Institut für Informatik Universität Osnabrück, 1.04.015 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~dbs Nils Haldenwang, M.Sc. Testat bis 9.04.015, 14:00 Uhr Übungen zu Datenbanksysteme Sommersemester

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 2.2 Rot-Schwarz-Bäume Definition 15 Rot-Schwarz-Bäume sind externe Binäräume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt: 1 alle Blätter hängen an schwarzen Kanten (durchgezogene

Mehr

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen Willkommen zur Vorlesung Algorithmen und Datenstrukturen Mein Name: Andreas Berndt Zum Dozenten Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen Derzeitige Sprachen:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.

Mehr

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

Mehr

Graphen und Bäume. A.1 Graphen

Graphen und Bäume. A.1 Graphen Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 6. Klassische Suche: Datenstrukturen für Suchalgorithmen Malte Helmert Universität Basel 7. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche:

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

Einführung in Dateisysteme

Einführung in Dateisysteme Proseminar Speicher- und Dateisysteme Agenda 1. Allgemeines 2. Grundlagen/ Konzeption eines Dateisystems 3. Strukturelle Konzepte von Dateisystemen/ Beispiele 4. Sicherheitsaspekte 5. Ausblick Seite 2

Mehr

Datenbanken. Zusammenfassung. Datenbanksysteme

Datenbanken. Zusammenfassung. Datenbanksysteme Zusammenfassung Datenbanksysteme Christian Moser Seite 1 vom 7 12.09.2002 Wichtige Begriffe Attribut Assoziation API Atomares Attribut Datenbasis DBMS Datenunabhängigkeit Datenbankmodell DDL DML DCL ER-Diagramm

Mehr

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München Informatik 1 Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München 1 Anwendung: Schreibtisch Operation: insert(task) 2 Anwendung: Schreibtisch An uns wird Arbeit delegiert... Operation:

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Dateisystem: Einführung

Dateisystem: Einführung Dateisystem: Einführung Hauptaufgabe des Dateisystems ist der schnelle und zuverlässige Zugriff auf Dateien Problem: Entweder schneller Zugriff oder viel Redundanz beim speichern! Zusätzlich müssen Unterverzeichnisse

Mehr

Betriebssysteme (BS)

Betriebssysteme (BS) Betriebssysteme (BS) Dateisysteme Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/bs/

Mehr

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 31.01.08 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches Anmeldung Hauptklausur : allerspätestens

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser

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

Mehr

SÄTZE MIT VARIABLER LÄNGE

SÄTZE MIT VARIABLER LÄNGE Sätze variabler Länge 1 SÄTZE MIT VARIABLER LÄNGE Generellere Struktur von Datensätzen: Ersetzen von Felder durch Gruppen von Feldern. Beispiel: n m E 1 E 2 e 1 e 2 e 11 e 12 e 21 e 22 e 23 e 24 variable

Mehr

Suchen und Sortieren

Suchen und Sortieren Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles

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

Physische Datenorganisation

Physische Datenorganisation Physische Datenorganisation Detailierte Struktur eines DBMS Speichermedien Man unterscheidet meist drei Stufen von Speichermedien: Primärspeicher/Hauptspeicher: sehr teuer, sehr schnell, eher klein (im

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Wörterbucher. Das Wörterbuch 1 / 71

Wörterbucher. Das Wörterbuch 1 / 71 Wörterbucher Das Wörterbuch 1 / 71 Der abstrakte Datentyp Wörterbuch Ein Wörterbuch für eine gegebene Menge S besteht aus den folgenden Operationen: insert(x): Füge x zu S hinzu, d.h. setze S = S {x}.

Mehr

Hashing. Algorithmen und Datenstrukturen II 1

Hashing. Algorithmen und Datenstrukturen II 1 Hashing Algorithmen und Datenstrukturen II 1 Einführendes Beispiel Ein Pizza-Lieferservice in Bielefeld speichert die Daten seiner Kunden: Name, Vorname, Adresse und Telefonnummer Wenn ein Kunde seine

Mehr

I/O: Von der Platte zur Anwendung. Von Igor Engel

I/O: Von der Platte zur Anwendung. Von Igor Engel I/O: Von der Platte zur Anwendung Von Igor Engel 1 Gliederung 1 Einleitung 2 Übersicht 3 Systemaufrufe Beispiel in Unix 4 Dateien 4.1 Dateisysteme 4.2 Transport der Daten 5 Festplattentreiber 6 Festplattenkontroller

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 10, Donnerstag 8. Januar 2015 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.

Mehr

Sortieralgorithmen. Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort. Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004

Sortieralgorithmen. Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort. Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004 Sortieralgorithmen Direkte Sortierverfahren & Shellsort, Quicksort, Heapsort Vorlesung Algorithmen und Datenstrukturen 2 im SS 2004 Prof. Dr. W. P. Kowalk Universität Oldenburg Algorithmen und Datenstrukturen

Mehr

Konzepte von Betriebssystem-Komponenten. I/O: von der Platte zur Anwendung

Konzepte von Betriebssystem-Komponenten. I/O: von der Platte zur Anwendung Konzepte von Betriebssystem-Komponenten I/O: von der Platte zur Anwendung SS 05 Igor Engel Igor.Engel@informatik.stud.uni-erlangen.de 1 1 Einleitung 2 Übersicht 3 Systemaufrufe Beispiel in Unix 4 Dateien

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen

Mehr

Multiplikationsmethode. Informatik I. goldener Schnitt. Der goldene Schnitt. Einführung. Rainer Schrader. 30. Mai Konstruktionsmethode

Multiplikationsmethode. Informatik I. goldener Schnitt. Der goldene Schnitt. Einführung. Rainer Schrader. 30. Mai Konstruktionsmethode Multiplikationsethode Inforatik I Einführung Rainer Schrader Zentru für Angewandte Inforatik Köln 30. Mai 005 zu (): Irrationale Zahlen sind eine gute Wahl. Erinnerung: Φ = 1 + 5 = 1.6180339887... ˆΦ =

Mehr

6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung

6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung 6 Implementierung komplexer Systeme 6.2 Datenbank-Anbindung Analyse Entwurf Implementierung Test, Integration Wartung Literatur: Balzert LE 24-26, 31 Ambler Kap. 10 Einsatz von Datenbanksystemen Persistente

Mehr

Klausur. Betriebssysteme SS 2007

Klausur. Betriebssysteme SS 2007 Matrikelnummer: 9999999 Klausur FB Informatik und Mathematik Prof. R. Brause Betriebssysteme SS 2007 Vorname: Nachname: Matrikelnummer: Geburtsdatum: Studiengang: Bitte tragen Sie auf jeder Seite Ihre

Mehr

e-bag Kurzanleitung e-bag Grundfunktionen

e-bag Kurzanleitung e-bag Grundfunktionen BAG-Melk Kurzanleitung Grundfunktionen Autor J. Brandstetter Vertraulich, nur für internen Gebrauch Version 1.1 File: Datum: C:\e-BAG\manual\gundfunktionen\ebag_quick_start.doc 2003-09-17 Grundfunktionen

Mehr

Wertebereich und Genauigkeit der Zahlendarstellung

Wertebereich und Genauigkeit der Zahlendarstellung Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden

Mehr

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................

Mehr

Grundlagen des relationalen l Modells

Grundlagen des relationalen l Modells Grundlagen des relationalen l Modells Seien D 1, D 2,..., D n Domänen (~Wertebereiche) Relation: R D 1 x... x D n Bsp.: Telefonbuch string x string x integer Tupel: t R Bsp.: t = ( Mickey Mouse, Main Street,

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (16 Dynamische Tabellen) Prof. Dr. Susanne Albers Dynamische Tabellen Problem: Verwaltung einer Tabelle unter den Operationen Einfügen und Entfernen,

Mehr

Assoziative Container in C++ Christian Poulter

Assoziative Container in C++ Christian Poulter Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...

Mehr

Lokales Storage Teil 2

Lokales Storage Teil 2 Lokales Storage Teil 2 Linux-Kurs der Unix-AG Zinching Dang 22. Juli 2015 LVM (1) Logical Volume Manager erfüllt gleichen Zweck wie Partitionierung erlaubt jedoch das Partitionieren über mehrere Datenträger

Mehr