Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Access: Abfragen mit SQL

Kreuzprodukt

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Ist eine Tabelle in einem SQL-Statement mit keiner anderen Tabelle verbunden, entsteht durch die Multiplikation der Datensätze ein Kreuzprodukt.

Transkript

Dies ist eine fast typische SQL-Angabe, um in diesem Fall die Geschwister herauszubekommen. Ich habe die Tabelle "Schueler" ein zweites Mal drin, es ist ja eine Reflexivverknüpfung, unter dem Namen "Geschwister", und dann will ich alle finden, deren ID bei einem Geschwisterkind als Referenz eingetragen ist. Und ich möchte nur sehen, von beiden Tabellen jeweils den Namen komplett. Ich lasse auch schon mal die Dauer dazu anzeigen. Der obere Wert zeigt die reine Datenermittlung, der untere das, was zusätzlich benötigt wird, um die Daten auch auf dem Bildschirm anzuzeigen. Wenn ich das jetzt ausführe, werden Sie feststellen, die Datenermittlung ist unter einer Millisekunde, das ist nicht messbar, und zum Anzeigen hat es 32 Millisekunden gebraucht, das ist in Ordnung. Von den insgesamt 525 Schülern, die in dieser Tabelle eingetragen sind, gibt es jetzt 13, die ein Geschwisterkind haben. Das ist sozusagen der Normalfall. Wenn ich mir das im graphischen Entwurf von Access angucke, dann finden wir hier die beiden Tabellen, physikalisch das gleiche, aber unterschiedliche Namen, und hier eine Verbindungslinie. Diese Verbindungslinie macht genau diesen INNER JOIN aus. Was ist jetzt eigentlich, wenn ich den weglasse, das heißt der INNER JOIN fällt weg, was ich retten muss, ist diese Angabe, also hier und dann nach dem Komma ein zweites Mal die Tabelle "Schueler" unter dem Namen "tblGeschwister", und dann kann ich hier den INNER JOIN wegnehmen. Nochmal zur Erinnerung, es gibt 525 Schüler, die da eingetragen sind, dreizehn davon haben Geschwister, und jetzt achten Sie bitte auch auf die Dauer: lasse ich dieses ausführen, ohne den INNER JOIN, die Dauer, um die Daten zu ermitteln, ist mal eben von 0 Millisekunden auf 300 hochgeschnellt, die Anzeige – das wechselt schonmal ein bisschen – ist im Wesentlichen noch gleich, ob Sie jetzt 40 oder 60 Millisekunden haben, macht keinen Unterschied. Aber wenn Sie auch einmal hier unten gucken, die Datenmenge ist enorm größer geworden. Statt 525 Datensätzen sehen Sie jetzt 275.000. Woher kommen die? Die sind künstlich erzeugt! Die gibt es nicht wirklich. Wenn Sie sich die Daten jetzt genauer angucken, werden Sie feststellen, das sind 525 verschiedene Datensätze hier, und auf dieser Seite mit dem ersten Datensatz der anderen Tabelle verbunden. Und wenn ich die 525 mal Andrea Maier erledigt habe, dann kommt Dirk Azarko mit seinen 525 Verbindungen. Und dann der nächste. Das ist das, was Kreuzprodukt oder kartesisches Produkt genannt wird, und fast immer ein Fehler ist. Sie haben irgendeine Tabelle in diesem SELECT-Statement, die keinen JOIN zu einer anderen Tabelle hat. Dann werden deren Datensätze alle mit jedem anderen verknüpft. Deswegen ist diese erstaunlich große Zahl, die da unten steht, nichts anderes als 525 Schülerdatensätze mal 525 Geschwisterdatensätze. Jeder wird mit jedem verknüpft, weil sie im Normalfall vergessen haben, eine Beziehung zwischen Tabellen anzugeben. Das ist durchaus praktisch, wenn Sie mal künstlich extrem viele Datensätze für Lasttests, oder Geschwindigkeitstests erzeugen müssen. Dann können Sie mit dieser Verbindung, oder besser gesagt, mit dieser Nicht-Verbindung zweier Tabellen, die möglichst viele Datensätze enthalten, explosionsartig Daten vermehren. Im Normalfall ist so ein Kreuzprodukt ein Fehler.

Access: Abfragen mit SQL

Nutzen Sie die mächtige Abfragesprache SQL in Microsoft Access. Anhand einer Beispiel-Datenbank lernen Sie die Möglichkeiten und Finessen von SQL im Detail kennen.

3 Std. 14 min (64 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieses Training ist für alle Access-Versionen verwendbar. Das vermittelte SQL-Wissen lässt sich mit geringen Abweichungen auch für andere relationale Datenbanksysteme nutzen.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!