Sie sind auf Seite 1von 13

1 Relationale Datenbanken (DB): Das Relationenmodell

[eine Zusammenfassung von Christian Rausch nach Schicker: Datenbanken und SQL, 1999]
Vereinfacht ausgedrckt bestehen relationale Datenbanken aus Tabellen, in denen Daten
gespeichert sind. blicherweise stehen die Tabellen in Beziehungen zueinander, d. h. manche
Eintrge sind Verweise auf andere Eintrge in anderen Tabellen.
Wichtige Anforderungen an eine Datenbank:
geringe Redundanz,

gleiche Daten sind mglichst nicht an mehreren


Stellen gleichzeitig abgelegt. Dadurch bleibt die DB
bersichtlicher, Updates der Daten werden
erleichtert, Speicherplatz wird gespart.
Daten sind bersichtlich abgelegt, Abfragen sind
einfach.

gute Handhabbarkeit,
einfache Zugriffe ber mglichst wenige
Tabellen
Sicherstellung von Konsistenz und Integritt Datenbeziehungen bleiben in sich logisch und
stimmig. Keine Gefahr von Datenverlust z. B. bei
Updates oder Lschungen.

1.1 Beispiel zu relationalen Datenbanken


Negativbeispiel: Datenbanktabelle VerkaeferProdukt (Tab. 1):
Tab. 1 VerkaeferProdukt
Verk_Nr
Verk_Name
V1
Meier
V1
Meier
V1
Meier
V2
Schneider
V2
Schneider
V3
Mller

PLZ
80075
80075
80075
70038
70038
10183

Verk_Adresse
Mnchen
Mnchen
Mnchen
Stuttgart
Stuttgart
Berlin

Produktname
Waschmaschine
Herd
Khlschrank
Herd
Khlschrank
Staubsauger

Umsatz
11000
5000
1000
4000
3000
1000

Zu jedem Verkufer ist


dessen Nummer und Name (Verk_Nr und Verk_Name),
PLZ und Stadt seiner Adresse (PLZ und Verk_Adresse),
der Name der von ihm verkauften Produkte (Produktname)
und der Umsatz angegeben.
Nachteile obiger Tabelle:
Redundanzen: Name, PLZ und die Adresse der Verkufer kommen mehrfach vor.
Unbequeme Handhabbarkeit: ndert ein beliebiger Verkufer seine Adresse, so ist eine variable
Anzahl von Adresseintrgen zu ndern. Falls nicht alle Adresseintrge gendert werden, so
besteht die Gefahr von Inkonsistenzen.
Redundanz ist immer eine Gefahrenquelle fr Fehler und Inkonsistenzen.
Falls die Firma den Artikel Staubsauger aus dem Programm nimmt, so knnen nicht einfach die
1/13

Zeilen, die den Produktnamen Staubsauger enthalten, entfernt werden, da sonst auch alle
Informationen zu Verkufer Mller aus der Datenbank entfernt werden!
E. F. Codd untersuchte ab 1970 den optimalen Aufbau von Tabellen und legte die Grundlage zu
mathematisch-fundierten Theorien (relationale Algebra, Relationenkall, Normalformenlehre).
Es wurde theoretisch belegt, dass Tabellen so aufgebaut werden knnen, dass sowohl Redundanzen
in den Daten vermieden als auch Einzeldaten isoliert gelscht werden knnen.

1.2 Relationale Datenstrukturen


bersicht
Entsprechung der formalen relationalen Ausdrcke mit
mehr informellen alltglichen Ausdrcken:
Tab. 2
Formale relationale Ausdrcke
Relation
Tupel
Kardinalitt
Attribut
Grad
Primrschlssel
Gebiet

Informelle Ausdrucksweise
Tabelle
eine Zeile (Reihe) einer Tabelle
Anzahl der Zeilen einer Tabelle
eine Spalte (Feld) einer Tabelle
Anzahl der Spalten einer Tabelle
eindeutiger Bezeichner einer Zeile (eines Tupels)
Menge aller mglichen Werte

L#

Lname

Stadt

