Erweiterte Entity-Relationship- und UML-Modellierung. Copyright 2004 Shamkant Ramez Elmasri B. Navathe and Shamkant Navathe.

Ähnliche Dokumente
Entwurf: Fortgeschrittene Konzepte

Einführung in Datenbanken

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

ERM Modellierung Teil 2

Das konzeptionelle Datenmodell

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Einführung in die Datenorganisation. Informationssysteme

Theorie zur Übung 8 Datenbanken

Gliederung. 1. Kurzeinstieg 2. Warum ist die Semantik so wichtig? 3. OWL 4. GO 5. Übersetzung 6. Zusammenfassung 7. Quellen

5.2 Entity-Relationship-Modell

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Entity Relationship Modell (ERM) (Konzeptueller Datenbankentwurf)

Datenorientierter Ansatz. Datenbankentwurfsschritte. Welche Daten müssen im System verwaltet werden? Wie werden die Daten im System verändert?

Objektorientierte Programmierung III

Konzeptuelle Modellierung

Arbeiten mit einer Datenbank 1

Einführung in Datenbanksysteme

Das Entity-Relationship Modell

Vgl. Oestereich Kap 2.4 Seiten

Das Entity-Relationship-Modell (ERM)

Kapitel 3: Entity-Relationship-Modell

Vom Entity-Relationship-Modell (ERM) zum relationalen Datenmodell (RDM)

Begriffe 1 (Wiederholung)

zu E 1 der Form (0, 1) erfüllen.

Abstraktionsebenen des Datenbankentwurfs

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Datenmodellierung. Pierre Fierz. Das konzeptionelle Datenmodell. Das Entity-Relationship Modell (ERM) Entität und Attribut Beziehungen

Java: Vererbung. Teil 1: Grundlagen, UML.

Chapter 2 Datenmodellierung

Rückblick: Entity-Relationship-Modell

01. Grundprinzipien der Vererbung

Kurzeinführung in UML

Wirtschaftsinformatik 2 Modellierung betrieblicher Informationssysteme - MobIS (theoretische Aspekte der Informationsmodellierung)

Daten Bank. 2. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

Objektorientierte Analyse (OOA) Strukturmodellierung

Konzeptueller Entwurf

Inhalte der Veranstaltung

Instanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben?

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Objektorientierte Modellierung (1)

Mengen und Abbildungen

Objektorientierte Programmierung OOP

Vorlesung Informationssysteme

Teil III Entity-Relationship-Modell

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Entity Relationship Model

Datenbanken Unit 2: Das ER-Modell

Datenbanksysteme: Entwurf

PRG2 Folien Zicari Teil 2 Einführung in Datenbanken SS 2007

Programmierung und Datenbanken II

Überblick. Überblick zum weiteren Inhalt

ERM/ERD Entity Relationship Model Entity Relationship Diagram.

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Software-Engineering

Kapitel DB:IV (Fortsetzung)

Geoinformation I Datenmodellierung

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Kapitel DB:IV (Fortsetzung)

Hands-on-Workshop Datenmodellierung mit dem neuen Innovator for Database Architects. MID Insight Nürnberg,

6.3 Entity-Relationship-Modell. Einführendes Beispiel

Datenorganisation. Februar bis Mai Dipl.-Oek. Patrick Bartels Institut für Wirtschaftsinformatik Universität Hannover

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 5 -

Übungsblatt DB:IV. Abzugeben sind, bis , Lösungen zu den Aufgaben 1d, 1e, 3, 7, 9, 12. Aufgabe 1 : Datenintegrität

Bio-Ontologien: Darstellung in GO und OWL

Programmierung Nachklausurtutorium

Einführung in die Informatik II

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Datenbanken. Semantische Datenmodellierung:

Datenbanken 1. Datenbankentwurf. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg. Sommersemester 2014

Grundlagen von Datenbanksystemen

Software-Engineering

Kapitel DB:III (Fortsetzung)

Kapitel 6: Das E/R-Modell

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Assoziationen in Java

Vererbung. Oberklassen und Unterklassen

Softwaretechnik 2015/2016

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Datenmodelle. Einführung in das Entity-Relationship-Modell. Datenbankmodelle. Beispiel für ein ER-Schema. Kunde( Meier, , ) 41, Meier

Datenmodelle dienen der Darstellung der Informationsstruktur, nicht der Darstellung der Informationen selbst. Motivation

IT I: Heute. Nachbetrachtung Wissensüberprüfungen. Einführung Vererbung. Roboter in becker.robots IT I - VO 5 1

Datenbankentwurf. Kapitel 3. Datenbankentwurf 76 / 508

2. Relationale Datenbanken

Disclaimer. 1 Allgemeine Grundlagen (8 Punkte) (3 Punkte) (3 Punkte) (2 Punkte)... 2

