Grundlagen des Datenbankentwurfs

Durch eine vernünftig entworfene Datenbank wird Ihnen der Zugriff auf aktuelle, präzise Informationen bereitgestellt. Da ein richtiger Entwurf unerlässlich ist, um Ihre Ziele für das Arbeiten mit einer Datenbank zu erreichen, ist es sinnvoll, die zum Erlernen der Prinzipien eines guten Entwurfs erforderliche Zeit zu investieren. Letztlich ist so die Wahrscheinlichkeit höher, dass die Datenbank Ihren Anforderungen entspricht und Änderungen problemlos gewachsen ist.

Dieser Artikel enthält Richtlinien für das Planen einer Desktopdatenbank. Sie erfahren, wie Sie entscheiden, welche Informationen benötigt werden, wie Sie diese Informationen auf die entsprechenden Tabellen und Spalten aufteilen und wie sich diese Tabellen aufeinander beziehen. Sie sollten diesen Artikel lesen, bevor Sie Ihre erste Desktopdatenbank erstellen.

Wichtig : Access bietet eine neue Entwurfsumgebung, in der Sie Datenbankanwendungen für das Web erstellen können. Beim Entwerfen für das Web sind zahlreiche Entwurfsaspekte anders. In diesem Artikel wird der Anwendungsentwurf von Webdatenbanken nicht behandelt. Weitere Informationen hierzu finden Sie im Artikel Erstellen einer Datenbank, die im Web freigeben werden soll.

Inhalt dieses Artikels

Datenbankbegriffe, die Sie kennen sollten

Was ist ein guter Datenbankentwurf?

Der Entwurfsprozess

Festlegen des Verwendungszwecks der Datenbank

Ermitteln und Organisieren der erforderlichen Informationen

Aufteilen der Informationen in Tabellen

Umwandeln von Informationselementen in Spalten

Angeben von Primärschlüsseln

Erstellen der Tabellenbeziehungen

Optimieren des Entwurfs

Anwenden der Normalisierungsregeln


Datenbankbegriffe, die Sie kennen sollten

Access organisiert Ihre Informationen in Tabellen: Listen aus Zeilen und Spalten, die an den Block eines Buchhalters oder eine Kalkulationstabelle erinnern. Eine einfache Datenbank enthält möglicherweise nur eine einzige Tabelle. Für die meisten Datenbanken werden jedoch mehrere Tabellen benötigt. So könnten Sie z. B. eine Tabelle haben, in der Informationen zu Artikeln gespeichert werden, eine weitere, in der Informationen zu Bestellungen gespeichert werden, und eine weitere Tabelle mit Informationen zu Kunden.

Bild mit drei Tabellen in der Datenblattansicht

Jede Zeile wird genauer als Datensatz und jede Spalte als Feld bezeichnet. Ein Datensatz ist eine sinnvolle und konsistente Möglichkeit, Informationen über ein Thema zu kombinieren. Ein Feld ist ein einzelnes Informationselement, d. h. ein Elementtyp, der in jedem Datensatz angezeigt wird. In der Tabelle "Artikel" z. B. enthält jede Zeile bzw. jeder Datensatz Informationen über einen Artikel. Jede Spalte bzw. jedes Feld enthält einen Typ von Information zu diesem Artikel, z. B. den Namen oder den Preis.

Seitenanfang

Was ist ein guter Datenbankentwurf?

Für den Datenbankentwurfsprozess gelten bestimmte Prinzipien. Das erste Prinzip lautet, dass doppelte Informationen (auch als redundante Daten bezeichnet) schlecht sind, da durch sie Platz verschwendet wird und die Wahrscheinlichkeit von Fehlern und Inkonsistenzen steigt. Das zweite Prinzip lautet, dass die Richtigkeit und Vollständigkeit der Informationen unverzichtbar ist. Wenn eine Datenbank falsche Informationen enthält, enthalten auch alle Berichte, für die Informationen aus der Datenbank abgerufen werden, falsche Informationen. Daher beruhen alle Entscheidungen, die Sie anhand dieser Berichten treffen, auf Fehlinformationen.

Ein guter Datenbankentwurf erfüllt daher folgende Bedingungen:

  • Die Informationen sind in themenbasierte Tabellen aufgeteilt, um möglichst keine redundanten Daten zu haben.

  • Access werden die Informationen bereitgestellt, die erforderlich sind, damit die Informationen in den Tabellen nach Bedarf verknüpft werden können.

  • Der Entwurf ermöglicht es, die Genauigkeit und Integrität der Informationen zu unterstützen und sicherzustellen.

  • Die von Ihnen gestellten Anforderungen hinsichtlich Verarbeitung von Daten und Berichterstellung werden unterstützt.

Seitenanfang

Der Entwurfsprozess

Der Entwurfsprozess besteht aus den folgenden Schritten:

  • Festlegen des Verwendungszwecks der Datenbank    

    Dies erleichtert Ihnen die Vorbereitung auf die verbleibenden Schritte.

  • Suchen und Organisieren der erforderlichen Informationen    

    Sammeln Sie alle Arten von Informationen, die Sie möglicherweise in der Datenbank festhalten möchten, z. B. Artikelname und Bestellnummer.

  • Aufteilen der Informationen in Tabellen    

    Teilen Sie Ihre Informationselemente in Hauptentitäten oder -themen auf, z. B. "Artikel" oder "Bestellungen". Jedes Thema wird dann zu einer Tabelle.

  • Umwandeln von Informationselementen in Spalten    

    Entscheiden Sie, welche Informationen in jeder Tabelle gespeichert werden sollen. Jedes Element wird zu einem Feld und wird als Spalte in der Tabelle angezeigt. Eine Mitarbeitertabelle könnte beispielsweise Felder wie "Nachname" und "Einstellungsdatum" enthalten.

  • Angeben von Primärschlüsseln    

    Wählen Sie den Primärschlüssel für jede Tabelle aus. Der Primärschlüssel ist eine Spalte, die verwendet wird, um jede Zeile eindeutig zu identifizieren. Ein Beispiel könnte "Artikel-Nr" oder "Bestell-Nr" sein.

  • Einrichten der Tabellenbeziehungen    

    Sehen Sie sich jede Tabelle an, und entscheiden Sie, wie die Daten in einer Tabelle mit den Daten in anderen Tabellen verknüpft ist. Fügen Sie Tabellen Felder hinzu, oder erstellen Sie nach Bedarf neue Tabellen, um die Beziehungen zu verdeutlichen.

  • Verfeinern Ihres Entwurfs    

    Analysieren Sie den Entwurf auf Fehler. Erstellen Sie die Tabellen, und fügen Sie einige Datensätze mit Beispieldaten hinzu. Überprüfen Sie, ob Sie aus den Tabellen die gewünschten Ergebnisse erzielen können. Nehmen Sie ggf. Anpassungen am Entwurf vor.

  • Anwenden der Normalisierungsregeln    

    Wenden Sie die Datennormalisierungsregeln an, um festzustellen, ob die Tabellen richtig strukturiert sind. Nehmen Sie ggf. Anpassungen an den Tabellen vor.

