Skip to main content

Seite 6 Relationales-Datenbankmodell-Trainer

Dieser interaktive Trainer gehört zur Theorie-Seite:

Relationales Datenbankmodell

Hier übst du, aus kurzen Aufgabenstellungen ein relationales Datenbankmodell abzuleiten.

Im Fokus stehen:

Tabellen
Primärschlüssel
Fremdschlüssel
1:n-Beziehungen
n:m-Beziehungen
Zwischentabellen

Was wird trainiert?

BereichBedeutung
Tabellen ableitenEntitäten aus dem ERM werden Tabellen
Primärschlüssel bestimmenJede Tabelle braucht eine eindeutige ID
Fremdschlüssel platzierenBei 1:n steht der Fremdschlüssel auf der n-Seite
Beziehungen erkennen1:1, 1:n, n:1 oder n:m
Zwischentabelle erkennenn:m-Beziehungen werden über eine Zwischentabelle gelöst
IHK-typische Aufgaben lösenFachliche Beschreibung in Tabellenstruktur umwandeln

Interaktiver Relationales-Datenbankmodell-Trainer


Merksatz für den Trainer

Entität im ERM      → Tabelle im relationalen Modell
Attribut im ERM     → Spalte in der Tabelle
Primärschlüssel     → eindeutige ID einer Tabelle
Fremdschlüssel      → Verweis auf eine andere Tabelle
1:n-Beziehung       → Fremdschlüssel auf der n-Seite
n:m-Beziehung       → Zwischentabelle mit Fremdschlüsseln

Beispiel 1: 1:n-Beziehung

Aufgabenstellung:

Ein Kunde kann mehrere Bestellungen aufgeben.
Eine Bestellung gehört genau zu einem Kunden.

Relationales Modell:

Kunde(kunden_id PK, name, email)

Bestellung(bestellung_id PK, bestelldatum, kunden_id FK)

Warum?

Kunde 1:n Bestellung

Der Fremdschlüssel steht auf der n-Seite.

Also steht:

kunden_id

in der Tabelle:

Bestellung

Beispiel 2: n:m-Beziehung

Aufgabenstellung:

Ein Schüler kann mehrere Kurse belegen.
Ein Kurs kann von mehreren Schülern belegt werden.

Relationales Modell:

Schüler(schueler_id PK, vorname, nachname)

Kurs(kurs_id PK, kursname)

Belegung(schueler_id FK, kurs_id FK, anmeldedatum)

Warum?

Schüler n:m Kurs

Eine n:m-Beziehung braucht eine Zwischentabelle.

Hier heißt sie:

Belegung

Beispiel 3: Bestellung und Produkt

Aufgabenstellung:

Eine Bestellung kann mehrere Produkte enthalten.
Ein Produkt kann in mehreren Bestellungen vorkommen.

Relationales Modell:

Bestellung(bestellung_id PK, bestelldatum)

Produkt(produkt_id PK, bezeichnung, preis)

Bestellposition(bestellung_id FK, produkt_id FK, menge)

Warum?

Bestellung n:m Produkt

Die Zwischentabelle Bestellposition löst die n:m-Beziehung auf.

Zusätzlich kann dort gespeichert werden:

menge
einzelpreis
rabatt

Typische Fehler im Trainer

FehlerWarum falsch?
Fremdschlüssel auf der falschen SeiteBei 1:n muss der FK auf die n-Seite
n:m ohne Zwischentabellen:m braucht im relationalen Modell eine eigene Tabelle
Primärschlüssel vergessenDatensätze sind nicht eindeutig
Zwischentabelle ohne beide FremdschlüsselVerbindung ist nicht vollständig
Attribute doppelt speichernführt zu Redundanz
Tabelle und Entität verwechselnERM ist fachlich, relationales Modell ist tabellarisch

Mini-Testfragen

1. Was wird aus einer Entität im relationalen Modell?

Aus einer Entität wird meistens eine Tabelle.

Beispiel:

Entität Kunde

wird zu:

Tabelle Kunde
2. Was wird aus einem Attribut im relationalen Modell?

Aus einem Attribut wird meistens eine Spalte.

Beispiel:

Attribut name

wird zu:

Spalte name
3. Was ist ein Primärschlüssel?

Ein Primärschlüssel identifiziert jeden Datensatz eindeutig.

Beispiel:

kunden_id
produkt_id
bestellung_id
4. Was ist ein Fremdschlüssel?

Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.

Beispiel:

Bestellung.kunden_id verweist auf Kunde.kunden_id
5. Wo steht der Fremdschlüssel bei einer 1:n-Beziehung?

Der Fremdschlüssel steht auf der n-Seite.

Beispiel:

Kunde 1:n Bestellung

Dann steht:

kunden_id

in der Tabelle:

Bestellung
6. Was braucht man bei einer n:m-Beziehung?

Eine n:m-Beziehung braucht eine Zwischentabelle.

Beispiel:

Schüler n:m Kurs

wird zu:

Schüler 1:n Belegung n:1 Kurs
7. Welche Fremdschlüssel enthält die Zwischentabelle bei Schüler und Kurs?

Die Zwischentabelle enthält mindestens:

schueler_id FK
kurs_id FK

Beispiel:

Belegung(schueler_id FK, kurs_id FK, anmeldedatum)
8. Warum ist Bestellposition eine sinnvolle Zwischentabelle?

Weil eine Bestellung mehrere Produkte enthalten kann und ein Produkt in mehreren Bestellungen vorkommen kann.

Außerdem kann die Tabelle Bestellposition Zusatzinformationen speichern:

menge
einzelpreis
rabatt
9. Was ist ein zusammengesetzter Primärschlüssel?

Ein zusammengesetzter Primärschlüssel besteht aus mehreren Spalten.

Beispiel:

Belegung(schueler_id, kurs_id)

Zusammen können beide Werte einen Datensatz eindeutig machen.

10. Was ist der häufigste Fehler bei n:m-Beziehungen?

Der häufigste Fehler ist, keine Zwischentabelle zu erstellen.

Falsch:

Schüler n:m Kurs direkt speichern

Besser:

Schüler 1:n Belegung n:1 Kurs

Nächste Seite

Danach geht es weiter mit:

UML-Klassendiagramm