2.4 Erweiterungen des E/R-Modells. Erweiterung von Entitätstypen - Weak Entity Type

Das Entity-Relationship-Modell. Prof. Dr. T. Kudraß 1

Datenbanken 1. Datenbankentwurf. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg

Die Unified Modeling Language (UML)

Mathematischer Vorbereitungskurs für das MINT-Studium

Transkript:

Erweiterte Entity-Relationship- und UML-Modellierung Copyright 2004 Shamkant Ramez Elmasri B. Navathe and Shamkant Navathe. CC 1

Erweitertes-ER (EER) Modellkonzept Beinhaltet alle Aspekte des Basis-ER-Modellkonzeptes Weitere Konzepte: Unterklassen/Oberklassen, Spezialisierung/Generalisierung, Kategorien, Attributvererbung Das resultierende Modell wird als Enhanced-ER oder Extended ER (E2R or EER) Modell bezeichnet Es wird verwendet, wenn es nötig ist, Anwendungen vollständiger und genauer zu modellieren Es beinhaltet objektorientierte Konzepte, wie z.b. Vererbung 4a-2

Unter- und Oberklassen(1) Ein Entitäts-Typ hat vielleicht zusätzliche sinnvolle Untergruppierungen seiner Entitäten. Beispiel: EMPLOYEE kann vielleicht eingeteilt werden in SECRETARY, ENGINEER, MANAGER, TECHNICIAN, SALARIED_EMPLOYEE, HOURLY_EMPLOYEE, Jede dieser Gruppierungen ist eine Untermenge der EMPLOYEE Entität Jede wird als Unterklasse von EMPLOYEE bezeichnet EMPLOYEE ist eine Oberklasse für jede dieser Unterklassen Dies wird als Oberklassen-/Unterklassenbeziehung Employee bezeichnet. Beispiel: EMPLOYEE/SECRETARY, d EMPLOYEE/TECHNICIAN Secretary Technician 4a-3

Unter- und Oberklassen(2) Dies Beziehung wird auch als IS-A Beziehung bezeichnet (SECRETARY IS- A EMPLOYEE, TECHNICIAN IS-A EMPLOYEE, ). Merke: Eine Entität die Mitglied einer Unterklasse ist, steht für die selbe Entität der realen Welt wie die Mitglieder der Oberklasse Das Mitglied der Unterklasse ist die selbe Entität in einer unterschiedlichen Rolle Eine Entität kann in der Datenbank nicht lediglich als ein Mitglied der Unterklasse existieren; sie muss auch ein Mitglied der Oberklasse sein Ein Mitglied der Oberklasse kann wahlweise für ein Mitglied seiner Unterklassen eingesetzt werden Beispiel: Ein Angestellter, der auch ein Ingenieur ist, gehört gleichzeitig zu den zwei Unterklassen ENGINEER und SALARIED_EMPLOYEE Es ist nicht nötig, dass jede Entität einer Oberklasse Mitglied in einer ihrer Unterklassen ist. 4a-4

Attributvererbung in Oberklassen / Unterklassen Beziehungen Eine Entität, die Mitglied einer Unterklasse ist, erbt alle Attribute der Oberklassse Sie erbt weiterhin alle Beziehungen Name Address Birthdate Employee d Secretary Technician TypSpeed TGrade 4a-5

Spezialisierung Ist der Prozess, eine Menge von Unterklassen einer Oberklasse zu definieren Die Menge von Unterklassen basiert auf Unterscheidungsmerkmalen der Entitäten in der Oberklasse Beispiel: {SECRETARY, ENGINEER, TECHNICIAN} ist eine Spezialisierung von EMPLOYEE basierend auf JobType. Vielleicht mehrere Spezialisierungen der selben Superklasse Beispiel: Eine andere Spezialisierung von EMPLOYEE basierend auf der Bezahlungsmethode {SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}. Oberklasse/Unterklassen-Beziehung und Spezialisierung kann grafisch durch ein EER-Diagramm dargestellt werden Attribute von Unterklassen werden spezifische Attribute genannt. Zum Beispiel TypingSpeed von SECRETARY Die Unterklasse kann an bestimmten Beziehungstypen beteiligt sein, z.b.: BELONGS_TO von HOURLY_EMPLOYEE 4a-6

Beispiel einer Spezialisierung 4a-7

Generalisierung Das Entgegengesetzte zum Spezialisierungsprozess Mehrere Klassen mit gemeinsamen Eigenschaften werden zu einer gemeinsamen Oberklasse generalisiert; Orginalklasse wird zu einer Unterklasse Beispiel: CAR, TRUCK generalisiert in VEHICLE; CAR und TRUCK werden zu Unterklassen von VEHICLE. Wir sehen: {CAR, TRUCK} ist eine Spezialisierung von VEHICLE Alternativ können wir sehen, dass VEHICLE eine Generalisierung ist von CAR und TRUCK 4a-8