Seitenanfang

Festlegen des Verwendungszwecks der Datenbank

Es empfiehlt sich, den Zweck der Datenbank auf Papier zu schreiben: Zweck, erwartete Verwendung und geplante Benutzer. Für eine kleine Datenbank für ein Heimbüro könnten Sie etwas Einfaches schreiben wie "Die Kundendatenbank enthält eine Liste der Kundeninformationen zum Erstellen von Postsendungen und Berichten". Wenn die Datenbank komplexer ist oder von vielen Personen verwendet wird, wie dies oft in Unternehmen der Fall ist, kann der Zweck schnell einen Absatz oder mehr umfassen, und er sollte enthalten, wann und wie jede Person die Datenbank verwenden wird. Die Idee ist, eine gut formulierte Aufgabenbeschreibung zu haben, auf die während des gesamten Entwurfsprozesses zurückgegriffen werden kann. Eine solche Beschreibung ermöglicht es Ihnen, sich auf Ihre Ziele zu konzentrieren, wenn Sie Entscheidungen treffen.

Seitenanfang

Ermitteln und Organisieren der erforderlichen Informationen

Beginnen Sie für das Ermitteln und Organisieren der erforderlichen Informationen mit den vorhandenen Informationen. Beispielsweise könnte es sein, dass Sie Bestellungen in einem Hauptbuch aufzeichnen oder Kundeninformationen auf Papierformularen in einem Aktenschrank festhalten. Sammeln Sie diese Dokumente, und listen Sie jeden gefundenen Informationstyp auf (z. B. jedes Feld, das Sie in einem Formular ausfüllen). Wenn keine Formulare vorhanden sind, stellen Sie sich stattdessen vor, Sie müssten ein Formular entwerfen, um die Kundeninformationen festzuhalten. Welche Informationen würden Sie in das Formular aufnehmen? Welche Ausfüllfelder würden Sie erstellen? Identifizieren Sie die einzelnen Elemente, und listen Sie sie auf. Nehmen Sie beispielsweise an, dass Sie die Kundenliste zurzeit auf Karteikarten führen. Eine Überprüfung dieser Karten ergibt, dass sich auf jeder Karte ein Kundenname, eine Straße, ein Ort, ein Bundesland/Kanton, eine Postleitzahl und eine Telefonnummer befindet. Jedes dieser Elemente stellt eine potenzielle Spalte in einer Tabelle dar.

Machen Sie sich beim Vorbereiten dieser Liste keine Gedanken, dass sie auf Anhieb perfekt sein muss. Listen Sie stattdessen jedes Element auf, das Ihnen einfällt. Wenn die Datenbank von anderen Personen verwendet werden soll, fragen Sie auch diese nach Ideen. Sie können die Liste später optimieren.

Ziehen Sie als Nächstes die Typen von Berichten oder Postsendungen in Betracht, die Sie möglicherweise aus der Datenbank erstellen möchten. Beispielsweise möchten Sie möglicherweise einen Artikelverkaufsbericht erstellen, in dem die Verkäufe nach Region angezeigt werden, oder einen Inventurzusammenfassungsbericht, in dem Artikelbestände angezeigt werden. Möglicherweise möchten Sie auch an Kunden zu sendende Serienbriefe erstellen, in denen Verkaufsgelegenheiten angekündigt oder Prämien angeboten werden. Entwerfen Sie den Bericht in Gedanken, und stellen Sie sich vor, wie er aussehen würde. Welche Informationen würden Sie in den Bericht aufnehmen? Listen Sie jedes Element auf. Wiederholen Sie dies für den Serienbrief und für alle anderen Berichte, deren Erstellung Sie erwarten.

Person, die sich einen Artikelinventurbericht vorstellt

Das Nachdenken über die Berichte und Postsendungen, die Sie möglicherweise erstellen möchten, hilft beim Identifizieren der Elemente, die Sie in der Datenbank benötigen. Nehmen Sie z. B. an, dass Sie Kunden die Gelegenheit geben möchten, sich für periodische E-Mail-Updates anzumelden (oder abzumelden), und eine Auflistung der Kunden drucken möchten, die sich angemeldet haben. Um diese Informationen zu erfassen, fügen Sie der Kundentabelle eine "E-Mail senden"-Spalte hinzu. Für jeden Kunden können Sie das Feld auf "Ja" oder "Nein" festlegen.

Die Anforderung, E-Mail-Nachrichten an Kunden zu senden, lässt darauf schließen, dass ein weiteres Element erfasst werden muss. Nachdem Sie wissen, dass ein Kunde E-Mail-Nachrichten empfangen möchte, müssen Sie auch die E-Mail-Adresse kennen, an die die Nachrichten gesendet werden sollen. Daher müssen Sie für jeden Kunden eine E-Mail-Adresse erfassen.

