Ein Theta-Join ist eine Verbindung von Relationen bezüglich beliebiger Attribute und mit einem Selektionsprädikat. Dafür sind die Vergleichsoperatoren =, <, >, ≤, ≥, <>, != zugelassen.
Konkret wird beim Theta-Join erst einmal das kartesische Produkt zwischen den beiden Relationen gebildet. Anschließend wird auf dieses kartesische Produkt die Join-Bedingung angewandt, sodass man damit die Selektion erhält.
r1 * [Join-Bedigung] r2
Damit ist laut Definition ein Theta-Join:
r1 * [Join-Bedigung] r2 = σ[Join-Bedigung] (r1 × r2)
Beispiel für einen Theta-Join
Es sind folgende Relationen r1 und r2 gegeben:| r1 | ||
| a | b | c |
| 1 | 1 | 0 |
| 2 | 1 | 3 |
| r2 | |
| d | e |
| 1 | 1 |
| 2 | 1 |
Nun soll folgender Theta-Join ausgeführt werden: r1 * [a ≤ d] r2
Wer nun den Theta-Join nicht sofort ausführen kann, der bestimmt erst einmal das kartesische Produkt von r1 und r2:
| r1 × r2 | ||||
| a | b | c | d | e |
| 1 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 2 | 1 |
| 2 | 1 | 3 | 1 | 1 |
| 2 | 1 | 3 | 2 | 1 |
Darauf wendet man nun die Bedigung: a ≤ d an und kommt auf folgendes Ergebnis für den Theta-Join:
| r1 * [a ≤ d] r2 | ||||
| a | b | c | d | e |
| 1 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 2 | 1 |
| 2 | 1 | 3 | 2 | 1 |
Ähnliche Themen: