JOINS

Die Übertragung eines Entity-Relationship-Modells (ERM) in eine Datenbank erfordert eine Konvertierung der Beziehungen basierend auf den Kardinalitäten und Übertragungsregeln. Die Tabellen sind miteinander durch den Primärschlüssel und den Fremdschlüssel verbunden, wodurch auf der einen Seite Anomalien[1] und Redundanzen[2] vermieden werden, aber auf der anderen Seite das Abfragen von zusammenhängenden Daten erschwert wird.

Als Beispiel können die Tabellen Mitarbeiter und Abteilung dienen. Die Zuordnung eines Mitarbeiters zu einer Abteilung wird durch einen Fremdschlüssel dargestellt, der auf den Primärschlüssel der Tabelle „Abteilung“ verweist.

Tabelle Mitarbeiter

Ma_ID

Ma_Name

Ma_EMail

Ma_Einstellungsdatum

Ma_Jahresbonus

Abteilungs_ID

1

Hansen

Hansen@test.de

2010-10-01

1800

110

Tabelle Abteilung

Abteilungs_ID

Abteilungs_Name

100

Web-Design

110

QA

Soll eine Abfrage nun den Namen des Mitarbeiters und den Abteilungsnamen anzeigen, müssen die beiden Tabellen zusammengeführt werden um das gewünschte Ergebnis zu liefern.

Ergebnistabelle

Ma_Name

Abteilungs_Name

Hansen

QA

Grundlage Kreuzprodukt

Die Grundlage des Zusammenführens von Tabelle ist das Kreuzprodukt.

Das Kreuzprodukt, auch bekannt als Cartesian Product, ist ein Konzept in der relationalen Datenbanktheorie, das sich auf die Erstellung aller möglichen Kombinationen von Zeilen aus zwei oder mehr Tabellen bezieht.

Das Kreuzprodukt wird erstellt, indem jede Zeile aus einer Tabelle mit jeder Zeile aus der anderen Tabelle kombiniert wird. Wenn man beispielsweise eine Tabelle mit 3 Zeilen und eine Tabelle mit 4 Zeilen hat, erstellt das Kreuzprodukt 12 Ergebniszeilen.

Tabelle 1

Spalte 1

A

B

C

Tabelle 2

Spalte 2

1

2

3

4

Ergebnistabelle

Spalte 1

Spalte 2

A

1

A

2

A

3

A

4

B

1

B

2

B

3

B

4

C

1

C

2

C

3

C

4

Das Zusammenführen von mehreren Tabelle in SQL ist ein JOIN.

SQL JOIN ist ein Befehl, mit dem man Daten aus mehreren Tabellen in einer Datenbank verbinden kann. Die Verbindung wird basierend auf einer gemeinsamen Spalte in den Tabellen hergestellt - häufig die Verbindung über Primäschlüssel und Fremdschlüssel.