150 likes | 286 Views
Kapitel 3: Logische Datenmodelle. Hierarchisches Modell Netzwerkmodell Relationales Modell Objektorientiertes Modell. Student. Mat r Nr. Name. Semester. Vorlesung. Dozent. Vor l Nr. Titel. SWS. PersNr. Name. Rang. Raum. S. Mustermann. V. Stochastik. V. Java. D. Stadje.
E N D
Kapitel 3: Logische Datenmodelle • Hierarchisches Modell • Netzwerkmodell • Relationales Modell • Objektorientiertes Modell
Student MatrNr Name Semester Vorlesung Dozent VorlNr Titel SWS PersNr Name Rang Raum S Mustermann V Stochastik V Java D Stadje D Vogt D Schreiner S Wacker V Zahlentheorie D Vogt Hierarchisches Modell Schema: Ausprägung (S = Student, V = Vorlesung, D = Dozent):
COURSE COURSE# TITLE DESCRIPN OFFERING PREREQ COURSE# TITLE DATE LOCATION FORMAT TEACHER STUDENT EMP# NAME EMP# NAME GRADE Schema im Hierarchischen Modell
COURSE M Dynamics 23 PREREQ 750106 Oslo F M Calculus 2 19 OFFERING PREREQ M Trigonometry 16 741104 Dublin F 3 OFFERING 730813 Madrid F 3 OFFERING TEACHER 761620 Tallis, T. B 421633 Sharp, R. STUDENT 183009 Gibbons, O. A STUDENT 102141 Byrd, W. B STUDENT Ausprägung im Hierarchischen Modell
COURSE COURSE# TITLE DESCRIPN OFFERING PREREQ COURSE# TITLE DATE LOCATION FORMAT TEACHER STUDENT EMP# NAME EMP# NAME GRADE Operationen im Hierarchischen Modell Welche Studenten sind im Kurs M23 am 13.08.1973 ? GU COURSE(COURSE#='M23') OFFERING (DATE='730813') if gefunden then begin GNP STUDENT while gefunden do begin write(STUDENT.NAME) GNP STUDENT end end;
owner - Typ Autor Simmel set - Typ Selber Richtig Der Henker member - Typ Buch atmen streiken Netzwerkmodell schreibt
Wacker Student Mustermann ss SV vs Vorlesung Java Stochastik Zahlentheorie Netzwerk mit M:N-Beziehung
Apfel Birne Tomate 30 12 18 24 22 18 Lehmann Schulz Meier Kettrecords mit Attribut im Netzwerkmodell Ware 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
Apfel Birne Tomate WB PB 30 12 18 24 22 18 Lehmann Schulz Meier Operationen im Netzwerkmodell PERSON.NAME := ’SCHULZ’; FIND ANY PERSON USING NAME; IF GEFUNDEN THEN BEGIN FIND FIRST BESTELLUNG WITHIN PB; WHILE GEFUNDEN DO BEGIN FIND OWNER WITHIN WB; GET WARE; WRITE(WARE.BEZEICHNUNG); FIND NEXT BESTELLUNG WITHIN PB; END END;
Student Hoert Vorlesung MatNr Vorname Nachname 653467 Erika Mustermann MatNr VorNr VorNr Titel Umfang 875462 Willi Wacker 6.718 Java 4 432788 Peter Pan 875462 6.718 6.174 Stochastik 2 432788 6.718 6.108 Zahlentheorie 4 875462 6.108 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.
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)) end; class Vorlesung type tuple (titel : String, gehoert_von : set (Student)) end;