PLZ

L1

Mller

Mnchen

81724

Schmidt

Regensburg

93055

L3

Maier

Hamburg

20543

L4

Schwarz

Kln

50087

L5

Wei

Berlin

11168

Relation L2

Kopf(zeile)
Rumpf
Tupel

Attribute
Grad

Abb. 1 Relationale Begriffe am Beispiel: L1-L5 Primrschlssel; die Kardinalitt ist die Zeilenzahl
(=Tupelzahl)
Der Kopf besteht aus einer festen Anzahl von Attributen:
{(A1; D1), (A2; D2), ... , (An; Dn)}, wobei jedes Attribut Ai genau mit einem Gebiet korrespondiert
(1 i n)
Der Rumpf besteht aus einer variablen Anzahl von Tupeln.
2/13

Der Grad einer Relation R (d. h. die Spaltenzahl = Attributszahl) wird beim Erzeugen der Relation
festgelegt (beim Hinzufgen einer Spalte (Attribut) handelt es sich genaugenommen um die
berfhrung der Relation in eine andere). Die Kardinalitt ist beim Erzeugen der Relation gleich
Null und erhht sich mit jedem Einfgen eines neuen Tupels.

Definition (Relation)
Eine Relation ist eine Tabelle obiger Gestalt, bestehend aus einem Kopf und einem Rumpf, mit
folgenden 4 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, d. h. jedes Attribut (Tabellenelement) enthlt nur ein Element.
(Handhabung wird vereinfacht, Speicherbedarf kann besser geplant werden.)
Definition (Relationale Datenbank)
= eine Ansammlung von normalisierten Relationen,
die zeitlich variieren (knnen).
die einen (geeigneten) Grad haben.
die Relationen stehen zueinander in einer bestimmten Beziehung und
werden von einem Verwaltungssystem gemeinsam verwaltet.
Eine Datenbank, die ausschlielich mit SQL Befehlen verwaltet und auf die ausschlielich mit
SQL Befehlen zugegriffen wird, ist bereits eine relationale Datenbank, da SQL nur Relationen
kennt.
Unterscheidung
eigentliche Relationen <---> von eigentl. Relationen abgeleitete Relationen
Basisrelationen (am wichtigsten, da eigentliche Relation)
existieren tatschlich (real) in der DB, haben Namen und sind dauerhaft gespeichert.
Sichten (Views)
virtuell und nicht real
erscheinen dem Benutzer wie normale Relationen
aus Basisrelationen abgeleitet
geeignet, um Benutzer mit eingeschrnkten Rechten z.B. nur Teilsicht auf eine best.
Relation zu gewhren.
Abfrageergebnisse (Query-Results)
sind auch Relationen
existieren nur temporr als Abfrageergebnisse auf Bildschirm oder Drucker
Temporre Relationen
existieren wie Abfrageergebnisse nur temporr
werden aber erst durch best. Aktionen z.B. Beenden einer Transaktion zerstrt
dienen v.a. zum Abspeichern von Zwischenergebnissen.
3/13

In SQL:
CREATE TABLE ...;
CREATE VIEW ...;
SELECT ...;
CREATE TEMPORARY TABLE ...;

Erzeugen einer Basisrelation


Erzeugen einer Sicht
Abfrage
Erzeugen einer temporren Relation

Definition (Primrschlssel)
der Primrschlssel ist ein besonderes Attribut, durch das jeder Tupel eindeutig beschrieben wird.
Primrschlssel kann aus mehreren Einzelattributen zusammengesetzt sein.
Wegen der Def. der Relation (einmaliges Auftauchen eines Tupels) besitzt jede Relation einen
Primrschlssel. Im ungnstigsten Fall erstreckt sich dieser ber mehrere oder sogar alle Attribute!
Bsp. Primrschlssel Tab. 3
Tab. 3 Relation Lagerbestand mit zusammengesetztem Primrschlssel
Produktname
Produkttyp
Bestand
Preis
Staubsauger

T06

25

498

Staubsauger

T17

17

219

...

...

...

...

Herd

T04

10