Es ist sinnvoll, einen Prototyp für jeden Bericht oder jede Ausgabeauflistung zu erstellen und zu berücksichtigen, welche Elemente zum Erstellen des Berichts erforderlich sind. Wenn Sie z. B. einen Serienbrief auswerten, könnten Ihnen einige Punkte einfallen. Wenn Sie eine richtige Anrede einschließen möchten (etwa die Zeichenfolge "Herr" oder "Frau"), mit der eine Grußformel beginnt, müssen Sie ein Anredeelement erstellen. Außerdem beginnen Sie einen Brief möglicherweise meist mit "Sehr geehrter Herr Schmitt" anstatt mit "Sehr geehrter Herr Kai Schmitt". Dies lässt darauf schließen, dass es sinnvoll ist, den Nachnamen getrennt vom Vornamen zu speichern.

Ein wichtiger zu berücksichtigender Punkt ist, dass jedes Informationselement in seine kleinsten sinnvollen Teile aufgeteilt werden sollte. Im Fall eines Namen teilen Sie diesen, um den Nachnamen leicht verfügbar zu machen, in zwei Teile auf: Vorname und Nachname. Soll ein Bericht nach Nachname sortiert werden, ist es hilfreich, wenn die Nachnamen der Kunden separat gespeichert sind. Allgemeine Faustregel: Wenn Sie anhand eines Informationselements sortieren, suchen, berechnen oder berichten möchten, sollten Sie dieses Element in ein eigenes Feld eintragen.

Denken Sie über die Fragen nach, die mithilfe der Datenbank beantwortet werden sollen. Beispiele: Wie viele Verkäufe Ihres beworbenen Artikels haben Sie im letzten Monat abgeschlossen? Wo wohnen Ihre besten Kunden? Wer ist der Lieferant für Ihren meistverkauften Artikel? Durch die Vorwegnahme dieser Fragen können Sie zusätzliche Elemente einkreisen, die erfasst werden müssen.

Nachdem Sie diese Informationen zusammengetragen haben, sind Sie für den nächsten Schritt bereit.

Seitenanfang

Aufteilen der Informationen in Tabellen

Um die Informationen in Tabellen aufzuteilen, wählen Sie die Hauptentitäten oder -themen aus. Beispielsweise kann nach dem Ermitteln und Organisieren der Informationen für eine Artikelverkaufsdatenbank die vorläufige Liste so aussehen:

Handschriftliche Informationselemente nach Themen gruppiert

Die hier gezeigten Hauptentitäten sind die Artikel (Products), die Lieferanten (Suppliers), die Kunden (Customers) und die Bestellungen (Orders). Daher ist es sinnvoll, mit diesen vier Tabellen zu beginnen: eine für Fakten zu Artikeln, eine für Fakten zu Lieferanten, eine für Fakten zu Kunden und eine für Fakten zu Bestellungen. Obwohl die Liste damit nicht vollständig ist, stellt sie einen guten Ausgangspunkt dar. Sie können diese Liste weiter optimieren, bis Sie einen Entwurf haben, der wunschgemäß funktioniert.

Bei der ersten Überprüfung der vorläufigen Liste der Elemente sind Sie möglicherweise versucht, alle Elemente in einer einzigen Tabelle statt in den in der vorstehenden Abbildung gezeigten vier Tabellen zu speichern. Hier erfahren Sie, weshalb sich das nicht empfiehlt. Sehen Sie sich kurz die hier gezeigte Tabelle an:

Bild mit Tabelle, die Artikel und Lieferanten enthält

In diesem Fall enthält jede Zeile Informationen sowohl zum Artikel als auch zu seinem Lieferanten. Weil Sie viele Produkte von demselben Lieferanten haben können, müssen Sie dessen Name und Adressinformationen viele Male wiederholen. Dadurch wird Festplattenspeicher verschwendet. Erfassen der Lieferanteninformationen nur einmal in einer separaten "Lieferanten"-Tabelle und anschließendes Verknüpfen dieser Tabelle mit der "Artikel"-Tabelle ist eine viel bessere Lösung.

Ein zweites Problem bei diesem Entwurf zeigt sich, wenn Sie Informationen zum Lieferanten ändern müssen. Nehmen Sie z. B. an, dass Sie die Adresse eines Lieferanten benötigen. Weil sie an vielen Stellen steht, ändern Sie die Adresse vielleicht an einer Stelle, vergessen aber versehentlich, sie an den anderen Stellen zu ändern. Mit dem Erfassen der Lieferantenadresse an nur einer einzigen Stelle lässt sich dieses Problem lösen.

Versuchen Sie beim Entwerfen einer Datenbank immer, jeden Fakt nur ein Mal zu erfassen. Wenn Sie feststellen, dass Sie dieselben Informationen, z. B. die Adresse eines bestimmten Lieferanten, an mehreren Stellen wiederholen, speichern Sie diese Informationen in einer separaten Tabelle.

Und schließlich angenommen, es gibt nur ein einziges von Coho Winery geliefertes Produkt gibt, und Sie möchten dieses Produkt löschen, aber den Lieferantennamen und die Adressinformationen beibehalten. Wie würden Sie den Produktdatensatz löschen, ohne dass die Lieferanteninformationen verloren gehen? Das können Sie nicht. Weil jeder Datensatz sowohl Fakten zu einem Produkt als auch Fakten zu einem Lieferanten enthält, ist es Ihnen nicht möglich, einen Fakt zu löschen, ohne gleichzeitig den anderen zu löschen. Um diese Fakten getrennt zu halten, müssen Sie Ihre Tabelle in zwei Tabellen aufteilen: eine Tabelle für Produktinformationen und eine Tabelle für Lieferanteninformationen. Beim Löschen eines Produktdatensatzes sollten nur die Fakten zum Produkt, nicht die Fakten zum Lieferanten gelöscht werden.

Nachdem Sie das Thema ausgewählt haben, das durch eine Tabelle dargestellt wird, sollten in den Spalten dieser Tabelle nur Fakten zu diesem Thema gespeichert werden. So sollten in der Produkttabelle beispielsweise nur Fakten zu Produkten gespeichert werden. Da die Lieferantenadresse zu den Fakten über den Lieferanten und nicht zu den Fakten über das Produkt gehört, gehört sie in die Lieferantentabelle.

