Mod-6.8 6.3 Entity-Relationship-Modell Entity-Relationship-Modell, ER-Modell (P. Chen 1976): Kalkül zur Modellierung von Aufgabenbereichen mit ihren Objekten, Eigenschaften und Beziehungen. Weitergehende Zwecke: * Entwurf von Datenbanken; Beschreibung der Daten, die die DB enthalten soll, "konzeptionelles Schema" * Entwurf von Software-Strukturen Entwurfssprache UML basiert auf ER Grundbegriffe * Entity Objekt des Aufgabenbereiches * Relation Beziehung zwischen Objekten * Attribut Beschreibt ein Eigenschaft eines Objektes durch einen Wert Graphische und textuelle Notationen für ER-Modellierungen; hier graphische (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 608 Ziele: Zweck des ER-Modells verstehen in der Vorlesung: Erläuterungen dazu nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 nachlesen: G. Engels: Skript zu "Grundlagen von Datenbanken" J. D. Ullman: Principles of Database and Knowledge-Base Systems, Vol. I, Computer Science Press, 1988; Ch. 2.2 A.L.Furtado, E. J. Neuhold: Formal Techniques for Data Base Design, Springer, 1986; Ch. 9 -------------------------------------------------------------------------------- Mod-6.9 Einführendes Beispiel Ausschnitt aus der Modellierung einer Firmenorganisation: [Beispiel nach J. D. Ullman: Principles ...] Gehalt Ort Telefon Angestellte arbeitet Abteilung leitet Manager in Name Name Name Legende Entity-Typ Attribut Relation Eine konkrete Ausprägung zu dem Modell: 1700 1700 Paderborn Bielefeld 2000 Paderborn Paderborn 2837 2839 3416 Meier-1 Meier-3 Lager Verkauf Schmidt Müller Einkauf Produktion Mustermann (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 609 Ziele: Erster Eindruck vom ER-Modell in der Vorlesung: * Erläuterungen zu dem Beispiel, * Graphiken für die 3 Grundbegriffe, * Modell und konkrete Ausprägung dazu. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.10 Entities Entity: Objekt, Gegenstand aus dem zu modellierenden Aufgabenbereich Jede Entity hat eine eindeutige Identität, verschieden von allen anderen Entity-Menge (auch Entity-Typ): Zusammenfassung von Objekten, die im Modell als gleichartig angesehen werden, z. B. Angestellte, Abteilung, Manager Im Modell steht eine Entity-Menge für die ggf. nicht-endliche Menge aller infrage kommenden Objekte dieser Art. Eine konkrete Ausprägung zu der Entity-Menge ist eine endliche Teilmenge davon. Abteilung Einkauf steht im Modell für die Verkauf Menge aller in Produktion Unternehmen möglichen Lager Abteilungen konkrete Ausprägung dazu: die Menge der Abteilungen eines konkreten Unternehmens (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 610 Ziele: Entity-Mengen verstehen in der Vorlesung: Erläuterungen dazu * zur Eindeutigkeit von Entities; Vergleich mit Objekten in Java, * zu Entity-Mengen; Vergleich mit Klassen in Java, * Vorsicht beim Vergleich mit Wertebereichen: Dort haben wir Potenzmengen als Wertebereich von konkreten Ausprägungen, die Mengen sind; hier haben wir auch im Modell Entity-Mengen. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.11 Attribute Attribute beschreiben Eigenschaften von Entities. Einer Entity-Menge im Modell können Attribute zugeordnet werden, z. B. eine konkrete Ausprägung: Name Mustermann Angestellte Telefon 8732 Gehalt Name 4500 Telefon Gehalt : int Name Meier-3 Telefon 8733 Gehalt 4200 Ein Attribut ordnet jeder Entity aus der konkreten Entity-Menge einen Wert zu. Der Wertebereich eines Attributes kann explizit angegeben sein, z. B. int für Gehalt, oder er wird passend angenommen. Ein Attribut, dessen Wert jede Entity eindeutig identifiziert, heißt Schlüsselattribut. Es wird im Modell unterstrichen. Person Auch mehrere Attribute zusammen können den Schlüssel bilden: Staat Ausweisnr Name (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 611 Ziele: Attribute und ihre Werte verstehen in der Vorlesung: * Attribute bilden Entities auf Werte ab. * Wertebereiche von Attributen wie in Kapitel 2 der Vorlesung. * Derselbe Attributwert kann vielfach im System vorkommen - im Unterschied zu Objekten, die eindeutig identifizierbar sind. * Wenn sich ein Schlüsselattribut bei der Modellierung nicht ohnehin natürlich ergibt, sollte man eines einführen (z. B. Nummer der Entities). nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.12 Relationen Relationen modellieren Beziehungen zwischen den Entities der Entity-Mengen. n-stellige Relation R über n Entity-Mengen E1,..., En, mit n greaterequal 2: R Im Modell wird dadurch der Typ der Relation angegeben. E1 ... Ei ... En Eine konkrete Ausprägung von R ist eine Menge von n-Tupeln (e1, ... , en), wobei die ei Entities aus den konkreten Ausprägungen der Entity-Mengen Ei sind. Angestellte arbeitet Abteilung in Einkauf Mustermann Verkauf Produktion Meier-3 Lager (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 612 Ziele: Relationen im ER-Modell verstehen in der Vorlesung: * Relationsbegriff entspricht dem aus Kapitel 2. Allerdings sind die Wertebereiche auf Entity-Mengen eingeschränkt. * Die Graphik legt die Reihenfolge der Tupelkomponenten nicht fest; zusätzliche Information für die Textdarstellung. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.13 Rollen und Attribute in Relationen Für manche Relationen wird aus ihrem Namen und Ehefrau der Graphik nicht klar, welche Bedeutung die Entity-Mengen in der Relation haben. Man kann das durch Person verheiratet Rollennamen an den Kanten verdeutlichen. mit Ehemann Auch Relationen können Attribute haben. Sie beschreiben Eigenschaften zu jedem Tupel der Relation. Der Preis ist eine Passagier gebucht Flug Eigenschaft der Buchung - nicht für des Passagieres oder des Fluges. Name Flugnr Preis Datum Man könnte natürlich auch Buchungen als Entities modellieren: hat ist Passagier Flug gebucht Buchung gebucht Name Preis Flugnr Datum (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 613 Ziele: Modellierung von Relationen in der Vorlesung: * Erläuterungen zu Rollen, * zu Attributen von Relationen. * Mit den beiden Varianten der Modellierung von Flugbuchungen kann man Unterschiedliches ausdrücken: In der unteren Variante kann derselbe Passagier denselben Flug mehrfach buchen. In der oberen Variante geht das nicht. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.14 Kardinalität von Relationen In Relationen wird duch Angaben zur Kardinalität bestimmt, wie oft eine Entity in den Tupeln der Relation R vorkommen kann bzw. vorkommen muss: Für jede konkrete Ausprägung der Relation R muss gelten: ... [m, n] ... Jede Entity e aus der konkreten Entity-Menge zu E kommt E in mindestens m und höchstens n Tupeln vor. Spezielle Kardinalitäten: [1, 1] in genau einem Tupel: totale Funktion von E auf die übrigen Rollen der Relation [0, 1] in höchstens einem Tupel: partielle Funktion von E auf die übrigen Rollen [0, *] in beliebig vielen Tupeln Ohne Angabe wird [0, *] angenommen. Kurznotation für 2-stellige Relationen: 1 n A R B bedeutet: [0, 1] [0, *] A R B (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 614 Ziele: Kardinalitäten verstehen in der Vorlesung: * Erläuterung von Kardinalitäten als einschränkende Präzisierung des Modells. * Erläuterung an Beispielen von Mod-6.15 * Achtung: Es gibtER-Dialekte, in denen dieselben Notationen eine andere Bedeutung haben: Anzahlder Tupel,die sich nur in Werten aus E unterscheiden. Wir verwenden sie hier nicht. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.15 Beispiele zu Kardinalitäten in Relationen 1. Auto [1, 1] hat [0, *] 6. Automarke Typ belegt mit [0, *] [0, 3] [0, *] 2. [0, *] Autor publi- [1, *] Raum Termin Publikation Veranstaltung ziert [0, 1] [0, 3] 3. teil- [0, *] Komponist kompo- [1, 1] nehmen Sinfonie nierte 4. Ehefrau Vater 5. [0, 1] [0, *] Person verheiratet Person Vater on [0, 1] mit v [0, 1] Ehemann Kind (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 615 Ziele: Kardinalitäten üben in der Vorlesung: Erläuterungen zu den Relationen: * Jedes Auto-Exemplar hat genau eine Automarke. (1) * Zu einer Automarke können beliebig viele Autos modelliert sein (1). * Eine Publikation hat mindestens einen Autor (2). * Eine Sinfonie stammt von genau einem Komponisten (3). * Es gibt auch unverheiratete Personen (4). * Polygamie ist in diesem Modell nicht vorgesehen (4). * Die Väter mancher Personen sind nicht modelliert (5). * Veranstaltungen werden höchstens dreimal pro Woche angeboten (6). * Im Stundenplan eines Teilnehmers sind Termine nicht mehrfach belegt (6). nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.16 IST-Hierarchie Die spezielle Relation IST (engl. is-a) definiert eine Spezialisierungs-Hierarchie für Entity-Mengen: A IST B A IST B: Einige Entities der allgemeineren Menge B Ausprägung: gehören auch der spezielleren Menge A an. A B Jede konkrete Ausprägung zu A ist Teilmenge der konkreten Ausprägung zu B. Es kann Entities in B geben, die nicht in A sind. Manager IST Angestellte Die Entities in A "erben" alle Attribute von B und Name Gehalt können noch weitere Attribute haben, die leitet spezielle A-Eigenschaften beschreiben. ... Auch Schlüsselattribute werden als solche geerbt. GeoFigur x-Koord y-Koord Länge Rechteck IST IST Breite Kreis Radius (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 616 Ziele: Konzept der Spezialisierung verstehen in der Vorlesung: * Erläuterungen dazu. * Jede Entity existiert weiterhin nur einmal. Sie kann aber zu mehreren Mengen (A und B) gehören. * Bei der Modellierung von mehreren IST-Relationen zu derselben allgemeinen Entity-Menge sind die speziellen Mengen meist disjunkt (z. B. Rechteck und Kreis). Das ist aber formal nicht vorgeschrieben. * Entspricht der Vererbung zwischen Ober- und Unterklassen in objektorientierten Programmiersprachen. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.17 Beispiel: Fluggesellschaft Name Name Personalnr Passagier Angestellte Adresse Adresse Telnr Gehalt IST Preis gebucht für Pilot Flugstunden ein- Datum [1, *] Abflug gesetzt für [1, 1] kann fliegen Exemplar Modellnr von Flugzeugtyp Hersteller Flug Typ Abflugort Ankunftsort [1, 1] Abflugzeit Ankunftszeit Flugnr Flugzeug Seriennr (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 617 Ziele: ER-Modellierung im Zusammenhang sehen in der Vorlesung: Erläuterungen zu * Schema: "Exemplar von", "Typ" * Schlüsselattributen nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.18 Hinweise zur Modellierung mit ER * In einem ER-Modell kommt Vater jede Entity-Menge nur einmal vor. [0, *] * Rollen zu Relationen angeben, wo es nötig ist. Person Vater von * Bedeutung der Kardinalitäten klarstellen. [0, 1] Kind * Typ - Exemplar - Relationen bewusst einsetzen. [0, *] Auto [1, 1] hat Automarke Typ * Spezialisierung sinnvoll einsetzen. Manager IST Angestellte * Typ - Exemplar - Relation nicht mit Spezialisierung verwechseln (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 618 Ziele: Einige Modellierungsregeln in der Vorlesung: Erläuterungen dazu mit Hinweis auf Beispiele nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 6.2 -------------------------------------------------------------------------------- Mod-6.19 6.4 Klassendiagramme in UML Übersicht 1. UML (Unified Modelling Language): die derzeit wichtigste Sprache zur Modellierung von Systemen 2. Als Zusammenfassung mehrerer Modellierungssprachen 1997 in der Version 1.1 definiert; Version 2.0 von 2005 ist Grundlage aktueller UML-Versionen. 3. Object Management Group macht aktuelle Dokumente zu UML verfügbar: Object Management Group: UML Resource Page. www.uml.org (2010) 4. UML umfasst 13 Teilsprachen (Diagrammtypen), um unterschiedliche Aspekte von Systemen zu beschreiben, z. B. Klassendiagramme für Systemstruktur, statische Eigenschaften und Beziehungen, Statecharts für Abläufe von Operationen. 5. Für den Gebrauch durch Menschen hat UML graphische Notationen (visuelle Sprachen); Software-Werkzeuge verwendendie XML Sprache XMI (XML Metadata Interchange) 6. Einführendes Buch: Chris Rupp, Stefan Queins, Barbara Zengler: UML 2 glasklar. 3. Auflage; Carl Hanser Verlag (2007) (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 619 Ziele: Zweck und Entwicklung von UML in der Vorlesung: * Die angegebenen Aspekte werden erläutert. -------------------------------------------------------------------------------- Mod-6.20 Bezug zum ER-Modell Klassendiagramme dienen zur Modellierung von Systemstruktur, statischen Eigenschaften und Beziehungen. Sie basieren auf den gleichen Grundkonzepten wir das Entity-Relationship-Modell: ER-Modell UML Klassendiagramm Entity-Menge Klasse Attribut Attribut Relation Assoziation ER-Modell Angestellte ArbeitetIn Abteilung Leitet Manager Name Telefon Gehalt : int Name Ort Name UML Klassendiagramm Angestellte Abteilung Manager Name ArbeitetIn Leitet Name Name Telefon Ort Gehalt: int (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 620 Ziele: Gegenüberstellung: ER - UML Klassendiagramm in der Vorlesung: * Der Vergleich wird erläutert. -------------------------------------------------------------------------------- Mod-6.21 Klasse mit Attributen Klasse: repräsentiert eine Menge gleichartiger Objekte (wie im ER-Modell); Attribute (und ggf. Operationen) werden im Rechteck der Klasse angegeben. Angestellte Name Telefon Gehalt: int Objekte einer Klasse werden so dargestellt: H-Schmidt:Angestellte Name: String = "Schmidt" Telefon: Integer = 3416 Gehalt: Integer = 1700 (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 621 Ziele: Notation für Klassen mit Attributen in der Vorlesung: * Bedeutung wie im ER-Kalkül. * In UML: Klassen keine Schlüsselattribute. * In UML: Notation für Objekte. -------------------------------------------------------------------------------- Mod-6.22 Assoziationen Leitet Abteilung Manager zweistellig gibt die Leserichtung an Ehefrau Person zweistellig VerheiratetMit mit Angabe der Rollen Ehemann BelegtMit mehrstellig Raum Termin Veranstaltung GebuchtFür Passagier Flug Assoziation mit Attributen GebuchtFür Preis: Integer (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 622 Ziele: Notationen für Assoziationen in der Vorlesung: * Die Konstrukte werden erläutert. -------------------------------------------------------------------------------- Mod-6.23 Kardinalität von 2-stelligen Assoziationen ER: [m, n] [1, 1] [0, *] A R B hat Auto Automarke Typ Jedes Objekt aus A kommt in den Tupeln der Relation R mindestens m und höchstens n mal vor. UML: R m..n HatTyp 1..1 A B 0..* Auto Automarke Jedem Objekt aus A ordnet die Relation R mindestens m und höchstens n verschiedene Objekte aus B zu. (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 623 Ziele: Kardinalität von 2-stelligen Assoziationen in der Vorlesung: Vergleich zwischen ER und UML: * Bei gleicher Bedeutung wird die Kardinalitätsangabe an der anderen Klasse der Assoziation angebracht. -------------------------------------------------------------------------------- Mod-6.24 Kardinalität von k-stelligen Assoziationen Jedes Objekt aus E1 kommt in den S Tupeln der Relation S mindestens m und höchstens n mal vor. ER: [m, n] UML: m..n Jeder Kombination von Objekten aus E2, ..., En ordnet die Relation S E1 E2 ... Ek mindestens m und höchstens n Objekte aus E1 zu. BelegtMit Für jede Veranstaltung sind zwischen 0 und 3 Raum-Termin-Kombinationen vorgesehen. (nicht in UML formulierbar) ER: [0, 3] UML: 0..1 Raum Termin Veranstaltung Für jede Raum-Termin-Kombination ist höchstens eine Veranstaltung vorgesehen. (nicht in ER formulierbar) (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 624 Ziele: Kardinalität von k-stelligen Assoziationen in der Vorlesung: Vergleich zwischen ER und UML: * Kardinalitätsangaben an derselben Klasse habe in ER und in UML unterschiedliche Bedeutung. -------------------------------------------------------------------------------- Mod-6.25 Aggregation und Komposition Aggregation: Objekte werden zu einem größeren Objekt zusammengefasst. sie können prinzipiell auch allein existieren. 0..* Umfasst Mannschaft 6 Spieler * Eine Mannschaft umfasst immer 6 Spieler * Ein Spieler kann einer, mehreren oder auch keiner Mannschaft angehören Komposition: Jedes Teilobjekt gehört unverzichtbar zu genau einem ganzen Objekt. 1 Foliennummer 1 1 Vorlesungsfolie Überschrift BestehtAus 1 Inhalt Eine Vorlesungsfolie besteht immer aus einer Foliennummer, einer Überschrift und dem Folieninhalt. (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 625 Ziele: Aggregation und Komposition unterscheiden in der Vorlesung: Zwei verschiedene Assoziationen, die "enthalten" ausdrücken: * Unterschiedliche Bedeutungen werden erläutert. -------------------------------------------------------------------------------- Mod-6.26 Generalisierung, Spezialisierung Die Generalisierung (Spezialisierung) dient zur Modellierung von Abstraktionshierarchien GK (wie die IST-Relation in ER): Arten SK1 und SK2 sind speziellere Arten der {complete, disjoint} allgemeineren GK. GK heißt auch Oberklasse der Unterklassen SK1 SK2 SK1 und SK2. Die Assoziation kann benannt werden, hier Arten. Hinsichtlich der Objekte gilt: SK1 und SK2 sind GeoFigur Teilmengen von GK. x-Koord Das Verhältnis der Unterklassen zueinanderkann y-Koord weiter charakterisiert werden: Arten * disjoint: Die Teilmengen sind paarweise {incomplete, disjoint} disjunkt. * complete: Es gibt in dem Modell keine Rechteck Kreis weiteren Unterklassen von GK Länge Radius Breite (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 626 Ziele: Generalisierung verstehen in der Vorlesung: * Vergleich mit IST in ER; * Betrachtungsrichtung Generalisierung oder Spezialisierung * Beispiel für nicht-disjunkte Unterklassen: XK als gemeinsame Unterklasse von SK1 und SK2 definieren macht SK1 und SK2 potenziell nicht-disjunkt. * Unterklassen zu GK können an verschiedenen Stellen angegeben werden. -------------------------------------------------------------------------------- Mod-6.27 Modell einer Fluggesellschaft GebuchtFür vergl. Folie 6.17 Passagier Preis Name GebuchtFür Adresse Telnr. Abflug Datum EingesetztFür Angestellte ExemplarVon Name Personalnr. Adresse 1..1 Gehalt Flug Flugnr. Abflugort Pilot Abflugzeit Ankunftsort Flugstunden Ankunftszeit KannFliegen 1..* Typ Flugzeug 1..1 Flugzeugtyp Seriennr. Modellnr. Hersteller (c) 2011 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2011/12 / Folie 627 Ziele: Ein Beispiel im Zusammenhang in der Vorlesung: * Erläuterungen und Vergleich mit ER Folie 6.17 --------------------------------------------------------------------------------