1598

1998

Herd
T06
<--- Primrschlssel ------------->

1.3 Relationale Integrittsregeln


Physische Integritt
Vollstndigkeit der Zugriffspfade und der physischen Speicherstrukturen
Vom Datenbankprogrammierer nicht beeinflussbar.
Ablaufintegritt
Korrektheit der ablaufenden Programme
Keine Dateninkonsistenz im Mehrfachbenutzerbetrieb
Verantwortung: Anwendungsprogrammierer und Datenbankdesigner
Zugriffsberechtigung
korrekte Vergabe der Zugriffsberechtigung
Verantwortung: Datenbank-Administrator
Semantische Integritt
bereinstimmung der Daten in der DB mit denen in der realen Welt
Gefahr: z.B. aus Versehen knnten falsche Werte z.B. Mengenangaben eingegeben
werden
Abhilfe: Eingabe muss auf Korrektheit berprft werden.
Empfehlung: die Gebiete sind so klein wie mglich zu whlen.
Verantwortung: Anwendungsprogrammierer, Datenbank-Administrator, DB-Hersteller

4/13

1.3.1 Entitts-Integrittsregel = 1. Integritsregel


Jeder Primrschlssel identifiziert jedes Tupel eindeutig <=> jedes Tupel hat einen Primrschlssel.

1. Integrittsregel (Entitts-Integrittsregel)
Keine Komponente des Primrschlssels einer Basisrelation darf nichts enthalten.
Definition (Schlsselkandidat)
Ein eventuell aus mehreren einzelnen Attributen zusammengesetztes Attribut heit
Schlsselkandidat, falls es
eindeutig jedes Tupel identifiziert und
minimal ist, d.h. bei Weglassen eines einzelnen Attributs die Eindeutigkeit verloren geht.
Definition (Primrschlssel, alternativer Schlssel)
Besitzt eine Relation mehrere Schlsselkandidaten, so wird davon einer als Primrschlssel
ausgewhlt; alle anderen heien alternative Schlssel. Der Primrschlssel soll minimal sein.
Teilattribute des alternativen Schlssels drfen leer sein.
Bsp. fr Auftreten von Primrschlssel und alternativen Schlsseln in Tab. 4:
Tab. 4 Tabelle der chemischen Elemente
Protonen
Atomgewicht

Name

Symbol

1,0079

Wasserstoff

4,0026

Helium

He

6,9410

Lithium

Li

...
...
...
...
NB: Protonenzahl, Namen und Symbol des Elements sind Schlsselkandidaten.

1.3.2 Referenz-Integrittsregel
Diese regelt Verweise der Relationen untereinander. Allgemein gesprochen sind Relationen
einzelne Objekte ohne zwingenden Bezug. blicherweise gibt es aber einen Bezug, da in
Datenbanken zusammengehrige Dinge verwaltet werden. Der Bezug zwischen zwei Relationen
wird durch einen weiteren Schlssel, den sog. Fremdschlssel hergestellt. Fremdschlssel sind der
Kitt, der die einzelnen Relationen zu einem gemeinsamen Datenbestand zusammenfgt.
Definition (Fremdschlssel)
Ein (mglicherweise zusammengesetztes) Attribut einer Basisrelation heit Fremdschlssel, falls
das ganze Attribut entweder nichts oder einen definierten Inhalt enthlt,
eine Basisrelation mit einem Primrschlssel existiert, so dass jeder definierte Wert des
Fremdschlssels zum Wert jenes Primrschlssels identisch ist.
Beispiel fr die Relationen Personal, Kunde und Auftrag (Tab. 5) (nchste Seite)
5/13

Tab. 5 Beispiel fr die Relationen Personal, Kunde und Auftrag

6/13