Seitenanfang

Umwandeln von Informationselementen in Spalten

Um zu bestimmen, welche Spalten eine Tabelle enthalten soll, müssen Sie ermitteln, welche Informationen Sie zu dem Thema nachverfolgen müssen, das in der Tabelle erfasst wird. Für die Kundentabelle ergeben beispielsweise Name, Straße, Bundesland-Ort-PLZ, "E-Mail senden", Anrede und E-Mail-Adresse eine gute Ausgangsliste für die Spalten. Jeder Datensatz in der Tabelle enthält denselben Satz Spalten, sodass Sie in jedem Datensatz die Informationen Name, Straße, Bundesland-Ort-PLZ, "E-Mail senden", Anrede und E-Mail-Adresse speichern können. Beispielsweise enthält die Straßenspalte die Straßen der Kunden. Jeder Datensatz enthält Daten zu einem Kunden, und das Straßenfeld enthält die Straße für diesen Kunden.

Nachdem Sie den anfänglichen Satz Spalten für jede Tabelle bestimmt haben, können Sie die Spalten weiter verfeinern. Beispielsweise ist es sinnvoll, den Kundennamen in zwei separaten Spalten (Vorname und Nachname) zu speichern, damit Sie nach nur diesen Spalten sortieren, suchen und indizieren können. Ähnliches gilt für die Adresse, die tatsächlich aus fünf separaten Komponenten (Straße, Ort, Bundesland/Kanton, Postleitzahl und Land/Region) besteht, und es ist sinnvoll, auch diese in separaten Spalten zu speichern. Wenn Sie z. B. einen Such-, Filter- oder Sortiervorgang nach Bundesland ausführen möchten, müssen die Bundeslandinformation in einer separaten Spalte gespeichert sein.

Sie sollten auch berücksichtigen, ob die Datenbank nur Inlandsinformationen oder auch internationale Informationen enthalten soll. Wenn Sie z. B. planen, internationale Adressen zu speichern, empfiehlt es sich, statt der Bundeslandspalte eine Regionsspalte zu verwenden, da eine solche Spalte sich sowohl für Bundesländer/Kantone als auch für die Regionen anderer Länder/Regionen eignet. Analog ist Postleitzahl sinnvoller als PLZ, wenn Sie internationale Adressen speichern möchten.

Die folgende Liste enthält einige Tipps zum Bestimmen der Spalten.

  • Fügen Sie keine berechneten Daten ein.    

    In den meisten Fällen sollten Sie keine Berechnungsergebnisse in Tabellen speichern. Stattdessen können Sie die Berechnungen von Access ausführen lassen, wenn Sie das Ergebnis sehen möchten. Nehmen Sie beispielsweise an, es gibt einen Bericht über bestellte Produkte, in dem die Zwischensumme der bestellten Einheiten für jede Produktkategorie in der Datenbank angezeigt wird. Es gibt jedoch keine Tabelle, die eine Zwischensummenspalte für bestellte Produkte enthält. Aber die Tabelle für Produkte (Artikel) enthält eine Spalte für bestellte Produkte, in der die bestellten Einheiten für jedes Produkt gespeichert sind. Aus diesen Daten berechnet Access jedes Mal die Zwischensumme, wenn Sie den Bericht drucken. Die Zwischensumme selbst sollte nicht in einer Tabelle gespeichert werden.

  • Speichern Sie Informationen in den kleinsten logischen Teilen.    

    Sie sind möglicherweise versucht, ein einziges Feld für vollständige Namen oder für Produktnamen zusammen mit Produktbeschreibungen zu verwenden. Wenn Sie mehrere Informationsarten in einem Feld kombinieren, ist es schwierig, später einzelne Fakten abzurufen. Versuchen Sie, die Informationen in logische Teile zu zerlegen. Erstellen Sie z. B. separate Felder für Vor- und Nachname oder für Produktname, Kategorie und Beschreibung.

Bild mit Informationselementen während des Entwurfsprozesses

Nachdem Sie die Datenspalten in jeder Tabelle optimiert haben, können Sie den Primärschlüssel für jede Tabelle auswählen.

Seitenanfang

Angeben von Primärschlüsseln

Jede Tabelle sollte eine Spalte (oder eine Gruppe von Spalten) enthalten, die jede Zeile, die in der Tabelle gespeichert ist, eindeutig identifiziert. Dies ist häufig eine eindeutige Identifizierungsnummer, etwa eine Personalnummer oder eine Seriennummer. In der Datenbankterminologie werden diese Informationen als Primärschlüssel der Tabelle bezeichnet. Access verwendet Primärschlüsselfelder, um Daten aus mehreren Tabellen schnell zuzuordnen und die Daten für Sie zusammenzustellen.

Wenn Sie bereits einen eindeutigen Bezeichner für eine Tabelle haben, z. B. eine Produktnummer, durch die jedes Produkt im Katalog eindeutig identifiziert ist, können Sie diesen Bezeichner als Primärschlüssel der Tabelle verwenden – allerdings nur, wenn die Werte in dieser Spalte immer für jeden Datensatz unterschiedlich sind. Ein Primärschlüssel darf keine doppelten Werte haben. Verwenden Sie z. B. nicht die Namen von Personen als Primärschlüssel, da Namen nicht eindeutig sind. Sie könnten sehr schnell zwei Personen mit demselben Namen in derselben Tabelle haben.

Ein Primärschlüssel muss immer einen Wert haben. Kann es zu irgendeinem Zeitpunkt vorkommen, dass der Wert einer Spalte nicht zugewiesen oder unbekannt ist (fehlender Wert), kann die Spalte nicht als Komponente eines Primärschlüssels verwendet werden.

Sie sollten immer einen Primärschlüssel auswählen, dessen Wert sich nicht ändert. In einer Datenbank, in der mehrere Tabellen verwendet werden, kann der Primärschlüssel einer Tabelle in anderen Tabellen als Verweis verwendet werden. Wird der Primärschlüssel geändert, muss die Änderung auch überall dort angewendet werden, wo auf den Schlüssel verwiesen wird. Die Verwendung eines Primärschlüssels, der nicht geändert wird, verringert die Wahrscheinlichkeit, dass der Primärschlüssel nicht mehr mit anderen Tabellen synchronisiert ist, in denen auf ihn verwiesen wird.

