02 - Einführung SQL
02 - Einführung SQL
2 Einführung
Information
2 Einführung gibt es noch vieles mehr, was an Daten zu einem Schü-
ler erhoben werden könnte, z.B. welche Noten er hat, in
2.1 Bedeutung des DB-entwurfes welcher Klasse er ist , etc. Für das einführende Beispiel
soll die obige Datenmenge reichen.)
Der Datenbankentwurf ist für eine datenbankgestützte
Anwendung wie die Entwurfsplanung (Statik, Bauplan Erste handschriftliche Tabelle
etc.) für ein zu bauendes Haus. In beiden Fällen kann Eine fast selbstverständliche Möglichkeit die Daten
bei falscher Planung das Gesamtsystem wie ein Kar- handschriftlich zu notieren besteht darin, eine Tabelle
tenhaus zusammenfallen. Wenn die Statik nicht stimmt, anzulegen, in die die Daten dann eingetragen werden.
nutzt es gar nichts, wenn man die teuersten Dachziegel Diese erste Tabelle könnte folgendes Aussehen haben:
für das Haus verwendet! Es bleibt einsturzgefährdet. Schüler
Genauso nützt die tollste grafische Oberfläche einer
datenbankgestützten Anwendung nichts, wenn der zu- Name Adresse Tel. Alter
gehörige Datenbankentwurf nicht korrekt durchgeführt Ernst, Uwe Weg 1; 51111 Köln 98765 14
worden ist. So eine Anwendung wird den Benutzer frü-
her oder später zur Verzweiflung bringen. Müller, Kai 89077 Ulm; Straße 2 87654 16
Dennoch wird dem Datenbankentwurf allzu oft nur ge- Specht, Eva Pfad 15; 11111 Berlin 76543 17
ringe Bedeutung beigemessen, da die Schwächen ei-
ner Anwendung im Entwurfsbereich sicherlich nicht so Groß, Ute Allee 9, 24103 Kiel 45678 15
schnell auffallen wie Unschönheiten bei der Gestaltung
einer grafischen Oberfläche. Die Auswertung dieser scheinbar selbsterklärenden
In diesem zweiten Kapitel werden deshalb anhand ei- und sehr einfachen handschriftlichen Tabelle kann aller-
nes Beispiels einige Problemstellungen und die Not- dings zu Problemen führen.
wendigkeit eines konzeptionellen Datenbankentwurfs Probleme
aufgezeigt. • Bei den Namen kann nicht zwischen Vor- und
Nachname unterschieden werden. Ist Ernst oder
2.2 Eine erste Tabelle Uwe der Vorname des ersten Schülers?
• Beginnt die Adresse immer mit der Straße oder mit
Im folgenden Beispiel, sollen zunächst zu allen Schü-
der PLZ und dem Ort? Die Tabelle lässt beliebige
lern einer Schule Daten erhoben werden. Zu diesen
Möglichkeiten der Adressangabe zu und wird da-
Daten gehören der 'Nachname' und der 'Vorname' ei-
durch schwerer lesbar.
nes Schülers. Um einem Schüler Post zustellen oder
• Die Tabelle ist nur kurzzeitig aktuell, da sich das Al-
ihn anrufen zu können, müssen noch 'Straße', 'PLZ',
ter eines Schülers bei jedem Geburtstag ändert.
'Ort' und die 'Telefonnummer' gespeichert werden. Auch
das 'Alter' des Schülers ist von Interesse. (Sicherlich
26
Teil 2: Informationen
2 Einführung
Deshalb sollte die Tabelle wie folgt verbessert werden. 2.3 Grundlegende Datenbankbegriffe
Verbesserungen: Um eine gemeinsame Sprache als Grundlage für die
• Um die Eindeutigkeit von Vor- und Nachname zu weiteren Erklärungen zu haben, müssen zunächst eini-
gewährleisten, muss die Spalte 'Name' in zwei ge Begriffe eingeführt und definiert werden.
Spalten 'Vorname' und 'Nachname' aufgeteilt wer-
den. Merkmal2
• Auch bei dem Merkmal 'Adresse' kann man durch Spaltenüberschriften werden als Merkmal bezeichnet.
das Aufteilen in die Merkmale 'Straße', 'PLZ', 'Ort' Beispiel:
die Eindeutigkeit und Unverwechselbarkeit der Ein- Die Tabelle Schüler hat die folgenden Merkmale
träge erreichen. Name, Vorname, Straße, PLZ, Ort, Tel., Geburtsdatum
• Das Merkmal 'Alter' muss durch das Merkmal 'Ge- Datensatz3
burtsdatum' ersetzt werden. Das Alter des Schülers Die Zeilen einer Tabelle werden als Datensätze be-
kann dann tagesaktuell bestimmt werden. zeichnet.
Zweite handschriftliche Tabelle Beispiel:
Die Tabelle Schüler hat 4 Datensätze. Einer der Daten-
Schüler
sätze lautet:
Nach- Vor- Straße PLZ Ort Tel. Geburts- 'Müller, Kai, Straße 2, 89077, Ulm, 87654, 08.12.2000'
name name datum
Datenfeld4
Ernst Uwe Weg 1 51111 Köln 98765 05.06.2002 Eine einzelne Zelle einer Tabelle wird als Datenfeld be-
zeichnet. Es wird durch den Datensatz (Zeile) und das
Müller Kai Straße 2 89077 Ulm 87654 08.12.2000 Merkmal (Spalte) bestimmt.
Specht Eva Pfad 15 11111 Berlin 76543 06.08.1999 Datenfeldwert
Groß Ute Allee 9 24103 Kiel 45678 05.07.2001 Ein Datenfeldwert ist der konkrete Dateninhalt eines
Merkmals in einem bestimmten Datensatz.
Bei dieser Tabelle ist die Spaltenzuordnung eindeutig. Beispiel
Ohne Verwechslungsmöglichkeit kann beispielsweise In der Beispieltabelle Schüler enthält das Datenfeld des
der Vorname eines Schülers bestimmt werden. Dieses Merkmals Ort im zweiten Datensatz den Datenfeldwert
'Ulm'.
wurde dadurch erreicht, dass in jeder Tabellenspalte
eindeutige Werte und nicht etwa Listen oder Kombinati- Schlüssel
onen von Werten mit unterschiedlichen Bedeutungen Wie im Folgenden gezeigt wird, ist es sinn-
eingetragen werden. Vorerst genügt es, sich Folgendes voll, dass in einer Datenbank jeder Daten-
zu merken1: satz einer Tabelle eindeutig identifiziert
werden kann. Daher muss man ein Merk-
In Tabellenspalten dürfen nur eindeutige Werte einge-
mal oder eine Kombination von Merkmalen
tragen werden.
bestimmen, mit denen eine solche eindeu-
Der zweite Fehler, in der ersten handschriftlichen Tabel- tige Identifizierung möglich ist. Dieses
le bestand im Eintragen sich ständig verändernder Da- Merkmal (bzw. diese Kombination von
ten, wie dem Alter der Schüler. Die Daten der Tabelle Merkmalen) wird dann Schlüsselmerkmal
sollten möglichst dauerhaft Gültigkeit haben. Daher ist (bzw. Schlüsselmerkmale) oder einfach
auch folgender Merksatz wichtig: Schlüssel genannt. Ein Schlüssel muss
In Tabellen sollten möglichst keine Daten abgelegt wer- eine weitere Anforderung erfüllen: Es dürfen nicht mehr
den, die ständigen Änderungen unterworfen sind. Merkmale als unbedingt notwendig zur Bildung des
Schlüssels kombiniert werden. Man sagt, der Schüssel
einer Tabelle muss minimal sein. Das Merkmal bzw.
die Merkmale, die die Funktion des Schlüssels über-
nehmen, werden unterstrichen. So können sie von den
anderen Merkmalen, den Nichtschlüsselmerkmalen,
unterschieden werden.
27
Teil 2: Informationen
2 Einführung
28
Teil 2: Informationen
2 Einführung
Ein wesentliches Problem dieser Umsetzung besteht • Beim Löschen der Schüler können ungewollt auch
darin, dass unterschiedliche Lehrer mit gleichem Vor- Lehrerinformationen verschwinden. Immer wenn
und Nachnamen nicht unterschieden werden können. der letzte Schüler gelöscht wird, bei dem ein Lehrer
Um auch hier die Eindeutigkeit herzustellen, kann Klassenlehrer ist, werden die zugehörigen Lehrer-
ebenfalls eine ID_Nummer, diesmal allerdings für Leh- daten auch gelöscht.
rer hinzugefügt werden. Die Löschanomalie ist das Gegenstück zur Einfü-
geanomalie. Unter einer Löschanomalie versteht
Schüler
man das ungewollte Löschen von Daten.
ID_ S_Nach- S_Vor- Straße PLZ Ort ... • Wenn ein Lehrer, beispielsweise nach einer Heirat,
Schüler name name seinen Namen ändert, führt diese eine Namensän-
1 Ernst Uwe Weg 1 51111 Köln ... derung dazu, dass bei allen zugehörigen Schüler-
datensätzen der Lehrername ebenfalls geändert
2 Müller Kai Straße 2 89077 Ulm ...
werden muss.
3 Specht Eva Pfad 15 11111 Berlin ... Die Änderungsanomalie liegt vor, wenn eine ein-
4 Groß Ute Allee 9 24103 Kiel .. zelne Änderung weitere Folgeänderungen nach
sich zieht.
... Tel. Geburts- ID_ L_Nach- L_Vor-
datum Lehrer name name
Redundanz
Anomalien treten auf Grund von Redundanzen auf.
... 98765 05.06.2002 1 Moll Willi Eine Redundanz ist die Wiederholungen von Daten
... 87654 08.12.2000 1 Moll Willi OHNE tatsächlichen Informationsgewinn. Beispielswei-
se ist die Wiederholung des Namens Willi Moll eine
... 76543 06.08.1999 2 Kurp August
Redundanz. Ist nämlich einmal bekannt, dass dem Leh-
... 45678 05.07.2001 2 Kurp August rer mit der ID 1 der Name Willi Moll zugeordnet ist, ent-
hält die erneute Nennung des Namens keine weitere
Das Merkmal 'ID_Lehrer' dieser Umsetzung ist kein
Information2. Wichtig ist die Erkenntnis:
Schlüssel-Merkmal der Tabelle 'Schüler', da dadurch
die Datensätze nicht eindeutig bestimmt werden. Ledig- Redundante Daten sind in einer Datenbank auf jeden
lich gleichnamige Lehrer können durch diesen ID-Wert Fall zu vermeiden!
unterschieden werden. Mit einer einzelnen Tabelle lassen sich die Redundan-
Anomalien zen in dem Beispiel nicht vermeiden. Die Daten müs-
sen auf zwei Tabel-
Doch auch diese veränderte Tabelle weist noch erhebli-
len, eine für die Lehrer
che Probleme auf, die auch als Anomalien bezeichnet
Schülerdaten und
werden. Dabei werden die folgenden vier Anomalien ID_Lehrer Nachname Vorname
eine für die Lehrer-
unterschieden:
daten aufgeteilt wer- 1 Moll Willi
• Rechtschreibfehler führen zu inkonsistenten Daten.
den. 2 Kurp August
Alle Lehrerdatensätze mit dem selben 'ID_Lehrer' -
Wert müssen auch den selben Lehrer - 'Nach-
namen' und 'Vornamen' haben. Ist dies nicht Schüler
der Fall liegt ein Fehler im Datenbestand vor. ID_ S_Nach- S_Vor- Straße PLZ Ort Tel. Geburts-
Die Mutationsanomalie entspricht dem verse- Schüler name name datum
hentlichen Falschschreiben und somit dem un- 1 Ernst Uwe Weg 1 51111 Köln 98765 05.06.2002
beabsichtigten „Mutieren“ von Daten.
2 Müller Kai Straße 2 89077 Ulm 87654 08.12.2000
• Ein neuer (Klassen-)Lehrer kann erst hinzuge-
fügt werden, wenn es auch einen Schüler gibt, 3 Specht Eva Pfad 15 11111 Berlin 76543 06.08.1999
der diesen Lehrer als Klassenlehrer hat. An- 4 Groß Ute Allee 9 24103 Kiel 45678 05.07.2001
dernfalls müsste ein „Dummy 1“-Schüler (Leer-
datensatz) erfunden werden, um den neuen
Die beiden Tabellen 'Schüler' und 'Lehrer' enthalten
Lehrer in die Tabelle einfügen zu können.
jetzt keine redundanten Daten mehr. Es besteht zwi-
Unter Einfügeanomalie versteht man das unge-
schen ihnen aber auch keine Beziehung, so dass die
wollte, aber zwingend notwendige Einfügen von
Information, welcher Lehrer der Klassenlehrer eines
Daten, z.B. von Dummydatensätzen, um die tat-
Schülers ist, nicht daraus abgelesen werden kann. Die
sächlich gewünschten Daten speichern zu können.
beiden Tabellen sind völlig unabhängig voneinander.
1 Ein Dummy ist ein Platzhalter für einen noch nicht bekannten aber 2 Im Zusammenhang mit dem Thema Normalformen (siehe Kapitel 8)
benötigten ersten Datensatz. spielen Anomalien und Redundanzen eine wichtige Rolle.
29
Teil 2: Informationen
2 Einführung
Fremdschlüssel Datenbank
Um zwei unabhängige Tabellen miteinander in Bezie- Um Daten redundanzfrei in einer Datenbank ablegen
hung zu setzen, kann der Schlüssel der zu können, reicht eine Tabelle in der Regel nicht aus.
einen Tabelle als Identifikationsmerkmal Meistens müssen die Daten auf mehrere untereinander
an die andere Tabelle angefügt werden. in Beziehung stehende Tabellen verteilt werden. Die
Beziehungen zwischen den Tabellen realisieren soge-
Lehrer
nannte Fremdschüssel. Die nachfolgende, sehr allge-
ID_Lehrer Nachname Vorname meingehaltene Definition einer Datenbank greift diesen
1 Moll Willi Grundgedanken der zerteilten und in Beziehung ste-
henden Daten wieder auf.
2 Kurp August
Datenbank
Schüler Eine Datenbank ist eine Sammlung von Daten, die mit-
einander in Beziehung stehen.
ID_ Nach- Vor- Straße PLZ ...
Schüler name name Tabellenschema
1 Ernst Uwe Weg 1 51111 ... Tabellenschema
Die Gesamtheit aller Tabellen einer Datenbank wird als
2 Müller Kai Straße 2 89077 ...
Tabellenschema bezeichnet.
3 Specht Eva Pfad 15 11111 ...
Relationale Datenbank
4 Groß Ute Allee 9 24103 ..
Der Begriff der Relation wird in der Mathematik im Sin-
... Ort Tel. Geburtsdatum ID_Lehrer ne von Beziehung verwendet. Übertragen auf den rela-
tionalen Datenbankbereich werden Relationen durch
... Köln 98765 05.06.2002 1
Tabellen umgesetzt. Sowohl das Verhältnis der Werte
... Ulm 87654 08.12.2000 1 der unterschiedlichen Merkmale eines Datensatzes zu-
... Berlin 76543 06.08.1999 2 einander als auch die Fremdschlüssel zwischen Tabel-
len beschreiben Beziehungen. Dieses auf dem mathe-
... Kiel 45678 05.07.2001 2 matischen Fundament begründete Datenbankmodell
wurde erstmals 1970 von Edgar F. Codd vorgeschla-
gen und bildet noch heute die Grundlage der relationa-
Auf diese Weise kann die Information 'ist Klassenlehrer' len Datenbankmanagementsysteme.
in die Tabellen eingefügt werden. Die Tabellen 'Schüler' Andere Datenbankmodelle
und 'Lehrer' sind jetzt nicht mehr unabhängig voneinan- Es gibt neben dem relationalen noch weitere, jedoch
der. Durch das zusätzliche Merkmal 'ID_Lehrer' in der weniger wichtige Datenbankmodelle.
Tabelle 'Schüler' werden die Tabellen zueinander in Be-
• Hierarchisches Datenbankmodell
ziehung gesetzt. Das Merkmal 'ID_Lehrer' bezeichnet • Netzwerkdatenbankmodell
man auch als Fremdschlüssel. Auf diese Weise wird die • Objektrelationales Datenbankmodell
Beziehung 'ist Klassenlehrer' umgesetzt. Beispielswei- • Objektorientiertes Datenbankmodell 12.1.2
se ist der Lehrer Kurp mit ID_Lehrer = 2 der Klassen- RDBMS
lehrer der Schüler Specht und Groß. Ein relationales Datenbankmanagementsystem (kurz
Fremdschlüssel1 RDBMS) umfasst neben den eigentlichen Daten und
Als Fremdschlüssel einer Tabelle wird ein Merkmal deren Beziehungen, die in Form von Tabellen gespei-
oder eine Kombination von Merkmalen bezeichnet, die chert werden auch Verwaltungskomponenten. Diese
in einer anderen Tabelle als Schlüssel vorkommen. Verwaltungskomkonenten dienen dem Anlegen, Modifi-
Mit Hilfe von Fremdschlüsseln werden die Beziehungen zieren, Sichern und Verwalten von Daten, Tabellen und
12.1.1 zwischen Tabellen realisiert. Datenbanken ebenso wie dem Anlegen und Verwalten
von Datenbankbenutzern und deren Datenbankzugriffs-
1 Häufig wird in der Literatur der Fremdschlüssel mit einer gestrichelten rechte. Die Datenabfrage und -manipulationssprache
Linie unterstrichen, um das Fremdschlüsselmerkmal von anderen SQL als integralen Bestandteil eines jeden RDBMS er-
Merkmalen eindeutig unterscheiden zu können. In diesem Buch werden
alle Schlüssel mit „ID_“ beginnen und die Fremdschlüssel bekommen möglicht viele dieser Aufgaben (Siehe Kapitel 10).
immer denselben Namen wie der zugehörige Schlüssel. Daher ist bei
dieser Namenskonvention die Zuordnung von Schlüsseln und
Fremdschlüsseln sehr einfach . Auf die Unterstreichung der
Fremdschlüssels kann deshalb verzichtet werden.
Diese Namenskonvention hat sich als sehr praktikabel und hilfreich
herausgestellt. Zwingend ist sie jedoch nicht! Beispielsweise kann man
Fremdschlüssel auch Grundsätzlich mit FS_ beginnen lassen.
30
Teil 2: Informationen
2 Einführung
1 Moll Willi
2 Kurp August Die Beziehungstabelle 'unterrichtet' spiegelt folgende
Informationen wider:
In diesen Tabellen ist die Information 'welcher Lehrer in Der Lehrer 1 (Moll) unterrichtet in den Klassen
welcher Klasse unterrichtet' noch nicht enthalten! An- • 2 (IF),
ders formuliert: Die Beziehung 'unterrichtet' ist noch • 3 (FO13),
nicht umgesetzt. Auch im vorherigen Kapitel mussten
Der Lehrer 2 (Kurp) unterrichtet in den Klassen
die voneinander unabhängigen Tabellen 'Lehrer' und
• 1 (BG)
'Schüler' in Beziehung gesetzt werden, um die Informa- • 3 (FO13).
tion 'ist Klassenlehrer' umsetzen zu können. Das Pro-
blem wurde gelöst, indem der Schlüssel der einen Ta- Zusammengesetzter Schlüssel
belle als Fremdschlüssel der anderen Tabelle angefügt
wurde. Diese Problemlösung kann auf die Tabellen
Der Schlüssel der Beziehungstabelle wird aus der
Kombination der Fremdschlüssel gebildet. Die einzel-
nen Merkmale, aus denen sich Schlüssel zusam-
'Klasse' und 'Lehrer' nicht übertragen werden, denn: 12.1.3
mensetzt werden auch als Teilschlüssel bezeichnet.
31
Teil 2: Informationen
2 Einführung
2.6 Eine dritte Beziehung Diese erste Variante ist ungünstig. Da nur die we-
In jeder Klasse wird zu Beginn eines Schuljahres ein
Klassensprecher gewählt. Diese Beziehung 'ist Klas-
nigsten Schüler auch Klassensprecher sein wer-
den, ist bei dieser Umsetzungsvariante mit sehr
vielen leeren Datenfeldern zu rechnen.
sensprecher' zwischen den Tabellen 'Schüler' und
Variante 2
'Klasse' soll ebenfalls in die Datenbank aufgenommen
'ID_Schüler' als Fremdschlüssel in der Tabelle 'Klasse'.
werden.
Klasse
Anmerkung
ID_Klasse Kürzel Beschreibung ID_Schüler
Um die Lesbarkeit des Beispiels zu erhöhen, werden
alle Nichtschlüsselmerkmale der Tabelle 'Schüler' bis 1 BG Berufsgrundschuljahr 3
auf das Merkmal 'Nachname' weggelassen.
2 IF TA-Informationstechnik 1
Schüler 3 FO13 Fachoberschule Kl.13 4
ID_Schüler Nachname ...
Da in jeder Klasse ein Schüler als Klassenspre-
1
2
Ernst
Müller
...
...
cher gewählt wird, ist davon auszugehen, dass
gar keine leeren Datenfelder entstehen. Somit ist
diese zweite Variante eine sehr günstige Umset-
3 Specht ...
zung.
4 Groß .. Variante 3
Eine eigenständige Beziehungstabelle 'ist Klassenspre-
Klasse cher' zwischen den Tabellen 'Klasse' und 'Schüler'.
ID_Klasse Kürzel Beschreibung Ist Klassensprecher
1 BG Berufsgrundschuljahr ID_Klasse ID_Schüler
2 IF TA-Informationstechnik 1 3
3 FO13 Fachoberschule Kl.13 2 1
32
Teil 2: Informationen
2 Einführung
33