2. Integrittsregel (Referenz-Integrittsregel)
Eine relationale Datenbank enthlt keinen Fremdschlssel (ungleich NULL), der auf einen nichtexistenten Primrschlssel verweist.
Problem: Falls ein Tupel mit Primrschlssel gelscht werden soll, auf den Fremdschlssel
verweisen, so kann dieses nicht einfach gelscht werden, da sonst der Fremdschlssel ins Leere
verweist wodurch die 2. Integrittsregel verletzt wre.
Lsungsmglichkeiten:
Lschen bzw. ndern nicht durchfhren
ON DELETE NO ACTION bzw. ON UPDATE NO ACTION
Lschen bzw. ndern rekursiv aller darauf verweisender Tupel
ON DELETE CASCADE bzw. ON UPDTATE CASCADE
Nullsetzen aller darauf verweisender Fremdschlssel
ON DELETE SET NULL bzw. ON UPDTATE SET NULL

1.4 Relationale Algebra


E. F. Codd definierte eine vollstndige Syntax auf 8 Operatoren und schuf eine relationale Algebra.
Er zeigte, dass damit alle denkbaren Zugriffe auf beliebige Relationen der Datenbank mglich sind.

1.4.1 Relationale Operatoren


Eine Relation R ist eine Menge (R ist Menge aller Relationen)
Es gibt 8 Mengenoperatoren auf R x R (binre Operatoren) und R (unre Operatoren).
Das Bildgebiet ist wieder eine Menge (Relation).
Binre Operatoren sind z.B. Addition und Multiplikation
Unre Operatoren sind z.B. das negative Vorzeichen.
Vereinigung
R1 UNION R2
Alle Tupel, die wenigstens in einer der beiden Relationen vorkommen
Schnitt
R1 INTERSECT R2
Enhlt nur die in beiden Relationen vorkommenden Tupel.
Differenz
R1 MINUS R2
Bezglich der Tupel: R1 ohne R2 i.e. R1 \ R2
Kartesisches Produkt R1 TIMES R2
alle mglichen Kombinationen der Tupel aus R1 und R2
Restriktion
R WHERE Bedingung
die sich ergebende Relation ist eine Teilmenge von R entsprechend der Bedingung
Projektion
R [Attributsauswahl]
alle Tupel, aber nur mit einer Auswahl von Attributen werden angezeigt.

7/13

(Natrliche) Verbindung
R1 JOIN R2
alle mgl. Kombinationen der Tupel aus R1 u. R2.
gemeinsame Attribute dienen als Verknpfung, Verknpfung bei gemeinsamen Attributen ist
ber Fremdschlssel -> Primrschlssel gegeben.
Division
R1 DEVIDEBY R2
R1 muss mindestens alle Att. von R2 enthalten (R2 ist Teilmenge von R1).
Die neue Relation
enthlt nur die Attribute, die R1 zustzlich zu R2 hat
enthlt nur die Tupel von R2 deren Attribute Att mit denen von R1 bereinstimmen.
nur die neuen Attribute werden gewhlt (d.h. nur in R1 enthalten)
nur die Tupel werden gewhlt, wo fr die Attribute gilt, die in R1 und R2 vorhanden sind:
die Attribute stimmen in ihren Werten berein
Graphische Verdeutlichung (Abb. 2):
Abb 2.1: Natrliche Verbindung (JOIN) der Relationen Personal und Auftrag

Abb 2.2: Graphische Verdeutlichung der 8 relationalen Operatoren

8/13