Generalisierung und Spezialisierung Schematische Notation wird manchmal verwendet, um zwischen Generalisierung und Spezialisierung zu unterscheiden Pfeilspitze zur generalisierten Oberklasse repräsentiert eine Generalisierung Pfeilspitze zur spezialisierten Unterklasse repräsentiert eine Spezialisierung Wir benutzen diese Notation nicht, da es oft subjektiv ist welches Verfahren für eine bestimmte Situation angewendet wird Wir empfehlen, in diesen Situationen keine Pfeile zu zeichnen Datenmodellierung mit Spezialisierung und Generalisierung Eine Ober- oder Unterklasse repräsentiert eine Menge von Entitäten Dargestellt durch Rechtecke in EER Diagrammen (wie Entitäts-Typen) Manchmal werden alle Entitätsmengen als Klassen bezeichnet, egal ob sie Entitäts-Typen, Ober- oder Unterklassen sind. 4a-9

Arten von Generalisierungen und Spezialisierungen (2) Prädikats- oder Bedingungs-definiert: wir können die exakten Entitäten einer Unterklasse anhand einer Bedingung bestimmen Voraussetzung ist eine Einschränkung, die die Mitglieder der Unterklasse bestimmt Anzeigen einer Prädikats-definierten Unterklasse durch das Notieren der Bedingung an der Linie, welche von der Unterklasse zur Oberklasse führt Attribut-definiert: alle Unterklassen in einer Spezialisierung haben die selbe Mitgliedsbedingung auf dem selben Oberklassenattribut Attribut wird als definierendes Attribut für Spezialisierung bezeichnet Beispiel: JobType ist das definierende Attribut der Spezialisierung {SECRETARY, TECHNICIAN, ENGINEER} of EMPLOYEE Benutzerdefiniert: Wenn keine Bedingung die Mitgliedschaft bestimmt Die Mitgliedschaft in einer Unterklasse wird von den Datenbank-Benutzern bestimmt durch das Anwenden einer Operation, um eine Entität zur Unterklasse hinzuzufügen Die Mitgliedschaft in einer Unterklasse ist individuell spezifiziert für jede Entität in der Oberklasse 4a-10

Einschränkungen auf Spezialisierungen Disjunktheit: und Generalisierungen (2) Die Unterklassen der Spezialisierung müssen disjunkt sein (Eine Entität kann nur Mitglied in einer Subklasse der Spezialisierung sein). Spezifiziert durch d im EER Diagramm Wenn nicht disjunkt, überlappend; die selbe Entität kann Mitglied in mehreren Unterklassen einer Spezialisierung sein. Spezifiziert durch o im EER Diagramm Vollständigkeit: Total : jede Entität in einer Oberklasse muss ein Mitglied einer Unterklasse in der Spezialisierung/Generalisierung sein Dargestellt im EER Diagramm durch eine doppelte Linie Partiell : Eine Entität muss keiner Unterklasse angehören. Dargestellt im EER Diagramm durch eine einzelne Linie 4a-11

Einschränkungen auf Spezialisierungen und Generalisierungen (3) Vier Arten der Spezialisierung / Generalisierung: Disjunkt, total Disjunkt, partiell Überlappend, total Überlappend, partiell Generalisierung ist in der Regel total, weil die Oberklasse von der Unterklassen abgeleitet ist 4a-12

Beispiel einer disjunkten partiellen Spezialisierung 4a-13

Spezialisierung / Generalisierung: Hierarchien, DAGs und Geteilte Unterklassen (1) Eine Unterklasse kann auf sich selbst weitere Unterklassen spezifizieren Formt eine Hierarchie oder einen gerichteten azyklischen Graph (directed acyclic graph, DAG) Hierarchie ist eine Einschränkung, dass jede Unterklasse nur eine Oberklasse hat (so genannte einfache Vererbung ) In einem DAG kann eine Klasse Unterklasse von mehr als einer Oberklasse sein (genannt Mehrfachvererbung) In einem DAG oder einer Hierarchie erbt eine Unterklasse nicht nur die Attribute ihrer direkten Oberklasse, sondern auch alle der Vorgänger ihrer Oberklassen 4a-14

