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üsseltypen
Section titled “Schlüsseltypen”-
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.
Relationenalgebra
Section titled “Relationenalgebra”Die Relationenalgebra definiert Operationen, welche auf Relationen angewendet werden können. Super toll nochmal nachsehbar auf Wikipedia.
Vereinigung
Section titled “Vereinigung”Die Vereinigung werden die Tupel und vereint. Dies setzt voraus, dass beide die gleichen Attribute und Attributtypen haben. Duplikate werden gelöscht.
| id | name | farbe |
|---|---|---|
| 1 | Stephan | Rot |
| 3 | Andreas | Blau |
| id | name | farbe |
|---|---|---|
| 3 | Andreas | Blau |
| 7 | Emily | Grün |
| id | name | farbe |
|---|---|---|
| 1 | Stephan | Rot |
| 3 | Andreas | Blau |
| 7 | Emily | Grün |
Schnitt
Section titled “Schnitt”Beim Schnitt werden nur gleiche Zeilen zurückgegeben.
| id | name | farbe |
|---|---|---|
| 3 | Andreas | Blau |
Mengendifferenz
Section titled “Mengendifferenz”Auch lassen sich Werte zurückgeben, welche in , aber nicht in vorliegen.
| id | name | farbe |
|---|---|---|
| 1 | Stephan | Rot |
Kreuzprodukt
Section titled “Kreuzprodukt”Das Kreuzprodukt (auch kartesisches Produkt benannt) gibt eine Menge aller möglichen Kombinationen der Tupel aus und zurück.
Wikipedia preview:
![]()
Selektion
Section titled “Selektion”Die Selektion wählt aus einer Relation alle Tupel aus, welche der Bedingung zusprechen.
In SQL, wird diese Operation durch SELECT ... WHERE ... beschrieben.
Projektion
Section titled “Projektion”Die Projektion wählt aus einem Tupel bestimmte Attribute aus. In SQL mit der Selektion verknüpft.
Unbenennung
Section titled “Unbenennung”Die Unbennenung von Attributen/Spalten 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 zweier der Attribute zweier Relationen.
Der erste Schritt des Join ist die Bildung des Kreuzprodukts , bei welchem dann zwei Attribute und beider Relationen miteinander verglichen werden.
Equi Join
Section titled “Equi Join”Beim Equi Join müssen beide Attribute und denselben Wert haben. Die Schreibweise hierfür ist:
Natural Join
Section titled “Natural Join”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 realisiert.
Falls die Relationen und 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.
Relation
Section titled “Relation”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-Nr | Thema | Kurshalbjahr |
|---|---|---|
| 13 | Analysis 3 | Q4 |
| 2 | Short Stories | Q1 |
| 38 | Datenbanken | Q2 |
| 19 | Antihelden | E2 |