Datenbankentwurf …bisher: bi h • konzeptueller Entwurf mittels E/R-Modell • einfache Funktionalitäten • (min, (min max)-Notation • n-stellige Relationships (n>2) • schwache Entities …nun: Generalisierung, Aggregation, UML-Modell, Ausblick relationale DBMS Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Generalisierung Generalisierung / Spezialisierung: G Is-a Is a S S ist eine Spezialisierung von G Beispiel: Lehrveranstaltung Is-a Praktikum Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Generalisierung Uni Uni-Beispiel Beispiel Uni-Mitglieder Name is-a Studenten Angestellte PersNr is-a MatrNr Rang Fachgebiet Assistenten Professoren Raum Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Zusamenfassung Universitätsschema mit Generalisierung Ge e a se u gu und d (min, ( , max)a ) Markierung Nächste N h S Seite i Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 voraussetzen ((0,*)) (0,*)) (0, MatrNr N Name Studenten Semester (0,*) (0,*) Note hören (3,*) Vorlesungen g (0,*) Assistenten (1,1) Titel (0 *) (0,*) ( ) (0,*) Professoren f arbeitenFür b i is-a PersNr Name SWS lesen prüfen (0 *)) (0, Fachgebiet (1,1) V lN VorlNr Angestellte Rang Raum Aggregation Fahrräder Teil-von Teil von Teil-von Teil von Rahmen Räder Teil-von Teil-von Teil-von Teil-von Rohre Lenker Felgen Speichen ... ... ... Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 ... 29.10.2013 Fahrzeuge is-a Aggregation und Generalisierung mot -Fahrzeuge mot. Fahrzeuge Unmot -Fahrzeuge Unmot. Fahrzeuge is-a is-a Fahrräder Segler Teil-von Motorräder Teil-von Rahmen T il Teil-von Rohre Automobile Räder T il Teil-von T il Teil-von T il Teil-von Lenker Felgen Speichen Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Entwurfskriterien Regeln g zur Klassifikation von Entities und Attributen: Entities sollten deskriptive Informationen enthalten. Mehrwertige Attribute sollten als Entities klassifiziert werden. Att ib t sollten Attribute llt der d Entity E tit zugeordnet d t werden, d die di sie am direktesten beschreibt. Redundante Relationships sollten vermieden werden. Wi eine Wie i IInformationseinheit f ti i h it repräsentiert ä ti t wird, id ist anwendungsabhängig. Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 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 2013/2014 29.10.2013 Modellierung einer kleinen Beispielanwendung: E/R Studenten Vorlesungen R l Welt: Reale W lt Universität U i ität Konzeptuelle Modellierung M N MatrNr Studenten Vorlesungen hören Name VorlNr Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 Titel 29.10.2013 Modellierung einer kleinen Beispielanwendung: UML Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 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 V h l ((~Operationen/Methoden) O i /M h d ) Assoziationen sso a o e zwischen sc e Klassen asse entsprechen e sp ec e Beziehungstypen e e u gs ype Generalisierungshierarchien Aggregation gg g Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 UML Notation Assoziation: * * Generalisierung: Aggregation: (Teil-von) Komposition: ((Spezialfall von Aggregation) gg g ) Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Multiplizität KlasseA +Att1 +Att2 KlasseB Asso iation 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 Funktionalitätsangabe im ERModell Nicht zur (min (min,max)-Angabe: max) Angabe: Vorsicht! Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Klassen und Assoziationen Studenten +MatrNr : int +Name : String g +Semester : int +Notenschnitt() : float +SummeWochenstunden() : short +Hörer Hö 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 2013/2014 +: public 29.10.2013 Komposition Studenten +MatrNr : int +Name : String S +Semester : int Prüfungen +Prüfling 1 absolviert * +Notenschnitt() : float +SummeWochenstunden() S W h t d () : short h t +Note : Decimal +Datum : Date * +verschieben() * ... +Prüfungsstoff 1 1 +Prüfer Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 ... 29.10.2013 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 2013/2014 29.10.2013 Begrenzungsflächenmodellierung von Polyedern in UML Polyeder +PolyID : int +... +Gewicht() : float +V l +Volumen() () : fl floatt +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 2013/2014 StartEnde 3..* * 2* +X : float +Y : float +Z : float +rotieren() +verschieben() +skalieren() 29.10.2013 +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 Prüfungsstoff ge elesenVon Stud enten +verschieben() * 1 +Prüfer Pro fesso ren Assistenten +B +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 Hö * 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 2013/2014 -Beisitzer 1 AssistentIn 29.10.2013 Interaktions-Diagramm: Modellierung komplexer Anwendungen ProfessorIn Bibliothek Terminkalender Raumvergabe Vorlesungsverz. entleihe_Buch() freierTerm in() reserv iereTerm in() eintragenTerm i T iin() () ankündigenVorlesung() Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Interaktions-Diagramm: Prüfungsdurchführung StudentIn Prüfungsamt Vorlesung ProfessorIn AssistentIn anm elden() berechtigt?() gelesenVon() l V () inform ieren() freierTerm in() create() Prüfung bestätigen() Beisitz() benachrichtigen() bewerten() protokollieren() Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Das as relationale e at o a e Datenmodell ate ode Studenten MatrNr Name 26120 Fichte 25403 Jonas ... ... hören MatrNr VorlNr 25403 5022 26120 5001 ... ... Vorlesungen VorlNr Titel 5001 Grundzüge 5022 Glaube und Wissen ... ... Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Historische Entwicklung relationaler DBMS • Codasyl, Anfang 1960: netzwerkartiges Datenmodell • IMS, Mitte 1960: hierarchisches Datenmodell • Ted Codd, 1970: Grundlage relationales Datenmodell • System R, Mitte 1970: relationales Datenbanksystem ( (Forschungsprototyp) g p yp) • Genealogie-Poster: g http://www.hpi.unip p potsdam.de/naumann/projekte/rdbms_genealogy.html Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Historische Entwicklung relationaler DBMS Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Historische Entwicklung relationaler DBMS Kommerzielle relationale Datenbanksysteme, y Fokus OLTP • • • • • Oracle V2, Ende 1970 Ingres g ((Berkeley), y) Ende 1970 PostgreSQL g SQL/DS, Anfang 1980: IBM DB2 MS SQL Server, 1990 ((aus Sybase) y ) MySQL, Ende 1990 ab Ende 1990: Objektrelationale Erweiterungen Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013 Historische Entwicklung DBMS Spezialisierte Systeme: • Objektorientierte j DBMS ((ab Ende 1980)) • XML DBMS (ab Ende 1990) • Hauptspeicherdatenbanksysteme p p y ((ab Ende 1990)) • Analytische Datenbanksysteme (Fokus OLAP) ((ab Anfang g 2000)) Datenbanksysteme für Hörer anderer Fachrichtungen WS 2013/2014 29.10.2013