pdf (2/1)
Transcription
pdf (2/1)
3. Informationsmodelle Vorgehensweise bei DB-Entwurf und -Modellierung • GBIS-Rahmen: Einordnung • Ziel: Modellierung einer Miniwelt Anwendung (Entwurf von Datenbankschemata) ➥ modellhafte Abbildung eines anwendungsorientierten Daten Steuerung Funktionen Ausschnitts der realen Welt (Miniwelt) SW-Architektur • Vorgehensweise bei DB-Entwurf und -Modellierung - Lebenszyklus ➥ Nachbildung von Vorgängen durch Transaktionen • Nebenbedingungen - genaue Abbildung - Informationserhebung - hoher Grad an Aktualität • Entity-Relationship-Modell (ERM) - Verständlichkeit, Natürlichkeit, Einfachheit, ... - Definitionen, Konzepte • Zwischenziel - Beziehungstypen - Diagrammdarstellung - Erhebung der Information in der Systemanalyse (Informationsbedarf!) - Beispiele - Kardinalitätsrestriktionen - Informationsmodell (allgemeines Systemmodell) • Erweiterungen des ERM durch Abstraktionskonzepte - Klassifikation/Instantiierung - Generalisierung/Spezialisierung (➥ Vererbung) - Element-/Mengen-Assoziation - Element-/Komponenten-Aggregation • Anhang • Bestandteile - Objekte: Entities - Beziehungen: Relationships • Schrittweise Ableitung: (Verschiedene Sichten) 1. Information in unserer Vorstellung - vergleich von ERM- und UML-Konzepten 2. Informationsstruktur: Organisationsform der Information 3. Logische Datenstruktur (zugriffspfadunabhängig, Was-Aspekt) 4. Physische Datenstruktur (zugriffspfadabhängig, Was- und Wie-Aspekt) 3-1 3-2 Schritte auf dem Weg zu einem Informationssystem Informationsmodelle Gegenstände reales (Objekt-) System Zusammenhänge Sachverhalte Auswertung und inkrem. Modifikationen Anforderungsermittlung und -analyse Eigenschaften Tatsachen Konzeptioneller Entwurf (Informationsmodellierung) Objekte Implementierung Physischer Entwurf (internes Schema) Informationsmodell Systemkonstruktion, -integration und -optimierung Attribute ein-/mehrwertig einfach/ zusammengesetzt Formalisierung, Diskretisierung („Systemanalyse“) Logischer Entwurf (DB-Schema, ext. Sichten) Datenstrukturen Wirklichkeitsausschnitt („Miniwelt“) Vorgänge Veränderungen Modellierungskonzepte Entwurf Informationsstrukturen Informationen Test, Auswertung Informationssystem Beziehungen Typ, Grad optional existenzabhängig Abstraktionskonzepte Klassifikation Schlüssel Generalisierung Aggregation Wertebereiche Assoziation Nullwerte Methoden (Verhalten) Rollen Objekte Beziehungen Attribute ➥ Informationsmodell (Darstellungselemente & Regeln): eine Art formale Sprache, um Informationen zu beschreiben • Informationen über Objekte und Beziehungen nur, wenn: Einsatz des Systems - unterscheidbar und identifizierbar Bemerkung: Anforderungsermittlung und -analyse sind kaum systematisiert; Methoden: „Befragen“, „Studieren“, „Mitmachen“ 3-3 - relevant - selektiv beschreibbar 3-4 Entity-Relationship-Modell (ERM) – 1 Überblick Von der Informationserhebung zum DB-Schema • Prinzipielle Vorgehensweise Informationserhebung • Modellierungskonzepte Semantische Datenmodellierung Logische Datenmodellierung Bedeutungs- Grobdaten- Feindatenanalyse modellierung modellierung Konzeptionelles Datenmodell . Interview . Substantivanalyse . Brainstorming . Dokumentenanalyse . ... . ERM . NIAM . EXPRESS-G . IDEF1X . UML . STEP . .... . hierarchisch . netzwerkförmig . relational . objektorientiert . objekt-relational . .... - Entity-Mengen (Objektmengen) DatenbankInstallation - Wertebereiche, Attribute Zeit - Primärschlüssel (zentrales, wertbasiertes Konzept im ERM; fehlt in UML, da Objekte immer einen systemweit eindeutigen Objektidentifikator zugeordnet bekommen) - Relationship-Mengen (Beziehungsmengen) . DB2 . ORACLE . MS SQL • Klassifikation der Beziehungstypen - benutzerdefinierte Beziehungen Server - Abbildungstyp . MySQL . .... • 1:1 unabhängig von der eingesetzten Datenbankverwaltungssoftware konzeptioneller DB-Schemaentwurf • n:1 • n:m logischer physischer Schemaentwurf Schemaentwurf - Ziel • Festlegung von semantischen Aspekten • explizite Definition von strukturellen Integritätsbedingungen • ERM (Entity Relationship Model): generell einsetzbares Modellierungswerkzeug, hauptsächlich für den relationalen DB-Entwurf geeignet (Vergleich mit UML siehe Anhang) • Achtung Das ERM modelliert die Typ-, nicht die Instanzenebene; es macht also Aussagen über Entity- und Relationship-Mengen, nicht jedoch über einzelne ihrer Elemente (Ausprägungen). Die Modellierungskonzepte des ERM sind häufig zu ungenau oder unvollständig. Sie müssen deshalb ergänzt werden durch Integritätsbedingungen oder Constraints • UML (Unified Modeling Language): Notation und Sprache zur Unterstützung der objektorientierten Modellierung im Software Engineering: Es gibt sehr viele Untermodelle für den Entwurf von Softwaresystemen auf den verschiedensten Abstraktionsebenen • STEP (STandard for the Exchange of Product Definition Data): Modellierung, Zugriff, Austausch von produktdefinierenden Daten über den gesamten Produktlebenszyklus 3-5 1. Chen, P. P.-S.: The Entity-Relationship Model —Toward a Unified view of Data, in: ACM TODS 1:1, March 1976, pp. 9-36. 3-6 Konzepte des ERM • Entities Konzepte des ERM (2) • Entity-Typ Buch (in Diagrammdarstellung) - wohlunterscheidbare Dinge der Miniwelt (Diskurswelt) - „A thing that has real or individual existence in reality or in mind“ (Webster) InvNr EAutor Titel Verlag EJahr VPreis - besitzen Eigenschaften, deren konkrete Ausprägungen als Werte bezeichnet werden Buch • Entity-Mengen (Entity-Sets) - Zusammenfassung von „ähnlichen“ oder „vergleichbaren“ Entities Attribut - haben gemeinsame Eigenschaften Wertebereich InvNr - Beispiele: EAutor • Abteilungen, Angestellte, Projekte, ... . . . • Bücher, Autoren, Leser, ... • Studenten, Professoren, Vorlesungen, ... EJahr • Kunden, Vertreter, Wein, Behälter, ... VPreis • Wertebereiche und Attribute - Die möglichen oder „zulässigen“ Werte für eine Eigenschaft nennen wir Wertebereich (oder Domain) - Die (bei allen Entities einer Entity-Menge auftretenden) Eigenschaften werden als Attribute bezeichnet - Ein Attribut ordnet jedem Entity einer Entity-Menge einen Wert aus einem bestimmten Wertebereich (dem des Attributs) zu ➥ Name der Entity-Menge sowie zugehörige Attribute sind zeitinvariant • Entity-Menge und ihre Entities sind zeitveränderlich e1 = (4711, Kemper, DBS, Oldenbourg, ...) e2 = (0815, Date, Intro. to DBS, Addison, ...) e3 = (1234, Härder, DBS, Springer, ...) ➥ Alle Attribute sind einwertig! 3-7 3-8 Konzepte des ERM (3) Konzepte des ERM (4) • Wie wird modelliert, wenn • Wie wird ein Entity identifiziert? - ein Buch mehrere Autoren hat - Entities müssen „wohlunterscheidbar“ sein - die Verlagsinformation zusammengesetzt ist (Name, Ort) - Information über ein Entity ausschließlich durch (Attribut-) Werte - Eigenschaften hierarchisch gegliedert sind • Identifikation eines Entities durch Attribut (oder Kombination von Attributen) - (1:1) - Beziehung • Erhöhung der Modellierungsgenauigkeit - ggf. künstlich erzwungen (lfd. Nr.) - bisher: einwertige Attribute - mehrwertige Attribute (Doppelovale) • {A1, A2, ..., Am} = A sei Menge der (einwertigen) Attribute zur Entity-Menge E - zusammengesetzte Attribute (hierarchisch angeordnete Ovale) ➥ Verschachtelungen sind möglich K ⊆A heißt Schlüsselkandidat von E ⇔ K irreduzibel; ei, ej ∈ E; ei ≠ ej → K(ei) ≠ K(ej) • Mehrere Schlüsselkandidaten (SK) möglich Name Ort ➥ Primärschlüssel auswählen InvNr Autor Titel Verlag EJahr • Beispiel: Entity-Menge Student mit Attributen Matnr, SVNr, Name, Gebdat, FbNr Buch e3 = 3-9 3 - 10 ERM – Definitionen 2 Konzepte des ERM (5) • Entity-Deklaration oder Entity-Typ legt die zeitinvarianten Aspekte von • Def. 1: Entity-Typ Entities fest Ein Entity-Typ hat die Form E = (X, K) mit einem Namen E, einem Format X und einem Primärschlüssel K, der aus (einwertigen) Elementen von X besteht. Die • Entity-Diagramm Elemente eines Formats X werden dabei wie folgt beschrieben: Leser i) Einwertige Attribute: A ii) Mehrwertige Attribute: {A} LNr Name Adr L-Autor iii) Zusammengesetzte Attribute: A (B1, ..., Bk) • Def. 2: Wertebereich (Domain) PLZ Ort Straße E = (X, K) sei ein Entity-Typ und attr(E) die Menge aller in X vorkommenden Attributnamen. Jedem A ∈ attr(E), das nicht einer Zusammensetzung voransteht, • Entity-Typ E = (X, K) sei ein Wertebereich W(A) zugeordnet. Für jedes A ∈ attr(E) sei Leser = ({LNr, Name, Adr(PLZ, Ort, Straße), {L-Autor} }, {LNr}) W(A) • Wertebereiche W(LNr) = int(8), W(Name) = W(L-Autor) = char(30) W(PLZ) = int(5), W(Ort) = char(20), W(Straße) = char(15) dom(Adr) = dom(L-Autor)= dom(A) := 2 W(A) falls A einwertig oder P(W(A)) W(B1) x ... x W(Bk) falls A mehrwertig falls A aus einwertigen B1, ..., Bk zusammengesetzt W(PLZ) x W(Ort) x W(Straße) = int(5) x char(20) x char(15) Besteht A aus mehrwertigen oder zusammengesetzten Attributen, wird die Defi- 2W(L-Autor) = 2char(30) nition rekursiv angewendet. • Zusammensetzung A (B (C1, C2), {D (E1, E2)}) • Bemerkung mit W(C1), W(C2), W(E1), W(E2) Das Format X eines Entity-Typs kann formal als Menge oder als Folge dargestellt dom(B) = W(C1) x W(C2) dom(D) = 2W(E1) x W(E2) dom(A) = dom(B) x dom(D) werden. Die Schreibweise als Folge ist einfacher; die Folge kann bei der Diagrammdarstellung übernommen werden. 2. 3 - 11 G. Vossen: Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, Oldenbourg, 4. Auflage, 2000 3 - 12 ERM – Definitionen (2) • Def. 3: Entity und Entity-Menge Es sei E = (X, K) ein Entity-Typ mit X = (A1, ..., Am). Ai sei dom(Ai) (1 ≤ i ≤ m) Konzepte des ERM (6) • Relationship-Mengen Zusammenfassung von gleichartigen Beziehungen (Relationships) zwischen Entities, die jeweils gleichen Entity-Mengen angehören z. B. zugeordnet. i) Ein Entity e ist ein Element des Kartesischen Produkts aller Domains, d. h. e ∈ dom(A1) x ... x dom(Am) „hat ausgeliehen“ zwischen „Leser“ und „Buch“ L B ii) Eine Entity-Menge Et (zum Zeitpunkt t) ist eine Menge von Entities, welche K erfüllt, d. h. Et ⊆ dom(A1) x ... x dom(Am) Et wird auch als der Inhalt bzw. der aktuelle Wert (Instanz) des Typs E zur Zeit t bezeichnet. • Def. 4: Relationships i) Ein Relationship-Typ hat die Form R = (Ent, Y). Dabei ist R der Name des Typs (auch „Name der Beziehung“), Ent bezeichnet die Folge der Namen der Entity-Typen, zwischen denen die Beziehung definiert ist, und Y ist eine (möglicherweise leere) Folge von Attributen der Beziehung. • Eigenschaften - Grad n der Beziehung (degree), gewöhnlich n=2 oder n=3 Beziehungstyp (Funktionalität der Beziehung) Existenzabhängigkeit Kardinalität • ER-Diagramm Leser Ausleihe Buch t ii) Sei Ent = (E1, ..., Ek), und für beliebiges, aber festes t sei E i der Inhalt des Entity-Typs Ei, 1 ≤ i ≤ k. Ferner sei Y = (B1, ..., Bn). Eine Relationship r ist ein t Element des Kartesischen Produktes aus allen E i und den Domains der Bj, d. h. t t r ∈ E 1 x ... x E k x dom(B1) x ... x dom(Bn) bzw. r = (e1, ..., ek, b1, ..., bn) mit t ei ∈ E i für 1 ≤ i ≤ k und bj ∈ dom(Bj) für 1 ≤ j ≤ n. iii) Eine Relationship-Menge Rt (zur Zeit t) ist eine Menge von Relationships, t t d. h., Rt ⊆ E 1 x ... x E k x dom(B1) x ... x dom(Bn). 3 - 13 RDatum Eine Beziehung R ist vom Typ 1:n, falls (in jedem Rt) ein Entity vom Typ E1 an n ≥ 0 Instanzen von R teilnimmt, d. h., mit n ≥ 0 Entities vom Typ E2 in Beziehung steht, andererseits jedoch jedes Entity vom Typ E2 höchstens an einer Instanz von R teilnimmt, also höchstens mit einem Entity vom Typ E1 assoziert ist. Bei vertauschten Rollen von E1 und E2 spricht man von einer m:1-Beziehung. Achtung: Wir schreiben die Funktionalität einer Beziehung an die Quellseite! • Relationship-Typ R = (Ent, Y): Ausleihe = ((Leser, Buch), (RDatum)) • Eigenschaften Grad: Beziehungstyp: 3 - 14 Relationship-Mengen Relationship-Mengen (2) • Motivation für Rollennamen • Keine Disjunktheit der Entity-Mengen gefordert, die an einer Ri beteiligt sind v1 Voraussetzung Vorlesung v3 v2 Direkter-Vorgesetzter = ((Angest/Angest, Chef/Angest), (∅)) v4 v5 v6 r1 Angest a2 R r3 a4 • Definition: d. h. Voraussetzung = ((Vorlesung, Vorlesung), (∅)) Voraussetzungt = { (vi, vj) ⏐ vi, vj ∈ Vorlesung } genauer: direkte Voraussetzung • Einführung von Rollennamen (rn) möglich (Reihenfolge!) auf Typebene: (rn1/E, rn2/E) oder (Vorgänger/Vorlesung, Nachfolger/Vorlesung) a1 r2 a7 r4 a5 • Eigenschaften Grad: Beziehungstyp: Existenzabhängig: • R sei Direkter-Vorgesetzter. Welche Beziehungen auf Angestellter sind zulässig? auf Instanzebene: (Vorgänger/vi, Nachfolger/vj) Sprechweise: „ vj setzt vi voraus“ oder „ vi ist-Voraussetzung-für vj“ • Eigenschaften: • Relationship-Menge Heirat = ((Mann/Person, Frau/Person), (HDatum)) Grad: Beziehungstyp: Existenzabhängig: Person R HDatum • Transitivität gilt bei Selbstreferenz i. Allg. nicht! • Eigenschaften Person liebt Grad: Beziehungstyp: Existenzabhängig: 3 - 15 3 - 16 Relationship-Mengen (3) Relationship-Mengen (4) • Ist Anpassung der Entity-Definition an zu modellierenden Relationship-Typ sinnvoll? • Was passiert bei der Modellierung der Historie? Neuer Aspekt: Gültigkeit einer Beziehung ist zeitabhängig! Männliche Person 1 heiratet 1 Weibliche Person ist-verheiratet-mit 2000 - 2002 m1 m1 f1 2006 - NOW f1 m2 2004 - 2005 f2 m3 m2 f3 Männliche Person Heiratsfähige männliche Person 1 1 Heiratsfähige weibliche Person heiratet n ist-verheiratetmit n f1 m m4 3 f3 f4 f2 m Weibliche Person • Oder besser als Modellierung der historischen Sicht m2 m1 f2 2006 - NOW von ist-verheiratet-mit Person bis m • Deshalb als Modellierung der aktuellen Sicht • Wie erhält man eine korrekte Abbildung der Miniwelt? 1 Person heiratet HDatum • Wenn nicht anders vermerkt, modellieren wir immer die aktuelle Sicht! 1 3 - 17 3 - 18 Relationship-Mengen (5) Relationship-Mengen (6) • Existenzabhängigkeit einer Entity-Menge • Existenzabhängigkeit kann anwendungsabhängig sein • Beispiele • Beispiele 1. In einer Firma wird Information über Kinder zur Kindergeldberechnung benötigt: Gebäude Räume liegt_in n 1 Eltern von Angestellte Kinder Existenzabhängigkeit: „Relationship begründet Existenz von“ 2. In einer Anwendung „Betreuung von (besonders schwer zu erziehenden) Einzelkindern“ müssen Informationen über die Eltern ermittelt werden können: g1 r1 g3 r3 1 Kind von Einzelkinder r2 g2 1 Eltern Wenn das Haupt-Entity die Firma oder den Kindergarten verlässt, ist die Information über das abhängige Entity für die Anwendung nicht mehr von Interesse. Sie kann also automatisch aus dem System entfernt werden. Die Benutzung des Konzepts „Existenzabhängigkeit“ sollte eine bewusste Entscheidung des Modellierers sein, da er damit eine zusätzliche Integritätsbedingung in das Modell aufnimmt. Oft gibt die Wahl/Zusammensetzung des Schlüssels einen Hinweis auf eine Existenzabhängigkeit. Beispielsweise kann sich der Schlüssel eines Raumes zusammensetzen aus dem Gebäudeschlüssel und einer lokal gültigen Nummer, z. B. 46-215. • Verfeinerung n Rechnungen 1 besitzen Rechnungsposten 1 Wenn im Modell hauptsächlich Räume und beispielsweise Vorlesungen dargestellt werden sollen und Gebäude nur eine weitere Eigenschaft von Räumen sind, könnte man auf die Spezifikation von Gebäuden als Entities verzichten und ihre Nummer als beschreibendes Attribut von Räumen aufnehmen. bezahlen n • Eigenschaften Kunden Grad: 2 Beziehungstyp: Existenzabhängig: 1:n ja 3 - 19 • Bemerkung: In manchen Modellen steht eine existenzabhängige Entity-Menge rechts von der selbständigen Entity-Menge und der „erzeugenden“ RelationshipMenge. Bei Mehrfachreferenzen ist eine „erzeugende” von weiteren „referenzierenden” Relationship-Mengen zu unterscheiden. 3 - 20 Dreistellige Relationship-Mengen L Klassifikation von Datenabbildungen P • ZIEL: Lieferant Lieferung n Projekt m - Festlegung von semantischen Aspekten (hier: Beziehungstyp) p - explizite Definition von strukturellen Integritätsbedingungen T Teil • Unterscheidung von Beziehungstypen Achtung: - Ei – Ej Nicht gleichwertig mit drei zweistelligen (binären) Relationship-Mengen! m Lieferant L n beliefert P - Ei – Ei • Festlegung der Abbildungstypen Projekt - 1:1 ... eineindeutige Funktion (injektive Abbildung) - n:1 ... math. Funktion (funktionale oder invers funktionale Abbildung) m m liefert - n:m ... math. Relation (komplexe Abbildung) bezieht n Teil • Beispiele zu Ei – Ej T n - 1:1 ... LEITET/WIRD_GELEITET: PROF ↔ ARBGRUPPE Aber: - 1:n ... MITARBEITER → PROF Manche Systeme erlauben nur die Modellierung binärer Relationship-Mengen! - n:m ... BESCHÄFTIGT/IST_HIWI: ARBEITET_FÜR/MIT: PROF — STUDENT ➥ Abbildungstypen implizieren nicht, dass für jedes ek ∈ Ei auch L Lieferung Lieferant n 1 1 liefert P Projekt 1 beliefert bezieht tatsächlich ein el ∈ Ej existiert • Diagrammdarstellung: n LF E1 n 1 n R Teil T 3 - 21 3 - 22 E2 Klassifikation von Datenabbildungen (2) • Beispiele zu E – E (externe Klassifikation) i j - 1:1: LEITET/WIRD_GELEITET: PERS - n:1/1:n: ER-Schema – Beispiel DECLARE PERS <—> ABT • • • • • • • • ABT DECLARE VALUE-SETS PERSONAL-NR VORNAMEN NACHNAMEN BERUFE PROJEKT-NR ANZ.-JAHRE ORTE PROZENT ANZ.-MONATE REPRESENTATION INTEGER(5) CHARACTER(15) CHARACTER(25) CHARACTER(25) INTEGER(3) INTEGER(3) CHARACTER(15) FIXED(5.2) INTEGER(3) ALLOWABLE-VALUES (1,10000) ALL ALL ALL (1,5000) (0,100) ALL (0,100.00) (0,100) REGULAR ENTITY RELATION PERSONAL ATTRIBUTE/VALUE-SET: PNR/PERSONAL-NR NAME/(VORNAMEN,NACHNAMEN) KÜNSTLER-NAME/(VORNAMEN, NACHNAMEN) BERUF/BERUFE ARBEITET_FÜR/HAT_MITARBEITER: PERS —> ABT ALTER/ANZ.-JAHRE PRIMARY KEY: PERS PNR • •• •• • • • • DECLARE REGULAR ENTITY RELATION PROJEKT ATTRIBUTE/VALUE-SET: PRO-NR/PROJEKT-NR ABT PRO-ORT/ORTE PRIMARY KEY: PRO-NR DECLARE RELATIONSHIP RELATION PROJEKT-MITARBEIT ROLE/ENTITY-RELATION.PK/MAX-NO-OF-ENTITIES MITARBEITER/PERSONAL.PK/n - n:m: ARBEITET_FÜR/MITARBEIT: PERS — PROJEKT PROJEKT /PROJEKT.PK/m ATTRIBUTE/VALUE-SET: PERS ARBEITSZEITANTEIL/PROZENT • • •• • • • • DAUER/ANZ.-MONATE DECLARE RELATIONSHIP RELATION PERS.-ANGEHÖRIGE ROLE/ENTITY-RELATION.PK/MAX-NO-OF-ENTITIES UNTERHALTSPFLICHTIGER/PERSONAL.PK/1 KIND/ KINDER.PK/n EXISTENCE OF KIND DEPENDS ON EXISTENCE OF UNTERHALTSPFLICHTIGER PROJEKT DECLARE WEAK ENTITY RELATION KINDER ATTRIBUTE/VALUE-SET: NAME/VORNAMEN ALTER/ANZ.-JAHRE PRIMARY KEY: NAME PERSONAL.PK THROUGH PERS-ANGEHÖRIGE 3 - 23 3 - 24 Varianten der Modellierung – Professoren halten Vorlesungen Varianten der Modellierung – Professoren halten Vorlesungen (2) • Eine Vorlesung wird immer vom selben Professor gehalten; es interessiert nicht, wo und wann sie stattfindet. ER-Diagramm • Mehrere Professoren/Dozenten halten zusammen eine Vorlesung a) Ein Professor und ein Dozent halten zusammen eine Vorlesung Darstellung der Beziehung auf Instanzebene ER-Diagramm Darstellung der Beziehung auf Instanzebene V Vorlesung V n 1 Vorlesung angeboten in 1 VD V-Durchführung 1 hält P n hält Prof P m n Prof D Dozent • Eine Vorlesung kann wechselweise von verschiedenen Professoren gehalten werden. Dabei soll die Durchführung einer Vorlesung (wo, wann, von wem gehalten) explizit modelliert werden. Vorlesung n angeboten in 1 V-Durchführung V b) Ein Professor hält oder n Professoren (PG) halten gemeinsam eine Vorlesung VD n 1 angeboten in Vorlesung 1 V VD V-Durchführung 1 1 hält hält gemeinsam hält n Prof P n Prof 3 - 25 n n bilden m PG 3 - 26 P PG PersNr Fachgebiet PersNr Name Professoren arbeitenfür Studenten Sem besuchen MatNr hören - Es ist möglicherweise unpraktisch, für jeden Kauf (im Extremfall werden die Daten dafür durch einen Scanner-Strich an der Kasse des Supermarktes erzeugt) einen separaten eindeutigen Schlüssel zuzuordnen. Deshalb können die Schlüssel der beteiligten Entities dazu benutzt werden. SWS - Beteiligt sind die Entity-Typen Verkäufer, Produkt, Lieferant, Markt und Zeit Name - Zur Geschäftsanalyse möchte man in einer Supermarktkette die wesentlichen Informationen sammeln, die den Kauf eines Produktes charakterisieren halten Übungen • Modellierung des Kaufs von Waren in Supermärkten Assistenten Note Anwendungsbeispiel: Data Warehousing Name Raum Rang lesen gehört-zu prüfen Vorlesungen Titel SWS Titel - Mehrere Studenten hören jeweils eine Reihe von Vorlesungen. Übungen und Vorlesungen werden jeweils von mehreren Studenten besucht. - Der Besuch von Vorlesungen setzt i. Allg. die Kenntnis anderer Vorlesungen voraus. voraussetzen - Mehrere Assistenten arbeiten jeweils für einen Professor und halten Übungen, die zu den entsprechenden Vorlesungen gehören. Vorgänger - Jeder Professor hält mehrere seiner Vorlesungen und prüft Studenten jeweils über eine dieser Vorlesungen. Nachfolger • Stellen Sie ein ER-Diagramm für folgende Miniwelt auf: VorlNr ER-Diagramm – Vorlesungsbetrieb VorlNr Anwendungsbeispiel: Vorlesungsbetrieb 3 - 27 3 - 28 Megabeispiel – Data Warehousing Megabeispiel – Data Warehousing (2) • Kauf als Entity mit unabhängigen Beziehungen • Kauf als 5-stellige Beziehung ER-Diagramm ER-Diagramm Zeit Lieferant m l n 1 Kauf 1 Lieferant m n 1 Verkäufer Zeit Verkäufer Kauf l 1 1 o o k k Markt Produkt Beziehungen auf Instanzebene Markt Produkt Beziehungen auf Instanzebene Z Z L L K V V M M P P 3 - 29 3 - 30 Megabeispiel – Data Warehousing (3) Megabeispiel – Data Warehousing (4) • Kauf als existenzabhängiges Entity mit 5 begründenden binären Beziehungen • Kauf als existenzabhängiges Entity mit einer begründenden 6-stelligen Beziehung ER-Diagramm ER-Diagramm Zeit Lieferant m Kauf n 1 1 Verkäufer l 1 hat Kauf 1 1 1 l k Verkäufer Produkt o k Markt Produkt Beziehungen auf Instanzebene o Markt n m Lieferant Zeit Beziehungen auf Instanzebene Z K V L K V P P M L M 3 - 31 3 - 32 Z Verfeinerung der Datenabbildung: Kardinalitätsrestriktionen Verfeinerung der Datenabbildung: Kardinalitätsrestriktionen (2) • Bisher: grobe strukturelle Festlegung der Beziehungen • Caveat z. B.: 1:1 bedeutet „höchstens eins zu höchstens eins“ - Viele Autoren (Kemper/Eickler, Elmasri/Navathe usw.), aber auch die UML-Notation, geben die Funktionalität bei binären Beziehungen nicht an der Quel- • Verfeinerung der Semantik eines Beziehungstyps durch Kardinalitäts- le, sondern am Ziel der Beziehung an. restriktionen: sei R ⊆ E1 x E2 x ... x En Kardinalitätsrestriktion - Bei n-stelligen Beziehungen funktioniert diese Vorgehensweise nicht mehr, außer bei unspezifischen Angaben wie etwa n:m:k. Deshalb werden diese Nota- kard(R,Ei) = [min, max] bedeutet, dass jedes Element aus Ei in wenigstens min und höchstens max tionen inkonsistent: der binäre wird anders als der n-stellige Fall behandelt. Ausprägungen von R enthalten sein muss (mit 0 <= min <= max, max >= 1). - Bei der Angabe von spezifischen Kardinalitätsrestriktionen scheitern diese Ansätze ganz. • Graphische Darstellung • Rechtfertigung unserer Notation Kardinalitätsrestriktionen: E1 [min1, max1] [min2, max2] R - Wir geben die Funktionalität immer an der Quelle einer Beziehung an. Bei binären Funktionalitätsangaben unterscheidet sich unser Ansatz nur bei 1:n E2 (n:1). - Dadurch erreichen wir eine konsistente Darstellung für alle Anwendungsfälle: bei binären und n-stelligen Beziehungen sowie bei Kardinalitätsrestriktionen. e1 nimmt an [min1, max1] Beziehungen von Typ R teil e2 nimmt an [min2, max2] Beziehungen von Typ R teil - Also Vorsicht und nicht immer blind Gewohntes übernehmen! • Modellieren hat Freiheitsgrade • Beispiele: - Für eine Miniwelt, die für eine Anwendung zu modellieren ist, kann es viele R E1 E2 kard(R, E1) Abt-Leitung ABT PERS Heirat FRAU MANN Eltern PAARE KIND Abt-Angehörigk. ABT PERS V.Teilnahme VORL STUDENT Mitarbeit PERS PROJEKT kard(R, E2) verschiedenen Lösungen geben – gute, bessere, aber auch schlechtere oder gar falsche. - Deshalb sollte der Entwerfer eines ER-Modells alle Freiheitsgrade nutzen, um zur besten Lösung zu kommen. Wie wir gesehen haben, hängt die Qualität der Lösung (siehe Diskussion der Existenzabhängigkeit) stark von der Anwendung ab. Vor- und Nachteile eines ER-Modells werden oft erst bei der Abbildung auf ein relationales DB-Schema deutlich. - Wir verfolgen einige Konsequenzen von ER-Entwurfsentscheidungen in Kapi- 3 - 33 tel 4 und 5. 3 - 34 Abstraktionskonzepte 3 Begrenzungsflächendarstellung von Körpern • Ziel: Beispiel-Körper: 1 - Erfassung von noch mehr Semantik aus der Miniwelt durch das ERM 3 - Entwicklung von (Beschreibungs-)Modellen zur adäquateren Wiedergabe der ausgewählten Miniwelt (Diskursbereich) - Definition von systemkontrollierten Beziehungen 4 2 • Aufgabe: - Identifikation von wesentlichen Konstrukten, die vom Menschen angewendet werden, wenn er seinen Diskursbereich beschreibt. ER-Diagramm: PolyID Polyeder ➥ Anwendung von Abstraktion, um die Information zu organisieren: n “abstraction permits someone to suppress specific details of particular objects emphasizing those pertinent to the actual view” Hülle • Zwei Typen von Abstraktionen 1 - von einfachen zu zusammengesetzten Objekten (1-Ebenen-Beziehung) FlächenID Flächen - von zusammengesetzten zu (komplexer) zusammengesetzten Objekten (n-Ebenen-Beziehungen) n Begrenzung • Abstraktionskonzepte werden vor allem eingesetzt m - zur Organisation der Information und damit auch KantenID Kanten - zur Begrenzung des Suchraumes beim Retrieval sowie n - zu systemkontrollierten Ableitungen (Reasoning) StartEnde • Übersicht m X Punkte Y - Z 3. 3 - 35 Klassifikation – Instantiation Generalisierung – Spezialisierung Element-/Mengenassoziation Element-/Komponentenaggregation Mattos, N.: An Approach to Knowledge Management, LNAI 513, Springer, 1991 3 - 36 3 - 37 n 3 - 38 Sem Studenten n p m SWS Titel 1 Note 1 Personen is-a halten m 1 1 m Note 1 prüfen 1 m n PersNr Name m m n lesen 1 Raum Rang Titel SWS VorlNr PersNr Professoren n Vorlesungen n voraussetzen Angestellte is-a arbeitenfür 1 n Name Fachgeb. m lesen 1 Professoren n Vorgänger gehört-zu m Vorlesungen n Nachfolger Nachfolger voraussetzen Angestellte is-a arbeitenfür 1 n prüfen gehört-zu Assistenten 1 Übungen Fachgeb. Assistenten 1 Übungen halten VorlNr besuchen Sem p Generalisierung/ Spezialisierung MatNr hören MatNr Name n SWS Titel VorlNr besuchen Studenten n hören Vorgänger „Alles dreht sich um die genauere Modellierung von Beziehungen“ Raum Rang Titel SWS VorlNr Motivation von Abstraktionskonzepten Motivation von Abstraktionskonzepten (2) 3 - 39 elementof subsetof Sem p ... Lehre besuchen SWS Titel elementof subsetof 1 Note 3 - 40 MatNr n Sem Studenten n hören p besuchen SWS Titel VorlNr ... Personen is-a Note 1 n m n lesen PersNr m n Professoren lesen Vorlesungen 1 part-of LVlNr PersNr Professoren Angestellte is-a arbeitenfür prüfen 1 m Lehrveranst. n LVlNr Vorlesungen 1 Nachfolger voraussetzen n m gehört-zu part-of is-a n 1 m part-of Nachfolger Angestellte Vorgänger Name Fachgeb. 1 Assistenten Übungen 1 1 elementof Bachelor 1 arbeitenfür prüfen gehört-zu part-of n n m Lehrveranst. voraussetzen Vorgänger Name Fachgeb. Assoziation halten m 1 Assistenten 1 Übungen Personen is-a halten m gleichartige Darstellung von Ausprägung und Typ ... Master MatNr n Studenten n hören VorlNr Aggregation Raum Rang Titel SWS VorlNr Raum Rang Titel SWS VorlNr Motivation von Abstraktionskonzepten (3) Motivation von Abstraktionskonzepten (4) Klassifikation • Klassifikation entspricht der Bildung von Entity-Mengen: Sie fasst Objekte (Entities) mit gemeinsamen Eigenschaften zu einem neuen zusammengesetzten Objekt (Entity-Typ, Klasse, Klassenobjekt) zusammen • Eine Klasse ist definiert als Zusammenfassung von Objekten gleichen Typs (und gleicher Repräsentation). Dadurch nur einmalige Definition von - Attributnamen und -typen Instantiation • Instantiation ist das inverse Konzept zur Klassifikation • Sie wird benutzt, um zu Instanzen/Objekten zu gelangen, die den Eigenschaften der Klasse unterliegen - gleiche Struktur (Attribute) - gleiche Operationen - gleiche Integritätsbedingungen • Klassifikation/Instantiation sind die primären Konzepte zur Objektbildung - Methoden und -strukturierung - Integritätsbedingungen • Graphische Darstellung • Es wird eine 'instance-of'-Beziehung (‘io’) als 1-Ebenen-Beziehung zu den Objekten der Klasse aufgebaut Klasse io Instanz1 Klasse io io Instanz2 Instanz1 io Instanz2 Wenn nicht explizit anders vermerkt, wird als Richtung in der graphischen Darstellung „von oben nach unten“ angenommen (Klasse – Instanz, Superklasse – Subklasse). Die Darstellungen der anderen Abstraktionskonzepte erfolgen entsprechend. 3 - 41 3 - 42 Generalisierung Modellierungsbeispiel zur Generalisierung • Aufgabe Generalisierung ist ein ergänzendes Konzept zur Klassifikation. Durch sie wird eine allgemeinere Klasse definiert, welche die Gemeinsamkeiten der zugrundeliegenden Klassen aufnimmt und deren Unterschiede unterdrückt Instanzendarstellung Vögel •• • •••• • Anwendung is-a Eulen - Sie baut die 'subclass-of'-Beziehung auf (‘sc’- oder 'is-a'-Beziehung) • - Sie ist rekursiv anwendbar (n-Ebenen-Beziehung) und organisiert die Singvögel Wasservögel ••• • • Klassen in einer Generalisierungshierarchie is-a Schwäne - Eine Superklasse ist eine Verallgemeinerung/Abstraktion der zugehörigen Subklassen. Sie entspricht einem komplex zusammengesetzten Objekt, das gebildet wird als Kollektion von komplex zusammengesetzten Objekten (Subklassen) • • • io Substitutability: Donald ∈ Vögel • Struktureigenschaften der Generalisierung Enten • Donald - Alle Instanzen einer Subklasse sind auch Instanzen der Superklasse - Ein Objekt kann gleichzeitig Instanz verschiedener Klassen sein sowie auch Subklasse mehrerer Superklassen (→ Netzwerke, (n:m)!) Typdarstellung Klasse ... ‘sc’ Spezialisierung (Is-a-Hierarchie) Eulen Wasservögel Singvögel ... is-a Schwäne Klasse Super- is-a Generalisierung Klasse Generalisierungshierarchie Klasse Vögel - Zugehörigkeit eines Objektes zu einer Klasse/Superklasse wird im wesentlichen bestimmt durch Struktur (Attribute), Verhalten (Operationen) und Integritätsbedingungen der Klasse/Superklasse ... Enten ‘io’ Sub- Klasse Super- Sub- Klasse io Instanz Klassifikation / Generalisierung Instantiation / Spezialisierung 3 - 43 Donald 3 - 44 Instanz Generalisierung (2) Generalisierung – Beispiel Klasse 1 Instanzen Attribute • Klassen Klasse 2 Methoden Attribute Person Generalisierung • Objekte können gleichzeitig Instanzen mehrerer Klassen sein: Methoden Autofahrer Student Dabei können Attribute (und Methoden) mehrfach eingerichtet werden: Klasse Autofahrer (Name, Geburtstag, Führerscheinklasse, ... ) Klasse Student (Name, Geburtstag, Matrikelnr, ... ) Grund: Autofahrer und Studenten sind beide Personen, und in dieser „Rolle“ haben beide Namen und Geburtstag • Instanzen Person • ➥ Generalisierungsschritt: Klasse Person einrichten • • • Aber: Studenten oder Autofahrer, die keine Personen sind, darf es nicht geben! (Es kann jedoch Personen geben, die weder Studenten noch Autofahrer sind) • Beziehung zwischen den Klassen: P1 Autofahrer Student • • A1 S1 Student (Autofahrer) ist Subklasse von Person Person ist Superklasse von Student und Autofahrer - jede Instanz der Subklasse ist immer auch Instanz der Klasse, aber nicht umgekehrt - jede Methode, die auf die Instanzen einer Klasse anwendbar ist, ist damit immer auch auf die Instanzen sämtlicher Subklassen anwendbar • Subklassen sind i. Allg. nicht disjunkt! ➥ Garantie von bestimmten Integritätsbedingungen durch das System: jeder Student ist auch Person 3 - 45 3 - 46 Generalisierung – Beispiel (2) • Überlappende Subklassen – Ansätze: Generalisierung (3) • historisches Vorbild: Carl von Linné - biologische Systematik 1. Mehrklassenmitgliedschaft von Instanzen - Reich (z.B. Tierreich) – Stamm (Chordatiere) – Klasse (Säugetiere) – P Familie – Gattung – Art ➥ daher auch: „Art-Gattungs-Beziehung“ A S • Bei manchen Systemen höchstens eine Superklasse pro Klasse (Klassen bilden Baum bzw. Hierarchie) Wartung hat durch Programmierer zu erfolgen • Bei anderen beliebig viele 2. Einklassenmitgliedschaft von Instanzen (Einfachvererbung) P („Klassenverband“, gerichteter azyklischer Graph) • Diese Restriktion bestimmt entscheidend die Definition von Klassen: Multimedia-Aufnahmen A AS S Graphik Video Musik Sprache Mehrfache Definition von Attributen, Integritätsbedingungen usw., Wartung erfolgt durch System Folie Musikvideo 3. Einklassenmitgliedschaft von Instanzen (Mehrfachvererbung) P A S ➥ Was ist zu tun, wenn nur Baumstrukturen erlaubt sind? • Evtl. zusätzlich spezifizieren: AS - Subklassen müssen disjunkt sein (keine Mehrklassen-Mitgliedschaft) - Subklassen müssen vollständig (überdeckend) sein: Einmalige Definition von Attributen, Integritätsbedingungen usw., Wartung erfolgt durch System, aber: komplexere Schemastrukturen, eingeschränkte Erweiterbarkeit 3 - 47 jede Instanz der Klasse stets auch in einer der Subklassen (abstrakte Superklasse: hat keine direkten Instanzen) 3 - 48 Spezialisierung • Aufgabe Spezialisierung (2) • Vererbung von Spezialisierung ist das inverse Konzept zur Generalisierung. Sie unterstützt die 'top-down'-Entwurfsmethode: - zuerst werden die allgemeineren Objekte beschrieben (Superklassen) - Struktur: Attribute, Konstante und Default-Werte - Integritätsbedingungen: Prädikate, Wertebereiche usw. sowie - Verhalten: Operationen (auch Methoden genannt) - dann die spezielleren (Subklassen) ➥ Es müssen alle Struktur-, Integritäts- und Verhaltensspezifikationen vererbt werden. Integritätsbedingungen können eingeschränkt, Default-Werte können überschrieben, Methoden überladen werden. • Systemkontrollierte Ableitung Dabei wird natürlich das Konzept der Vererbung ausgenutzt: - Superklassen-Eigenschaften werden 'vererbt' an alle Subklassen, da diese auch dort gültig sind • Arten der Vererbung - Einfach-Vererbung (eindeutig) - Vorteile: • keine Wiederholung von Beschreibungsinformation • abgekürzte Beschreibung • Fehlervermeidung - Mehrfach-Vererbung • Schlussweise für Vererbungsregeln: HasAttribute (C1, A) ← Isa (C1, C2), HasAttribute (C2, A) HasValue (C1, A, V) ← Isa (C1, C2), HasValue (C2, A, V) P(..., C1, ...) 3 - 49 ← Isa (C1, C2), P (..., C2, ...) 3 - 50 Vererbung (Inheritance) Vererbung (2) • Subklasse erbt alle Attribute der Superklasse Universitätsangehöriger is-a Bediensteter is-a Beamter • Subklasse kann den Wertebereich ererbter Attribute einschränken: Name Geburtstag Wein Oechslegrad Herkunftsland is-a Student Fachbereich is-a Spätlese Lage Jahrgang Rebsorte io Angestellter io Matnr Fachbereich Daisy is-a • Subklasse kann ererbte Methoden überschreiben4 oder Defaultwerte bei Attributen ersetzen: Treibstoff= is-a Benzin stud. Hilfskraft Garfield Pkw Ermittle_Kfz_Steuer (Implementierung 1) Wochenstunden Kostenstelle io Treibstoff= Diesel Ernie PkW_mit_ Dieselmotor ••• • Mehrfach-Vererbung (multiple inheritance) kann zu Konflikten führen PkW_mit_Kat Ermittle_Kfz_Steuer (Implementierung 2) ••• Methoden mit gleichem Namen und unterschiedlicher Implementierung (Overriding) ➥ Auflösung explizit durch den Benutzer, z. B. durch Umbenennung: Hiwi_im_Fachbereich → Fachbereich of Angestellter immatrikuliert_im_Fachbereich → Fachbereich of Student 3 - 51 4. Der Begriff überschreiben (engl. override, wörtlich außer Kraft setzen, überwinden) beschreibt eine Technik, die es einer Unterklasse erlaubt, eine eigene Implementierung einer geerbten Methode zu definieren. Die überschreibende Methode ersetzt dabei die überschriebene Methode der Oberklasse. 3 - 52 Vererbung (3) Vererbung (4) Vererbung der Beziehungen (Struktur) • Vererbung von Beziehungen: • Mehrfach-Vererbung / mögliche Lösungen Kinder Univ.-Ang. 1. Attribute: Vereinigung; bei Konflikt: Umbenennung Projekt 2. Wertebereiche (zulässige Werte): is-a FB Vereinigung; bei Konflikt: Umbenennung 3. Defaultwerte: benutzerdefiniert (Ersetzung) Student Assistent Professor 4. Integritätsbedingungen (Prädikate): benutzerkontrolliert (Spezialisierung • Beispiel: Doktorprüfung Drei-Weg-Beziehung zwischen Doktorand sowie zwei Professoren als Erst- und Zweitgutachter Doktorand Prüfung 5. Operationen (Methoden): benutzerkontrolliert (Überschreiben) Professor Spezialisierung: Definitionen • Subklasse: Klasse S, deren Entities eine Teilmenge einer Superklasse G sind: • Verfeinerung von Doktorprüfung: Erstgutachter muss Professor sein, Zweitgutachter kann Dozent sein S⊆G d. h., jedes Element (Ausprägung) von S ist auch Element von G. Univ.-Ang. • Spezialisierung: Z = {S1, S2, ... Sn} Menge von Subklassen Si mit derselben Superklasse G is-a Univ.-Lehrer Z heißt vollständig (total), falls gilt G = ∪ Si Doktorand (i = 1..n) andernfalls partiell. Professor Prüfung Dozent Z ist disjunkt, falls Si ∩ Sj = { } für i ≠ j andernfalls überlappend (nicht-disjunkt). 3 - 53 3 - 54 Arten von Spezialisierungen Zusammenfassung: Generalisierung/Spezialisierung • Verfeinerung der is-a-Beziehung Name Person Alter p • Partielle, disjunkte Spezialisierung Ort PNr Str Name Adr Ausbildung ... Spezialisierung überlappend (nicht-disjunkt) Generalisierung disjunkt Hochschulangehöriger Eintrittsdatum ••• ••• t Fachgeb. Ausbildung Wiss. ••• Nichtwiss. ••• t t Angestellter Pilot Lizenz Klassifikation p Techniker FlugStd Instantiation Prof Student Doktorand io io io S1 S2 S3 Angestellter Arbeiter io ➥ Generalisierungshierarchie als ER-Diagramm TeamNr • Weitere Spezialisierungen • Nutzung beim objektorientierten DB-Entwurf Person Univ.-Angehörige t p Vererbung von Typinformationen - Strukturdefinitionen: Attribute, Defaultwerte, konstante Werte - Integritätsbedingungen: Prädikate, Wertebereiche, Zusicherungen Mann Doktorand Frau 3 - 55 Student - Verhalten: Operationen (Methoden) und ggf. - Aspektdefinitionen: Kommentare, Einheiten u. a. 3 - 56 Element-Assoziation Mengen-Assoziation • Aufgabe • Aufgabe Die Element-Assoziation fasst Objekte (Elemente) zusammen, um sie im Rahmen einer Objektgruppe (Mengenobjekt) als Ganzes zu beschreiben. Dabei werden einerseits Details der einzelnen Elemente unterdrückt und andererseits bestimmte Eigenschaften, welche die Objektgruppe charakterisieren, hervorgehoben. Die Mengen-Assoziation ist ein ergänzendes Konzept zur Element-Assoziation. Sie drückt Beziehungen zwischen zusammengesetzten Mengenobjekten aus • Anwendung - Sie baut eine 'subset-of'-Beziehung (‘ss’) auf • Anwendung - Sie ist rekursiv anwendbar und organisiert die Mengenobjekte in einer - Element-Assoziation (auch Gruppierung, Partitionierung, ÜberdeckungsAggregation genannt) baut zusammengesetzte (Mengen-)Objekte basierend auf den einfachen (Element-)Objekten auf. - Sie verkörpert eine 'element-of'-Beziehung (‘eo’) als1-Ebenen-Beziehung. Assoziations-Hierarchie (n-Ebenen-Beziehung) • Struktureigenschaften der Assoziation - Alle Elemente eines Mengenobjekts sind auch Elemente der zugehörigen Supermenge - Es können auch heterogene Objekte zu einem Mengenobjekt zusammengefasst werden. Bei automatischer Ableitung müssen die Objekte das Mengenprädikat erfüllen. Bei manuellem Aufbau wählt der Benutzer die Objekte aus und verknüpft sie mit dem Mengenobjekt (Connect). - Objekte können gleichzeitig Elemente verschiedener Mengenobjekte sein sowie auch Teilmenge von mehreren Supermengen ➥ Netzwerke, (n:m)! • Graphische Darstellung: • Systemkontrollierte Ableitungen bei der Assoziation Assoziationshierarchie Menge - Sie unterstützt keine Vererbung, da die Mengeneigenschaften keine Elementeigenschaften sind Menge - Durch Mitgliedschaftsimplikation lassen sich Eigenschaften bestimmen, ... ‘ss’ die jedes gültige Element der Menge erfüllen muss Menge - Mengeneigenschaften sind Eigenschaften der Menge, die über Elementei‘eo’ genschaften abgeleitet sind Element Element-/Mengen-Assoziation 3 - 57 3 - 58 Assoziation – Beispiel Zusammenfassung: Assoziation • Generalisierungshierarchie • Zusammenfassung einer Menge von Objekten potentiell verschiedenen Typs ••• zu einem semantisch höheren Objekt • Neben der Element-Assoziation ist Mengen-Assoziation möglich Sportler • „element-of“-Beziehung und „subset-of“-Beziehung Spieler T1 Assoziation T2 Trainer V1 S1 S2 ••• Torleute Uni-Gremien Tr1 Stürmer Aufgebot A1 subset-of subset-of Senat Versammlung ••• ••• elemof WM-Teilnehmer P1 elemof P2 • • • elemof S1 • • • elemof elemof N1 • • • • Operationen - Erzeugen/Löschen ➥ zusätzliche Prädikate (z. B. GEWAEHLT) zur automatischen Bestimmung • Create der konkreten Menge erforderlich • Connect/Disconnect (manuell oder automatisch über Mengenprädikate) ➥ Ableitung von Objekteigenschaften durch Mitgliedschaftsimplikation (z. B. Senatsmitglied) • Delete ➥ Ableitung von Mengeneigenschaften (z. B. Anzahl der Senatsmitglieder) - Suchen • - Schlussfolgerungen Ziel: Zusammenfassung von Gruppen mit heterogenen Objekten für einen • Mitgliedschaftsimplikation bestimmten Kontext (Vergleiche Sichtkonzept) • Mengeneigenschaften 3 - 59 3 - 60 Aggregation • Beziehung mit spezieller zusätzlicher Bedeutung: Element-Aggregation • Aufgabe Das Objekt, auf das sie verweist, soll Bestandteil sein (Teil-Ganze-Beziehung), Die Element-Aggregation gestattet die Zusammensetzung von Objekten aus einfachen Objekten. Sie stellt die ‘Teil-Ganze’-Relation für solche nicht weiter z. B. zerlegbaren Objekte her Auto – Motor Tisch Kante Bild – – – Tischplatte Endpunkt Farbtabelle • Anwendung - Eine Kollektion von einfachen Objekten (Element-Objekt, Teil) wird als zusammengesetztes Objekt (Komponentenobjekt/Aggregatobjekt) behandelt • Entweder exklusiv5: kein anderes Objekt darf denselben Bestandteil haben - Sie baut eine 'part-of'-Beziehung (‘po’) auf (1-Ebenen-Abstraktion). Typischerweise erzeugt der Benutzer ein Aggregat aus Teilen mit Hilfe von Connect-Anweisungen; dabei müssen Struktureigenschaften beachtet werden (z. B. Mannschaft besitzt 11 Spieler) oder gemeinsam: derselbe Bestandteil wird in zwei oder mehr Objekten verwendet - Die Möglichkeit, heterogene Objekte zu aggregieren, erhöht die Anwendungsflexibilität • Graphische Darstellung: • Entweder abhängig: Bestandteil kann nicht allein existieren; Aggregationshierarchie Komponente wird mit dem Objekt gelöscht Komponente oder unabhängig: ... Bestandteil kann auch für sich als Objekt existieren ➥ Objekte mit exklusiven und/oder abhängigen Objekten heißen Komponente ‘po’ zusammengesetzte Objekte (composite objects, komplexe Objekte) Teil/Element oder Aggregate Element-/Komponenten-Aggregation 5. Die exklusive Aggregation wird in UML als Komposition bezeichnet, die gemeinsame als „Aggregation“. 3 - 61 ‘co’ 3 - 62 Komponenten-Aggregation • Aufgabe Aggregation – Beispiel • Generalisierungshierarchie ••• Die Komponenten-Aggregation dient als ergänzendes Konzept zur Element-Aggregation. Durch sie wird die Teil-Ganze-Relation auf Sportler Komponenten angewendet • Anwendung Spieler Trainer - Zwischen den Komponentenobjekten wird eine 'component-of'T1 Beziehung (‘co’) hergestellt (z. B. durch Connect-Anweisung) T2 V1 S1 S2 Tr1 - Sie ist rekursiv anwendbar und organisiert eine Aggregationshierarchie (n-Ebenen-Beziehung) Torwart • Struktureigenschaften bei der Aggregation (Aggregation bedeutet auch 'besteht-aus'/'consists-of') Verteidigung Mittelfeld ••• Aggregation Mannschaft M1 - beschreibt notwendige Eigenschaften, die ein Objekt haben muss, um konsistent zu sein Mannschaft M2 • • • Liga-Spieltag ➥ Unterschied zu Klassen und Mengenobjekten, die ohne Instanzen existieren können, bzw. für die leere Mengen erlaubt sind - Elemente einer Subkomponente sind gleichzeitig auch Elemente aller Superkomponenten dieser Subkomponente - Objekte können gleichzeitig Elemente verschiedener Komponenten bzw. auch Subkomponente von mehreren Superkomponenten sein ➥ • Operationen - Erzeugen/Löschen • Create • Connect/Disconnect Netzwerke, ((n:m)!) • Delete - Integritätsbedingungen für Aggregatstrukturen - Suchen (transitive Ableitung von komplexen Objekten) - Schlussfolgerungen • implizierte Prädikate 3 - 63 Sturm 3 - 64 Aggregation – Beispiel (2) Zusammenfassung: Aggregation • (Komponenten-) Objekte lassen sich zu einem neuen Objekt zusammenfassen PC-System ‘co’ • Element- und Komponenten-Aggregation möglich Preis Gewicht ‘co’ • ‘part-of’-Beziehung und ‘component-of’-Beziehung ‘co’ Budget Uni Peripherie ‘po’ Drucker ‘po’ Festplatte Basis-PC Erweiterungen ••• ••• Kapazität Preis Gewicht • Systemkontrollierte Ableitungen: implizierte Prädikate ••• comp_ of comp_ of comp_ of Fachbereich Verwaltung zentrale Einrichtung comp_ of comp_ of Institut ServiceZentrum - Prädikate, die über der Aggregationshierarchie spezifiziert sind und comp_ • • • of Personal comp_ • • • comp_ of of RHRK HS-Sport gemeinsame Eigenschaften von Elementen/Aggregaten betreffen - upward implied predicate Wenn P(x) wahr ⇒ P (Aggregatobjekte (x)) wahr - downward implied predicate Wenn P(x) wahr ⇒ P (Komponentenobjekte (x)) wahr comp_ • • • of Arbeitsgruppe ••• ••• Anzahl part_ of part_ of Wiss.MA Operator • im Beispiel: - upward implied predicate: Gewicht > x - downward implied predicate: Preis < y • Ableitung von Objekteigenschaften (implied predicates) - upward implied predicate (Anzahl > x) - downward implied predicate (Budget < y) 3 - 65 3 - 66 ••• Integrierte Sichtweise – Ein Beispielobjekt Objektorientierte Repräsentation • Integration der Abstraktionskonzepte: - ein Objekt kann mehrere Beziehungstypen aufbauen Feijoada - entsprechend den verschiedenen Rollen, die in den Abstraktionen vorkommen instance-of: Hauptgerichte - Objektsemantik wird bestimmt durch die Kontexte/Rollen eines Objektes strukturelle Attribute element-of: brasilianische Spezialitäten has-components: schwarze Bohnen, Fleisch, Gewürze Preis: 36 possible-values: integer > 0 Spezialitäten des Restaurants Gerichte ‘ss’ ‘sc’ cardinality: [1,1] unit: Euro brasilianische Spezialitäten Vorbereitungszeit: deklarative Attribute Hauptgerichte possible-values: integer > 0 cardinality: [1,1] ‘io’ ‘eo’ demon: Berechne-Vorbereitungszeit Feijoada geeignete-Getränke: trockener Rotwein, Bier possible-values: instance-of Getränke ‘po’ cardinality ‘po’ . schwarze Bohnen . Fleisch . Bestellen (Anzahl-von-Personen) prozedurale Attribute procedure BEGIN ... END Darstellungsprinzip: . Objekt . . 3 - 67 3 - 68 Gewürze Modellinhärentes „Reasoning“ Zusammenfassung • 3 Abstraktionskonzepte • DB-Entwurf umfasst - ermöglichen verschiedenartige Organisationsformen der modellierten Objekte und ihrer Beziehungen - Informationsbedarfsanalyse - können für Schlussfolgerungen benutzt werden: - konzeptionelles DB-Schema (-> Informationsmodell) • um Aussagen über Objekte und ihre Eigenschaften abzuleiten - logisches DB-Schema • als Zusatz bei Manipulations- und Retrievaloperationen - physisches DB-Schema (nicht diskutiert) Vererbung Gerichte Preis - Modellierung bezieht sich auf die Typebene ‘io’ - Relevante Zusammenhänge der Miniwelt werden durch Entity- und Relationship-Mengen modelliert. Sie werden genauer durch Attribute, Wertebereiche, Primärschlüssel/Schlüsselkandidaten beschrieben Feijoada Mitgliedschaftsimplikationen brasilianische Spezialitäten • ERM-Charakteristika Herkunft: Brasilien - Klassifikation von Beziehungstypen dient der Spezifikation von strukturellen Integritätsbedingungen - Anschauliche Entwurfsdarstellung durch ER-Diagramme ‘eo’ ➥ relativ karges Informationsmodell Feijoada • Einführung weiterer Modellierungskonzepte Mengeneigenschaften - Verfeinerung von Beziehungen durch Kardinalitätsrestriktionen und vor allem Abstraktionskonzepte brasilianische Spezialitäten - Das erweiterte ERM ist sehr mächtig und umfasst viele bekannte Modellierungskonzepte (jedoch keine Rollen; sie lassen sich als Mehrklassen-Mitgliedschaften von Instanzen nachbilden) ‘eo’ Feijoada implizierte Prädikate Kalorien = 1020 Kcal - Integritätsbedingungen wurden hier nicht behandelt (-> Relationenmodell) • Abstraktionskonzepte und deren Implikationen Feijoada - Generalisierung und Vererbung - Assoziation mit Mengeneigenschaften und Mitgliedschaftsimplikationen ‘po’ schwarze Bohnen 3 - 69 Kalorien = 700 Kcal - Aggregation und implizierte Prädikate - Integration der Abstraktionskonzepte mittels objektzentrierter Darstellung 3 - 70 Vergleich der Modellierung – ERM und UML • Entity-Typ Vergleich der Modellierung – ERM und UML (2) • Relationship-Typ - Angestellter mit Personalnummer, Nachname und Vorname ERM - Auto gehört Person UML ERM UML Auto <<entity>> Auto UML-Stereotyp PersonalNr 1 * <<entity>> Angestellter Nachname Angestellter Vorname gehört gehört <<key attribute>> +PersonalNr: Integer +Nachname: string +Vorname: string n 1 <<entity>> Person Person • Mehrwertige Attribute • Relationship-Typ mit Attributen - Auto mit Farbe(n) und Autonummer - Auto gehört Person ab einem Kaufdatum <<entity>> Auto Farbe Auto AutoNr <<entity>> Auto Auto 1 +Farbe: string[1.*] <<key attribute>> +AutoNr:Integer Kaufdatum * <<relationship>> gehört gehört n +Kaufdatum: date Person 3 - 71 1 <<entity>> Person 3 - 72 Vergleich der Modellierung – ERM und UML (3) • n-stelliger Relationship-Typ Vergleich der Modellierung – ERM und UML (4) • Existenzabhängigkeit - Professoren prüfen Studenten über Vorlesungen an Datum - Ein Haus hat eine Adresse und einen Besitzer und hat mehrere Zimmer ERM ERM Doktorand <<entity>> Zweitgutachter <<entity>> Doktorand Zweitgutachter 1 UML UML n Adresse <<entity>> Haus Haus Besitzer <<key attribute>> +Adresse:string +Besitzer: String n 1 * 1 prüft hat m 1 <<entity>> Doktorvater Doktorvater hat 1..* <<weak entity>> Zimmer 1 ZimmerNr Zimmer <<keyattribute>>+ZimmerNr:smallint • Relationship-Typ auf einem Entity-Typ - Stücklistenbeziehung: Teile sind Teile von Teilen • Generalisierung ist-Teilvon * n Komponente - Angestellte sind Personen ist-Teil-von m Bestandteil 1..* -Komponente <<entity>> Person Person -Bestandteil <<entity>> Teil Teil p <<entity>> Angestellter Angestellter 3 - 73 3 - 74 Notationen • Viele Systeme erlauben als Kardinalitätsrestriktionen nur 0, 1 oder n Notationen (2) • Jedes Element von A nimmt an mindestens einer Beziehung teil sowie ausschließlich binäre Beziehungen • Jedes Element von A nimmt an genau einer Beziehung teil [1,1] MINMAX A SAPSERM A MINMAX A SAPSERM A Krähenfuss A Krähenfuss A 1, C, M A 1, C, M A [1,n] M 1 • Jedes Element von A kann an beliebig vielen Beziehungen teilnehmen • Jedes Element von A nimmt an höchstens einer Beziehung teil MINMAX SAPSERM Krähenfuss 1, C, M A [0,1] A A A C 3 - 75 MINMAX A SAPSERM A Krähenfuss A 1, C, M A [0,n] MC 3 - 76