0% fanden dieses Dokument nützlich (0 Abstimmungen)
92 Ansichten8 Seiten

02 - Einführung SQL

Das Dokument beschreibt grundlegende Begriffe der Datenbankentwicklung wie Tabellen, Spalten, Datensätze und Schlüssel. Es erklärt die Bedeutung eines korrekten Datenbankentwurfs und zeigt anhand eines Beispiels mögliche Probleme einer unstrukturierten Datenerfassung auf.

Hochgeladen von

Петар Мишић
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
92 Ansichten8 Seiten

02 - Einführung SQL

Das Dokument beschreibt grundlegende Begriffe der Datenbankentwicklung wie Tabellen, Spalten, Datensätze und Schlüssel. Es erklärt die Bedeutung eines korrekten Datenbankentwurfs und zeigt anhand eines Beispiels mögliche Probleme einer unstrukturierten Datenerfassung auf.

Hochgeladen von

Петар Мишић
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Teil 2: Informationen

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.

2 Häufig werden die Merkmale auch als Attribute bezeichnet.


1 Diese Eigenschaft entspricht dem, was durch die erste Normalform, siehe 3 Der Begriff Tupel hat sich ebenfalls als Bezeichnung für einen Datensatz
Kapitel 8.2 als Grundvoraussetzung für eine zulässige Tabellen gefordert etabliert.
wird. 4 Der Begriff Zelle ist ebenfalls anstelle von Datenfeld gebräuchlich.

27
Teil 2: Informationen

2 Einführung

Auch bei konsequenter Verwendung von ID_Werten als


Schüler
Schlüsselmerkmal kann und wird es zusammengesetz-
Nach- Vor- Straße PLZ Ort Tel. Geburts- te Schlüssel geben. Diese treten insbesondere bei Be-
name name datum ziehungstabellen auf (Siehe Kapitel 2.5).
Ernst Uwe Weg 1 51111 Köln 98765 05.06.2002 Tabellen einer Datenbank
Müller Kai Straße 2 89077 Ulm 87654 08.12.2000 Im Gegensatz zu einer handschriftlichen Tabelle muss
eine Tabelle einer Datenbank folgende Eigenschaften
Specht Eva Pfad 15 11111 Berlin 76543 06.08.1999
erfüllen:
Groß Ute Allee 9 24103 Kiel 45678 05.07.2001
Tabelle2
Um die handschriftliche Tabelle in eine Datenbank um- Eine Tabelle ist eine Menge von Datensätzen, die tabel-
lenförmig angeordnet werden und folgende eindeutigen
setzen zu können, wurde beispielsweise das Merkmal
Eigenschaften erfüllen:
'Nachname' als Schlüssel der Tabelle ausgezeichnet. • Tabellenname: Eine Tabelle besitzt einen, inner-
Dieser Schlüssel ist sicherlich minimal. Weniger als ein halb der Datenbank, eindeutigen Namen.
Merkmal als Schlüssel geht nicht. Eindeutig ist er zu- • Merkmalsnamen: Der Name eines Merkmals ist in-
mindest in der Beispieltabelle auch! Dennoch ist die nerhalb der Tabelle eindeutig.
Wahl dieses Schlüssels nicht sinnvoll. • Schlüssel: Jede Tabelle besitzt einen Schlüssel.
Da der Schlüssel eindeutig die Datensätze identifizie- Zudem gilt, dass die Anzahl und Reihenfolge der Merk-
ren muss, darf es in der Tabelle keine zwei Schüler mit male und der Datensätze einer Tabelle beliebig sind.
demselben Nachnamen geben. Der Schüler 'Müller,
Sebastian' hat somit schlechte Karten! Er kann nicht als 2.4 Eine erste Beziehung
Schüler in die Tabelle eingetragen werden.
Ein aus den Merkmalen 'Nachname' und 'Vorname' Als nächstes soll die Schülertabelle so erweitert wer-
kombinierter Schlüssel ist sicherlich besser geeignet den, dass die Information, welcher Lehrer Klassenleh-
als das Merkmal 'Name' alleine. Der Schüler 'Müller, rer des jeweiligen Schülers ist, mit aufgenommen wer-
Sebastian' kann nun in die Tabelle aufgenommen wer- den kann. Vom Klassenlehrer werden Vor- und Nach-
den. Die Wahrscheinlichkeit, dass zwei Schüler den name als weitere Merkmale an die Tabelle angefügt.
selben Namen und Vornamen haben, ist deutlich gerin- Schüler
ger. Ausgeschlossen ist dies aber nicht!
ID_ S_Nach- S_Vor- Straße PLZ ...
Um diesem Problem aus dem Weg zu gehen, wird ein Schüler name name
neutrales zusätzliches Merkmal (ID: Identitätsnummer)
zur Tabelle hinzugefügt. Mit Hilfe dieses Merkmals kön- 1 Ernst Uwe Weg 1 51111 ...
nen die Datensätze mit einer eindeutigen Nummer 2 Müller Kai Straße 2 89077 ...
durchnummeriert werden. Dieses Merkmal eignet sich
3 Specht Eva Pfad 15 11111 ...
hervorragend als Schlüssel der Tabelle, da es die zwei
Eigenschaften Minimalität und Eindeutigkeit erfüllt. 4 Groß Ute Allee 9 24103 ..

