Zusammenspiel mehrerer Tabellen

Stellen wir uns vor, wir wollen in einer Datenbank die Namen von Orten in Deutschland speichern. Dabei interessiert uns auch, in welchem Bundesland ein Ort liegt. Würden wir nun in einer Tabelle ein Feld txtOrt und ein Feld txtLand anlegen, wäre es nur eine Frage der Zeit, bis verschiedene Schreibweisen ein und desselben Bundeslands in der Tabelle auftauchen, z. B. „Bayern“ und „Baiern“, „Baden-Württemberg“ und „Baden - Württenberg“. Das wäre natürlich nicht wünschenswert.

B H M F S D DO K

Stattdessen erstellen wir zwei Tabellen; eine namens tblOrte, in der wir die Ortsnamen eintragen, und eine weitere Tabelle tblLänder für die Bundesländer. In tblOrte wird nur die Nummer des jeweiligen Bundeslands eingetragen:

tblOrte
IDOrttxtOrtlngLand
1Berlin3
2Hamburg6
3München2
4Köln10
5Frankfurt7
6Stuttgart1
7Düsseldorf10
8Dortmund10
tblLänder
IDLandtxtLand
1Baden-Württemberg
2Bayern
3Berlin
4Brandenburg
5Bremen
6Hamburg
7Hessen
8Mecklenburg-Vorpommern
9Niedersachsen
10Nordrhein-Westfalen
11Rheinland-Pfalz
12Saarland
13Sachsen
14Sachsen-Anhalt
15Schleswig-Holstein
16Thüringen

Diese beiden Tabellen werden uns im weiteren Verlauf des Tutorials immer wieder begegnen, weswegen man sie am eigenen PC reproduzieren sollte. Die hier gezeigten acht größten Städte Deutschlands sind für die Zwecke des Tutorials vollkommen ausreichend, aber man kann natürlich nach Belieben weitere Orte hinzufügen.

Wer sich an die Namenskonventionen erinnert, wird feststellen, dass die Tabelle tblLänder ein Feld IDLand enthält, tblOrte dagegen ein Feld lngLand. Das Nummerieren überlassen wir nämlich einfach der Datenbank: IDLand ist vom Typ Autowert. Trägt man im Feld txtLand einen neuen Datensatz ein, wird IDLand automatisch gefüllt. In der Tabelle tblOrte muss dann das Feld, in dem das Bundesland gespeichert wird, den gleichen Zahlenumfang speichern können. Autowert entspricht insofern dem Typ Long Integer.

Man mag sich fragen, ob man bei der Datenerfassung immer nach der richtigen Nummer des Bundeslands suchen muss. Keine Panik! Später werden wir sehen, dass nur der Programmierer, nicht der Anwender Tabellen sehen sollte. Die Nummer sucht Microsoft Access (in einem Formular) automatisch, ein Anwender sieht nur den Namen des Bundeslandes.

Je nach Zweck einer Datenbank können noch viele Tabellen hinzugefügt werden. In unserem Beispiel könnte man z. B. noch Tabellen benötigen, um Straßen zu erfassen. Dann würde in der Straßentabelle auch die Nummer der Stadt gespeichert werden. Die Nummer des Bundeslandes wäre bei den Straßen dagegen überflüssig, weil das Bundesland ja schon bei der Stadt gespeichert ist.

Würden wir weitere Angaben zum Bundesland benötigen, z. B. die Größe, würde das ebenfalls in tblLänder gespeichert. Jede Tabelle ist also eine Informationssammlung gleichartiger Objekte, und jedes Feld speichert eine Eigenschaft des Objekts. Die Felder innerhalb einer Tabelle stehen zueinander in Relation (daher der Begriff „relationale Datenbank“).