Häufig wird eine willkürliche eindeutige Zahl als Primärschlüssel verwendet Beispielsweise können Sie jeder Bestellung eine eindeutige Bestellnummer zuweisen. Der einzige Zweck der Bestellnummer besteht darin, eine Bestellung zu identifizieren Einmal zugewiesen, wird sie nie geändert.

Wenn Sie keine Spalte oder keinen Satz Spalten bestimmen können, die oder der sich als Primärschlüssel eignet, bietet es sich an, eine Spalte zu verwenden, die den Datentyp "AutoWert" hat. Wenn Sie den Datentyp "AutoWert" verwenden, weist Access automatisch einen Wert zu. Ein solcher Bezeichner ist faktenlos, d. h., er enthält keine sachlichen Informationen zur Beschreibung der Zeile, für die er steht. Bezeichner ohne Fakten eignen sich ideal für die Verwendung als Primärschlüssel, da sie nicht geändert werden. Bei einem Primärschlüssel, der Fakten zu einer Zeile enthält (z. B. eine Telefonnummer oder ein Kundenname), ist die Wahrscheinlichkeit höher, dass er geändert wird, da die sachlichen Informationen möglicherweise geändert werden.

Bild mit 'Products'-Tabelle (Artikel) mit einem Primärschlüsselfeld

1. Eine auf den Datentyp "AutoWert" festgelegte Spalte eignet sich oft gut als Primärschlüssel. Zwei Produktnummern sind nie gleich.

In einigen Fällen kann es erforderlich sein, dass Sie zwei oder mehr Felder verwenden, die zusammen den Primärschlüssel einer Tabelle bereitstellen. So könnte beispielsweise eine Tabelle für Bestelldetails, in der Positionen für Bestellungen gespeichert werden, zwei Spalten in ihrem Primärschlüssel haben: Bestellnummer (Bestell-ID) und Produktnummer (Produkt-ID). Besteht ein Primärschlüssel aus mehreren Spalten, wird er auch als zusammengesetzter Schlüssel bezeichnet.

Für die Produktverkaufsdatenbank können Sie für jede der Tabellen eine AutoWert-Spalte erstellen, die als Primärschlüssel fungieren soll: Produkt-Nr (ProductID) für die Tabelle für Produkte, Bestell-Nr (OrderID) für die Tabelle für Bestellungen, Kunden-Nr (CustomerID) für die Tabelle für Kunden und Lieferanten-Nr (SupplierID) für die Tabelle für Lieferanten.

Bild mit Informationselementen während des Entwurfsprozesses


Seitenanfang

Erstellen der Tabellenbeziehungen

Nun, da Sie die Informationen in Tabellen aufgeteilt haben, benötigen Sie eine Methode, die Informationen wieder auf sinnvolle Weise zusammenzuführen. Das folgende Formular z. B. enthält Informationen aus verschiedenen Tabellen.

Das Formular 'Orders' (Bestellungen)

1. Die Informationen in diesem Formular stammen aus der Tabelle "Kunden",

2. ...aus der Tabelle "Personal" (Employees)...,

3. ...aus der Tabelle "Bestellungen" (Orders)...,

4. ...aus der Tabelle "Artikel" (Products)...

5. ...und aus der Tabelle "Bestelldetails" (Order Details).

Access ist ein relationales Datenbank-Managementsystem. In einer relationalen Datenbank teilen Sie die jeweiligen Informationen in separate themenbasierte Tabellen auf. Sie verwenden dann Beziehungen, um die Informationen nach Bedarf zusammenzuführen.

Seitenanfang

Erstellen einer 1:n-Beziehung

Sehen Sie sich dieses Beispiel an: die Tabellen für Lieferanten (Suppliers) und Artikel (Products) in der Artikelbestellungsdatenbank. Ein Lieferant kann eine beliebige Anzahl von Artikeln liefern. Daraus folgt, dass für jeden Lieferanten, der in der Tabelle für Lieferanten enthalten ist, viele Produkte in der Tabelle für Artikel enthalten sein können. Die Beziehung zwischen der Tabelle für Lieferanten und der Tabelle für Artikel ist daher eine 1:n-Beziehung.

1:n-Konzept

Um eine 1:n-Beziehung im Datenbankentwurf darzustellen, nehmen Sie den Primärschlüssel von der 1-Seite der Beziehung und fügen ihn als zusätzliche Spalte oder Spalten zur Tabelle auf der n-Seite der Beziehung hinzu. In diesem Fall fügen Sie z. B. die "Supplier ID"-Spalte (Lieferantennummer) aus der Tabelle für Lieferanten (Suppliers) zur Tabelle für Artikel (Products) hinzu. Access kann dann die Lieferantennummer in der Tabelle für Artikel dazu verwenden, für jeden Artikel den richtigen Lieferanten zu finden.

Die "Supplier ID"-Spalte der Products-Tabelle wird als Fremdschlüssel bezeichnet. Ein Fremdschlüssel ist der Primärschlüssel einer anderen Tabelle. Die "Supplier ID"-Spalte der Products-Tabelle ist ein Fremdschlüssel, weil sie auch der Primärschlüssel der Suppliers-Tabelle ist.

Bild mit Informationselementen während des Entwurfsprozesses

Sie stellen die Basis für das Verknüpfen von zusammenhängenden Tabellen bereit, indem Sie Paare aus Primärschlüsseln und Fremdschlüsseln einrichten. Wenn Sie nicht sicher sind, welche Tabellen eine gemeinsame Spalte nutzen sollten, wird durch Bestimmen einer 1:n-Beziehung sichergestellt, dass für die beiden betroffenen Tabellen tatsächlich eine gemeinsame Spalte erforderlich ist.

Seitenanfang

Erstellen einer m:n-Beziehung

