Susanne: Ein Riesen-Join oder eine Handvoll kleine Züge?

Beitrag lesen

Guten Morgen, eine theoretische Frage, vermutlich sogar eine des Geschmacks:

Gegeben sei eine Datenbank mit wenigen Tabellen und, im Vergleich dazu, teils vielen Daten. Bestimmte Daten soll ausgegeben werden, bei der Ausgabe werden immer Daten aus allen Tabellen benötigt. Da sich vielleicht die Datenbank oder Datenbankstruktur ändert, soll eine Funktion die Daten einsammeln, eine zweite Funktion soll sie zur Ausgabe aufbereiten.

Als Beispiel hat ein Zoo vier Tabellen, Tiere, Gehege, Angestellte, Fütterungen. Eine Ausgabe würde etwa die Fütterungen der letzten Woche sein, dazu brauchen wir die Tiernamen aus Tiere, den Ort aus Gehege, die Fütterungszeit, -art und -menge aus Fütterungen und natürlich den Namen desjenigen, der den Löwen den Löwenzahn gegeben hat, aus Angestellte.

Was ist nun sinnvoller: Eine Abfrage mit join über vier Tabellen, die sämtliche Daten auf einmal liefert, allerdings auch haufenweise Daten in tausendfacher Ausführung, die alle aufwändig zusammengeführt werden müssen (der Zoo hat nur drei Angestellte, aber 5.000 Ameisen, die alle einen Namen haben und liebevoll einzeln gefüttert werden), oder vier Abfragen an die jeweiligen Tabellen auf die Gefahr hin, dass sich zwischen den zusammengehörigen Abfragen eine Tabelle ändert (die Tiere sterben wie die Fliegen, insbesondere die Fliegen) und die gesammelten Daten insgesamt nicht mehr stimmig sind?

Welchem Aspekt sollte grundsätzlich mehr Beachtung geschenkt werden, der Datenmenge oder der Stimmigkeit? Ich denke eigentlich letzterem und damit der join-Variante, frage mich aber, wo wohl die Grenze zu ziehen wäre. Wenn die Datenbank oder die Funktionen tatsächlich merklich in die Knie gehen?

Danke, Susanne