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 Tutorial immer wieder begegnen, weswegen man sie am eigenen PC nachvollziehen sollte. Die hier verwendeten größten acht 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, dem wird auffallen, 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 zu Gesicht bekommen sollte. Die Nummer sucht Microsoft Access (in einem Formular) automatisch, der Anwender sieht nur den Namen des Bundeslandes.

Je nach Zweck einer Datenbank können noch viele Tabellen hinzukommen. 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, denn das Bundesland ist ja schon bei der Stadt abgelegt.

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 stehen zueinander in Relation (daher der Begriff „relationale Datenbank“).