# Structured-Entity-Relationship-Modell

Die Strukturierte Entity-Relationship-Modellierung (SERM) erhebt den Anspruch, die Datenmodellierung nach der Entity-Relationship-Methode zu erweitern. Sie wurde ursprünglich 1988 von Elmar Sinz veröffentlicht.

## Ziele

* Strukturierung großer Datenschemata durch quasihierarchische Anordnung (siehe Typen von Graphen in der Graphentheorie) der Entitytypen (von links nach rechts)
* Visualisierung von Existenzabhängigkeiten durch Beziehungssemantik
* Vermeidung von Inkonsistenzen durch Nichtzulassen von Zirkelbezügen
* Vermeidung unnötiger Relationstypen durch Schlüsselvererbung
Die Datenobjekttypen in einem SERM können entweder originär oder abhängig sein. Die Abhängigkeit kann sowohl einseitig als auch wechselseitig sein.

## Notation

Die grafische Notation in SER-Diagrammen unterscheidet sich von ER-Diagrammen markant. Der Relationship-Typ aus ER-Diagrammen wird nicht verwendet, stattdessen gibt es zwei neue Typen: Entity-Relationship-Typ (ER-Typ) und Relationship-Typ (R-Typ). Der Entity-Typ wird weiterhin verwendet (E-Typ).
Beziehungen zwischen den Typen werden als Pfeile veranschaulicht. Die Kardinalität der jeweiligen Beziehung bestimmt dabei den verwendeten Pfeil. (Hierfür gibt es verschiedene Notationen, z. B. die hier dargestellte, die jedoch von der von Sinz original vorgestellten Darstellung abweicht).
Zu beachten ist, dass SER-Diagramme vor allem die Abhängigkeiten zwischen den Typen veranschaulicht. Um dies klar zu erkennen, werden Diagramme nach folgenden Regeln gezeichnet:
* Kanten kommen von links und gehen nach rechts (niemals umgekehrt). Typen ganz links sind folglich unabhängig. Typen rechts sind von linken Typen abhängig, sobald ein Pfeil von dort in den Typen eingeht.
* SER-Diagramme können Kreise aber keine Zyklen enthalten. (Ein Kreis wird durch eine geschlossene Kantenfolge repräsentiert, ein Zyklus ist eine geschlossene Kantenfolge, bei der die Kantenrichtung beachtet wird).
* Die Kanten eines SER-Diagrammes geben Aufschluss über die Relation zwischen den Typen. Kanten werden mit PK für Primary Key und FK für Foreign Key beschriftet (im Beispiel nicht zu sehen).

## Beispiel-Datenmodell

* Kunde und Artikel sind unabhängige (originäre) Entitys. Ihre Existenz ist von nichts anderem abhängig. Zu beachten ist, dass es ausreicht, dass ein Typ unabhängig sein könnte, um ihn als E-Typ zu zeichnen. Modelliert man das Beispiel also leicht anders, nämlich so, dass eine Rechnung nicht mit einer (0,*) sondern mit einer (1,*)-Kante mit den Kunden verbunden ist, so ändert sich an der Anordnung der Typen nichts(!). Nur die Kante von Kunde nach Rechnung verändert sich, obwohl nun Kunde ebenso von Rechnung abhängt, in der Form, dass ein Kunde nur angelegt wird sofern mindestens eine Rechnung angelegt wird.
* Jeder Auftrag bezieht sich genau auf einen Kunden. Aufträge ohne Kunden sind unzulässig (Auftrag ist ER-Typ), Kunden ohne Aufträge dagegen erlaubt (Kunde ist E-Typ).
* Zu jedem Auftrag gehört mindestens eine Auftragsposition. Auftrag und Auftragsposition sind wechselseitig abhängig.
* Jede Auftragsposition bezieht sich auf einen Artikel. Ein Artikel kann in mehreren Auftragspositionen vorkommen.
* Jede Rechnung bezieht sich auf genau einen Kunden. Kunden ohne Rechnungen sind wiederum zulässig, nicht jedoch Rechnungen ohne Kunden.
* Zu jeder Rechnung gehört mindestens eine Rechnungsposition. Rechnung und Rechnungsposition sind wechselseitig abhängig.
* Jede Rechnungsposition bezieht sich auf genau eine Auftragsposition. Eine Auftragsposition kann berechnet sein oder nicht.

## Vorgehen zur Umwandlung eines ER-Diagramms in ein SER-Diagramm

Liegt ein ER-Diagramm in Min-Max-Notation vor, lässt sich dieses anhand des folgenden Vorgehens nach Staud in ein SER-Diagramm überführen (ab S. 196 unten).
* Herausfinden welche Typen im SER-Diagramm existieren:
** Betrachte alle Entity- und Relationship-Typen im ER-Diagramm. Für jeweils zwei, die mit einer (1,1)-Kante verbunden sind, lege einen ER-Typ im SER-Diagramm an.
** Für alle verbliebenen Entity-Typen im ER-Diagramm lege einen entsprechenden E-Typ im SER-Diagramm an.
** Für alle verbliebenen Relationship-Typen im ER-Diagramm lege einen entsprechenden R-Typ im SER-Diagramm an.
* Schreibe alle soeben ermittelten E-Typen nach links in eine Spalte.
* Füge die ER- und R-Typen anhand ihrer existentiellen Abhängigkeiten ein (bei einfachen Beispielen finden sich die ER-Typen meist in der zweiten Spalte und die R-Typen meist in der dritten Spalte). Verbinde dabei alle Typen mit Kanten entsprechend der Kardinalitäten im ER-Diagramm.

### Beispiel

Das folgende ER-Diagramm in Min-Max-Notation liegt vor:
Charakteristika des Diagramms:
* Eine Fachkraft hat mindestens eine Leistung, die sie gut kann. Eine Leistung gehört zu genau einer Fachkraft. (Das Unternehmen rechnet sehr genau mit dem Personal.)
* Eine Leistung besteht aus beliebig vielen Bestandteilen, aber jeder Bestandteil gehört zu mindestens einer Leistung.
Nach obigem Vorgehen lässt sich daraus folgendes SER-Diagramm erstellen:
Aus Leistung und kann wird ein ER-Typ, da diese mit einer (1,1)-Kante verbunden sind. Die restlichen Typen werden dann 1:1 konvertiert. Die Kanten ergeben sich aus den Kardinalitäten im ER-Diagramm.