Leitfaden für Tabellenbeziehungen
Eines der Ziele eines guten Datenbankdesigns ist das Entfernen von Datenredundanz (doppelte Daten). Um dieses Ziel zu erreichen, teilen Sie Ihre Daten in viele themenbasierte Tabellen auf, sodass jeder Fakt nur einmal dargestellt wird. Anschließend bieten Sie Access eine Möglichkeit, die geteilten Informationen wieder zusammenzuführen – Sie tun dies, indem Sie gemeinsame Felder in Tabellen platzieren, die verwandt sind. Um diesen Schritt korrekt auszuführen, müssen Sie jedoch die Beziehungen zwischen Ihren Tabellen verstehen und diese Beziehungen dann in Ihrer Datenbank angeben.
In diesem Artikel
Einführung
Nachdem Sie für jedes Thema in Ihrer Datenbank eine Tabelle erstellt haben, müssen Sie Access eine Möglichkeit geben, diese Informationen bei Bedarf wieder zusammenzuführen. Sie tun dies, indem Sie gemeinsame Felder in verknüpften Tabellen platzieren und Beziehungen zwischen Ihren Tabellen definieren. Sie können dann Abfragen, Formulare und Berichte erstellen, die Informationen aus mehreren Tabellen gleichzeitig anzeigen. Das hier gezeigte Formular enthält beispielsweise Informationen aus mehreren Tabellen:
1. Die Informationen in diesem Formular stammen aus der Kundentabelle...
2. ... die Orders-Tabelle ...
3. ... die Produkttabelle ...
4. ... und die Tabelle mit den Bestelldetails.
Der Kundenname im Feld „ Rechnung an " wird aus der Tabelle „Kunden" abgerufen, die Werte „Bestell-ID" und „Bestelldatum" stammen aus der Tabelle „Bestellungen", der Produktname stammt aus der Tabelle „Produkte" und die Werte „Einzelpreis" und „Menge" stammen aus den Bestelldetails Tisch. Diese Tabellen sind auf vielfältige Weise miteinander verknüpft, um Informationen aus jeder in das Formular einzubringen.
Im vorangegangenen Beispiel müssen die Felder in den Tabellen so aufeinander abgestimmt werden, dass sie Informationen über dieselbe Bestellung anzeigen. Diese Koordination wird durch die Verwendung von Tabellenbeziehungen erreicht. Eine Tabellenbeziehung funktioniert durch den Abgleich von Daten in Schlüsselfeldern – oft ein Feld mit demselben Namen in beiden Tabellen. In den meisten Fällen sind diese übereinstimmenden Felder der Primärschlüssel aus einer Tabelle, der eine eindeutige Kennung für jeden Datensatz bereitstellt, und ein Fremdschlüssel in der anderen Tabelle. Beispielsweise können Mitarbeiter Aufträgen zugeordnet werden, für die sie verantwortlich sind, indem eine Tabellenbeziehung zwischen den Feldern „EmployeeID" in den Tabellen „Employees" und „Orders" erstellt wird.
1. EmployeeID erscheint in beiden Tabellen – als Primärschlüssel ...
2. ... und als Fremdschlüssel.
Arten von Tabellenbeziehungen
In Access gibt es drei Arten von Tabellenbeziehungen.
Eine Eins-zu-Viele-Beziehung
Nehmen wir als Beispiel eine Auftragsverfolgungsdatenbank, die eine Customers-Tabelle und eine Orders-Tabelle enthält. Ein Kunde kann beliebig viele Bestellungen aufgeben. Daraus folgt, dass für jeden in der Customers-Tabelle dargestellten Kunden möglicherweise viele Bestellungen in der Orders-Tabelle dargestellt sind. Die Beziehung zwischen der Customers-Tabelle und der Orders-Tabelle ist eine 1:n-Beziehung.
Um eine Eins-zu-Viele-Beziehung in Ihrem Datenbankdesign darzustellen, nehmen Sie den Primärschlüssel auf der „Eins"-Seite der Beziehung und fügen ihn als zusätzliches Feld oder Felder zur Tabelle auf der „Viele"-Seite der Beziehung hinzu. In diesem Fall fügen Sie beispielsweise ein neues Feld – das ID-Feld aus der Tabelle „Kunden" – zur Tabelle „Bestellungen" hinzu und nennen es „Kunden-ID". Access kann dann die Kunden-ID-Nummer in der Tabelle „Bestellungen" verwenden, um den richtigen Kunden für jede Bestellung zu finden.
Eine Viele-zu-Viele-Beziehung
Sehen wir uns nun die Beziehung zwischen einer Products-Tabelle und einer Orders-Tabelle an. Eine einzelne Bestellung kann mehr als ein Produkt enthalten. Andererseits kann ein einzelnes Produkt auf vielen Bestellungen erscheinen. Daher können für jeden Datensatz in der Tabelle „Bestellungen" viele Datensätze in der Tabelle „Produkte" vorhanden sein. Außerdem können für jeden Datensatz in der Tabelle „Products" viele Datensätze in der Tabelle „Orders" vorhanden sein. Diese Beziehung wird als Viele-zu-Viele-Beziehung bezeichnet. Beachten Sie, dass es wichtig ist, dass Sie beide Seiten der Beziehung berücksichtigen, um bestehende n:n-Beziehungen zwischen Ihren Tabellen zu erkennen.
Um eine Viele-zu-Viele-Beziehung darzustellen, müssen Sie eine dritte Tabelle erstellen, die oft als Verknüpfungstabelle bezeichnet wird und die die Viele-zu-Viele-Beziehung in zwei Eins-zu-Viele-Beziehungen aufteilt. Sie fügen den Primärschlüssel aus jeder der beiden Tabellen in die dritte Tabelle ein. Als Ergebnis zeichnet die dritte Tabelle jedes Vorkommen oder jede Instanz der Beziehung auf. Beispielsweise haben die Tabellen „Bestellungen" und „Produkte" eine Viele-zu-Viele-Beziehung, die definiert wird, indem zwei Eins-zu-Viele-Beziehungen zur Tabelle „Bestelldetails" erstellt werden. Eine Bestellung kann viele Produkte enthalten und jedes Produkt kann in vielen Bestellungen erscheinen.
Eine Eins-zu-Eins-Beziehung
In einer Eins-zu-eins-Beziehung kann jeder Datensatz in der ersten Tabelle nur einen übereinstimmenden Datensatz in der zweiten Tabelle haben, und jeder Datensatz in der zweiten Tabelle kann nur einen übereinstimmenden Datensatz in der ersten Tabelle haben. Diese Beziehung ist nicht üblich, da die auf diese Weise verknüpften Informationen meistens in derselben Tabelle gespeichert werden. Sie können eine Eins-zu-Eins-Beziehung verwenden, um eine Tabelle mit vielen Feldern zu teilen, einen Teil einer Tabelle aus Sicherheitsgründen zu isolieren oder um Informationen zu speichern, die nur für eine Teilmenge der Haupttabelle gelten. Wenn Sie eine solche Beziehung identifizieren, müssen beide Tabellen ein gemeinsames Feld verwenden.
Warum Tabellenbeziehungen erstellen?
Sie können Tabellenbeziehungen explizit erstellen, indem Sie das Fenster „Beziehungen" verwenden oder ein Feld aus dem Bereich „ Feldliste" ziehen. Access verwendet Tabellenbeziehungen, um zu entscheiden, wie Tabellen verknüpft werden, wenn Sie sie in einem Datenbankobjekt verwenden müssen. Es gibt mehrere Gründe, warum Sie Tabellenbeziehungen erstellen sollten, bevor Sie andere Datenbankobjekte wie Formulare, Abfragen und Berichte erstellen.
Tabellenbeziehungen informieren Ihre Abfrageentwürfe
Um mit Datensätzen aus mehr als einer Tabelle zu arbeiten, müssen Sie häufig eine Abfrage erstellen, die die Tabellen verbindet. Die Abfrage funktioniert, indem die Werte im Primärschlüsselfeld der ersten Tabelle mit einem Fremdschlüsselfeld in der zweiten Tabelle abgeglichen werden. Um beispielsweise Zeilen zurückzugeben, die alle Bestellungen für jeden Kunden auflisten, erstellen Sie eine Abfrage, die die Tabelle „Kunden" mit der Tabelle „Bestellungen" basierend auf dem Feld „Kunden-ID" verknüpft. Im Fenster „Beziehungen" können Sie die zu verbindenden Felder manuell angeben. Wenn Sie jedoch bereits eine Beziehung zwischen den Tabellen definiert haben, stellt Access die Standardverknüpfung basierend auf der vorhandenen Tabellenbeziehung bereit. Wenn Sie einen der Abfrage-Assistenten verwenden, verwendet Access außerdem die Informationen, die es aus den Tabellenbeziehungen sammelt, die Sie bereits definiert haben, um Ihnen fundierte Auswahlmöglichkeiten zu präsentieren und Eigenschaftseinstellungen mit entsprechenden Standardwerten vorab aufzufüllen.
Tabellenbeziehungen informieren Ihre Formular- und Berichtsentwürfe
Wenn Sie ein Formular oder einen Bericht entwerfen, verwendet Access die Informationen, die es aus den Tabellenbeziehungen sammelt, die Sie bereits definiert haben, um Ihnen fundierte Auswahlmöglichkeiten zu präsentieren und Eigenschaftseinstellungen mit entsprechenden Standardwerten vorab auszufüllen.
Tabellenbeziehungen sind die Grundlage, auf der Sie die referenzielle Integrität erzwingen können, um verwaiste Datensätze in Ihrer Datenbank zu verhindern. Ein verwaister Datensatz ist ein Datensatz mit einem Verweis auf einen anderen Datensatz, der nicht vorhanden ist – beispielsweise ein Bestelldatensatz, der auf einen nicht vorhandenen Kundendatensatz verweist.
Wenn Sie eine Datenbank entwerfen, teilen Sie Ihre Informationen in Tabellen auf, von denen jede einen Primärschlüssel hat. Anschließend fügen Sie Fremdschlüssel zu verwandten Tabellen hinzu, die auf diese Primärschlüssel verweisen. Diese Fremdschlüssel-Primärschlüssel-Paare bilden die Grundlage für Tabellenbeziehungen und Abfragen mehrerer Tabellen. Es ist wichtig, dass diese Fremdschlüssel-Primärschlüssel-Referenzen synchronisiert bleiben. Die referenzielle Integrität, die von Tabellenbeziehungen abhängt, trägt dazu bei, sicherzustellen, dass Referenzen synchronisiert bleiben.
Referenzielle Integrität verstehen
Wenn Sie eine Datenbank entwerfen, teilen Sie Ihre Datenbankinformationen in viele themenbasierte Tabellen auf, um die Datenredundanz zu minimieren. Anschließend geben Sie Access eine Möglichkeit, die Daten wieder zusammenzuführen, indem Sie gemeinsame Felder in verknüpften Tabellen platzieren. Um beispielsweise eine Eins-zu-Viele-Beziehung darzustellen, nehmen Sie den Primärschlüssel aus der „Eins"-Tabelle und fügen ihn der „Viele"-Tabelle als zusätzliches Feld hinzu. Um die Daten wieder zusammenzuführen, nimmt Access den Wert in der „Viele"-Tabelle und sucht den entsprechenden Wert in der „Eins"-Tabelle. Auf diese Weise referenzieren die Werte in der „Viele"-Tabelle die entsprechenden Werte in der „Eins"-Tabelle.
Angenommen, Sie haben eine 1:n-Beziehung zwischen Versendern und Aufträgen und möchten einen Versender löschen. Wenn der Versender, den Sie löschen möchten, Bestellungen in der Tabelle „Bestellungen" hat, werden diese Bestellungen „verwaisen", wenn Sie den Versenderdatensatz löschen. Die Bestellungen enthalten weiterhin eine Versender-ID, aber die ID ist nicht mehr gültig, da der Datensatz, auf den sie verweist, nicht mehr vorhanden ist.
Der Zweck der referenziellen Integrität besteht darin, Waisen zu verhindern und Referenzen synchron zu halten, damit diese hypothetische Situation niemals eintritt.
Sie erzwingen die referenzielle Integrität, indem Sie sie für eine Tabellenbeziehung aktivieren. Nach der Erzwingung lehnt Access alle Vorgänge ab, die die referenzielle Integrität für diese Tabellenbeziehung verletzen. Dies bedeutet, dass Access sowohl Aktualisierungen, die das Ziel eines Verweises ändern, als auch Löschungen, die das Ziel eines Verweises entfernen, ablehnt. Es ist möglich, dass Sie den Primärschlüssel für einen Versender ändern müssen, der Bestellungen in der Orders-Tabelle hat. Was Sie in solchen Fällen wirklich brauchen, ist, dass Access alle betroffenen Zeilen als Teil eines einzigen Vorgangs automatisch aktualisiert. Auf diese Weise stellt Access sicher, dass die Aktualisierung vollständig abgeschlossen wird, sodass Ihre Datenbank nicht in einem inkonsistenten Zustand verbleibt, in dem einige Zeilen aktualisiert werden und andere nicht. Aus diesem Grund unterstützt Access die Option Cascade Update Related Fields . Wenn Sie die referenzielle Integrität erzwingen und die Option Cascade Update Related Fields auswählen und dann einen Primärschlüssel aktualisieren, aktualisiert Access automatisch alle Felder, die auf den Primärschlüssel verweisen.
Es ist auch möglich, dass Sie eine Zeile und alle zugehörigen Datensätze löschen müssen – beispielsweise einen Versenderdatensatz und alle zugehörigen Bestellungen für diesen Versender. Aus diesem Grund unterstützt Access die Option Cascade Delete Related Records . Wenn Sie die referenzielle Integrität erzwingen und die Option Cascade Delete Related Records auswählen und dann einen Datensatz auf der Primärschlüsselseite der Beziehung löschen, löscht Access automatisch alle Datensätze, die auf den Primärschlüssel verweisen.
Tabellenbeziehungen anzeigen
Um Ihre Tabellenbeziehungen anzuzeigen, klicken Sie auf der Registerkarte Datenbanktools auf Beziehungen . Das Fenster „Beziehungen" wird geöffnet und zeigt alle vorhandenen Beziehungen an. Wenn keine Tabellenbeziehungen definiert wurden und Sie das Fenster „Beziehungen" zum ersten Mal öffnen, fordert Access Sie auf, dem Fenster eine Tabelle oder Abfrage hinzuzufügen.
Öffnen Sie das Fenster Beziehungen
Klicken Sie auf Datei , klicken Sie auf Öffnen und wählen Sie dann die Datenbank aus und öffnen Sie sie.
Klicken Sie auf der Registerkarte Datenbanktools in der Gruppe Beziehungen auf Beziehungen .
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Beziehungen auf Alle Beziehungen .
Dies zeigt alle definierten Beziehungen in Ihrer Datenbank an. Beachten Sie, dass ausgeblendete Tabellen (Tabellen, für die das Kontrollkästchen „ Ausgeblendet " im Dialogfeld „ Eigenschaften " der Tabelle aktiviert ist) und ihre Beziehungen nicht angezeigt werden, es sei denn, das Kontrollkästchen „ Ausgeblendete Objekte anzeigen" im Dialogfeld „ Navigationsoptionen " ist aktiviert.
Eine Tabellenbeziehung wird durch eine Beziehungslinie dargestellt, die im Fenster „Beziehungen" zwischen Tabellen gezogen wird. Eine Beziehung, die keine referenzielle Integrität erzwingt, erscheint als dünne Linie zwischen den gemeinsamen Feldern, die die Beziehung unterstützen. Wenn Sie die Beziehung auswählen, indem Sie auf ihre Linie klicken, wird die Linie dicker, um anzuzeigen, dass sie ausgewählt ist. Wenn Sie die referenzielle Integrität für diese Beziehung erzwingen, erscheint die Linie an jedem Ende dicker. Außerdem erscheint die Zahl 1 über dem dicken Teil der Linie auf einer Seite der Beziehung und das Unendlichkeitssymbol ( ∞ ) erscheint über dem dicken Teil der Linie auf der anderen Seite.
Wenn das Fenster „Beziehungen" aktiv ist, können Sie aus den folgenden Befehlen in der Multifunktionsleiste auswählen:
Gehen Sie auf der Registerkarte Design in der Gruppe Tools wie folgt vor:
Beziehungen bearbeiten Öffnet das Dialogfeld Beziehungen bearbeiten . Wenn Sie eine Beziehungslinie auswählen, können Sie auf Beziehungen bearbeiten klicken, um die Tabellenbeziehung zu ändern. Sie können auch auf die Beziehungslinie doppelklicken.
Layout löschen Entfernt alle Tabellen und Beziehungen aus der Anzeige im Fenster „Beziehungen". Beachten Sie, dass dieser Befehl nur die Tabellen und Beziehungen verbirgt – er löscht sie nicht.
Beziehungsbericht Erstellt einen Bericht, der die Tabellen und Beziehungen in Ihrer Datenbank anzeigt. Der Bericht zeigt nur die Tabellen und Beziehungen an, die nicht im Fenster „Beziehungen" ausgeblendet sind.
Gehen Sie auf der Registerkarte Entwurf in der Gruppe Beziehungen wie folgt vor:
Tabellen hinzufügen (Tabelle in Access 2013 anzeigen) Ermöglicht die Auswahl von Tabellen, die im Fenster „Beziehungen" angezeigt werden sollen.
Tabelle ausblenden Blendet die ausgewählte Tabelle im Fenster Beziehungen aus.
Direkte Beziehungen Zeigt alle Beziehungen und verknüpften Tabellen für die ausgewählte Tabelle im Fenster „Beziehungen" an, falls sie nicht bereits angezeigt werden.
Alle Beziehungen Zeigt alle Beziehungen und verknüpften Tabellen in Ihrer Datenbank im Fenster „Beziehungen" an. Beachten Sie, dass ausgeblendete Tabellen (Tabellen, für die das Kontrollkästchen „ Ausgeblendet " im Dialogfeld „ Eigenschaften " der Tabelle aktiviert ist) und ihre Beziehungen nicht angezeigt werden, es sei denn, „Ausgeblendete Objekte anzeigen" im Dialogfeld „Navigationsoptionen" aktiviert ist.
Schließen Schließt das Fenster „Beziehungen". Wenn Sie Änderungen am Layout des Fensters „Beziehungen" vorgenommen haben, werden Sie gefragt, ob Sie diese Änderungen speichern möchten.
No comments:
Post a Comment