Skip to content

Relationenmodell

Beschreibung des Relationenmodells

Das Relationenmodell ist eine Abbildung einer relativen Datenbank. Der Name eines Entitätentyps wird an den Anfang gestellt, alle Attribute folgen innerhalb von Klammern. Primärschlüssel werden unterstrichen. Fremdschlüssel werden mit einem Pfeil nach oben prefixed.

Ein Beispiel eines Relationenmodells:

Bus(_Kfz_, Bustyp, Sitzplätze, Baujahr)
Fahrer(_Name_, StrasseNr, PLZ, Ort, Telefon)
Fahrt(_FNr_, Reiseziel, Datum, Dauer, Preis, ↑Kfz, ↑Name)
Kunde(_KNr_, Name, StrasseNr, PLZ, Ort, Telefon)
Bunching(↑FNr, ↑KNr, Plätze)

Die hellblauen (von _ umgeben) Attribute sind Primärschlüssel. Auf Papier würde man diese unterschreichen. Die dunkelblauen Attribute sind Fremdschlüssel, welche auf einen Primärschlüssel eines anderen Entitätentyps zeigen.

  • Schlüssel
    Ein Schlüssel besteht aus einem oder mehreren Attributen und hilft Entitäten eindeutig identifizieren zu können.

  • Schlüsselkandidat
    Ein Schlüssel, bei welchem jedes Attribut zur eindeutigen Identifikation benötigt wird, heißt Schlüsselkandiat.

  • Primärschlüssel
    Ein aus der Menge an Schlüsselkandidaten ausgewählter Schlüssel. Werden im Relationenmodell unterstrichen.

Die Relationenalgebra definiert Operationen, welche auf Relationen angewendet werden können. Super toll nochmal nachsehbar auf Wikipedia.

Die Vereinigung ABA \bigcup B werden die Tupel AA und BB vereint. Dies setzt voraus, dass beide die gleichen Attribute und Attributtypen haben. Duplikate werden gelöscht.

A:A:

idnamefarbe
1StephanRot
3AndreasBlau

B:B:

idnamefarbe
3AndreasBlau
7EmilyGrün

AB:A \bigcup B:

idnamefarbe
1StephanRot
3AndreasBlau
7EmilyGrün

Beim Schnitt ABA \bigcap B werden nur gleiche Zeilen zurückgegeben.

AB:A \bigcap B:

idnamefarbe
3AndreasBlau

Auch lassen sich Werte zurückgeben, welche in AA, aber nicht in BB vorliegen.

idnamefarbe
1StephanRot

Das Kreuzprodukt (auch kartesisches Produkt benannt) A×BA \times B gibt eine Menge aller möglichen Kombinationen der Tupel aus AA und BB zurück.

Wikipedia preview:

Die Selektion σBedingung(R)\sigma_{Bedingung} (R) wählt aus einer Relation alle Tupel aus, welche der Bedingung zusprechen. In SQL, wird diese Operation durch SELECT ... WHERE ... beschrieben.

Die Projektion πAttribute(R)\pi_{Attribute} (R) wählt aus einem Tupel bestimmte Attribute aus. In SQL mit der Selektion verknüpft.

Die Unbennenung von Attributen/Spalten ρaltneu(R)\rho_{alt \rightarrow neu} (R) ist in SQL mit ALTER TABLE ... RENAME COLUMN ... TO ... oder mit dem AS-Operator für temporäre Umbenennung implementiert, welche zum Vermeiden von ungewollten Joins auf Attributen gleichen Namens, aber unterschiedlicher Bedeutung verwendet wird.

Die Verknüpfung SRS \bowtie R zweier der Attribute zweier Relationen.

Der erste Schritt des Join ist die Bildung des Kreuzprodukts S×RS \times R, bei welchem dann zwei Attribute AA und BB beider Relationen miteinander verglichen werden.

Beim Equi Join müssen beide Attribute AA und BB denselben Wert haben. Die Schreibweise hierfür ist:

SRA=BS \bowtie R \\ {\footnotesize A = B}

Der Natural Join ist ein Equi Join, bei welchem beide Attribute die gleiche Bezeichnung haben. Diese Form des Joins kommt relativ oft for. Die Schreibweise wird deswegen ganz einfach mit RSR \bowtie S realisiert.

Falls die Relationen RR und SS mehrere gleich benannte Attribute besitzen, müssen bei diesen beim Natural Join paarweise alle Attributwerte übereinstimmen. Die doppelt vorkommenden Spalten werden jeweils nur einmal wiedergegeben.

Eine Relation besteht aus Attributen, welche die Entitäten represäntieren, und Tupeln konkreter Attributwerte, auch bekannt als Datensatz. Eine Relation wird als Tabelle dargestellt.

Kurs:

Kurs-NrThemaKurshalbjahr
13Analysis 3Q4
2Short StoriesQ1
38DatenbankenQ2
19AntiheldenE2