Schüler ... Ort Tel. Geburts- L_Nach- L_Vor-


datum name name
ID_Schüler Nachname Vorname Straße ...
... Köln 98765 05.06.2002 Moll Willi
1 Ernst Uwe Weg 1 ...
... Ulm 87654 08.12.2000 Moll Willi
2 Müller Kai Straße 2 ...
... Berlin 76543 06.08.1999 Kurp August
3 Specht Eva Pfad 15 ...
... Kiel 45678 05.07.2001 Kurp August
Schlüssel1
Ein Schlüssel muss folgende beiden Bedingungen er- Anmerkung
füllen: Da die Merkmalesnamen einer Tabelle eindeutig sein
• Eindeutigkeit: Ein Schlüssel identifiziert eindeutig müssen, wurde den Merkmalen 'Nach-' und 'Vorname'
die Datensätze der Tabelle. jeweils ein S_ bzw. ein L_ vorangestellt, um den
• Minimal: Wird ein Schlüssel aus mehreren Merk- Schüler- vom Lehrernamen unterscheiden zu können.
malen kombiniert, dürfen nicht mehr Merkmale als
unbedingt notwendig an der Kombination beteiligt
werden.

1 Synonym werden auch die Bezeichnungen Primärschlüssel oder


Hauptschlüssel anstelle von Schlüssel verwendet. 2 Oft werden Tabellen auch als Relationen bezeichnet

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

2.5 Eine zweite Beziehung ID_Klasse an die Tabelle 'Lehrer' anfügen


