|
Tabellen verknüpfen |
|
|
Um auch komplexere Abfragen durchführen zu können, insbesondere um über einen bestimmten Wert andere Werte ermitteln zu können, müssen Sie nun entsprechend zusammen gehörende Tabellen miteinander verknüpfen. Derzeit lässt sich beispielsweise nicht abbilden, welche Modelle zu einer Marke gehören, da Modelle und Marken sich in voneinander unabhängigen Tabellen befinden. Ein systematisches Durchsuchen der Tabelle Fahrzeuge würde für eine professionelle Anwendung nicht nur viel zu lange dauern, sondern zu einem unvollständigen Abfrage-Ergebnis führen, z.B. wenn kein Fahrzeug einer bestimmten Marke gelistet ist.
Eine Verknüpfung zwischen zusammen gehörenden Tabellen stellen Sie her, indem Sie eine Oberkategorie an die dazugehörige Unterkategorie anhängen, z.B. Marken an Modelle. Was Ober- und Unterkategorie ist, können Sie sehr leicht mit der Überprüfung folgender Aussagen herausfinden:
1 Marke kann viele (n) Modelle besitzen
oder
1 Modell kann viele (n) Marken besitzen
Da die erste Aussage zutrifft, ist die Marke die Oberkategorie, sodass die Tabelle Marken an die Tabelle Modelle angehängt wird. Die Verknüpfung erfolgt erneut mit Hilfe eines Schlüssels. Dazu müssen die Werte der Unterkategorie mit den dazugehörigen IDs der Oberkategorie erweitert werden. Dazu wird die Tabelle Modelle mit der Spalte Marken_ID erweitert und die IDs entsprechend übernommen.
Da Sie nun jederzeit über jedes Modell die jeweilige Marke ermitteln können, ist Spalte Marken in der Tabelle Fahrzeuge überflüssig und kann entfernt werden.
Fahrzeuge
Die neue Situation.
Das fertige Datenmodell als ER-Diagramm im Daten-Editor (Menü Daten).
Welche Tabellen Sie miteinander verknüpfen hängt allein davon ab, welche Abfrage-Möglichkeiten Ihre Datenmodell bieten soll. Dabei sollten Sie genau analysieren, welche Auswirkungen Ihre Maßnahmen haben. Ein Ausgliedern bestimmter Daten kann beispielsweise in der Theorie korrekt sein, in der Praxis jedoch die Zugriffszeit unnötig verlängern oder einen unverhältnismäßig hohen Programmieraufwand nach sich ziehen. Wenn Sie beispielsweise ein Datum speichern, das Sie für die Darstellung im Formular jedes Mal in einzelne Zahlenwerte zerlegen müssen, um das Monat und das Jahr in einer Combobox darstellen zu können, dann ist es womöglich praktischer, Jahr und das Monat gleich als Zahlenwerte abzuspeichern. Das führt dazu, dass erfahrene Entwickler oftmals nicht nur Spalten in der Haupt-Tabelle belassen, die sie ebenso gut ausgliedern könnten, sondern unter bestimmten Umständen sogar Daten absichtlich redundant speichern. Denn über umso mehr Tabellen sich eine Abfrage erstreckt, desto länger und komplexer wird die Abfrage-Bedingungen (Join), die von der Datenbank verarbeitet werden muss und die durchschnittliche Zugriffszeit erhöht.
|