Überdenken Sie die Beziehung zwischen der Products- und der Orders-Tabelle.

Eine einzelne Bestellung kann mehrere Artikel enthalten. Andererseits kann ein einzelner Artikel in vielen Bestellungen angezeigt werden. Daher können für jeden Datensatz in der Orders-Tabelle viele Datensätze in der Products-Tabelle vorhanden sein. Außerdem kann es für jeden Datensatz in der Products-Tabelle viele Datensätze in der Orders-Tabelle geben. Dieser Typ von Beziehung wird als m:n-Beziehung bezeichnet, weile es für jeden Artikel viele Bestellungen und für jede Bestellung viele Artikel geben kann. Beim Bestimmen von m:n-Beziehungen zwischen Tabellen müssen Sie beide Seiten der Beziehung berücksichtigen.

Zwischen den Themen der beiden Tabellen – Orders (Bestellungen) und Products (Artikel) – besteht eine m:n-Beziehung. Dies führt zu einem Problem. Um das Problem zu verstehen, stellen Sie sich vor, was geschehen würde, wenn Sie versuchten, die Beziehung zwischen den beiden Tabellen zu erstellen, indem Sie das "Product ID"-Feld zur Orders-Tabelle hinzufügen. Soll eine Bestellung mehrere Artikel umfassen, benötigen Sie in der Orders-Tabelle (Tabelle für Bestellungen) mehrere Datensätze pro Bestellung. Sie würden Bestellinformationen für jede Zeile wiederholen, die sich auf eine einzelne Bestellung bezieht, wodurch sich ein ineffizienter Entwurf ergeben würde, der zu ungenauen Daten führen könnte. Sie würden auf dasselbe Problem stoßen, wenn Sie das "Order ID"-Feld in die Products-Tabelle einfügen würden – Sie hätten für jeden Artikel mehrere Datensätze in der Products-Tabelle. Wie lösen Sie dieses Problem?

Die Antwort besteht im Erstellen einer dritten Tabelle, die oft als Verknüpfungstabelle bezeichnet wird und über die die m:n-Beziehung in zwei 1:n-Beziehungen zerlegt wird. Sie fügen den Primärschlüssel aus jeder der beiden Tabellen in die dritte Tabelle ein. Als Ergebnis wird jedes Auftreten oder jede Instanz der Beziehung in der dritten Tabelle festgehalten.

m:n-Beziehung

Jeder Datensatz in der Tabelle für Bestelldetails (Order Details) entspricht einer Position einer Bestellung. Der Primärschlüssel der "Order Details"-Tabelle besteht aus zwei Feldern: jeweils der Fremdschlüssel der Tabellen "Orders" und "Products". Die Verwendung des "Order ID"-Felds allein eignet sich nicht als Primärschlüssel für diese Tabelle, da eine Bestellung viele Positionen umfassen kann. Die Bestellnummer (Order ID) wird für jede Position einer Bestellung wiederholt, weshalb das Feld keine eindeutigen Werte enthält. Die Verwendung des "Product ID"-Felds allein eignet sich ebenfalls nicht, da ein Artikel in vielen verschiedenen Bestellungen angezeigt werden kann. Aber zusammen ergeben die beiden Felder immer einen eindeutigen Wert für jeden Datensatz.

In der Artikelverkaufsdatenbank sind die Tabellen "Orders" und "Products" nicht direkt miteinander verknüpft. Stattdessen sind sie indirekt über die "Order Details"-Tabelle verknüpft. Die m:n-Beziehung zwischen Bestellungen (Orders) und Artikeln (Products) wird in der Datenbank mithilfe von zwei 1:n-Beziehungen dargestellt:

  • Zwischen den Tabellen "Orders" und "Order Details" gibt es eine 1:n-Beziehung. Jede Bestellung kann mehrere Positionen haben, aber jeder Position ist nur mit einer Bestellung verbunden.

  • Zwischen den Tabellen "Products" und "Order Details" gibt es eine 1:n-Beziehung. Jedem Artikel können viele Positionen zugeordnet sein, aber jede Position verweist nur auf einen Artikel.

Aus der "Order Details"-Tabelle können Sie alle Artikel in einer bestimmten Bestellung ermitteln. Sie können auch alle Bestellungen für einen bestimmten Artikel ermitteln.

Nach dem Einbinden der "Order Details"-Tabelle kann die Liste der Tabellen und Felder ungefähr so aussehen:

Bild mit Informationselementen während des Entwurfsprozesses


Seitenanfang

Erstellen einer 1:1-Beziehung

Ein weiterer Beziehungstyp ist die 1:1-Beziehung. Nehmen Sie z. B. an, Sie müssen spezielle ergänzende Artikelinformationen festhalten, die Sie selten benötigen oder die nur für einige Produkte (Artikel) gelten. Da Sie die Informationen nicht oft benötigen und das Speichern der Informationen in der Products-Tabelle zu freiem Speicherplatz für jeden Artikel führen würde, für den sie nicht gelten, speichern Sie diese Informationen in einer separaten Tabelle. Wie in der Products-Tabelle verwenden Sie "ProductID" als Primärschlüssel. Die Beziehung zwischen dieser ergänzenden Tabelle und der Products-Tabelle ist eine 1:1-Beziehung. Für jeden Datensatz in der Products-Tabelle ist in der ergänzenden Tabelle ein einziger übereinstimmender Datensatz vorhanden. Wenn Sie eine solche Beziehung bestimmen, müssen beide Tabellen ein gemeinsam genutztes Feld haben.

Wenn Sie feststellen, dass Sie eine 1:1-Beziehung in der Datenbank benötigen, sollten Sie überlegen, ob Sie die Informationen aus den beiden Tabellen zusammen in einer Tabelle speichern können. Möchten Sie dies aus einem bestimmten Grund nicht tun, z. B. weil sich dadurch viel freier Speicherplatz ergeben würde, entnehmen Sie der folgenden Liste, wie Sie die Beziehung in Ihrem Entwurf darstellen können:

  • Wenn die beiden Tabellen das gleiche Thema haben, können Sie die Beziehung wahrscheinlich einrichten, indem Sie in beiden Tabellen den gleichen Primärschlüssel verwenden.

  • Wenn die beiden Tabellen unterschiedliche Themen mit unterschiedlichen Primärschlüsseln haben, wählen Sie eine dieser Tabellen aus, und fügen Sie deren Primärschlüssel als Fremdschlüssel in die andere Tabelle ein.