Fügt man das Merkmal 'ID_Klasse' als Fremdsch-
Als zusätzliche Erweiterung des einführenden Beispiels
lüssel in die Tabelle 'Lehrer' ein, so kann man für je-
sollen nun auch die Schulklassen mit in die Datenbank
den Lehrer genau eine Klasse angeben, in der er
aufgenommen werden. Die drei Klassen
unterrichtet.
• BG (Berufsgrundschuljahr),
ID_Lehrer an die Tabelle 'Klasse' anfügen
• IF (Technische/er Assistent/in Informationstechnik),
Wird hingegen das Merkmal 'ID_Lehrer' als Fremd-
• FO13 (Fachoberschule Klasse 13)
schlüssel in die Tabelle 'Klasse' eingefügt, so kann
sollen dabei als Beispieldatensätze genügen. Aus den für jede Klasse nur noch ein einziger Lehrer be-
Tabellen soll ablesbar sein, welcher Lehrer in welcher stimmt werden, der in der Klasse unterrichtet.
Klasse unterrichtet. Eine erste Idee besteht darin der
Tabelle 'Lehrer' die zugehörigen Klassen in einer weite- Beide Varianten spiegeln nicht den tatsächlichen Sach-
ren Spalte als Aufzählung anzufügen. verhalt wider. Das Hinzufügen von Fremdschlüsseln zu
bestehenden Tabellen reicht also nicht aus, um die Be-
Lehrer ziehung 'unterrichtet' umzusetzen. Stattdessen muss
ID_ Nach- Vor- Klasse für die Beziehung 'unterrichtet' eine weitere Tabelle,
Lehrer name name eine Beziehungstabelle, hinzugefügt werden.
1 Moll Willi IF, TA-Informationstechnik Beziehungstabelle
FO13, Fachoberschule Kl.13 Eine Tabelle, die der Umsetzung einer Beziehung dient,
2 Kurp August BG, Berufsgrundschuljahr nennt man Beziehungstabelle.
FO13, Fachoberschule Kl.13 In diese Tabelle können alle möglichen Kombinationen
zwischen der Tabelle 'Lehrer' und der Tabelle 'Klasse'
Auch diese Tabellenumsetzung enthält wieder Listen abgebildet werden.
und Redundanzen, die zu Anomalien und damit zu in-
konsistenten Daten führen können. Um diese zu ver-
meiden, müssen die Daten wieder auf mehrere Tabel-
len verteilt und die Wertebereiche der Spalten eindeutig
und unteilbar werden. Die eigenständigen Tabellen
'Klasse' und 'Lehrer' sehen wie folgt aus.
Klasse
ID_Klasse Kürzel Beschreibung unterrichtet
1 BG Berufsgrundschuljahr ID_Lehrer ID_Klasse
2 IF TA-Informationstechnik Lehrer 1 (Moll) (IF) Klasse 2
1 2
3 FO13 Fachoberschule Kl.13 (FO13) Klasse 3
1 3
Lehrer 2 (Kurp) (BG) Klasse 1
Lehrer 2 1
ID_Lehrer Nachname Vorname 2 3 (FO13) Klasse 3

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

Betrachtet wird folgende Beispielsituation 3 4


• Die beiden Schüler 'Ernst' und 'Müller' gehen in die-
selbe Klasse IF TA-Informationstechnik. Der Aufwand, eine extra Beziehungstabelle zu
• Der Schüler 'Ernst' ist der Klassensprecher dieser
Klasse.
 führen, ist erheblich größer, als lediglich den
Schlüssel einer Tabelle als Fremdschlüssel einer
• Die Schülerin Specht ist Klassensprecherin der anderen Tabelle zuzuordnen. Daher ist Variante 3
Klasse BG Berufsgrundschuljahr. ungünstig.
• Die Schülerin Groß ist Klassensprecherin der Klas- Fazit
se FO13 Fachoberschule. Da alle drei Varianten möglich sind (Redundanzen oder
Umsetzungsvarianten Listen treten nicht auf) wird man sich für die Variante
Es gibt drei mögliche Varianten für die Beziehung 'ist- entscheiden, bei der die wenigsten leeren Datenfelder
Klassensprecher'. Entweder man fügt den Schlüssel ei- und der geringste Verwaltungsaufwand zu erwarten ist.
ner Tabelle als Fremdschlüssel in die andere Tabelle Für die Erweiterung der Datenbank um die Beziehung
ein oder man legt eine eigenständige Beziehungstabel- 'ist Klassensprecher' muss nur die Tabelle 'Klasse' um
le an. das Fremdschlüsselmerkmal 'ID_Schüler' ergänzt wer-
den.
Variante 1
'ID_Klasse' als Fremdschlüssel in der Tabelle 'Schüler'. Bei mehreren möglichen Umsetzungsvarianten wird die
Variante mit den wenigsten leeren Datenfeldern und
Schüler dem geringsten Verwaltungsaufwand gewählt.
ID_Schüler Nachname ... ID_Klasse
1 Ernst ... 2
2 Müller ...
3 Specht ... 1
4 Groß .. 3

32
Teil 2: Informationen

2 Einführung

2.7 Eine fehlerhafte Beziehung Obwohl jeder Einzelschritt bei


