Thema Bedeutung des relationalen Datenbankmodells von Edgar Frank Codd und die Entwicklung der B-Bäume von Rudolf Bayer für die Informatik Matthias Reusche [email protected] B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd Gliederung 1. Einleitung 2. B-Bäume 3. relationales Datenbankmodell 4. Zusammenfassung B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 2 1. Einleitung - Datenbanken sind heutzutage überall anzutreffen Wirtschaft, Forschung und Privathaushalt - den größten Marktanteil haben relationale Datenbanken - in allen Datenbanksystemen werden B-Bäume als Indexstruktur verwendet B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 3 1. Einleitung Prof. Dr. Rudolf Bayer - Geboren am 7.Mai 1939 - Studierte Mathematik in München - 1966 Titel Ph.D. University of Illinois -1972 Ordinarius für Informatik an der TU München - Bundesverdienstkreuz 1. Klasse - SIGMOD Innovations Award 2001 B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 4 1. Einleitung Prof. Dr. Rudolf Bayer (2) - Berater: IBM, Siemens, Amdahl, DEC, Deutsche Telekom - Gastprofessor: IBM, Palo Alto Research Center, Universitäten in Japan, Australien, USA, Singapur - B-Bäume 1969, B*-Bäume, UB-Bäume 90er - Datenbankprotokoll Mehrbenutzertransaktionen 1974 - Organisation und Wartung von großen Indexordnungen - Deutschen Datenschutz - Synchronisation, Parallelisieren und Wiederherstellung von Datenbanken - Expertensysteme - OODBS B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 5 1. Einleitung Dr. Edgar Frank Codd - geboren am 23. August 1923 in Portland - studierte Mathematik in Oxford - 1949 Wissenschaftlicher Mitarbeiter bei IBM - starb am 18. April 2003 in Williams Island - relationales Datenbankmodell 1969 - ALPHA, Rendezvous 1971 - Normalisierungstheorie - Turing-Award 1981 B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 6 2. B-Bäume Beweggründe - neue Märkte für Informatik: Raumfahrt, Industrie und Wirtschaft - 60er erste Direktspeicher - Speicherkapazität begrenzt und teuer - Pseudo-Random-Access-Speicher (Platten, Trommeln) - Überwindung der Zugriffszeit auf eine Seite - Entartungsmöglichkeit anderer Baumarten Methode mit wenig Seitenzugriffen B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 7 2. B-Bäume Definition B-Baum der Klasse τ( k, h) ist entweder ein leerer Baum oder ein geordneter Baum mit folgenden Eigenschaften: - vollkommen ausbalanciert - Knoten hat zwischen k und 2k Einträge (außer Wurzel 1…2k) - Einträge sind geordnet - ein Eintrag besteht aus einem Schlüssel und einem Datum - innere Knoten mit n Einträgen haben n+1 Kindknoten - Kindknoten werden über geordnete Verweise gehalten - Kindknoten enthalten alle >,< Schlüssel B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 8 2. B-Bäume Beispielbaum Für folgende Operationen: Suchen, Einfügen und Löschen - der Klasse τ( 2, 2) Wurzel Blätter - natürliche Zahlen 0, 2, 3, 5, 6, 9, 10, 11, 13, 14, 20, 25, 26, 27 B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 9 2. B-Bäume Suchen in B-Bäumen Erfolgreiches Suchen nach S(13): Nicht jeder Knoten muss vollständig durchgegangen werden B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 10 2. B-Bäume Suchen in B-Bäumen (2) Erfolgloses Suchen nach S(15): Suchkosten: Fmin = 1, Fmax = h, h-1/k ≤ Favg ≤ h-1/2k B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 11 2. B-Bäume Einfügen in B-Bäumen - Zuerst „Zielknoten“ suchen Unterscheidung in 2 Fälle: mit und ohne Splitten - Einfügen S(7) ohne Splitten da noch Plätze im Zielknoten vorhanden B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 12 2. B-Bäume Einfügen in B-Bäumen (2) - Einfügen von S(23) mit Splitten damit Baumeigenschaft erfüllt bleibt - Knoten wird gesplittet und Meridian S(14) an Vaterknoten gegeben B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 13 2. B-Bäume Einfügen in B-Bäumen (3) - Splitten kann iterativ bis zur Wurzel fortgesetzt werden Einfügekosten: Fmin= h und Wmin= 1, Favg= h und Wavg < 1+2/k B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 14 2. B-Bäume Einfügen in B-Bäumen (4) - Einfügen von S(8) , wodurch Baum wächst, da Splitten bis zur Wurzel nötig - Zweiter Knoten und Wurzel wurden gesplittet - Baum wächst an der Wurzel Klasse τ( 2, 3) B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 15 2. B-Bäume Löschen in B-Bäumen - Unterscheidung ob Element in einem inneren Knoten oder in einem Blatt ist - Folge des Löschens kann unterbesetzter Knoten sein - Ausgleich mit Nachbarknoten oder Verschmelzung mit Nachbarknoten - Verschmelzung kann iterativ bis zu Wurzel nötig werden nach erster Verschmelzung, löschen S(11) B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 16 2. B-Bäume Löschen in B-Bäumen (2) - Verschmelzung auf der 2. Stufe wurde nötig neue Wurzel Klasse τ( 2, 2) nach zweiter Verschmelzung - löschen eines inneren Knotens, erfordert Beibehaltung der Verweise zu den Kindknoten - deshalb muss Element als Ersatz für gelöschtes Element aus dem Kindknoten einspringen - löschen vom inneren Knoten S(10) B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 17 2. B-Bäume Löschen in B-Bäumen (3) - S(13) ist aus Kindknoten aufgerückt - andere Möglichkeit mindestens k Elemente zu halten ist der Ausgleich - löschen von S(26) Unterlauf in V4 B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 18 2. B-Bäume Löschen in B-Bäumen (4) - S(23) aus Nachbarknoten wurde zum Ausgleich verwendet Löschkosten: bester Fall Fmin= h und Wmin= 1, obere Schranke Favg ≤ F1+ F2 + F3 < h+1+1/k Wavg ≤ W1+ W2 + W3 < 2+2+1/k = 4+1/k wobei F1, F2, F3 und W1, W2, W3 jeweils die Kostenanteile für Löschen, Ausgleich und Verschmelzen sind B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 19 2. B-Bäume Eigenschaften von B-Bäumen - Knotenanzahl n nach Formel: nmin = 1+2 [(k+1)0+(k+1)1+ ... +(k+1)h-2] = 1+ 2/k[(k+1)h-1-1] - Höhe h entspricht der Gleichung: für n = 0 h=0 für n ≥ 1 log2k+1(n+1) ≤ h ≤ logk+1[(n+1)/2]+1 - gute Skalierbarkeit - gute Abschätzung der Operationskosten - Selbstbalancierend bei jeder Operation - zur Balancierung nur Lokale Betrachtung nötig - Balancierung: unabhängig von Schlüsselmenge oder Einfügereihenfolge - Suchkosten hängen überwiegend von Höhe (!!) des Baumes und nicht von Knotenanzahl ab (k>400 : O(logk n) ) B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 20 2. B-Bäume Mentale Hürden des B-Baumes - Speicherausnutzung im „Worst Case“ 50% Realität: 83% - Wachstumseigenschaft von der Wurzel her - Herbst 69 erforscht, aber erst bei E.Knuth 1972 publiziert B*-Baum (hohler Baum) - τ( kn, km, h) - Speicherung der Daten nur noch in Blättern - innere Knoten besitzen nur noch Schlüssel und Verweise - Blätter besitzen Verweise zum Vorgänger und Nachfolgerblatt B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 21 2. B-Bäume B*-Präfix Bäume - auf B* aufbauender Baum - es wird kein vollständiger Schlüssel in den inneren Knoten gespeichert, sondern nur noch Anfang des Schlüssels - Schlüssel in inneren Knoten müssen nicht real sein, sind besser ausbalanciert UB-Bäume Beispiel: 2D - für Multidimensional Indexe (jedes DBS) - Partitionierung mehrdimensionaler Räume durch Raumfüllende Kurve - man erhält lineare Ordnung, welche man in klassischen B-Bäumen ablegt - durch Tupel-Clusterung und Seiten-Clusterung ist Antwortzeit direkt proportional zur Größe der Antwort B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 22 Gliederung 1. Einleitung 2. B-Bäume 3. relationales Datenbankmodell 4. Zusammenfassung B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 23 3. relationales Datenbankmodell Relation - basierte auf mathematischen Grundlagen der relationalen Algebra - Mengen: S1, S2, ... , Sn - Relation R sind alle geordneten Mengen r mit Elementen aus S1×S2×...×Sn - Informationen lassen sich in unterscheidbare Mengen gruppieren und dann als Tupel verwalten (Domain / Entitäten) - Mengen haben Relationen zueinander, welche die Informationen enthalten - Ordnung der Zeilen ist beliebig - Sätze sind verschieden voneinander - Ordnung der Spalten ist wichtig B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 24 3. relationales Datenbankmodell Relation (2) - 80-stellige Relationen nichts ungewöhnliches - Codd fügt dem Domain-Name einen Rollenname hinzu (Bedeutung) - Relation selber besitzt eindeutigen Bezeichner - kein zusammengesetztes Datum im Feld (Atomar) Weitere Konzepte für die Implementierung - Primärschlüssel: eindeutige Identifikation des Satzes (aus 1..n Spalten) - Fremdschlüssel: einbinden von Informationen aus anderer Relation - referentielle Integrität: Beachtung der Datenabhängigkeit B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 25 3. relationales Datenbankmodell Schlüssel Slave Master Satz 2: „Es ist möglich von Dresden nach Leipzig zu fliegen.“ B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 26 3. relationales Datenbankmodell Operationen - Permutation, beliebiges vertauschen der Spalten n! neue Relationen O (a,b,c) P1(a,b,c), P2(a,c,b), P3(b,a,c), P4(b,c,a), P5(c,a,b), P6(c,b,a) - Projektion (Abbildung), Auswahl einer oder mehrerer Spalten Äquivalenter SQL-Code: SELECT Start_Stadt FROM Verbindungen; B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 27 3. relationales Datenbankmodell Operationen (2) - Join (Verbindung) - zwei Relationen R,S haben gemeinsame Domain J = R*S = {(a,b,c):R(a,b)^S(b,c)} J = R*S*T = {(a,b,c,d):R(a,b)^S(b,c)^T(c,d)} - natürliche Join: alle Verbindungen, auch doppelte Äquivalenter SQL-Code: SELECT R.Start_Stadt, S.Ziel_Stadt FROM Verbindungen R, Verbindungen S WHERE R.Ziel_Stadt = S.Start_Stadt; B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 28 3. relationales Datenbankmodell Operationen (3) Beispiel natürlicher Join B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 29 3. relationales Datenbankmodell Operationen (4) - Tie – Operation - verbinden von erster und letzter Spalte, eine Art Hülle bilden (R*) γ(R) = {(a1,a2,...,an-1):R( a1,a2,...,an-1,an) ^ a1=an} - Konstrukt aus dem CODASYL Modell - Komposition - zwei Relationen R,S, dann gibt es K wenn R,S einen Join J haben, so dass K = Projektion(J) - mehrere Joins, aber nur eine Komposition - „Es kann mehrere gleiche Verbindungen geben, aber nur eine Bedeutung“ B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 30 3. relationales Datenbankmodell Operationen (5) Beispiel, Komposition von dem Join Äquivalenter SQL-Code: SELECT DISTINCT R.Start_Stadt, S.Ziel_Stadt FROM Verbindungen R, Verbindungen S WHERE R.Ziel_Stadt = S.Start_Stadt; B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 31 3. relationales Datenbankmodell Operationen (6) - Restriktion (Selektion) - Auswahl von Sätzen aus einer Relation, welche bestimmtes Prädikat erfüllen Äquivalenter SQL-Code: SELECT * FROM Verbindungen WHERE Start_Stadt = 'Leipzig'; Andere Operationen - Vereinigung Äquivalenter SQL-Code: SELECT R.Start_Stadt FROM Verbindungen UNION SELECT Stadt FROM Staedte; B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 32 3. relationales Datenbankmodell Andere Operationen (2) - Differenz Äquivalenter SQL-Code: SELECT S.Stadt FROM Staedte S UNION MINUS SELECT Start_Stadt FROM Verbindungen; - Durchschnitt Äquivalenter SQL-Code: SELECT S.Stadt FROM Verbindungen V, Staedte S WHERE V.Start_Stadt = S.Stadt; B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 33 3. relationales Datenbankmodell Redundanzen - jeder Fremdschlüssel ist eine Redundanz des Primärschlüssels - mehrmalige Speicherung der selben Information - Vorteil: Anfragen können leichter werden - Nachteil: Möglichkeit der Entstehung von Inkonsistenzen B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 34 3. relationales Datenbankmodell Inkonsistenz Name zu Personalnummer 6 ist nicht mehr eindeutig B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 35 3. relationales Datenbankmodell Codds (strenge) Regeln - 1986 Publikation 1986, Anforderungen an ein relationales Datenbank Management System (RDBMS) 0. Ein RDBMS muss die Datenbanken vollständig über seine relationalen Fähigkeiten verwalten. 1. Alle Informationen sind explizit als Werte in Tabellen darzustellen. 2. Zugriff auf jeden Wert durch Kombination von Tabellenname, Primärschlüssel und Spaltenname möglich. 3. Systematische Behandlung von Nullwerten 4. Struktur einer Datenbank ebenfalls in Tabellenform Zugriff darauf mit Abfragesprache 5. Abfragesprache mit Befehlssatz für Datendefinition, Manipulation, Integritätsregeln, Autorisierung und Transaktionen B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 36 3. relationales Datenbankmodell Codds (strenge) Regeln (2) 6. Aktualisieren von Sichten, auch durch das System möglich. 7. Abfragen und bearbeiten ganzer Tabellen (einfügen, aktualisieren, löschen) 8. Physikalische Datentunabhängigkeit, Zugriff unabhängig von den physikalischen Zugriffsmethoden oder den Speicherstrukturen der Daten beliebige Änderung der physikalischen Datenbankstruktur 9. Logische Datentunabhängigkeit, einerseits existieren die logischen Strukturen der Datenbank, andererseits sieht jeder Benutzer nur den für ihn relevanten Ausschnitt der gesamten logischen Struktur. (Benutzerrollen / Views) 10. Unabhängigkeit der Integrität, Definition von Integritätsregeln in Datenbanksprache, Speicherung im Systemkatalog, keine Umgehung möglich. 11. Verteilungsunabhängigkeit, logische Zugriff ändert sich bei Verteilung nicht. 12. Kein Unterlaufen der Abfragesprache (Low-Level-Sprachen) B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 37 3. relationales Datenbankmodell Einschätzung - rein theoretischer Ansatz - dynamische Erweiterung der Informationswelt möglich - Teilsichten sind möglich (Modularisierung) - Komplexe Sachverhalte können dank algebraischer Gesetze optimiert werden - Änderung der Datenstruktur möglich, weil Zusammenhang der Informationen auf Logikebene B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 38 Gliederung 1. Einleitung 2. B-Bäume 3. relationales Datenbankmodell 4. Zusammenfassung B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 39 4. Zusammenfassung Zusammenfassung - B-Bäume relationales Datenbankmodell -1976/77 der Prototyp R (IBM) - erste kommerzielle DB, Oracle 1979 (Relational Software Inc.) - heute : DB2 (IBM), Ingres, Informix (IBM), Sysbase, SQL-Sever (MS) - geschätzter Marktwert des Datenbanksektor 30 Milliarden $ - sowie aufbauende Produkte: SAP… B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 40 4. Zusammenfassung Zusammenfassung (2) Gründe für den Erfolg - einfach formalisiertes Modell (Codd) - einfache Benutzerschnittstelle SQL (Chamberlin und Reisner) - Algebra als Basis für Codeoptimierung (Codd) - Abbildung der Information auf Relationen und diese auf auf B-Bäume - Möglichkeit der Mehrbenutzertransaktionen (Gray) - Robustheit durch Selbstbalancierung und Selbstorganisation der B-Bäume (Bayer) - gute Skalierbarkeit durch die log-Operationskosten der B-Bäume (Bayer) B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 41 Quellen Springer, Software Pioneers - Contributions of Software Engeenering, Manfred Broy & Ernst Denert Technische Universität München http://wwwbayer.in.tum.de/cgi-webcon/webcon/lehrstuhldb/details/Mitarbeiter/num/5/1 IBM http://www.research.ibm.com/resources/news/20030423_edgarpassaway.shtml Wikipedia, Die freie Enzyklopädie http://de.wikipedia.org/wiki software design & managment http://www.sdm.de/de/it-wissen/themen/sdmkonf-2001/index.html HTML-Version „SQL in 21 Tagen“ http://download.pearsoned.de/leseecke/SQL_21Tg/data/kap01.htm B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 42 Ende Danke B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd 43