Durch Bestimmen der Beziehungen zwischen Tabellen können Sie sicherstellen, dass Sie die richtigen Tabellen und Spalten haben. Wenn eine 1:1- oder 1:n-Beziehung vorhanden ist, muss in den beteiligten Tabellen mindestens eine Spalte gemeinsam genutzt werden. Wenn eine m:n-Beziehung vorhanden ist, wird zum Darstellen der Beziehung eine dritte Tabelle benötigt.

Seitenanfang

Optimieren des Entwurfs

Sobald Sie die benötigten Tabellen, Felder und Beziehungen haben, sollten Sie die Tabellen erstellen, sie mit Beispieldaten füllen und versuchen, mit den Informationen zu arbeiten: Erstellen von Abfragen, Hinzufügen neuer Datensätze usw. Dadurch lassen sich mögliche Probleme erkennen. So kann es z. B. sein, dass Sie eine Spalte hinzufügen müssen, die Sie während der Entwurfsphase vergessen haben, oder dass Sie eine Tabelle haben, die Sie in zwei Tabellen aufteilen müssen, um Duplizierung zu vermeiden.

Überprüfen Sie, ob Sie die Datenbank verwenden können, um die gewünschten Antworten zu erhalten. Erstellen Sie Rohentwürfe Ihrer Formulare und Berichte, und überprüfen Sie, ob in ihnen die erwarteten Daten angezeigt werden. Suchen Sie nach unnötigen Datenduplikaten, und ändern Sie, wenn Sie Duplikate gefunden haben, den Entwurf, um sie zu entfernen.

Beim Testen Ihrer Ausgangsdatenbank werden Sie vermutlich Raum für Verbesserungen erkennen. Hier ein paar Punkte, die Sie überprüfen sollten:

  • Haben Sie irgendwelche Spalten vergessen? Wenn ja, gehören die Informationen in die vorhandenen Tabellen? Wenn sich die Informationen auf etwas anderes beziehen, müssen Sie möglicherweise eine weitere Tabelle erstellen. Erstellen Sie eine Spalte für jedes Informationselement, das Sie nachverfolgen müssen. Wenn die Informationen nicht aus anderen Spalten berechnet werden können, benötigen Sie wahrscheinlich eine neue Spalte dafür.

  • Gibt es überflüssige Spalten, weil diese aus vorhandenen Feldern berechnet werden können? Wenn ein Informationselement aus vorhandenen Spalten berechnet werden kann (z. B. ein reduzierter Preis, der anhand des Verkaufspreises berechnet wird), empfiehlt es sich normalerweise, dies zu tun und auf das Erstellen einer neuen Spalte zu verzichten.

  • Geben Sie wiederholt gleiche Informationen in eine der Tabellen ein? In diesem Fall müssen Sie die Tabelle wahrscheinlich in zwei Tabellen aufteilen, zwischen denen eine 1:n-Beziehung besteht.

  • Haben Sie Tabellen mit vielen Feldern, einer begrenzten Anzahl von Datensätzen und vielen leeren Feldern in einzelnen Datensätzen? Ziehen Sie in diesem Fall das Neuentwerfen der Tabelle in Betracht, sodass sie weniger Felder und mehr Datensätze enthält.

  • Ist jedes Informationselement in seine kleinsten hilfreichen Teile aufgeteilt? Wenn Sie ein Informationselement für einen Berichts-, Sortier-, Such- oder Berechnungsvorgang benötigen, speichern Sie dieses Element in seiner eigenen Spalte.

  • Enthält jede Spalte einen Fakt zum Thema der Tabelle? Wenn eine Spalte keine Informationen zum Thema der Tabelle enthält, gehört sie in eine andere Tabelle.

  • Sind alle Beziehungen zwischen Tabellen entweder über gemeinsame Felder oder über eine dritte Tabelle dargestellt? Für 1:1- und 1:n-Beziehungen sind gemeinsame Spalten erforderlich. Für m:n-Beziehungen ist eine dritte Tabelle erforderlich.

Optimieren der Tabelle für Artikel (Products)

Nehmen Sie an, dass jeder Artikel in der Artikelverkaufsdatenbank in eine allgemeine Kategorie fällt, etwa Getränke, Gewürze oder Meeresfrüchte. Die Products-Tabelle könnte ein Feld enthalten, das die Kategorie des jeweiligen Artikels angibt.

Nehmen Sie weiter an, dass Sie sich nach dem Überprüfen und Optimieren des Datenbankentwurfs entschließen, zusammen mit dem Namen der jeweiligen Kategorie eine Beschreibung zu speichern. Wenn Sie der Products-Tabelle ein Feld für die Kategoriebeschreibung hinzufügen, müssen Sie jede Kategoriebeschreibung für jeden Artikel wiederholen, der in diese Kategorie fällt. Dies ist keine gute Lösung.

Eine bessere Lösung besteht darin, Kategorien zu einem neuen in der Datenbank nachzuverfolgenden Thema mit eigener Tabelle und eigenem Primärschlüssel zu machen. Dann können Sie den Primärschlüssel aus der Tabelle für Kategorien (Categories) als Fremdschlüssel zur Products-Tabelle hinzufügen.

Zwischen den Tabellen "Categories" und "Products" besteht eine 1:n-Beziehung: Eine Kategorie kann mehrere Artikel enthalten, aber ein Artikel kann nur zu einer Kategorie gehören.

Achten Sie beim Überprüfen der Tabellenstrukturen auf sich wiederholende Gruppen. Angenommen, Sie haben eine Tabelle mit den folgenden Spalten:

  • Produkt-ID

  • Name

  • Produkt-ID1

  • Name1

  • Produkt-ID2

  • Name2

  • Produkt-ID3

  • Name3

