Konsistente Daten mit Access

Zusammenfassung

Erfahren Sie, wie Sie mit Schlüsseln, Indizes, Beziehungen und Validierungen für konsistente Daten sorgen.

Techniken

Tabellen, Indizes, Schlüssel, Beziehungen, Gültigkeitsregeln, Validierung in Formularen

Voraussetzungen

Access 97 oder höher

Beispieldateien

Konsistenz97.mdb, Konsistenz00.mdb

Tom Jordan, Düsseldorf

Ein Mitarbeiter hat soeben die Aufgabe erhalten, alle Kunden seiner kleinen Firma zusammen mit ihren Projekten zu erfassen. „Kein Problem“, sagt er, „ist noch vor der Mittagspause erledigt!“ Der Mitarbeiter wechselt mal eben schnell zu Excel, das auf seinem Desktop ohnehin schon geöffnet ist, und fängt an, die Daten abzutippen … Wenn es Ihnen jetzt kalt den Rücken herunter läuft, wissen Sie, warum Excel hier fehl am Platze und der Einsatz von Access gefordert ist: Hier geht es um Daten, deren Konsistenz im Vordergrund steht, und dafür bietet Access einige Werkzeuge. Welche das sind, erfahren Sie im vorliegenden Beitrag.

Für viele wäre die Vorgehensweise des Mitarbeiters aus der Einleitung zumindest der erste Ansatz. Microsoft Excel hat sich in vielen Bereichen so fest etabliert, dass für zahllose Angestellte die Arbeit ohne diese Tabellenkalkulation schlicht undenkbar ist. Also warum nicht die Daten mit Excel erfassen

Die kurze Antwort: Für die Haltung konsistenter Daten ist Excel schlecht ausgerüstet. Excel ist einfach nicht dafür gebaut, Daten vernünftig zu strukturieren und zu validieren. Für diese Aufgaben wurde Microsoft Access entwickelt.

Microsoft Access bietet viele Möglichkeiten, eine Datenbank vor der Eingabe inkonsistenter Daten zu schützen. Wie mit jedem Datenbanksystem kann man mit Access auch ein vorgefertigtes Datenmodell realisieren.

In einem solchen Datenmodell werden die Beziehungen zwischen Objekten wie Abteilungen und ihren Mitarbeitern oder Kunden und ihren Bestellungen abgebildet.