Abschließend soll die Beziehung 'ist Mitschüler' und so- der Herleitung dieser Tabellen
mit die Information, welcher Schüler in welcher Klasse für sich betrachtet richtig und
ist, in die Datenbank aufgenommen werden. Da jeder nachvollziehbar war, ist das ent-
Schüler genau einer Klasse zuzuordnen ist, kann diese standene Tabellenschema
Beziehung 'ist Mitschüler' (analog zur Beziehung 'ist in seiner Gesamtheit
Klassenlehrer' aus Kapitel 2.4) umgesetzt werden, in- trotzdem fehlerhaft!
dem man das Schüsselmerkmal 'ID_Klasse' der Tabelle
'Klasse' als Fremdschlüssel an die Tabelle 'Schüler' an- Dadurch, dass mit Hilfe der Beziehung 'ist Mitschüler'
fügt. jetzt bestimmt werden kann, in welche Klasse die
Schüler gehen, muss nicht mehr für jeden Schüler ein-
Schüler
zeln festgelegt werden, welchen Klassenlehrer er hat.
ID_ Nach- Vor- Straße PLZ ... Es ist völlig ausreichend einen Klassenlehrer je Klasse
Schüler name name anzugeben. Dazu müssen an den Tabellen folgende
1 Ernst Uwe Weg 1 51111 ... Änderungen durchgeführt werden:
2 Müller Kai Straße 2 89077 ... 1. Das Fremdschlüsselmerkmal 'ID_Lehrer' aus der
Tabelle 'Schüler' entfernen
3 Specht Eva Pfad 15 11111 ... 2. In der Tabelle Klasse das Merkmal 'ID_Lehrer' als
4 Groß Ute Allee 9 24103 .. Fremdschlüssel hinzufügen.

... Ort Tel. Geburts- ID_ ID_


datum Klasse Lehrer Beziehungsmerkmal
Besonders deutlich wird der Fehler in diesem Tabellen-
... Köln 98765 05.06.2002 2 1 schema, wenn man beispielsweise die Information „seit
... Ulm 87654 08.12.2000 2 1 wann ist ein Lehrer Klassenlehrer einer Klasse“ eben-
... Berlin 76543 06.08.1999 1 2 falls in der Datenbank speichern möchte. Dieses zu-
sätzliche Merkmal 'seit wann' hängt logisch mit der Be-
... Kiel 45678 05.07.2001 3 2 ziehung 'ist Klassenlehrer' zusammen und ist somit als
'ID_Klasse' realisiert die Beziehung 'ist Mitschüler'. Beziehungsmerkmal der Beziehung 'ist Klassenlehrer'
'ID_Lehrer' realisiert die Beziehung 'ist Klassenlehrer'. zuzuordnen. Würde man aber dieses Merkmal, wie die
Beziehung 'ist Klassenlehrer' ebenfalls fälschlicherwei-
Klasse se durch Anfügen an die Tabelle 'Schüler' umsetzen,
ID_Klasse Kürzel Beschreibung ID_Schüler käme es wieder aufgrund von Redundanzen zu Anoma-
lien. Dieses Problem kann nur sinnvoll umgangen wer-
1 BG Berufsgrundschuljahr 3
den, wenn beide Merkmale, das Fremdschlüsselmerk-
2 IF TA-Informationstechnik 1 mal 'ID_Lehrer' und das zusätzliche Merkmal 'seit
3 FO13 Fachoberschule Kl.13 4 wann' in die Tabelle 'Klasse' überführt werden. (Um die-
se Problematik nachvollziehen zu können vergleichen
'ID_Schüler' realisiert die Bez. 'ist Klassensprecher'. Sie bitte unbedingt das hier vorgestellte fehlerhafte Ta-
Lehrer bellenschema mit dem korrigierten Tabellenschema im
Kapitel 5.1)
ID_Lehrer Nachname Vorname
Fazit
1 Moll Willi
Dieses Beispiel veranschaulicht sehr gut, wie schwierig
2 Kurp August es ist, ohne Datenanalyse und strukturierten Datenban-
kentwurf, zu einem brauchbaren Tabellenschema zu
unterrichtet gelangen. Welches Vorgehen beim Datenbankentwurf
ID_Lehrer ID_Klasse am sinnvollsten ist und welche Hilfsmittel dabei zur Ver-
fügung stehen, wird in den folgenden Kapiteln gezeigt.
1 2
Der Datenbankentwurf kann nicht ohne Datenanalyse
1
2
3
1
durchgeführt werden.

2 3 12.1.4

33

Das könnte Ihnen auch gefallen