Kapitel 3: Logische Datenmodelle Hierarchisches Modell Netzwerkmodell Relationales Modell Objektorientiertes Modell
Hierarchisches Modell Schema: Vorlesung VorlNr Titel SWS Student MatrNr Name Semester Dozent PersNr Rang Raum Ausprägung (S = Student, V = Vorlesung, D = Dozent): Mustermann Stochastik V Java Stadje D Vogt Schreiner Wacker S Zahlentheorie
Schema im Hierarchischen Modell COURSE# TITLE DESCRIPN COURSE PREREQ OFFERING LOCATION DATE FORMAT EMP# NAME GRADE STUDENT TEACHER
Ausprägung im Hierarchischen Modell 23 COURSE Dynamics Calculus 19 Trigonometry 16 PREREQ Oslo 750106 F 2 OFFERING Dublin 741104 3 Madrid 730813 Sharp, R. 421633 Tallis, T. 761620 B STUDENT Gibbons, O. 183009 A Byrd, W. 102141 TEACHER
Operationen im Hierarchischen Modell Welche Studenten sind im Kurs M23 am 13.08.1973 ? COURSE# TITLE DESCRIPN COURSE PREREQ OFFERING LOCATION DATE FORMAT EMP# NAME GRADE STUDENT TEACHER GU COURSE(COURSE#='M23') OFFERING (DATE='730813') if gefunden then begin GNP STUDENT while gefunden do write(STUDENT.NAME) end end;
Netzwerkmodell Autor Buch Simmel owner - Typ set - Typ member - Typ schreibt Der Henker Selber atmen Richtig streiken
Netzwerk mit M:N-Beziehung Student SV Vorlesung ss vs Mustermann Wacker Java Stochastik Zahlentheorie
Kettrecords mit Attribut im Netzwerkmodell Ware Apfel Birne Tomate Lehmann Schulz Meier 30 12 18 24 22 Nr Bezeichnung Wb Bestellung Anz Pb Person Nr Name
Operationen im Netzwerkmodell Typische Operation : Navigation durch die verzeigerten Entities FIND ANY Person FIND NEXT Bestellung WITHIN PB FIND OWNER WITHIN WB
Operationen im Netzwerkmodell PERSON.NAME := ’SCHULZ’; FIND ANY PERSON USING NAME; IF GEFUNDEN THEN BEGIN FIND FIRST BESTELLUNG WITHIN PB; WHILE GEFUNDEN DO FIND OWNER WITHIN WB; GET WARE; WRITE(WARE.BEZEICHNUNG); FIND NEXT BESTELLUNG WITHIN PB; END END; Apfel Birne Tomate Lehmann Schulz Meier 30 12 18 24 22 WB PB
Relationales Datenmodell pro Entity-Typ gibt es eine Tabelle mit Spalten benannt nach den Attributen. pro Relationshiptyp gibt es eine Tabelle mit Spalten für die Schlüssel der beteiligten Entity-Typen und ggf. weitere Spalten. MatNr Vorname Nachname 653467 Erika Mustermann 875462 Willi Wacker 432788 Peter Pan Student MatNr VorNr 875462 6.718 432788 6.718 875462 6.108 Hoert VorNr Titel Umfang 6.718 Java 4 6.174 Stochastik 2 6.108 Zahlentheorie 4 Vorlesung
Operationen im Relationalen Modell Selektion: Suche alle Tupel einer Relation mit gewissen Attributeigenschaften Projektion: filtere gewisse Spalten heraus Verbund: Finde Tupel in mehreren Relationen, die bzgl. gewisser Spalten übereinstimmen. Query: Welche Studenten hören die Vorlesung Zahlentheorie? SELECT Student.Nachname from Student, Hoert, Vorlesung WHERE Student.MatNr = Hoert.MatNr AND Hoert.VorNr = Vorlesung.VorNr AND Vorlesung.Titel = 'Zahlentheorie'
Das Objektorientierte Datenmodell Eine Klasse repräsentiert einen Entity-Typ zusammen mit seinen Beziehungen und mit darauf erlaubten Operationen. Attribute müssen nicht atomar sein, sondern bestehen ggf. aus Tupeln, Listen und Mengen. Die Struktur einer Klasse kann an eine Unterklasse vererbt werden. Binäre Beziehungen können durch mengenwertige Attribute modelliert werden.
Beispiel für objektorientierte Modellierung class Person type tuple (name : String, geb_datum : Date, kinder : list(Person)) end; class Student inherit Person type tuple (mat_nr : Integer, hoert : set (Vorlesung)) class Vorlesung type tuple (titel : String, gehoert_von : set (Student))