Spezialisierung / Generalisierung: Hierarchien, DAGs und geteilte Unterklassen (2) Eine Unterklasse mit mehr als einer Oberklasse wird geteilte Unterklasse genannt Kann spezialisierte Hierarchien oder DAGs oder generalisierte Hierarchien oder DAGs haben Spezialisierung startet mit einem Entity-Typen und definiert dann die Unterklassen vom Entity-Typen durch sukzessive Spezialisierung (top-down, konzeptioneller Verfeinerungsprozess) Generalisierung startet mit vielen Entitytypen und generalisiert diese mit allgemeinen Eigenschaften (bottom-up, konzeptioneller Syntheseprozess) In der Praxis wird eine Kombination von beiden Prozessen angewendet 4a-15

Beispiel für Spezialisierungs / Generalisierungs-Graph 4a-16

Kategorien (VEREINIGUNGSTYPEN) (1) Bisher: Ober/Unterklassen-Beziehungen haben eine einzige Oberklasse geteilte Unterklasse ist eine Unterklasse mit mehr als einer eindeutigen Oberklassen/Unterklassenbeziehung, wo jede Beziehung eine einzige Oberklasse hat (multiple Vererbung) In machen Fällen ist es nötig, eine einzige Oberklassen/Unterklassenbeziehung zu modellieren, mit mehr als einer Oberklasse Oberklassen repräsentieren verschiedene Entity-Typen Solche Unterklassen werden Kategorie oder Vereinigungstypen bezeichnet Spezifiziert durch U im EER-Diagramm 4a-17

Kategorien (VEREINIGUNGSTYPEN) (2) Beispiel: Datenbank für Kfz-Zulassungsstellen, Fahrzeugeigentümer kann eine Person, eine Bank oder eine Firma sein. Kategorie (Unterklasse) OWNER ist eine Untermenge der Vereinigung von den drei Oberklassen COMPANY, BANK, and PERSON Ein Kategoriemitglied muss in mindestens einer seiner Oberklassen existieren Hinweis: Im Gegensatz dazu ist eine geteilte Unterklassen eine Teilmenge des Durchschnitts seiner Oberklassen (geteilte Unterklassenmitglieder müssen in allen ihren Oberklassen existieren). 4a-18

Beispiele für Kategorien (VEREINIGUNGSTYPEN) 4a-19

Formelle Definition des EER- Modells (1) Klasse C: Eine Menge von Entitäten; kann ein Entity-Typ sein, Unterklasse, Oberklasse, Kategorie. Unterklasse: Eine Klasse dessen Entitäten immer eine Untermenge von Entitäten einer anderen Klasse C sein müssen, bezeichnet die Unterklasse S der Oberklassen/Unterklassen- (oder IS-A) Beziehung C/S S C Spezialisierung Z: Z = {S 1, S 2,, S n } eine Menge von Unterklassen mit der selben Oberklasse G; daher, G/S i eine Oberklassenbeziehung für i = 1,., n. G wird als eine Generalisierung einer Unterklasse bezeichnet {S 1, S 2,, S n } Z ist total wenn gilt: S 1 S 2 S n = G; anderenfalls ist Z partiell. Z ist disjunkt wenn immer gilt: S i S j = Ø für i j; anderenfalls ist Z überlappend. 4a-20

Formale Definition des EER- Modells (2) Unterklasse S von C ist Prädikats-definiert, wenn Prädikat p auf den Attributen von C benutzt wird, um die Mitgliedschaft in S zu spezifizieren; d.h., S = C[p], wobei C[p] die Menge der Entitäten in C ist, die p erfüllen Attribut-definierte Spezialisierung: wenn ein Prädikat A = c i (wobei A ein Attribut von G ist und c i ein konstanter Wert der Domäne von A) benutzt wird um die Mitgliedschaft in jeder Unterklasse S i in Z zu spezifizieren Eine Unterklasse, die nicht durch ein Prädikat definiert ist, bezeichnet man als Benutzer-definiert Hinweis: Wenn c i c j für i j, und A ist ein atomares Attribut, dann ist die Attribut-spezifizierte Spezialisierung disjunkt. 4a-21

Formale Definition des EER- Modells (3) Kategorie oder Vereinigungstyp T Eine Klasse, die eine Untermenge der Vereinigung von n definierten Oberklassen ist D 1, D 2, D n, n>1: T ( D 1 D 2 D n ) Sei p i ein Prädikat auf den Attributen von T, das die Entitäten von D j, welche Mitglieder von T sind, spezifizieren kann Dann ist T = (D 1 [p 1 ] D 2 [p 2 ] D n [p n ] Hinweis: Die Definition des Beziehungstypen sollte 'Entity- Typen' ersetzen durch 'Klasse'. 4a-22

UML-Beispiel mit Spezialisierung / Generalisierung {complete, overlapping} {complete, disjoint} {complete, disjoint} {complete, disjoint} 4a-23

Alternative Darstellungsnotationen Symbols for entity type / class, attribute and relationship Displaying attributes Notations for displaying specialization / generalization Various (min, max) notations Displaying cardinality ratios 4a-24