Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100

Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100

Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100

Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100

Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100

Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100

Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100

Warning: Division by zero in /home/weicker/public_html/pmwiki/pmwiki.php on line 1100
SwtWiki - Entity-Relationship-Modell

Entity-Relationship-Modell

Definition

Entity-Relationship-Modell
Das Entity-Relationship-Modell, kurz ER-Modell oder ERM, dient der Modellierung von Daten und deren Beziehung untereinander. Dabei wird eine abstrakte Darstellung eines Realitätsausschnittes erstellt. Jene Darstellung erfolgt in einem ER-Diagramm. Diese abstrakte Sicht reduziert ein Problem auf dessen sachlichen Inhalt und blendet Fragen der exakten Algorithmierung aus. Das erleichtert im Software-Entwurf die Kommunikation zwischen Entwickler und Kunde und somit die Erstellung von Lasten- und Pflichtenheft. Des Weiteren findet das Entity-Relationship-Modell Anwendung im Datenbankentwurf.
Entity
Nach dem Oxford Dictionary ist ein Entity „a thing with distinct and independent existence“ also ein "Ding mit bestimmter und unabhängiger Existenz". Somit wird im Folgenden auch das Synonym „Objekt“ verwendet. Jedes Entity trägt einen Namen, wird von einer Attributmenge beschrieben und macht sich damit unterscheidbar von anderen Objekten.
Relationship (Beziehung)
Ein Relationship ist eine bedeutsame Beziehung zwischen mindestens einem (rekursive Beziehung) bis maximal drei Objekten. In der Regel liegen binäre Beziehungen vor. Genau wie ein Entity besitzt auch eine Relation einen Namen und kann von einer Attributmenge beschrieben werden. Des Weiteren beschreibt die Kardinalität der Beziehung, wie viele Entitäten der einen Menge (Entity1) mit Entitäten der anderen Menge (Entity2) in Beziehung stehen.
Attribut
Ein Attribut ist eine zu einem Entity oder Relationship zugehörige Sachinformation. Eine Menge von Attributen eines Entitys kann zum Schlüssel erklärt werden. Diese werden dann unterstrichen dargestellt (siehe Beispiel 1: Entity: Lieferant, Attribut: LID).
Kardinalität
man unterscheidet folgende Grundtypen:
  • 1:1 - genau eins wird genau einem anderen zugeordnet
  • 1:n - genau eins wird n anderen zugeordnet 0<=n<=unendlich, und umgekehrt
  • m:n - genau m werden n anderen zugeordnet 0<=n<=unendlich, 0<=m<=unendlich

eine exaktere und empfehlenswertere Notation ist folgende:

KomplexitätBemerkungBeispiel
(1,1)(1,1)Strenge 1:1-Beziehung, umkehrbar eindeutige FunktionEhe zwischen Ehemännern und Ehefrauen
(1,1)(0,1)
(0,1)(1,1)
Partielle 1:1Ehe zwischen Ehemännern und Frauen
(0,1)(0,1)Allgemeine 1:1Ehe zwischen Männern und Frauen
(1,1)(1,*)
(1,*)(1,1)
Strenge hierarchische BeziehungAngestellte in einer Abteilung
(1,1)(0,*)
(0,*)(1,1)
Funktionale Abhängigkeit ohne ExistenzbedingungBeziehung zwischen Männern (potentiellen Vätern) und Kindern
(0,1)(1,*)
(0,1)(0,*)
(1,*)(0,1)
(0,*)(0,1)
Allgemeine hierarchische Beziehung (1:n) 
(k,l)(r,s)Allgemeine m:n-Beziehung (l,s =>1)Angestellte arbeiten für Projekte

Beispiele

Um die folgenden Beispiele anschaulich zu gestalten, werden ER-Diagramme verwendet.


Abbildung 1

1. (1,*) Beziehungen zwischen Medikament und Lieferant. LID (künstlicher Schlüssel) ist Primärschlüssel des Entity Lieferant. Primärschlüssel können sich auch aus mehreren Attributen zusammensetzen (zusammengesetzte Primärschlüssel).



Abbildung 2

2. (0,*) Beziehungen zwischen Patient und Medikamenten.



Abbildung 3

3. (0,*) Rekursive-Beziehung der Medikamente.



Abbildung 4

4. Spezialisierung "IS-A" Beziehung Arzt, Schwester is a Personal.

Einbettung und Abgrenzung

Das Entity-Relationship-Modell hat an Bedeutung verloren. Es wurde von UML und dessen Vielzahl an Diagrammen verdrängt. Das ERM findet heute wohl mehr Anwendung im konzeptionellen Datenbankentwurf. Eine Erweiterung des Modells ist das Structured-Entity-Relationship-Modell, es ging 1989 aus der Arbeit von Prof. Dr. Sinz hervor.

