Zusammenspiel mehrerer Tabellen

Achtung: Das folgende Beispiel wird uns im weiteren Verlauf des Tutorials immer wieder begegnen, weswegen man es am eigenen PC nachvollziehen sollte.

München Bamberg Bayreuth Berlin Stuttgart

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. Stattdessen erstellen wir eine Tabelle namens tblOrte und eine weitere Tabelle tblLänder:

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
tblOrte
IDOrt txtOrt lngLand
1 München 2
2 Bamberg 2
3 Berlin 3
4 Stuttgart 1
5 Bayreuth 2

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“).