Relationenmodell Begriffe des Relationenmodells Begriff Attribut Wertebereich Codd im Jahre 1970 Relationenname R A1 ... ... Attribute An } Relationenschema ... ... Attributwert Relationenschema Relation Tupel Datenbankschema Datenbank Relation Tupel Veranschaulichung eines Relationenschemas und einer Relation Andreas Heuer, Gunter Saake – Datenbanken I 4-2 Andreas Heuer, Gunter Saake – Datenbanken I Pers Telefon ➠ Weitere Datenbankmodelle 4-1 Andreas Heuer, Gunter Saake – Datenbanken I PLZ 18209 39106 39104 18209 38106 18059 69121 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 Nachname Heuer Saake Korn Möller Jagellovsk Hellhof Loeser ➠ Objektorientierte Modelle Vorname Andreas Gunter Michael Andreas Tamara Antje Christa ➠ Netzwerkmodell und hierarchisches Modell PANr 4711 5588 6834 7754 8832 9912 9999 Personen Zwei Relationen zur Darstellung von ➠ Relationenmodell Andreas Heuer, Gunter Saake – Datenbanken I 4-4 4. Datenbankmodelle für die Realisierung 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) 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 Formalisierung Relationenmodell I Formalisierung Relationenmodell III Attribute und Domänen Datenbankschema und Datenbank ■ Menge von Relationenschemata ■ Datenbank über : Menge von Relationen ■ Datenbank ■ Relation : Datenbankschema nichtleere, endliche Menge: Universum ■ , wobei : Attribut ■ über : : Wer- Menge endlicher, nichtleerer Mengen: jedes tebereich oder Domäne ■ : Domäne von dom : Attributwert für dom ■ : Basisrelation total definierte Funktion dom ■ Andreas Heuer, Gunter Saake – Datenbanken I 4-6 Andreas Heuer, Gunter Saake – Datenbanken I Begriffe des Relationenmodells II Begriff Schlüssel ■ : Relationenschema ) ist endliche Menge von (kurz: , Tupel genannt für REL ■ Es gilt ■ Relation über Abbildungen ■ Restriktion von auf ( ) Menge aller Relationen über X-Wert von : 4-5 dom analog Andreas Heuer, Gunter Saake – Datenbanken I Relationenschemata und Relationen Fremdschlüsselbedingung 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 Fremdschlüssel Formalisierung Relationenmodell II Primärschlüssel 4-8 Andreas Heuer, Gunter Saake – Datenbanken I 4-7 Unterschied zu der klassischen Definition einer Relation als Teilmenge des kartesischen Produktes: Beispiel ■ Selektion ’Meyer’ Vorname Andreas Gunter Michael bestehen aus Tupeln Nachname Heuer Saake Korn < PANr 4711 5588 6834 und Relationen Nachname Heuer Saake Korn Vorname Andreas Gunter Michael PANr 4711 5588 6834 Relationenalgebra mit < % # $ ! ! " ■ Projektion + * () ' &! 6 5 = Andreas Heuer, Gunter Saake – Datenbanken I 4-10 Unterschied zu der klassischen Definition einer Relation als Teilmenge des kartesischen Produktes Andreas Heuer, Gunter Saake – Datenbanken I Integritätsbedingungen . - - : 2 4 - - , 3- 1 1 0 / und ■ 6 5 # # 7 " 9 * 8 9 * 8 ■ Primattribut: Element eines Schlüssels ■ Primärschlüssel: ausgezeichneter Schlüssel ■ Fremdschlüssel: : ; ; 4-9 Schlüssel: ist minimale identifizierende Attributmenge und für für sind ungleich bei Definition mittels kartesischem Produkt! Andreas Heuer, Gunter Saake – Datenbanken I , Identifizierende Attributmenge dom dom dom dom dom dom 4-12 Andreas Heuer, Gunter Saake – Datenbanken I 4-11 Relationenalgebra III Schema im Netzwerkmodell ■ ! - in # # ■ konkrete Set-Ausprägung: Besitzer (Owner) und Teilnehmer (Members) ■ Netzwerkmodell entspricht ER-Modell mit Einschränkungen ◆ ◆ ◆ ■ Andreas Heuer, Gunter Saake – Datenbanken I 4-14 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 Netzwerkmodell Relationenalgebra II ■ und Formale Definition: ◆ Menge der Record-Typen als Knoten Set-Typen als Kanten ( Kante, falls Relationship) Umbenennung ◆ ■ Mengenoperationen ■ Netzwerkschema: gerichteter Graph Netzwerkmodell: 1971 vom Normungsausschuß CODASYL-DBTG definiert 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 ER-Modell Entity Entity-Typ Attribut binärer 1:nBeziehungstyp Telefon 038203-12230 0381-498-3401 0381-498-3427 0391-345677 0391-5592-3800 06221-400177 4-13 Andreas Heuer, Gunter Saake – Datenbanken I Relationenmodell Tupel Relationenschema Attribut Relation Netzwerkmodell logical record Record-Typ Feld Link oder auch Set-Typ 4-15 Beispielausprägung im Netzwerkmodell BuchExemplar Student Hörer Simulation einer allgemeinen Relationship Vorlesung R 12 | 7. T DB I | 4 | 6. | ... x13 | 1-345 L1 Lk 13 | 42. x01 | 1-432 E1 ........... Ek T1 WiInf I | 2 | 1. | ... y42 | 3-987 ............ Tk Kett-Entity 4242 | 123 |... 732 | 1. x1 | 5-555 007700 | 111 |... Andreas Heuer, Gunter Saake – Datenbanken I 4-18 Beispielschema im NWM Andreas Heuer, Gunter Saake – Datenbanken I Detaildarstellung einer Beispielausprägung Vorlesung Student PANr | Matrikelnr | ... System V_Bezeichnung | SWS | Semester | ... hö_1 13|42. x01 | 1-432 hö_2 007700|111 4242|123 x13 | 1-345 la 4-20 12|7. v42 |3-987 BuchExemplar Inventarnr | ISBN | ... Andreas Heuer, Gunter Saake – Datenbanken I Hörer lfd# | Semester 4-17 Andreas Heuer, Gunter Saake – Datenbanken I 4-19 Beispiel im hierarchischen Datenmodell Erweiterte relationale und semantische Modelle Vorlesung PANr | Matrikelnr | ... Geschachtelte Relationen: Das NF -Modell Student V_Bezeichnung | SWS | Semester | ... NF -Relationen erlauben komplexe Attributwerte in dem Sinne, daß Attribute selbst wieder Relationen sein können. hö_2 hö_1 la Hörer Hörer BuchExemplar Inventarnr | ISBN | ... virtual lfd# | Semester Andreas Heuer, Gunter Saake – Datenbanken I 4-22 Hierarchisches Datenmodell Andreas Heuer, Gunter Saake – Datenbanken I 4-24 Skizze der Speicherstrukturen im hierarchischen Datenmodell wie NWM, aber nur Hierarchien System 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 ... Andreas Heuer, Gunter Saake – Datenbanken I 4-23 PNF-Relationen Verallgemeinerte geschachtelte Relationen Relationen in PNF haben auf jeder Stufe der Schachtelung einen flachen Schlüssel. Beliebige Kombination der Typkonstruktoren A 1 PNF-Relation: 2 3 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 Erweitertes NF -Modell: eNF -Modell PNF: Partitioned Normal Form ■ 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-26 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 4-28 PNF-Relation und entschachtelte äquivalente Relation Beispiel im NF -Modell Fachbereich Andreas Heuer, Gunter Saake – Datenbanken I A Gehalt 1 6000 2 6000 3 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 550 2800 750 4-25 Andreas Heuer, Gunter Saake – Datenbanken I 4-27 Modell nach Beeri II 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 Höhere Konzepte ◆ ◆ ◆ ◆ Metaklassen Methoden Vererbung und Overriding von Methoden Einkapselung 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 Andreas Heuer, Gunter Saake – Datenbanken I Modell nach Beeri Semantische Datenmodelle Semantische Datenmodelle unterstützen weitere Abstraktionskonzepte wie Generalisierung und Spezialisierung ■ Strukturteil ◆ ■ Funktionale Datenmodelle: Alle Anwendungsobjekte werden mit EntityTypen und Funktionen modelliert. ■ IFO-Modell: IFO steht für IST-Beziehungen, ■ SDM: viele, teilweise auch redundante Konzepte zur Modellierung ◆ ◆ ◆ Funktionen und Objekttypen. ■ ◆ 4-29 Typen und Typkonstruktoren Objektidentität Klassen Strukturvererbung (oder Klassen- und Typhierarchie) Operationenteil ◆ Andreas Heuer, Gunter Saake – Datenbanken I 4-32 Anfrageoperationen Änderungsoperationen Andreas Heuer, Gunter Saake – Datenbanken I 4-31 Klassifikation von OODBS Strukturteil II Systeme (seit 1987, Manifesto 1989, ODMG-Industrie-Standard 1993) ■ ■ Klassen ◆ ■ Erweiterung objektorientierter Programmiersprachen (OOPLs) ◆ C++- oder SMALLTALK-Datenmodell (etwa GemStone, ObjectStore, POET, ) ◆ 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) ◆ ■ ■ beschreiben Objekte mit ähnlichen Eigenschaften Typ, Objektvorrat und Objektbehälter Methoden Komponenten-Beziehungen bei Klassen (VERLAGE Komponente von BÜCHERN) Neuentwicklungen ◆ eigenes OO Datenmodell (etwa O , Itasca, OSCAR) Andreas Heuer, Gunter Saake – Datenbanken I 4-34 Andreas Heuer, Gunter Saake – Datenbanken I Definition eines objektorientierten Datenbanksystems 4-36 Strukturteil 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 ■ 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 Definition eines Objekttyps set of(tuple of( Personen Person 6 5 : tuple of( : string, : string), : integer, : string, : string, : integer), : string), : integer, : tuple of( Graphische Definition eines Objekttyps # $ # str str int str str Vorname Nachname PLZ Ort Straße int str # 4-40 Symbole der graphischen Notation 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 Hausnummer Telefon Andreas Heuer, Gunter Saake – Datenbanken I Is-A-Beziehungen ◆ date Geburtsdatum # " 4-38 Strukturteil III ◆ Telefone 7 Andreas Heuer, Gunter Saake – Datenbanken I ■ Adresse 9 * 8 9 * 8 : set of( : date)) Name int PANr 4-37 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 Beispiel Objektrelation : integer, : tuple( : string, : string), : tuple( : integer, : string, : string, : integer), : set( : string), : date) RDB Lehrbuch ER type tuple( Princ. of DBS class 0-8053-1753-3 Stichworte Stichwort RDB DB2 6 5 9 * Autoren Autor Vossen Witt Elmasri Navathe 3-89319-175-5 Verlag Titel ISBN Bücher Klassendeklarationen im O -Modell I # $ # 9 * 8 # # 7 " 4-42 8 Andreas Heuer, Gunter Saake – Datenbanken I Andreas Heuer, Gunter Saake – Datenbanken I 4-44 Klassenhierarchie a) versus Typhierarchie b) Graphische Deklaration einer Klasse Bücher Personen a) Personen b) str str Buch Name Name Mitarbeiter Studenten str ISBN Studenten str Versionen Autoren Titel Stichworte real Verlag str int str str Version Mitarbeiter Matrnr real Gehalt Autor Name StudentenUndMitarbeiter int Matrnr int int Auflage Jahr Andreas Heuer, Gunter Saake – Datenbanken I str Name Gehalt int money int Seiten Preis Matrnr 4-41 Andreas Heuer, Gunter Saake – Datenbanken I str real Name Gehalt 4-43 Operationen Höhere Konzepte mindestens die Möglichkeiten wie in Relationenalgebra / SQL ■ objekt- oder klassenspezifische Operationen ■ relationale Semantik: Extraktion von Werten aus Zuständen von Objekten geschachtelte Relationen ■ 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) : ■ ■ : ■ 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 Andreas Heuer, Gunter Saake – Datenbanken I 4-48 Klassendeklarationen im O -Modell II schwach ausgeprägt bei OOPL-Erweiterungen # inherits type tuple( # $ class Operationen II # * % ) ( 9 ) # $ 8 “OSQL” mit relationaler Semantik (nicht so mächtig wie Standard-SQL) 5 ■ 5 ) 6 Standard-Methoden auf -Klassen (Selektionen mit sehr einfachen Selektionsprädikaten) # # ( ■ # : integer, : string, : , : , : set(tuple( : string, : real))) # Andreas Heuer, Gunter Saake – Datenbanken I 4-45 Andreas Heuer, Gunter Saake – Datenbanken I 4-47 Einordnung sonstiger Datenbankmodelle Methodendeklaration im O -Modell Klassenlose Datenmodelle: Statt Klassen Objekte als Prototypen ■ Wissensrepräsentation / Feature-Terme: Feature-Terme in einer Subsumptionshierarchie ■ # GOOD (Graph-Oriented Object Database Model): Ecken eines Graphen als Werte, Objekte und Typen 9 ■ $ 6 # return ( self # : real in class 9 6 method body 9 6 # # ( 9 * ) 0.1 ◆ ■ Komplex-Objekt-Datenmodelle im Ingenieurbereich: Unterstützung von hierarchischen Ist-Teil-Von-Beziehungen ◆ ◆ Andreas Heuer, Gunter Saake – Datenbanken I 4-50 Molekül-Atom-Datenmodell STEP-Modell mit der Datenbeschreibungssprache EXPRESS Andreas Heuer, Gunter Saake – Datenbanken I Klassendeklarationen im O -Modell III 4-52 Der ODMG-Standard Die Struktur des Standards ist viergeteilt: # inherits type tuple( # $ class Lilog-Datenmodell, F-Logic # * % ) ( 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 ) ■ # # 6 Objektmodell beschreibt Begriffe und semantische Festlegungen des OO Datenmodells (stark C++-lastig) # ( ■ 9 ) # $ : integer, : string, : , : , : set(tuple( : string, : real))) : money # 9 6 method Beispiele zu ODL und OQL folgen in späteren Kapiteln. Andreas Heuer, Gunter Saake – Datenbanken I 4-49 Andreas Heuer, Gunter Saake – Datenbanken I 4-51