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