Um die Planung nun in eine Datenbank umzusetzen, erstellt man ein Relationales Modell. Dieses teilt das ER-Modell in Tabellen und Attribute ein.
Es ist wiefolgt aufgebaut:
TabellenName(Attribut1, Attribut2, ↑Attribut3, Attribut4…)
Alle Attribute, die dem Primärschlüssel angehören, werden unterstrichen. Einem Attribut, welches als Fremdschlüssel fungiert, wird ein ↑Aufwärts-Pfeil vorgestellt.
Eine Entität ist lässt sich grundätzlich einfach in das Relationale Modell überführen, das Auto
würde so aussehen:
Auto(FahrgestellNr., Felgengröße, Farbe, Baujahr)
Relationen
Möchte man nun die Relationen berücksichtigen, so muss man folgende Regeln beachten:
1:1
Entitäten und Attribute der Relation werden in eine Tabelle zusammengezogen.
Fahrer(FührerscheinNr., Name, Alter, ↑SchlüsselId)
Schlüssel(SchlüsselId)
1:n
Auf der -Seite der Relation wird ein Fremdschlüssel zur -Seite der Relation gespeichert. Auch die Attribute der Relation werden auf der -Seite festgehalten.
Auto(FahrgestellNr., Felgengröße, Farbe, Baujahr)
Schlüssel(SchlüsselId, ↑AutoFahrgestellNr.)
n:m
Es wird eine zusätzliche Tabelle angelegt, in der Beziehungen festgehalten werden. In dieser sind auch die Attribute der Relation enthalten.
Auto(FahrgestellNr., Felgengröße, Farbe, Baujahr)
Fahrer(FührerscheinNr., Name, Alter)
fährt(↑FahrerFührerscheinNr., ↑AutoFahrgestellNr.)
Beispiel
Im vorhergehenden Post haben wir dieses Entity-Relationship-Diagram erstellt:
Das Relationale Modell sieht nach den obigen Regeln so aus:
Auto(FahrgestellNr., Felgengröße, Farbe, Baujahr, ↑HändlerUSt-IdNr., Kaufdatum)
Fahrer(FührerscheinNr., Name, Alter, ↑SchlüsselId)
Händler(USt-IdNr., Name, Adresse)
Schlüssel(SchlüsselId., ↑öffnet)
fährt(↑FahrerFührerscheinNr., ↑AutoFahrgestellNr.)
Die einzelnen Beziehungen sind farbig markiert:
verkauft
besitzt
öffnet
fährt
TL;DR
Mithilfe des relationalen Modells lässt sich ein ER-Modell in ein Datenbank-Schema überführen.
Bei -Relationen werden die Entitäten zusammengezogen, bei -Relationen wird der Fremdschlüssel auf der -Seite gespeichert, bei -Relationen muss eine zusätzliche Join-Table angelegt werden.
Falls es Relations-Attribute gibt, werden diese in der gleichen Tabelle wie der Fremdschlüssel gespeichert.