Beziehungen in Datenbanken: Unterschied zwischen den Versionen
Zeile 93: | Zeile 93: | ||
In einer m:n-Beziehung können '''jedem Datensatz''' in Tabelle ''A'' '''mehrere passende Datensätze''' in Tabelle ''B'' zugeordnet sein '''und umgekehrt'''. Dies ist nur möglich, indem eine dritte Tabelle definiert wird (die als Verbindungstabelle bezeichnet wird), deren Primärschlüssel aus zwei Feldern besteht: den Fremdschlüsseln aus den Tabellen ''A'' und ''B''. Eine m:n-Beziehung besteht eigentlich aus zwei 1:n-Beziehungen mit einer dritten Tabelle, deren Primärschlüssel aus zwei Feldern besteht, und zwar den Fremdschlüsseln aus den beiden anderen Tabellen. Bsp: Ein Auftrag kann über mehrere Bücher gehen, jedes Buch kann auch in verschiedenen Aufträgen stehen. | In einer m:n-Beziehung können '''jedem Datensatz''' in Tabelle ''A'' '''mehrere passende Datensätze''' in Tabelle ''B'' zugeordnet sein '''und umgekehrt'''. Dies ist nur möglich, indem eine dritte Tabelle definiert wird (die als Verbindungstabelle bezeichnet wird), deren Primärschlüssel aus zwei Feldern besteht: den Fremdschlüsseln aus den Tabellen ''A'' und ''B''. Eine m:n-Beziehung besteht eigentlich aus zwei 1:n-Beziehungen mit einer dritten Tabelle, deren Primärschlüssel aus zwei Feldern besteht, und zwar den Fremdschlüsseln aus den beiden anderen Tabellen. Bsp: Ein Auftrag kann über mehrere Bücher gehen, jedes Buch kann auch in verschiedenen Aufträgen stehen. | ||
== | ==Grafische Darstellung von Beziehungen== | ||
Den vorliegenden Ausführungen liegt eine Beispieldatenbank zugrunde, die einerseits als Modell für Beispiele zu den behandelten Themen dient, andererseits als interaktive Trainingsdatenbank dort eingesetzt wird, wo SQL-Anweisungen nicht nur erklärt, sondern auch zur praktischen Übung angeboten werden. | Den vorliegenden Ausführungen liegt eine Beispieldatenbank zugrunde, die einerseits als Modell für Beispiele zu den behandelten Themen dient, andererseits als interaktive Trainingsdatenbank dort eingesetzt wird, wo SQL-Anweisungen nicht nur erklärt, sondern auch zur praktischen Übung angeboten werden. |
Version vom 2. März 2009, 16:54 Uhr
Beziehungen zwischen Tabellen
Nachdem verschiedene Tabellen zu den einzelnen Themen angelegt wurden (siehe Tabellen in Datenbanken), muss festgelegt werden, wie diese Informationen wieder zusammengeführt werden können. Der erste Schritt in diesem Prozess besteht darin, Beziehungen zwischen den Tabellen zu definieren. Anschließend können Abfragen, Formulare und Berichte erstellt werden, um die Informationen aus verschiedenen Tabellen gleichzeitig anzuzeigen.
Funktionsweise von Schlüsseln
Aus gleichartigen Objekten und deren Attributen werden Objektklassen (Objekttypen, Entityklassen) gebildet. Eine Datei bildet eine Objektklasse ab; sie besteht aus einem oder mehreren Datensätzen. Jenes Feld oder jene Felder, mit denen Objekte einer Objektklasse identifiziert werden können, werden Schlüssel (Schlüsselfeld/er) genannt. Sind Schlüssel aus mehreren Feldern zusammengesetzt, werden sie als Kombinationsschlüssel bezeichnet.
Ein Primärschlüssel vermag genau einen und nur einen Datensatz zu identifizieren. In unserem Beispiel ist dies die, pro Buch vergebene Buchnummer Nr. Bisweilen werden auch Sekundärschlüssel definiert, die allerdings dadurch charakterisiert sind, dass sie sich nicht zur Identifizierung genau eines Satzes eignen, sondern Datensätze mit gleichen Teil-Eigenschaften in eine Klasse zusammenfassen. Im vorliegenden Beispiel ist das Feld Verlag ein Sekundärschlüssel, der bei Anwendung alle Bücher eines bestimmten Verlages zu einer Klasse zusammenfasst.
Welche Objektklassen im konkreten Fall zu bilden sind, welche Eigenschaften und deren Datentypen in den Feldern (Spalten) gewählt werden, hängt ausschließlich von den Erfordernissen der zu gestellten Aufgaben ab.
Funktionsweise von Beziehungen
Angenommen es müssen Felder aus fünf Tabellen so koordiniert werden, dass Informationen zu ein und derselben Bestellung angezeigt werden - diese Koordination wird durch Beziehungen zwischen den Tabellen erreicht. Eine Beziehung funktioniert durch übereinstimmende Daten in Schlüsselfeldern; normalerweise ein Feld, das in beiden Tabellen denselben Namen besitzt.
In den meisten Fällen stellen diese übereinstimmenden Felder den Primärschlüssel in der einen Tabelle dar, der einen eindeutigen Bezeichner für jeden Datensatz angibt, und einen Fremdschlüssel in der anderen Tabelle.
Einzelnen Kunden können z.B. Aufträge zugeordnet werden, indem eine Beziehung zwischen den Tabellen Kunde und Auftrag über das in beiden Tabellen vorhandene Feld Kundennummer hergestellt wird. So geht aus dem Beispiel unten hervor, dass Frau Elisabeth Erlach mit der Kundennummer 37 am 21.12.2002 den Auftrag mit der Nr. 1223445 ausgelöst hat.
Kundennummer | Vorname | Nachname | Straße | PLZ |
---|---|---|---|---|
37 | Elisabeth | Erlach | Glimpflinger Str. 13 | 5020 |
38 | Hans | Hinterholzer | Franziskanerweg 9 | 1040 |
39 | Hans-Peter | Wesp | Wüstenrotstraße 23 | 5201 |
40 | Konrad | Gampe | Berggasse 25 | 1010 |
Auftragsdatum | Kundennummer | Auftragsnummer |
---|---|---|
21.12.2002 | 37 | 1223445 |
29.12.2002 | 40 | 23847 |
13.01.2003 | 34 | 12743 |
15.02.2003 | 20 | 3612873 |
Es gibt drei Grundtypen von Beziehungen mit denen wir arbeiten werden: Die 1:1-, 1:n- und n:m-Beziehung.
1:1-Beziehung
In einer 1:1-Beziehung ist jedem Datensatz in Tabelle A nur ein passender Datensatz in Tabelle B zugeordnet und umgekehrt. Diese Art von Beziehung ist nicht sehr häufig, weil die meisten Informationen, die auf diese Weise in Beziehung stehen, sich in einer Tabelle befinden. Man kann eine 1:1-Beziehung z.B. verwenden, um eine Tabelle mit vielen Feldern zu teilen, um einen Teil der Tabelle aus Gründen der Zugriffsrechte abzutrennen oder um Informationen zu speichern, die sich nur auf eine Untergruppe der Haupttabelle beziehen.
1:n-Beziehung
Eine 1:n-Beziehung ist der häufigste Beziehungstyp. In einer 1:n-Beziehung können einem Datensatz in Tabelle A mehrere passende Datensätze in Tabelle B zugeordnet sein, aber einem Datensatz in Tabelle B ist nie mehr als ein Datensatz in Tabelle A zugeordnet. Bsp: Ein Kunde kann mehrere Aufträge erteilen, jedoch kann auf einem Auftrag nur ein Kunde stehen.
m:n-Beziehung
In einer m:n-Beziehung können jedem Datensatz in Tabelle A mehrere passende Datensätze in Tabelle B zugeordnet sein und umgekehrt. Dies ist nur möglich, indem eine dritte Tabelle definiert wird (die als Verbindungstabelle bezeichnet wird), deren Primärschlüssel aus zwei Feldern besteht: den Fremdschlüsseln aus den Tabellen A und B. Eine m:n-Beziehung besteht eigentlich aus zwei 1:n-Beziehungen mit einer dritten Tabelle, deren Primärschlüssel aus zwei Feldern besteht, und zwar den Fremdschlüsseln aus den beiden anderen Tabellen. Bsp: Ein Auftrag kann über mehrere Bücher gehen, jedes Buch kann auch in verschiedenen Aufträgen stehen.
Grafische Darstellung von Beziehungen
Den vorliegenden Ausführungen liegt eine Beispieldatenbank zugrunde, die einerseits als Modell für Beispiele zu den behandelten Themen dient, andererseits als interaktive Trainingsdatenbank dort eingesetzt wird, wo SQL-Anweisungen nicht nur erklärt, sondern auch zur praktischen Übung angeboten werden.
Zur Darstellung von Tabellen in einer relationalen Datenbank und deren Beziehungen untereinander gibt es zahlreiche praktizierte Formen. Manche wurden im Laufe der Zeit standardisiert, manche frei erfunden. Bei der nachfolgenden Darstellung handelt es sich um eine frei erfundene, vereinfachte Form, die zum Ziel hat, Beziehungen zwischen Tabellen in allgemein verständlicher Form zu visualisieren. Die Namen der Tabellen sind durch Fettschrift hervorgehoben, die Attribute (Felder) der Tabellen sind eingerückt unter der Bezeichnung der Tabelle angeführt. Primärschlüsselfelder sind unterstrichen. Die einfache Pfeilspitze an den Kanten zwischen den Tabellen deuten auf die "1" von "1:n" Beziehungen hin, die doppelten Pfeilspitzen auf das "n".
Das Zustandekommen der dargestellten Tabellen und ihrer Beziehungen ist Gegenstand des Datenbank-Entwurfsprozesses, der an dieser Stelle nicht zum Gegenstand gemacht wird. Wie diesem Beispiel zu entnehmen ist, werden Tabellen, nach erfolgtem Entwurfsprozess, in der Regel mit 1:n Beziehungen verbunden.