4. Datenbankmodelle für die Realisierung ➠ Relationenmodell ➠ Netzwerkmodell und hierarchisches Modell ➠ Objektorientierte Modelle ➠ Weitere Datenbankmodelle Andreas Heuer, Gunter Saake – Datenbanken I 4-1 Relationenmodell Codd im Jahre 1970 Relationenname R A1 ... ... Attribute An } Relationenschema ... ... Relation Tupel Veranschaulichung eines Relationenschemas und einer Relation Andreas Heuer, Gunter Saake – Datenbanken I 4-2 Andreas Heuer, Gunter Saake – Datenbanken I PANr 4711 4711 4711 5588 5588 9999 Ort DBR MD MD DBR BS HRO HD Straße BHS STS BS RS GS AES TS HNr 15 55 41 31 12 21 38 Pers Telefon PLZ 18209 39106 39104 18209 38106 18059 69121 Nachname Heuer Saake Korn Möller Jagellovsk Hellhof Loeser Vorname Andreas Gunter Michael Andreas Tamara Antje Christa PANr 4711 5588 6834 7754 8832 9912 9999 Personen Zwei Relationen zur Darstellung von Geb.datum 31.10.1958 05.10.1960 24.09.1974 25.02.1976 11.11.1973 04.04.1970 10.05.1969 Telefon 038203-12230 0381-498-3401 0381-498-3427 0391-345677 0391-5592-3800 06221-400177 4-3 Begriffe des Relationenmodells Begriff Attribut Wertebereich Attributwert Relationenschema Relation Tupel Datenbankschema Datenbank Andreas Heuer, Gunter Saake – Datenbanken I Informale Bedeutung Spalte einer Tabelle mögliche Werte eines Attributs (auch Domäne) Element eines Wertebereichs Menge von Attributen Menge von Zeilen einer Tabelle Zeile einer Tabelle Menge von Relationenschemata Menge von Relationen (Basisrelationen) 4-4 Begriffe des Relationenmodells II Begriff Schlüssel Primärschlüssel Fremdschlüssel Fremdschlüsselbedingung Andreas Heuer, Gunter Saake – Datenbanken I Informale Bedeutung minimale Menge von Attributen, deren Werte ein Tupel einer Tabelle eindeutig identifizieren ein beim Datenbankentwurf ausgezeichneter Schlüssel Attributmenge, die in einer anderen Relation Schlüssel ist alle Attributwerte des Fremdschlüssels tauchen in der anderen Relation als Werte des Schlüssels auf 4-5 Formalisierung Relationenmodell I Attribute und Domänen nichtleere, endliche Menge: Universum ■ : Wer- Menge endlicher, nichtleerer Mengen: jedes tebereich oder Domäne ■ : Attribut ■ : Domäne von dom : Attributwert für dom ■ total definierte Funktion dom ■ Andreas Heuer, Gunter Saake – Datenbanken I 4-6 Formalisierung Relationenmodell II Relationenschemata und Relationen : Relationenschema ■ ) ist endliche Menge von (kurz: , Tupel genannt für REL ■ Es gilt ■ Relation über Abbildungen ■ ) X-Wert von analog Restriktion von auf ( dom Menge aller Relationen über : Andreas Heuer, Gunter Saake – Datenbanken I 4-7 Formalisierung Relationenmodell III Datenbankschema und Datenbank Menge von Relationenschemata ■ Datenbank über : Menge von Relationen ■ Datenbank ■ Relation : Datenbankschema ■ , wobei über : : Basisrelation Andreas Heuer, Gunter Saake – Datenbanken I 4-8 Unterschied zu der klassischen Definition einer Relation als Teilmenge des kartesischen Produktes dom dom dom dom dom und dom sind ungleich bei Definition mittels kartesischem Produkt! Andreas Heuer, Gunter Saake – Datenbanken I 4-9 Unterschied zu der klassischen Definition einer Relation als Teilmenge des kartesischen Produktes: Beispiel Vorname Andreas Gunter Michael PANr 4711 5588 6834 Nachname Heuer Saake Korn Vorname Andreas Gunter Michael mit bestehen aus Tupeln und Relationen Nachname Heuer Saake Korn PANr 4711 5588 6834 Andreas Heuer, Gunter Saake – Datenbanken I 4-10 Integritätsbedingungen Identifizierende Attributmenge : ■ Schlüssel: ist minimale identifizierende Attributmenge und für für Primattribut: Element eines Schlüssels ■ Primärschlüssel: ausgezeichneter Schlüssel ■ Fremdschlüssel: ■ Andreas Heuer, Gunter Saake – Datenbanken I 4-11 Relationenalgebra ■ Selektion ■ ’Meyer’ Projektion Andreas Heuer, Gunter Saake – Datenbanken I 4-12 Relationenalgebra II ■ Verbund Straße BHS BHS BHS STS STS TS Ort DBR DBR DBR MD MD HD Andreas Heuer, Gunter Saake – Datenbanken I Nachname Heuer Heuer Heuer Saake Saake Loeser Vorname Andreas Andreas Andreas Gunter Gunter Christa Telefon 038203-12230 0381-498-3401 0381-498-3427 0391-345677 0391-5592-3800 06221-400177 4-13 Relationenalgebra III Umbenennung ■ Mengenoperationen ■ Formale Definition: Andreas Heuer, Gunter Saake – Datenbanken I 4-14 Netzwerkmodell Netzwerkmodell: 1971 vom Normungsausschuß CODASYL-DBTG definiert ER-Modell Entity Entity-Typ Attribut binärer 1:nBeziehungstyp Andreas Heuer, Gunter Saake – Datenbanken I Relationenmodell Tupel Relationenschema Attribut Relation Netzwerkmodell logical record Record-Typ Feld Link oder auch Set-Typ 4-15 Schema im Netzwerkmodell ■ Netzwerkschema: gerichteter Graph ◆ - in und ◆ Menge der Record-Typen als Knoten Set-Typen als Kanten ( Kante, falls Relationship) ■ konkrete Set-Ausprägung: Besitzer (Owner) und Teilnehmer (Members) ■ Netzwerkmodell entspricht ER-Modell mit Einschränkungen ◆ ◆ ◆ ■ alle Relationships binär nur many-to-one Relationships erlaubt Relationships haben keine Attribute Grund: leichtere Graphendarstellung, günstigere Implementierung Andreas Heuer, Gunter Saake – Datenbanken I 4-16 Beispielschema im NWM Vorlesung Student PANr | Matrikelnr | ... la V_Bezeichnung | SWS | Semester | ... hö_1 BuchExemplar Inventarnr | ISBN | ... Andreas Heuer, Gunter Saake – Datenbanken I hö_2 Hörer lfd# | Semester 4-17 Beispielausprägung im Netzwerkmodell BuchExemplar Student Hörer Vorlesung 12 | 7. DB I | 4 | 6. | ... x13 | 1-345 13 | 42. x01 | 1-432 WiInf I | 2 | 1. | ... y42 | 3-987 4242 | 123 |... 732 | 1. x1 | 5-555 007700 | 111 |... Andreas Heuer, Gunter Saake – Datenbanken I 4-18 Detaildarstellung einer Beispielausprägung System 007700|111 4242|123 x13 | 1-345 13|42. x01 | 1-432 12|7. v42 |3-987 Andreas Heuer, Gunter Saake – Datenbanken I 4-19 Simulation einer allgemeinen Relationship R T L1 E1 ........... Ek T1 Lk ............ Tk Kett-Entity Andreas Heuer, Gunter Saake – Datenbanken I 4-20 Hierarchisches Datenmodell wie NWM, aber nur Hierarchien Einführung: IBM 1969 mit System IMS ■ Eine Hierarchie ist ein Netzwerkschema, das ein Wald ist (‘Menge von Bäumen’). ■ Eine reine Hierarchie kann keine allgemeinen Beziehungen darstellen, so daß sogenannte “virtual records” (‘Zeiger’) eingeführt werden, um die Baumstruktur zu durchbrechen. Andreas Heuer, Gunter Saake – Datenbanken I 4-21 Beispiel im hierarchischen Datenmodell Vorlesung Student PANr | Matrikelnr | ... la BuchExemplar V_Bezeichnung | SWS | Semester | ... hö_2 hö_1 Hörer Hörer Inventarnr | ISBN | ... Andreas Heuer, Gunter Saake – Datenbanken I virtual lfd# | Semester 4-22 Skizze der Speicherstrukturen im hierarchischen Datenmodell System ... Andreas Heuer, Gunter Saake – Datenbanken I 4-23 Erweiterte relationale und semantische Modelle Geschachtelte Relationen: Das NF -Modell NF -Relationen erlauben komplexe Attributwerte in dem Sinne, daß Attribute selbst wieder Relationen sein können. Andreas Heuer, Gunter Saake – Datenbanken I 4-24 Beispiel im NF -Modell Fachbereich PANr Informatik Mathematik Belegschaft Nachname Telefone Telefon 4711 Heuer 5588 Saake 7754 8832 6834 Möller Jagellovsk Korn Andreas Heuer, Gunter Saake – Datenbanken I 038203-12230 0381-498-3401 0381-498-3427 0391-345677 0391-5592-3800 Gehalt 6000 6000 550 2800 750 4-25 PNF-Relationen PNF: Partitioned Normal Form Relationen in PNF haben auf jeder Stufe der Schachtelung einen flachen Schlüssel. A 1 PNF-Relation: 2 3 Andreas Heuer, Gunter Saake – Datenbanken I D B 2 4 1 4 1 C 3 2 1 1 1 Nicht PNF: A B C D 1 2 1 2 2 3 3 4 4-26 PNF-Relation und entschachtelte äquivalente Relation A 1 2 3 Andreas Heuer, Gunter Saake – Datenbanken I D B 2 4 1 4 1 C 3 2 1 1 1 A 1 1 2 2 3 B 2 4 1 4 1 C 3 2 1 1 1 4-27 Verallgemeinerte geschachtelte Relationen Erweitertes NF -Modell: eNF -Modell Beliebige Kombination der Typkonstruktoren ■ set of: Mengenbildung ■ tuple of: Tupelkonstruktion ■ list of: Listen ■ bag of: Multimengen Typkonstruktoren können beliebig kombiniert werden, so daß etwa set of bag of integer erlaubt ist. Andreas Heuer, Gunter Saake – Datenbanken I 4-28 Semantische Datenmodelle Semantische Datenmodelle unterstützen weitere Abstraktionskonzepte wie Generalisierung und Spezialisierung ■ Funktionale Datenmodelle: Alle Anwendungsobjekte werden mit EntityTypen und Funktionen modelliert. ■ IFO-Modell: IFO steht für ■ SDM: viele, teilweise auch redundante Konzepte zur Modellierung Andreas Heuer, Gunter Saake – Datenbanken I IST-Beziehungen, Funktionen und Objekttypen. 4-29 Objektorientierte Modelle inkl. ODMG Objektorientierte Datenbankmodelle bieten ■ mehr Konzepte zur Darstellung der Struktur ◆ ◆ ◆ ■ komplexe Werte, die mit Typkonstruktoren wie set of, tuple of und list of beschrieben werden können, Objektidentität, die gespeicherte Objekte von Werten, die sie besitzen, unterscheiden kann, Vererbung von Attributen zwischen Objekttypen, die in einer IST-Beziehung stehen, sowie mehr Konzepte zur Darstellung objektspezifischer Operationen, etwa Methoden (legen Operationen fest, mit denen die Anwendungsdaten (nur) manipuliert werden dürfen) Beispiel: Studenten Andreas Heuer, Gunter Saake – Datenbanken I 4-30 Modell nach Beeri ■ Strukturteil ◆ ◆ ◆ ◆ ■ Typen und Typkonstruktoren Objektidentität Klassen Strukturvererbung (oder Klassen- und Typhierarchie) Operationenteil ◆ ◆ Anfrageoperationen Änderungsoperationen Andreas Heuer, Gunter Saake – Datenbanken I 4-31 Modell nach Beeri II ■ Höhere Konzepte ◆ ◆ ◆ ◆ Metaklassen Methoden Vererbung und Overriding von Methoden Einkapselung Andreas Heuer, Gunter Saake – Datenbanken I 4-32 Definition eines objektorientierten Datenbanksystems Datenbanksystem, das ■ auf einem objektorientierten Datenbankmodell mit Strukturteil, Operationenteil und höheren Konzepten basiert, ■ auf der konzeptuellen Ebene durch neue Datentypen und neue Funktionen erweiterbar ist, ■ weitere Datenbank-Eigenschaften besitzt (wie Persistenz, Speicherungsstrukturen und Zugriffspfade, Transaktionen und Concurrency-ControlKomponenten sowie Recovery-Mechanismen) ■ und neben den Operationen des Operationenteils (Anfrage- und Datenmanipulationssprache) auch eine komplette Programmier-Umgebung beinhaltet. Andreas Heuer, Gunter Saake – Datenbanken I 4-33 Klassifikation von OODBS Systeme (seit 1987, Manifesto 1989, ODMG-Industrie-Standard 1993) Erweiterung relationaler Datenbanksysteme ◆ Relationales Datenmodell Typkonstruktoren Objektidentität (etwa DASDBS, AIM/P, POSTGRES, ) ◆ speziell: Objekt-relationale Datenbanksysteme (etwa Illustra, UniSQL, jetzt auch viele RDBS wie DB2) ■ Neuentwicklungen ◆ eigenes OO Datenmodell (etwa O , Itasca, OSCAR) ■ Erweiterung objektorientierter Programmiersprachen (OOPLs) ◆ C++- oder SMALLTALK-Datenmodell (etwa GemStone, ObjectStore, POET, ) ■ Andreas Heuer, Gunter Saake – Datenbanken I 4-34 Strukturteil ■ Typen und Typkonstruktoren ◆ ◆ ■ Standard-Datentypen wie INTEGER und STRING Typkonstruktoren wie SET OF und TUPLE OF: kompliziertere Typen Objektidentität ◆ ◆ ◆ ◆ vom System vergeben eindeutig unveränderbar für den Benutzer unsichtbar Andreas Heuer, Gunter Saake – Datenbanken I 4-35 Strukturteil II ■ Klassen ◆ ◆ ◆ ■ beschreiben Objekte mit ähnlichen Eigenschaften Typ, Objektvorrat und Objektbehälter Methoden Komponenten-Beziehungen bei Klassen (VERLAGE Komponente von BÜCHERN) Andreas Heuer, Gunter Saake – Datenbanken I 4-36 Strukturteil III ■ Is-A-Beziehungen ◆ ◆ Klassenhierarchie: Objektmenge der Unterklasse ist Teilmenge der Objektmenge der Oberklasse (STUDENTEN sind eine Teilmenge der PERSONEN) Typhierachie: Typ der Unterklasse hat mehr Eigenschaften als Typ der Oberklasse (STUDENTEN haben neben den Eigenschaften von Personen auch noch MATRIKELNUMMER und STUDIENFACH) Andreas Heuer, Gunter Saake – Datenbanken I 4-37 Definition eines Objekttyps set of(tuple of( : tuple of( : set of( : date)) : string, : string), : integer, : string, : string, : integer), : string), : integer, : tuple of( Andreas Heuer, Gunter Saake – Datenbanken I 4-38 Symbole der graphischen Notation x abstrakte Klasse Typkonstruktion freie Klasse Zustandsfunktion Tupelkonstruktion Is-A Beziehung Mengenkonstruktion Subtyp-Beziehung Standard-Datentyp x Andreas Heuer, Gunter Saake – Datenbanken I 4-39 Graphische Definition eines Objekttyps Personen Person Name int Adresse Telefone PANr date Geburtsdatum str str int str str Vorname Nachname PLZ Ort Straße Andreas Heuer, Gunter Saake – Datenbanken I int str Hausnummer Telefon 4-40 Graphische Deklaration einer Klasse Bücher Buch str ISBN str Versionen Autoren Titel str Stichworte Verlag str Version Autor int int Auflage Jahr Andreas Heuer, Gunter Saake – Datenbanken I int money Seiten Preis 4-41 Beispiel Objektrelation Bücher 0-8053-1753-3 Princ. of DBS Andreas Heuer, Gunter Saake – Datenbanken I DB2 3-89319-175-5 Verlag Titel ISBN Autoren Autor Vossen Witt Elmasri Navathe Stichworte Stichwort RDB RDB Lehrbuch ER 4-42 Klassenhierarchie a) versus Typhierarchie b) Personen a) Personen b) str str Name Name Mitarbeiter Studenten Studenten Mitarbeiter real str int Matrnr real Gehalt str Name Gehalt Name StudentenUndMitarbeiter int Matrnr int Matrnr Andreas Heuer, Gunter Saake – Datenbanken I str real Name Gehalt 4-43 Klassendeklarationen im O -Modell I class type tuple( : string, : string), : tuple( : integer, : string, : string, : integer), : set( : string), : date) : integer, : tuple( Andreas Heuer, Gunter Saake – Datenbanken I 4-44 Klassendeklarationen im O -Modell II inherits type tuple( class : integer, : string, : , : , : set(tuple( : string, : real))) Andreas Heuer, Gunter Saake – Datenbanken I 4-45 Operationen mindestens die Möglichkeiten wie in Relationenalgebra / SQL ■ relationale Semantik: Extraktion von Werten aus Zuständen von Objekten geschachtelte Relationen ■ ■ ■ objekterzeugende Semantik: Erzeugung neuer Objekte als Anfrageergebnis mit Zuständen, die von vorhandenen Objekten extrahiert wurden Ergebnis ist eine dynamisch erzeugte Klasse objekterhaltende Semantik: Auswahl der in der Datenbank vorkommenden Objekte mit neuen Zuständen Ergebnis ist dynamisch erzeugte Ober- / Unterklasse Andreas Heuer, Gunter Saake – Datenbanken I 4-46 Operationen II schwach ausgeprägt bei OOPL-Erweiterungen Andreas Heuer, Gunter Saake – Datenbanken I “OSQL” mit relationaler Semantik (nicht so mächtig wie Standard-SQL) ■ Standard-Methoden auf -Klassen (Selektionen mit sehr einfachen Selektionsprädikaten) ■ 4-47 Höhere Konzepte ■ objekt- oder klassenspezifische Operationen ■ werden wie Eigenschaften von Ober- zu Unterklassen vererbt ■ Implementierung einer Methode kann bei Vererbung noch verändert werden (Overriding) ■ System wählt selbständig zur Laufzeit passende Implementierung (dynamisches Binden) Andreas Heuer, Gunter Saake – Datenbanken I 4-48 Klassendeklarationen im O -Modell III inherits type tuple( class : integer, : string, : , : , : set(tuple( : string, : real))) : money method Andreas Heuer, Gunter Saake – Datenbanken I 4-49 Methodendeklaration im O -Modell return ( self : real in class method body ) 0.1 Andreas Heuer, Gunter Saake – Datenbanken I 4-50 Der ODMG-Standard Die Struktur des Standards ist viergeteilt: ■ Objektmodell beschreibt Begriffe und semantische Festlegungen des OO Datenmodells (stark C++-lastig) ■ Datenbanksprachen ODL (Object Definition Language) und OQL (Object Query Language): mögliche Schnittstelle zur Datendefinition und -manipulation ■ Spracheinbettungen (oder Bindings) für C++, Java und SMALLTALK ■ Bezug zur OMG, zu CORBA und zur ANSI-C++-Version Beispiele zu ODL und OQL folgen in späteren Kapiteln. Andreas Heuer, Gunter Saake – Datenbanken I 4-51 Einordnung sonstiger Datenbankmodelle ■ GOOD (Graph-Oriented Object Database Model): Ecken eines Graphen als Werte, Objekte und Typen ■ Klassenlose Datenmodelle: Statt Klassen Objekte als Prototypen ■ Wissensrepräsentation / Feature-Terme: Feature-Terme in einer Subsumptionshierarchie ◆ ■ Lilog-Datenmodell, F-Logic Komplex-Objekt-Datenmodelle im Ingenieurbereich: Unterstützung von hierarchischen Ist-Teil-Von-Beziehungen ◆ ◆ Molekül-Atom-Datenmodell STEP-Modell mit der Datenbeschreibungssprache EXPRESS Andreas Heuer, Gunter Saake – Datenbanken I 4-52