Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

2.5.5 n:1-Beziehungen oder Lookup-Beziehungen

2.5.6 m:n-Beziehungen

m:n-Beziehungen sind nichts weiter als zwei 1:n-Beziehungen, die zwei Tabellen über eine Hilfstabelle miteinander verknüpfen. Im Gegensatz zu einer einzelnen 1:n-Beziehung, mit der sich beliebig viele Datensätze der einen Mastertabelle mit einem Datensatz der Detailtabelle verknüpfen lassen, ist das Ziel der m:n-Beziehung, dass sich jeder Datensatz der ersten Tabelle mit beliebig vielen Datensätzen der zweiten Tabelle verknüpfen lässt und umgekehrt.

Beispiele für solche Beziehungen gibt es viele. Das bekannteste ist wohl die Verknüpfung der Bestellungen-Tabelle mit der Artikel-Tabelle über eine Bestelldetails-Tabelle wie in der Nordwind-Datenbank (siehe Abbildung 2.55).

Abbildung 2.55: Klassisches Beispiel einer m:n-Beziehung: Bestellungen und Artikel in der Nordwind-Datenbank

Diese Variante ist zugleich eine kompliziertere Form der m:n-Beziehung, die in der Verknüpfungstabelle zusätzliche Daten speichert.

m:n-Beziehung am Beispiel von Fahrzeugen und Sonderausstattungen

Ein einfacheres Beispiel sind Ausstattungsmerkmale von Fahrzeugen. Fahrzeuge haben einige unveränderliche Eigenschaften wie Marke, Modell, Leistung und so weiter. Außerdem besitzt jedes Fahrzeug verschiedene Ausstattungsmerkmale, die aber bei dem einen vorhanden und bei dem anderen nicht vorhanden sind. Ein nicht normalisiertes Datenmodell würde aus einer einzigen Tabelle mit einigen Dutzend Ja/Nein-Feldern für die einzelnen Ausstattungsmerkmale bestehen. Das ist legitim, kann aber zu Problemen führen: Zwar ändern sich die gängigen Ausstattungsmerkmale nur alle Jubeljahre, aber sie ändern sich, und damit müssten Sie auch die komplette Datenbank von der Tabelle bis zu den Formularen, Berichten und VBA-Modulen anpassen. Außerdem wird für jede Ausstattung, die nicht vorhanden ist, Speicherplatz verschwendet. Also legen Sie eine Tabelle mit sämtlichen Ausstattungsmerkmalen an und sorgen mit einer Verknüpfungstabelle dafür, dass Sie alle Fahrzeuge mit allen Ausstattungsmerkmalen kombinieren können (siehe Abbildung 2.56).

Abbildung 2.56: m:n-Beziehung am Beispiel von Fahrzeugen und ihrer Ausstattung

Die Verknüpfungstabelle ist dabei nichts anderes als eine Tabelle mit zwei Fremdschlüsselfeldern, die die beiden Primärschlüsselfelder der zu verknüpfenden Tabellen referenzieren. In der Entwurfsansicht sieht die Verknüpfungstabelle wie in Abbildung 2.57 aus. Dort wird Ihnen vermutlich zuerst auffallen, dass es dort zwei als Primärschlüssel gekennzeichnete Felder gibt. Genau genommen ist dies ein zusammengesetzter Primärschlüssel, der verhindert, dass eine Kombination der beiden Felder zweimal eingegeben wird. Schließlich soll jedes Ausstattungsmerkmal jedem Fahrzeug nur einmal zugewiesen werden.

Abbildung 2.57: Entwurfsansicht einer m:n-Verknüpfungstabelle

Verknüpfungstabellen mit zusätzlichen Daten: Bestellungen und Artikel

Nun können Sie sich der Bestelldetails-Tabelle der Nordwind-Datenbank zuwenden, die bereits oben kurz vorgestellt wurde. Dort befinden sich neben den beiden Fremdschlüsselfeldern zum Herstellen der Beziehung noch weitere Felder zum Speichern von Einzelpreis, Anzahl und Rabatt des jeweiligen Artikels. Dabei handelt es sich um individuelle Daten für jede Kombination aus Bestellung und Artikel. Dass die Anzahl flexibel sein muss, ist klar, aber warum Einzelpreis und Rabatt? Der Einzelpreis ist zwar bereits in der Tabelle tblArtikel festgelegt, es aber kann durchaus sein, dass der Preis sich einmal ändert. Und wenn Sie diesen dann nur in der Artikel-Tabelle gespeichert haben und ihn dort aktualisieren, dann wirkt sich das auch auf die Rechnungsbeträge aller bisherigen Bestellungen aus. Daher muss der Preis unbedingt in Zusammenhang mit der Kombination aus Bestellung und Artikel gespeichert werden. Und der Rabatt ist ohnehin eine Größe, die je nach Kunde oder je nach Angebot flexibel gestaltet wird - daher macht auch die Aufnahme dieses Feldes in die Verknüpfungstabelle Sinn.

Alternative Verwaltung von Daten aus m:n-Beziehungen

In einfachen Fällen wie bei den Ausstattungsmerkmalen für Fahrzeuge können Sie auch ein mehrwertiges Feld verwenden. Weitere Informationen zu mehrwertigen Feldern finden Sie weiter oben.

Weitere Beispiele für m:n-Beziehungen

m:n-Beziehungen treten an vielen Stellen auf. Hier finden Sie zwei weitere Beispiele:

  • Verteiler: Jeder Verteiler basiert auf einer m:n-Beziehung. Die beiden zu verknüpfenden Tabellen enthalten die Publikation auf der einen und die Adressaten auf der anderen Seite. Die Verknüpfungstabelle ist einfach, es sind außer den beiden Fremdschlüsselfeldern keine weiteren Felder notwendig.
  • Projektteams: Jedes Projektteam besteht aus einem oder mehreren Mitarbeitern, und jeder Mitarbeiter gehört zu einem oder mehreren Projektteams. Der Verknüpfungstabelle könnte man eine dritte Verknüpfung hinzufügen, um die Funktion des jeweiligen Teammitglieds festzulegen. Abbildung 2.58 zeigt das Datenmodell dieser Verknüpfung, bei der es sich eigentlich sogar um eine m:n:o-Verknüpfung handelt.
  • Nächster Abschnitt:

    2.5.7 1:1-Beziehungen

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.