Ein kurzer Vergleich des ER-Modells mit den UML-Klassendiagrammen weist auf den ersten Blick Parallelitäten in deren Struktur auf. Damit liegt es nahe, eine Überführung der beiden Modelltypen ineinander vornehmen zu können. Dieser Vorgang, auch Object Relational Mapping genannt, ist jedoch nur unidirektional verlustfrei durchführbar (ER-Modell->UML-Klassendiagramm). Bei der Überführung eines UML-Klassendiagramms müssten, um den Informationsgehalt zu bewahren, auch Methoden transformiert werden, doch für diese gibt es im ER-Modell kein semantisches Equivalent.



Abbildung 5

Beispiel: Transformation des ER-Diagramms aus Abb.4 in ein UML-Klassendiagramm
Zunächst werden alle Entitäten in Klassen umgewandelt und die Attribute werden übernommen. Die ISA Beziehung verlangt die Modellierung der Vererbung. Entsprechende Symbole (Pfeile) sind zu verwenden.

Ergebnis: unter Berücksichtigung, dass auf die Typendeklaration verzichtet wurde, ist das ER-Diagramm verlustfrei in ein UML-Klassendiagramm überführt worden. Man bemerkt, dass den Klassen Methoden fehlen, da diese auch nicht im ER-Diagramm modelliert sind und auch nicht modelliert werden können. So ergibt sich der bereits oben vermerkte Mangel, dass eine verlustfreie und damit exakte Transformation ausschließlich von einem ER-Diagramm in ein UML-Klassendiagramm vorgenommen werden kann und keinesfalls umgekehrt.

Historische Anmerkung

Der Begriff Entity-Relationship-Modell geht auf den von Peter Chen 1979 veröffentlichten Artikel The Entity Relationship Model – Toward A Unified View of Data zurück. Ursprünglich war es Chens Idee, ein logisches Datenmodell zu schaffen, um die gebräuchlichen logischen Datenmodelle zu vereinheitlichen. Mit der Zeit und den Inspirationen anderer entwickelte sich das ER-Modell zu einem semantischen Datenmodell.

Kritische Betrachtung

1979 mag das ER-Modell revolutionär gewesen sein und die gesamte Computerwelt beflügelt haben, doch wurde es für die moderne Softwareentwicklung von UML und CASE überholt. Die Begründung dafür ist in der Mangelung, der Modellierung von Datenfluss, Aktivitäten, Abläufe, Interaktionen uvm. zu finden. Das ER-Modell gibt eine statische Sicht auf ein Problem. Für komplexere Problemstellungen in der Sofwareentwicklung ist dies allerdings ungeeignet, da meist eine Interaktion des Nutzers Erfolgt und damit variable, inhaltsgesteuerte Abläufe stattfinden. Jedoch besitzt das ER-Modell im modernen Datenbankentwurf noch stets eine berechtigte Position.

Quellen

Vorlesung DB1 Entity-Relationship-Modell, Prof. Dr.-Ing Thomas Kudraß http://www.imn.htwk-leipzig.de/~kudrass/Lehrmaterial/DB1-VL/PPT/02-ER.ppt
Oxford Dictionary http://www.askoxford.com/dictionaries/?view=uk
Entity-Relationship-Modell http://de.wikipedia.org/wiki/Entity-Relationship-Modell
Vorlesung Softwaretechnik - Definitionsphase, datenorientierte, algorithmisch- und regelbasierte Sicht http://bis.informatik.uni-leipzig.de/de/Lehre/0506/WS/Softwaretechnik/files?get=2005w_swt_v_06.pdf
Virtuelle Realität und objektorientierte Modellierung http://db.informatik.uni-bremen.de/teaching/projects/vroom/vroom99.ps
Multimedia-Systeme – ein neues Anwendungsgebiet für die Software-Technik http://pi.informatik.uni-siegen.de/stt/18_4/18_4_tb_balzert_weidauer.ps
Grundzüge der Wirtschaftsinformatik II VO http://tud.at/wi-inf/gz-winf2.htm
Software-Engineering im Aris-Konzept als Ansatz der Integration der IT-Landschaft von Unternehmen http://www2.ba-horb.de/~pl/AKGeschaeftsprozesse/Pluemicke.pdf
Datenbanken - ERM Entity Relationship Model http://www.oszhdl.be.schule.de/gymnasium/faecher/informatik/datenbanken/erm/
Modellierung in ERM, UML - Beispiele http://oszhdl.be.schule.de/gymnasium/faecher/informatik/modellierung/index.htm
The Entity-Relationship Model--Toward a Unified View of Data http://bit.csc.lsu.edu/~chen/pdf/erd.pdf

Kommentar

  • Evtl. sollte in der Abgrenzung die Ähnlichkeit (und partielle Überführbarkeit) zu den Klassendiagrammen aufgezeigt werden.
  • Kann die Aussage der kritischen Betrachtung mit Argumenten belegt werden?

Warning: fopen(wiki.d/.flock) [function.fopen]: failed to open stream: Permission denied in /home/weicker/public_html/pmwiki/pmwiki.php on line 416

PmWiki can't process your request

Cannot acquire lockfile

We are sorry for any inconvenience.