HPI MOOC n-äre Relationships Rollen von Relationships Konvertierung in binäre Relationships Attribute an Relationships
Entwurfskriterien Regeln zur Klassifikation von Entities und Attributen: Entities sollten deskriptive Informationen enthalten. Mehrwertige Attribute sollten als Entities klassifiziert werden. Attribute sollten der Entity zugeordnet werden, die sie am direktesten beschreibt. Redundante Relationships sollten vermieden werden. Wie eine Informationseinheit repräsentiert wird, ist anwendungsabhängig.
Beispiel: Bestellung Als Entity: Kunde platziert N Bestellung M für_ein Als Relationship: Kunde M bestellt N Produkt Produkt Als Attribut: Bestell- Nr Kunde M kauft N Produkt
Aufgabe für nächste Woche Lesen und versuchen Sie zu verstehen aus Datenmanagement mit SQL, HPI open.hpi.de/courses/sql: Woche 2: 2.08 Designprinzipien Fragen dazu bitte nächste Woche!
Modellierung einer kleinen Beispielanwendung: E/R Studenten Vorlesungen Reale Welt: Universität Konzeptuelle Modellierung MatrNr Name Studenten hören Vorlesungen VorlNr Titel
Modellierung einer kleinen Beispielanwendung: UML
Datenmodellierung mit UML UML: Unified Modelling Language De-facto Standard für den objekt-orientierten Software-Entwurf Zentrales Konstrukt: Klasse (class), modelliert gleichartige Objekte hinsichtlich Struktur (~Attribute) Verhalten (~Operationen/Methoden) Assoziationen zwischen Klassen entsprechen Beziehungstypen Generalisierungshierarchien Aggregation Cheat sheet Class Diagram: http://www.code-meets-design.de/wpcontent/uploads/203/07/uml-classdiagram-cheat-sheet.pdf
UML Notation Assoziation: Generalisierung: Aggregation: (Teil-von) Komposition: (Spezialfall von Aggregation)
Multiplizität KlasseA +Att +Att2 +op() k..l Assoziation i..j.. KlasseB +Att +Att2 +op() Jedes Element von KlasseA steht mit mindestens i Elementen der KlasseB in Beziehung... und mit maximal j vielen KlasseB-Elementen Analoges gilt für das Intervall k..l Multiplizitätsangabe ist analog zur einfachen Funktionalitätsangabe im ER-Modell Nicht zur (min,max)-angabe: Vorsicht!
Assoziationsklasse Klasse A +Att +Att2 + op() Klasse B +Att +Att2 + op() Klasse C +Att +Att2 für Attribute der Assoziation
Klassen und Assoziationen Studenten +MatrNr : int +Name : String +Semester : int +Notenschnitt() : float +SummeWochenstunden() : short +Hörer.. hören +Nachfolger Vorlesungen +VorlNr : int +Titel : String +SWS : int voraussetzen +AnzHörer() : int +DurchfallQuote() : float Legende: +: public
Komposition Studenten +MatrNr : int +Name : String +Semester : int +Notenschnitt() : float +SummeWochenstunden() : short +Prüfling absolviert... +Prüfer Prüfungen +Note : Decimal +Datum : Date +verschieben() +Prüfungsstoff...
Begrenzungsflächendarstellung Polyeder (4, ) Hülle N (,) Flächen N (3, ) Begrenzung M (2, 2) Kanten N (2, 2) StartEnde M (3, ) Punkte PolyID FlächenID KantenID X Y Z Beispiel- Polyeder
Begrenzungsflächenmodellierung von Polyedern in UML Polyeder +PolyID : int +... +Gewicht() : float +Volumen() : float +skalieren() +verschieben() +rotieren() Flächen Kanten Hülle +FlächenID : int Begrenzung +KantenID : int StartEnde +... +... 4.... +Umfang() : float 2 3.. 3.. 2 +Länge() : float +Volumen() : float Punkte +X : float +Y : float +Z : float +rotieren() +verschieben() +skalieren()
Studenten +MatrNr : int +Name : String +Semester : int +Notenschnitt() : float +SummeWochenstunden() : short +Prüfling +Hörer.. hören voraussetzen +Nachfolger Vorlesungen +VorlNr : int +Titel : String +SW S : int +AnzHörer() : int +DurchfallQuote() : float Prüfungen +Note : Decimal +Datum : Date +verschieben() +Prüfer +Prüfungsstoff gelesenvon Assistenten +Fachgebiet : String +Gehalt() : short arbeitenfür +Boss Professoren +Rang : String +Notenschnitt() : float +Gehalt() : short +Lehrstundenzahl() : short +Dozent Angestellte +PersNr : int +Name : String +Gehalt() : short
Anwendungsfälle (use cases) Fakultäten -Lehrveranstaltung Vorlesungen anbieten -Hörer ProfessorIn -prüft «verwendet» -liest StudentIn -Prüfling Prüfungen durchführen -Beisitzer «verwendet» Studienplan überprüfen AssistentIn
Interaktions-Diagramm: Modellierung komplexer Anwendungen ProfessorIn Bibliothek Terminkalender Raumvergabe Vorlesungsverz. entleihe_buch() freiertermin() reservieretermin() eintragentermin() ankündigenvorlesung()
Interaktions-Diagramm: Prüfungsdurchführung StudentIn Prüfungsamt Vorlesung ProfessorIn AssistentIn anmelden() berechtigt?() gelesenvon() informieren() freiertermin() Prüfung create() benachrichtigen() bewerten() bestätigen() Beisitz() protokollieren() UML Notationsübersicht: http://www.oose.de/nuetzliches/fachliches/uml/uml-notationsubersicht/
Quiz UML Aus dem Stanford MOOC: https://lagunita.stanford.edu/courses/db/uml/selfpaced/ courseware/ch-unified_modeling_language/seq-quizuml/ Quiz Q2 + Q5 Q7