2 Datenbankdesign
2.1 Normalformenlehre
Die Normalformenlehre betrachtet immer Relationen fr sich.
Das Entity-Relationship-Modell ist ein Gesamt-Design mit allen Beziehungen zwischen den
Relationen.
Die Normalformenlehre beschreibt, wie Relationen aufgebaut werden sollen, um Redundanzen zu
vermeiden. Codd stellte 1970 3 Normalformen auf, heute gibt es insg. 5 Normalformen.
Die 1. - 3. finden am meisten Anwendung.
Die Normalformen bauen aufeinander auf, d.h. befindet sich eine Datenbank in der m.ten
Normalform, so befindet sie sich auch in der n.ten (m n).
Definition (erste Normalform)
Eine Relation ist in der ersten Normalform, wenn alle zugrundeliegenden Gebiede nur atomatre
Werte anthalten.
Definition (funktionale Abhhngigkeit)
Ein Attrbut Y einer Relation R hei funktional abhngig vom Attirbut X derselben Relation, wenn
zu jedem X-Wert hchsten ein Y-Wert mglich ist.
Ist Y von X funktional abhngig so schreiben wir:
X->Y
Definition (volle funktionale Abhngigkeit)
Ein Attribut Y einer Relation R heit voll funktional abhngig vom Attribut X derselben Relation,
wenn es funktional abhngig von X ist, nicht aber funktional abhngig von beliebigen Teilattributen
von X.
Ist Y von X voll funktional abhngig so schreiben wir:
X=>Y
Definition (zweite Normalform)
Eine Relation ist in der zweiten Normalform, wenn sie in der ersten Normalform ist, und jedes
Nichtschlsselattribut voll funktional abhngig vom Primrschlssel ist.
(Ein Nichtschlsselattribut ist jedes (auch zusammengesetzte) Attribut, das kein Schlsselkandidat
ist.)
Bemerkung:
Eine normalisierte Relation mit einem nicht zusammengesetzten Primrschlssel befindet sich
immer in der zweiten Normalform. Umgekehrt besitzt eine Relation, die sich nicht in der zweiten
Normalform befindet, einen zusammengesetzten Primrschlssel.
Definition (Determinante)
Eine Determinante ist ein (eventuell zusammengesetztes) Attribut, von dem ein anderes voll
funktional abhngig ist.
Diese Definition besagt nur, dass jedes Attribut, von dem ein Doppelpfeil ausgeht, als Determinante
bezeichnet wird. In der zweiten Normalform sind also mindestens alle Schlsselkandidaten
Determinanten. Die dritte Normalform geht noch einen Schritt weiter:

9/13

Definition (dritte Normalform nach Boyce/Codd)


Eine normalisieret Relation ist in der dritten Normalform, wenn jede Determinante dieser Relation
ein Schlsselkandidat ist.
Bemerkung
Jede beliebige Relation kann durch Umformung (meist Zerlegung in mehrere Relaitonen) in die
zweite und auch in die dritte Normalform berfhrt werden.

Vierte und fnfte Normalform (Ausblick)


Primrschlssel und alternative Schlssel sind mglichst so zu whlen, dass sie nur aus ein oder
hchstens zwei Attributen bestehen. Dies sind Aussage und Inhalt der vierten und fnften
Normalform.
Besitzt eine Relation einen nicht zusammengesetzten Primrschlssel, so fallen die Definitionen der
dritten, vierten und fnften Normalform zusammen!

2.2 Entity-Relationship-Modell
Nachdem geklrt wurde, wie einzelne Relationen aufgebaut werden sollten, wird nun beschrieben,
wie die Beziehungen zwischen den Relationen gestaltet werden sollen.

2.2.1 Entitten
Tab. 5 Begriffe zu relationalen Datenbanken
Entit
ein unterscheidbares Objekt (im Sinne der betrachteten Objekte in der
Datenbank), im mathematischen Sinne ein Element
Eigenschaft

ein Teil einer Entitt, der die Entitt beschreibt

Beziehung

eine Entitt, die zwei oder mehr Entitten miteinander verknpft

Subtyp

eine Entitt Y, die auch zu einer Entitt X gehrt

Supertyp

eine Entitt, die Subtypen enthlt

Tab. 6 Beispiele zu den Begriffen zu relationalen Datenbanken


Begriff

Beispiele

Entitt

Person, Werkzeugteil, Produkt, Rechnung

Eigenschaft

Name, Vorname, PLZ, Ort, Adresse einer


Person; Einzelteile, aus denen ein Werkzeug
besteht; Rechnungsdatum

Beziehung

die Relation Verknuepfung verbindet die


Relationen Verkaeufer und Produkt (siehe
Tab.7)

Subtyp

die Entitt Programmierer ist ein Subtyp zu


Entitt Person.

Supertyp

die Entitt Person ist ein Supertyp der Entitt


Programmierer.

10/13

Tab. 7 Relation Verkaeufer


