Access Anfänger: Grundlagen des Datenbank-Designs

Aus DBWiki
Wechseln zu: Navigation, Suche

Um sinnvoll mit einer Datenbank arbeiten zu können, ist es notwendig, ein Datenmodell zu erstellen. Alle Datenfelder werden in Tabellen gruppiert und ihre Daten werden dann je nach Bedarf miteinander verbunden. Dies ist aus der am Ende des Artikels abgebildeten Bildfolge ersichtlich (an dieser Stelle genügt es, sich das kurz anzuschauen): Es erfolgt eine Umgruppierung der Daten - statt alle Daten in einer einzigen Tabelle zu speichern, werden diese nach einem bestimmten Schema (theoretische Grundlage: Normalisierung) aufgespalten und in separaten Tabellen gespeichert.

Die angesprochene "Verbindung" der Daten erfolgt per Abfrage (Abb. 2), dort werden die Daten durch sogenannte Joins verknüpft. Die Ausgabe des Ergebnisses der Abfrage in Tabellenform ist vollkommen identisch mit der in Abb. 1 gezeigten Tabelle, doch beruht diese Ausgabe auf einer anderen, differenzierten Tabellenstruktur.

So werden Redundanzen und sogenannte Anomalien unterbunden und das Datenmodell ist erweiterbar und wartbar.

Der Tabellenanalyseassistent von Access ist zum Modellieren der Daten nicht geeignet, weil er nur formal arbeitet. Er trifft Entscheidungen z.B. auf Grund gleicher Zeichenketten in einer Spalte und kommt so oft zu völlig unsinnigen Ergebnissen.

Man sollte sich auf jeden Fall mit dem Thema Normalisierung von Daten beschäftigen und - wenn möglich - geeignete Tools verwenden (Visio Pro, ERwin).

Die folgenden vier Regeln erlauben es, die Daten in eine vernünftige Form zu bringen, ohne sich im Detail mit den einzelnen Normalisierungsregeln beschäftigen zu müssen. Sie stammen aus den sehr guten Accessbüchern von John L. Viescas.

Prinzipien

Eindeutigkeit

Jede Spalte beinhaltet eindeutige Informationen. Es gibt keine Spalten mit gleichen Informationen (Preis1, Preis2 usw.).

Primärschlüssel

Jede Tabelle hat ein eindeutiges Merkmal, welches aus einer oder mehreren Spalten besteht.
Der Inhalt dieser Spalte ist für jeden Datensatz eindeutig, einzigartig (unique), dadurch gibt es keine doppelten Datensätze in einer Tabelle.

Funktionale Unabhängigkeit

Eine Tabelle beinhaltet keine irrelevanten Daten. Die Daten in einer Tabelle decken das Thema ab.

Feldunabhängigkeit

Änderungen müssen in allen Spalten (außer Primärschlüssel) möglich sein. Eine Änderung von Daten in einer Spalte darf sich nicht auf die Daten in einer anderen Spalte auswirken.

Anhang: Bildfolge zu Normalisierung/Abfrage

Abb. 1: Aufspaltung der Daten in drei Tabellen
Abb. 2: Re-Aggregation der Daten durch Abfrage und JOIN-Technik