HPI MOOC • n-äre Relationships • Rollen von Relationships • Konvertierung in binäre Relationships • Attribute an Relationships Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 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. Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 Beispiel: Bestellung Als Entity: Kunde 1 platziert N Bestellung M Als Relationship: für_ein 1 Produkt Kunde M bestellt Als Attribut: Kunde M N Produkt BestellNr kauft N Produkt Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 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! Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 Modellierung einer kleinen Beispielanwendung: E/R Studenten Vorlesungen Reale Welt: Universität Konzeptuelle Modellierung MatrNr Studenten Vorlesungen hören Name VorlNr Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 Titel 30.10.2016 Modellierung einer kleinen Beispielanwendung: UML Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 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/2013/07/uml-classdiagram-cheat-sheet.pdf Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 UML Notation Assoziation: * * Generalisierung: Aggregation: (Teil-von) Komposition: (Spezialfall von Aggregation) Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 Multiplizität KlasseA +Att1 +Att2 KlasseB Assoziation 1 k..l +op() 1..* i..j +Att1 +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! Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 Assoziationsklasse Klasse A Klasse B +Att1 +Att2 +Att1 +Att2 * * + op() + op() Klasse C +Att1 +Att2 … für Attribute der Assoziation Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 Klassen und Assoziationen Studenten +MatrNr : int +Name : String +Semester : int +Notenschnitt() : float +SummeWochenstunden() : short +Hörer voraussetzen +Nachfolger 1..* * Vorlesungen hören * * +VorlNr : int +Titel : String +SWS : int +AnzHörer() : int +DurchfallQuote() : float Legende: Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 +: public 30.10.2016 Komposition Studenten +MatrNr : int +Name : String +Semester : int Prüfungen +Prüfling 1 absolviert * +Notenschnitt() : float +SummeWochenstunden() : short +Note : Decimal +Datum : Date * +verschieben() * ... +Prüfungsstoff 1 1 +Prüfer Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 ... 30.10.2016 Begrenzungsflächendarstellung Polyeder 1 (4, ) Hülle N (1,1) PolyID Flächen (3, ) N FlächenID BeispielPolyeder Begrenzung M (2, 2) Kanten N (2, 2) StartEnde M (3, ) Punkte KantenID X Y Z Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 Begrenzungsflächenmodellierung von Polyedern in UML Polyeder +PolyID : int +... +Gewicht() : float +Volumen() : float +skalieren() +verschieben() +rotieren() Punkte Flächen Hülle 11 1..* 4..* Kanten +FlächenID : int +... +Umfang() : float +Volumen() : float Begrenzung 2* 3..* * +KantenID : int +... +Länge() : float Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 StartEnde 3..* * 2* +X : float +Y : float +Z : float +rotieren() +verschieben() +skalieren() 30.10.2016 +H örer +M atrN r : int +N ame : String +Semester : int +N achfolger 1..* * Vo rlesung en hören +N otenschnitt() : float +SummeW ochenstunden() : short 1 voraussetzen +Prüfling +VorlN r : int +T itel : String +SW S : int * +AnzH örer() : int +D urchfallQ uote() : float Prüfung en +N ote : D ecimal +D atum : D ate * * 1 * * +Prüfungsstoff gelesenVon Stud enten +verschieben() * 1 +Prüfer Pro fesso ren Assistenten +Boss +F achgebiet : String +G ehalt() : short * arbeitenF ür Ang estellte +PersN r : int +N ame : String +G ehalt() : short 1 +R ang : String +N otenschnitt() : float +G ehalt() : short +Lehrstundenzahl() : short 1 +D ozent Anwendungsfälle (use cases) Fakultäten -liest * -Lehrveranstaltung -Hörer * 1 Vorlesungen anbieten ProfessorIn -prüft 1 «verwendet» * StudentIn 1 -Prüfling * * Prüfungen durchführen * «verwendet» Studienplan überprüfen Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 -Beisitzer 1 AssistentIn 30.10.2016 Interaktions-Diagramm: Modellierung komplexer Anwendungen ProfessorIn Bibliothek Terminkalender Raumvergabe Vorlesungsverz. entleihe_Buch() freierTerm in() reserv iereTerm in() eintragenTerm in() ankündigenVorlesung() Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 Interaktions-Diagramm: Prüfungsdurchführung StudentIn Prüfungsamt Vorlesung ProfessorIn AssistentIn anm elden() berechtigt?() gelesenVon() inform ieren() freierTerm in() create() Prüfung bestätigen() Beisitz() benachrichtigen() bewerten() protokollieren() UML Notationsübersicht: http://www.oose.de/nuetzliches/fachliches/uml/uml-notationsubersicht/ Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016 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 Datenbanksysteme für Hörer anderer Fachrichtungen WS 2016/2017 30.10.2016