Verk_Nr
Verk_Name

PLZ

Verk_Adresse

V1

Meier

80075

Mnchen

V2

Schneider

70038

Stuttgart

V3

Mller

50083

Kln

Tab. 8 Relation Produkt


Prod_Nr

Produktname

P1

Waschmaschine

P2

Herd

P3

Khlschrank

P4

Staubsauger

Tab. 9 Realtion Verknuepfung


Verk_Nr
Produkt_Nr

Umsatz

V1

P1

11000

V1

P2

5000

V1

P3

1000

V2

P2

4000

V2

P3

3000

V3

P4

1000

Abb. 3 Beispiel zu Entitten und Eigenschaften

11/13

Ein Beispiel zu Beziehungen zwischen Relationen (Abb. 4):


Eine Entitt Person hat eine Beziehung zu der Entitt (Relation) Abteilung, in der Daten zu den
Abteilungen abgespeichert sind. Diese Beziehung stellt selbst eine Entitt dar, eine sog.
Beziehungs-Entitt (dargestellt als Raute).

Abb. 4 Beispiel einer Beziehungsrelation


Es wird zwischen schwachen und starken Entitten unterschieden. Eine schwache Entitt hngt von
einer starken Entitt ab. Wird die starke Entitt entfernt, so verliert jede von ihr abhngige
schwache Entitt ihre Daseinsberechtigung und kann auch entfernt werden.
Ein Beispiel wren die Entitten Produkt, Einzelteile und Fehler. Die Entitten Einzelteile und
Fehler hngen von Prokukt ab. Falls alle Fehler prokukt-spezifisch sind, so ist Fehler eine schwache
Entit, d. h. falls das Produkt aus der Prokuktion genommen wird, so sind die Fehlerdaten wertlos.
Einzelteile knnen jedoch fr verschiedene Produkte verwendet werden, diese Entitt ist daher nicht
schwach.

2.2.2 Beziehungen: Primrschlssel und Fremdschlssel


Eine Beziehungsentit zwischen zwei Entitten enthlt zwei Fremdschlssel, die auf die
Primrschlssel der beiden Entitten verweisen. Es liegen also Beziehungen wie zwischen
Verkaefer und Produkt, oder wie zwischen Teilelieferant und Teile vor. Es sind auch Beziehungen
zwischen mehreren Entitten mglich, die Beziehungs-Entitten enthalten dann dementsprechend
mehr Fremdschlssel.

Abb. 5 Beziehungsrelation zwischen Verkaeufer und Prokukt


Die Relation Verknuepfung wird in SQL wie folgt erzeugt, wobei alle Schlsselinformationen
bereits mit angegeben sind:

12/13

CREATE TABLE Verknuepfung


(
Verk_Nummer
CHARACTER(4)
Produkt_Nr
CHARACTER(4)
Umsatz
SMALLINT,
PRIMARY KEY (Verk_Nummer, Produkt_Nr)
);

REFERENCES Verkaeufer,
REFERENCES Produkt,

Einige Empfehlungen zum Erstellen einer Datenbank:


Auswahl aller Eigenschaften, die in die Datenbank aufgenommen werden sollen (meist ein
langwieriger und zeitraubender Prozess). Eine gute Auswahl schon in der Anfangsphase
verhindert ein mehrmaliges und zeitraubendes Anpassen der Datenbank.
Zusammenfassen der Eigenschaften zu Entitten. Hier ist die Normalformenlehrre zu
bercksichtigen. Bei guter Auswahl der Entitten werden die Relationen meist automatisch in
dritter oder hherer Normalform sein.
Ermittlung der Beziehungen zwischen den einzelnen Entitten
Erzeugen der Relationen, Erzeugen der Beziehungsrelationen. Geeignete Wahl der
Fremdschlssel.
Ermittlung der Eigenschaften der Fremdschlssel. (Was soll mit ihnen geschehen falls der
zugehrige Primrschlssel eine Lsch- oder Update-Anfrage bekommt.) Hier helfen auch
Stichworte wie schwache Entitt und Subtyp weiter.

13/13