Relationenmodell
Ziel:
! geringe Redundanz,
! gute Handhabbarkeit,
! einfache Zugriffe über möglichst wenige Tabellen
! Sicherstellung von Konsistenz und Integrität.
Beispielrelation
Verkaeufer-Produkt
Verk.-Nr. Verk.-Name PLZ Verk.-Adresse Produktname Umsatz
V1 Meier 80075 München Waschmaschine 11000
V1 Meier 80075 München Herd 5000
V1 Meier 80075 München Kühlschrank 1000 V2 Schneider 70038 Stuttgart Herd 4000 V2 Schneider 70038 Stuttgart Kühlschrank 3000 V3 Müller 10183 Berlin Staubsauger 1000
Begriffe
Formale relationale Ausdrücke Informelle Ausdrucksweise
Relation Tabelle Tupel eine Zeile (Reihe) einer Tabelle Kardinalität Anzahl der Zeilen einer Tabelle Attribut eine Spalte (Feld) einer Tabelle Grad Anzahl der Spalten einer Tabelle
Primärschlüssel eindeutiger Bezeichner
Gebiet Menge aller möglichen Werte
Relationale Begriffe am Beispiel
LName Stadt PLZ
L1
L3 L4 L5 L2
Müller Schmidt Maier Schwarz Weiß
München Regensburg Hamburg Köln Berlin
81724 93055 20543 50087 11168 Relation
Gebiete
Tupel
K a r d i n a l i t ä t
Grad Attribute
Name Stadt
PLZ Nr
Primär- schlüssel
L#
Definition
Definition (Relation):
Eine Relation ist eine Tabelle obiger Gestalt, bestehend aus einem Kopf und einem Rumpf, mit folgenden vier Eigenschaften:
# Es gibt keine doppelten Tupel.
$ Tupel sind nicht geordnet (etwa von oben nach unten).
% Attribute sind nicht geordnet (etwa von links nach rechts).
& Alle Attribute sind atomar.
Eine solche Relation wird auch als normalisierte Relation bezeichnet.
Nicht atomare Relation Verkaeufer-Produkt
Verk.-Nr. Verk.-Name PLZ Verk.-Adresse Produktname Umsatz V1 Meier 80075 München Waschmaschine,
Herd, Kühlschrank
17000
V2 Schneider 70038 Stuttgart Herd, Kühlschrank
7000
V3 Müller 50083 Köln Staubsauger 1000
Definition
Definition (relationale Datenbank):
Eine relationale Datenbank ist eine Datenbank, die der Benutzer als eine Ansammlung von zeitlich variierenden, normalisierten Relationen passender Grade erkennt.
Relationen
' Basisrelationen
Real existierende Relationen, persistenter Bestandteil der Datenbank) ' Sichten (Views)
Virtuelle Relationen, abgeleitet aus Basisrelationen. Sie erscheinen dem Benutzer wie „normale“ Relationen.
' Abfrageergebnisse
Relationen, die temporär im Arbeitsspeicher zur der Ausgabe existieren.
' Temporäre Relationen
Relationen, die nur temporär existieren. Sie werden bei bestimmten Ereignissen zerstört, etwa beim Beenden einer Transaktion.
Erzeugen von Relationen
CREATE TABLE … ; (Erzeugen einer Basisrelation) CREATE VIEW … ; (Erzeugen einer Sicht)
SELECT … ; (Abfrage)
CREATE TEMPORARY TABLE … ; (Erzeugen einer temporären Relation)
Integrität
' Physische Integrität
Vollständigkeit der physischen Speicherstrukturen (verantwortlich: Daten- bank, Betriebssystem)
' Ablaufintegrität
Korrektheit der Programme, z.B. keine Endlosschleifen, Datenkonsistenz (verantwortlich: Anwendungsprogrammierer, Datenbankdesigner)
' Zugriffsberechtigung
Korrekte Zugriffsrechte (verantwortlich: Datenbank-Administrator) ' Semantische Integrität
Übereinstimmung der Daten aus der nachzubildenden realen Welt mit den abgespeicherten Informationen (verantwortlich: Datenbankdesigner, Anwendungsprogrammierer, Anwender)
Entitäts-Integritätsregel
1. Integritätsregel (Entitäts-Integritätsregel)
Keine Komponente des Primärschlüssels einer Basisrelation darf nichts enthalten.
Folgerungen:
! NULL-Werte im Primärschlüssel sind nicht erlaubt
! Alle Tupel sind immer eindeutig identifizierbar
! Tupel in einer Relation entsprechen immer einer Entität
! Neue Tupel müssen immer Primärschlüsselwerte enthalten
Relation mit zusammengesetztem Primärschlüssel
Produktname Produkttyp Bestand Preis
Staubsauger T06 25 498
Staubsauger T17 17 219
... ... ... ...
Herd T04 10 1598
Herd T06 7 1998
← Primärschlüssel →
Definitionen
Definition (Schlüsselkandidat):
Ein Attribut heißt Schlüsselkandidat, falls es
! eindeutig jedes Tupel identifiziert und
! minimal ist
Definition (Primärschlüssel, alternativer Schlüssel):
Bei mehreren Schlüsselkandidaten wird einer als Primärschlüssel ausgewählt; alle anderen heißen alternative Schlüssel.
Tabelle der chemischen Elemente
Protonen# Atomgewicht Name Symbol
1 1,0079 Wasserstoff H
2 4,0026 Helium He
3 6,941 Lithium Li
. . . . . . . . . . . .
Relationale Integritätsregel
Definition (Fremdschlüssel)
Ein Attribut einer Basisrelation heißt Fremdschlüssel, falls
! das ganze Attribut nichts oder einen definierten Inhalt enthält,
! eine Basisrelation existiert, so dass jeder definierte Wert des Fremdschlüssels einem Wert des Primärschlüssels jener Basisrelation entspricht.
2. Integritätsregel (Referenz-Integritätsregel)
Eine relationale Datenbank enthält keinen Fremdschlüsselwert (un- gleich NULL), der im dazugehörigen Primärschlüssel nicht existiert.
Relation Personal (Auszug aus RADL-Datenbank)
Persnr Name Ort Vorgesetzt Gehalt
1 Maria Forster Regensburg NULL 6800.00 2 Anna Kraus Regensburg 1 3400.00 3 Ursula Rank Straubing 6 4200.00 4 Heinz Rolle Nürnberg 1 4600.00 5 Johanna Köster Nürnberg 1 3200.00 6 Marianne Lambert Landshut NULL 5500.00 7 Thomas Noster Regensburg 6 3800.00 8 Renate Wolters Kelheim 1 4700.00
9 Ernst Pach Passau 6 800.00
Relation Auftrag
AuftrNr Datum Kundnr Persnr
1 04.08.1998 1 2
2 06.09.1998 3 5
3 07.10.1998 4 2
4 18.10.1998 6 5
5 06.11.1998 1 2
ON DELETE ? ON UPDATE ?
Anwenden der relationalen Integritätsregel
Zurückweisen des Löschens / Änderns:
ON DELETE NO ACTION ON UPDATE NO ACTION
Löschen / Ändern aller darauf verweisender Tupel:
ON DELETE CASCADE ON UPDATE CASCADE
Nullsetzen aller darauf verweisender Fremdschlüssel:
ON DELETE SET NULL ON UPDATE SET NULL
Kaskadierendes Löschen (Beispiel)
Gegeben:
! Datenbank mit Relationen Personal und Auftrag
! Alle Fremdschlüssel mit ON DELETE CASCADE
Beispiel 1:
Frau Kraus verlässt die Firma Folgerung: 4 Tupel werden gelöscht
Beispiel 2:
Frau Forster verlässt die Firma Folgerung: 10 Tupel werden gelöscht!
Wichtige Fragen zu Fremdschlüsseln
Fragen:
1. Darf ein Fremdschlüssel NULL-Werte enthalten?
2. Wie reagiert ein Fremdschlüssel auf das Löschen eines Verweises?
3. Wie reagiert ein Fremdschlüssel auf das Ändern eines Verweises?
Antwort:
1. Hängt von den realen Vorgaben ab 2. Hängt von den realen Vorgaben ab
3. Praktisch immer: ON UPDATE CASCADE
Die acht Mengenoperatoren
b1 b1 b2 (natürliche) Verbindung Produkt
Projektion Restriktion
Differenz Schnitt
Division Vereinigung
a b c
a a b b c c x
y
x y x y x y
a1 a2 a3
b1 b1 b2
b1 b2 b3
c1 c2 c3
a1 a2 a3
a a a b c
x y z x y
a x
y c1
c1 c2