Hier ist jedes Produkt eine wiederholte Gruppe von Spalten, die sich von den anderen Gruppen nur dadurch unterscheidet, dass am Ende des Spaltennamens eine Zahl hinzugefügt ist. Wenn Sie Spalten sehen, die auf diese Weise nummeriert sind, sollten Sie den Entwurf überarbeiten.

Ein solcher Entwurf hat mehrere Fehler. Der erste Fehler besteht darin, dass Sie gezwungen werden, eine Obergrenze für die Anzahl von Artikeln festzulegen. Sobald Sie diese Grenze überschreiten, müssen Sie der Tabellenstruktur eine neue Gruppe von Spalten hinzufügen, was eine umfangreiche administrative Aufgabe ist.

Ein weiteres Problem besteht darin, dass für Lieferanten, die weniger als die maximale Anzahl von Artikeln liefern, Speicherplatz verschwendet wird, da die zusätzlichen Spalten leer sind. Der schwerwiegendste Fehler eines solchen Entwurfs zeigt sich darin, dass das Ausführen vieler Aufgaben, etwa das Sortieren oder Indizieren der Tabelle nach Artikelnummer (Produkt-ID) oder Name, erschwert wird.

Immer dann, wenn Sie wiederholte Gruppen sehen, sollten Sie den Entwurf genau überprüfen und in Erwägung ziehen, die Tabelle in zwei Tabellen aufzuteilen. Im obigen Beispiel ist es besser, zwei Tabellen zu verwenden (eine für Lieferanten und eine für Artikel), die über die Lieferantennummer (SupplierID) verknüpft sind.

Seitenanfang

Anwenden der Normalisierungsregeln

Sie können die Datennormalisierungsregeln (manchmal nur als Normalisierungsregeln bezeichnet) als nächsten Schritt in Ihrem Entwurf anwenden. Sie verwenden diese Regeln, um festzustellen, ob die Tabellen richtig strukturiert sind. Der Vorgang, bei dem die Regeln auf den Datenbankentwurf angewendet werden, wird als Normalisieren der Datenbank oder einfach als Normalisierung bezeichnet.

Normalisierung sollte erfolgen, nachdem Sie alle Informationselemente dargestellt und einen vorläufigen Entwurf erstellt haben. Die Idee dahinter ist, dass Sie sich vergewissern, dass Sie die Informationselemente in die geeigneten Tabellen aufgeteilt haben. Durch Normalisierung kann jedoch nicht sichergestellt werden, dass Sie für den Anfang alle richtigen Datenelemente haben.

Sie wenden die Regeln nacheinander an, wobei Sie sich bei jedem Schritt vergewissern, dass der Entwurf der jeweils zugehörigen Normalform entspricht. Allgemein werden fünf Normalformen akzeptiert: die erste bis fünfte Normalform. Dieser Artikel erstreckt sich über die ersten drei Normalformen, da nur diese für die meisten Datenbankentwürfe erforderlich sind.

Erste Normalform

Die erste Normalform besagt, dass für jede Tabellenzelle (Kreuzungsstelle von Zeile und Spalte) ein einzelner Wert, niemals eine Liste von Werten vorhanden ist. Beispielsweise dürfen Sie kein Feld namens "Preis" haben, in dem Sie mehrere Preise platzieren. Wenn Sie sich die einzelnen Kreuzungsstellen der Zeilen und Spalten als Zelle vorstellen, darf jede Zelle nur einen Wert enthalten.

Zweite Normalform

Die zweite Normalform erfordert, dass jede Nichtschlüsselspalte vollständig vom gesamten Primärschlüssel, nicht nur von einem Teil des Schlüssels abhängig ist. Diese Regel gilt, wenn ein Primärschlüssel vorhanden ist, der aus mehreren Spalten besteht. Angenommen, Sie haben eine Tabelle, die die folgenden Spalten enthält, wobei "Auftrags-Nr" und "Artikel-Nr" den Primärschlüssel bilden:

  • Auftrags-Nr (Primärschlüssel)

  • Artikel-Nr (Primärschlüssel)

  • Artikelname

Dieser Entwurf verletzt die zweite Normalform, da "Artikelname" von "Artikel-Nr", aber nicht von "Auftrags-Nr" abhängig ist, sodass "Artikelname" nicht vom gesamten Primärschlüssel abhängig ist. Sie müssen "Artikelname" aus der Tabelle entfernen. Diese Spalte Es gehört in eine andere Tabelle (Artikel).

Dritte Normalform

Die dritte Normalform erfordert sowohl, dass jede Nichtschlüsselspalte vom gesamten Primärschlüssel abhängig ist, als auch, dass Nichtschlüsselspalten voneinander unabhängig sind.

Anders ausgedrückt: Jede Nichtschlüsselspalte darf einzig und allein vom Primärschlüssel abhängig sein. Angenommen, Sie haben eine Tabelle, die die folgenden Spalten enthält:

  • ArtikelNr (Primärschlüssel)

  • Name

  • Preisempfehlung

  • Rabatt

Es wird vorausgesetzt, dass "Rabatt" von der Preisempfehlung abhängt. Diese Tabelle verletzt die dritte Normalform, weil eine Nichtschlüsselspalte (Rabatt) von einer anderen Nichtschlüsselspalte (Preisempfehlung) abhängt. Spaltenunabhängigkeit bedeutet, dass es Ihnen möglich sein sollte, eine Nichtschlüsselspalte zu ändern, ohne dass sich dies auf eine andere Spalte auswirkt. Wenn Sie einen Wert im Preisempfehlung-Feld ändern, wird "Rabatt" entsprechend geändert, wodurch die Regel verletzt wird. In diesem Fall sollte "Rabatt" in eine andere Tabelle verschoben werden, in der "Preisempfehlung" als Schlüssel fungiert.

Seitenanfang

Ihre Fähigkeiten erweitern
Schulung erkunden
Neue Funktionen als Erster erhalten
An Office Insider teilnehmen

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×