Diese Beziehungen, zusammen mit Gültigkeitsregeln auf Tabellenebene, sorgen für die so genannte Datenintegrität. Nur mit solchen Mitteln können Sie zuverlässige und brauchbare Auswertungen Ihrer Daten erzielen wie zum Beispiel:

  • Wie viele Mitarbeiter hat eine Abteilung im Schnitt
  • Wie viele Bestellungen gehen an Kunden in Düsseldorf
  • Access enthält viele Stellen, an denen die verschiedenen Werkzeuge der Datenintegrität automatisch angewendet beziehungsweise erzwungen werden. Dennoch müssen Sie früher oder später selbst Hand anlegen und am letzten Schräubchen drehen.

    Abb. 1: Eigenschaften eines Primärindexfeldes

    Konsistente Daten mit Access erreichen Sie in erster Linie durch den Einsatz von Primär- und Fremdschlüsseln, Tabellenbeziehungen, Gültigkeitsregeln und Validierungen. In den folgenden Abschnitten werden diese der Reihe nach vorgestellt und erläutert.

    Jedes Fahrzeug auf der Straße hat ein Kennzeichen, das dieses Fahrzeug eindeutig identifiziert. Auch wenn zahllose gleich aussehende Autos umherfahren, kann das Straßenverkehrsamt dieses Fahrzeug anhand des Kennzeichens zuordnen. Genauso ist es mit Datensätzen in einer Access-Tabelle.

    Kunden können den gleichen Namen haben, dennoch handelt es sich um unterschiedliche Kunden mit eigenen Kontaktdaten, Bestellungen und Bedürfnissen. Deshalb braucht jeder Datensatz eine Art Kennzeichen. In der Datenbankwelt handelt es sich dabei um den so genannten Schlüssel.

    Wenn Sie eine neue Tabelle anlegen, fragt Access vor dem ersten Speichern nach, ob – sofern noch nicht vorhanden – ein Primärschlüssel angelegt werden soll. Dieser Primärschlüssel identifiziert nicht nur jeden Datensatz in der Tabelle eindeutig, sondern er erlaubt auch die Herstellung von Beziehungen zu anderen Tabellen.

    Wenn Access diese Aufgabe selbst in die Hand nimmt, wird ein neues indiziertes Feld namens ID angelegt. Der Datentyp des ID-Feldes ist AutoWert – das bedeutet, dass Access das Hochzählen des Feldwertes bei neuen Datensätzen übernimmt. So ist gewährleistet, dass dieses Feld einen eindeutigen Wert über die ganze Tabelle erhält.

    Primärschlüssel selbst anlegen

    Normalerweise werden Sie den Primärschlüssel selbst anlegen wollen und nicht Access diese Aufgabe überlassen. In dem Fall markieren Sie einfach das Feld, das zum Primärschlüssel gemacht werden soll, klicken auf die Primärschlüssel-Schaltfläche in der Symbolleiste oder auf den gleichnamigen Eintrag im Kontextmenü des gewünschten Feldes.

    Access markiert das Feld dann mit dem Schlüssel-Symbol automatisch als Primärschlüssel und nimmt einige weitere Einstellungen am Tabellenentwurf vor. Diese sind verborgen und treten erst nach Auswahl des Menüeintrags Ansicht/Indizes in Erscheinung (s. Abb. 1).

    Dort ist zum Beispiel zu erkennen, dass die Eigenschaft Eindeutig für das Primärschlüsselfeld auf Ja und die Eigenschaft Nullwerte ignorieren auf Nein eingestellt ist. Letzteres ist besonders wichtig, um zu verhindern, dass einmal kein Wert für das Primärschlüsselfeld angelegt wird. Die Werte der beiden Eigenschaften Eindeutig und Nullwerte ignorieren können Sie aber für Primärschlüsselfelder auch nicht verändern (s. Abb. 2).

    Der Datentyp eines Primärschlüsselfeldes muss nicht zwangsläufig auf AutoWert eingestellt werden – Sie können auch einen anderen beliebigen Datentyp (außer OLE-Objekt) wählen. In diesem Fall müssen Sie allerdings selbst für die Verwendung eindeutiger Feldwerte sorgen.

    Abb. 2: Eigenschaften eines Primärschlüsselfeldes

    Der Primärschlüssel kann durchaus auch aus mehreren Feldern bestehen, zum Beispiel aus den Feldern Nachname und Vorname. Das macht allerdings wenig Sinn, da ja durchaus einmal zwei Kunden den gleichen Namen haben können. Außerdem erschwert ein derartiger Schlüssel in einigen Fällen die Definition von Beziehungen zu anderen Tabellen. Ein Beispiel für den sinnvollen Einsatz eines zusammengesetzten Primärschlüssels finden Sie weiter unten.

    Nach dem Festlegen des Primärschlüssels ist die Integrität der ersten Tabelle gesichert, nun kümmern Sie sich um die Mitarbeiter-Tabelle. Diese Tabelle enthält einen Primärschlüssel namens MitarbeiterID sowie Felder zum Speichern von Vorname und Nachname.

    Die Abteilung des Mitarbeiters wird nicht einfach als Text eingetragen, da somit mehrere gleiche Einträge entstehen können (wie es bei Excel meistens der Fall ist), sondern es wird immer nur eine vorhandene Abteilung „nachgeschlagen“ und ihr Primärschlüsselwert (das Feld AbteilungID) in der Mitarbeiter-Tabelle abgelegt. Felder, die wie das hier verwendete Feld AbteilungID zwar Werte in der Mitarbeiter-Tabelle speichern, aber sich eigentlich auf Daten aus anderen Tabellen beziehen, nennt man Fremdschlüsselfeld. Durch den Fremdschlüssel werden folgende Punkte gewährleistet:

  • Die Abteilung existiert tatsächlich und Sie können auf ihre Daten zugreifen.
  • Ein Löschen der Abteilung, der bereits Mitarbeiter zugeordnet wurden, wird unterbunden.
  • Die Abteilungsdaten werden an einer zentralen Stelle gepflegt.
  • Das Feld AbteilungID in der Mitarbeiter-Tabelle legt den Grundstein für die Beziehung zwischen Abteilungen und Mitarbeitern. Nun müssen Sie noch die eigentliche Beziehung zwischen den beiden Tabellen herstellen.

    Index für schnelle Verknüpfungen

    Wenn absehbar ist, dass Daten zweier verknüpfter Tabellen in einer Abfrage zusammengefasst werden sollen, kann das Indizieren des Fremdschlüsselfeldes für eine bessere Performance sorgen.

    Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
    Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
    Zur Bestellung ...
    Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
    Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar