Datenbankanfragen - Verbundoperationen
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 93 | |
Author | ||
License | CC Attribution 4.0 International: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/64933 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
Datenbanken61 / 93
3
16
19
20
28
32
39
40
41
49
52
54
58
62
66
70
74
81
83
86
00:00
DatabaseMusical ensembleCartesian productSQLZugriffTable (information)Join-OperationCartesian productTupleField extensionQuery languageCondition numberProduct (business)NumberResultantLattice (order)Keyboard shortcutOperator (mathematics)Data storage deviceMultiplication tableElectronic mailing listStatement (computer science)Descriptive statisticsArrow of timeComputer animation
02:28
Condition numberAttribute grammarEqualiser (mathematics)Table (information)CASE <Informatik>2 (number)Join-OperationProgram flowchart
03:08
Natural numberTable (information)Attribute grammarLattice (order)Natural numberComputer animation
03:31
Natural number2 (number)Table (information)Program flowchartComputer animation
03:37
Natural numberNatural numberCondition numberTable (information)Attribute grammarMultiplication signProduct (business)AnalogyKeyboard shortcutRight angleOperator (mathematics)Lattice (order)Flow separationType theoryAdditionFormal grammarRepresentation (politics)NumberDiagramORACLSCartesian productMySQLJoin-OperationProgram flowchartComputer animation
Transcript: German(auto-generated)
00:06
In diesem Video geht es um die Formulierungen von Verbundoperationen in SQL. Diese können genutzt werden, um Abfragen über mehrere Tabellen zu formulieren. Beispielsweise um zu einem Artikel sowohl die Artikelbezeichnung als auch den Lagerbestand zu ermitteln.
00:28
Dafür ist ein Zugriff auf die Tabellen Lager und Artikel erforderlich. Ein erster Lösungsansatz ist, dass wir in der Tabellenliste, in der From-Klausel, einfach eine weitere Tabelle einfügen.
00:43
Aber wenn wir das machen, erhalten wir statt einem Tupel ganz viele Tupel in unserer Ergebnismenge. Wieso ist das so? Durch die Erweiterung der Tabellenliste wird das Kreuzprodukt zwischen den aufgeführten Tabellen ausgeführt. Aufgrund des Kreuzproduktes kriegen wir jetzt so viele Tupel.
01:04
Die Tabelle Lager besitzt zwar nur ein Tupel mit dem Lagerbestand 0. Dadurch hat die Ergebnismenge so viele Tupel, wie es auch Artikel gibt. Dies können wir korrigieren, indem wir noch die Verbundbedingungen ergänzen. Das erreichen wir, indem wir die Where-Bedingungen ergänzen.
01:24
Hierdurch werden aus dem Kreuzprodukt diejenigen Tupel herausgefiltert, die die gleiche Artikelnummer in beiden Tabellen besitzen. Damit erhalten wir die Ergebnismenge eines Inner-Joints. Dass sich hier ein Inner-Joint verbirgt, ist aber nicht direkt ersichtlich.
01:45
Besser lesbar wird die SQL-Abfrage, wenn die Verbundbedingungen zusammen mit den zugehörenden Tabellen angegeben wird. Dafür werden in der From-Klausel die beiden Tabellen mit dem Join-Operator verknüpft und um die Verbundbedingungen ergänzt.
02:05
Die beiden Formulierungen liefern dieselbe Ergebnismenge, sind also semantisch äquivalent. Hier sehen Sie die grafische Syntax-Beschreibung für ein Inner-Joint. Die durch Pfeile gekennzeichneten Wege ergeben jeweils eine syntaktisch korrekte Verbundoperation.
02:28
Es beginnt mit der Table-Referenz. Das wäre in unserem Fall der Artikel A. Danach kommt die Join-Operation. In dem Fall haben wir ein Inner-Joint, wobei das Schlüsselwort Inner optional ist und auch entfallen kann.
02:46
Danach folgt die zweite Table-Referenz. In diesem Fall wäre das die Tabelle Lager. Danach schließt sich die Verbundbedingung an. Alternativ kann die Verbundbedingung auch durch die Using-Klausel formuliert werden.
03:04
In der Using-Klausel werden dann die Attribute aufgelistet, die auf Gleichheit geprüft werden sollen. Damit handelt es sich in diesem Fall um einen Equijoint. Handelt es sich in beiden Tabellen um die gleichen Attributbezeichnungen, so kann auch ein Natural-Joint ausgeführt werden.
03:27
Dies wird durch das Vorsetzen des Schlüsselworts natural vor dem Schlüsselwort join erreicht. Danach folgt die zweite Tabelle, hier Warenkorb. Durch das Schlüsselwort natural und die beiden beteiligten Tabellen ist die Verbundbedingung eindeutig spezifiziert.
03:50
Vorausgesetzt, die beiden Tabellen haben gleich benannte Attribute. Ist das nicht der Fall, dann wird ein Cross-Joint ausgeführt, also das Kreuzprodukt der beiden Tabellen gebildet.
04:03
Auch Verbundoperationen von mehreren Tabellen können ausgeführt werden. In diesem Beispiel wird zunächst ein Equijoint zwischen den beiden Tabellen Kunde und Warenkorb unter Nutzung des Attributs Kundennummer ausgeführt.
04:22
Daran schließt sich ein Natural-Joint an mit der Tabelle Artikel. Das zeigt, dass dieses Syntax-Diagramm auch mehrfach durchlaufen werden kann. Die Syntax für ein Outer-Joint ist analog aufgebaut.
04:41
Durch das Vorsetzen des Schlüsselworts full, left oder white vor dem Schlüsselwort join wird gekennzeichnet, dass es sich um ein Outer-Joint handelt. In SQL werden nur diese drei Outer-Joint-Arten unterstützt. Ein Anti-Joint kann beispielsweise durch das Hinzufügen einer geeigneten Were-Klausel hieraus erzeugt werden.
05:08
Zusammenfassend hier noch die beiden Syntax-Beschreibungen, Armour für den Inner-Joint und Armour für den Outer-Joint. Diese Darstellung finden Sie beispielsweise in der Dokumentation zum Datenmarktmanagementsystem Oracle.
05:25
In der Dokumentation zum Datenmarktmanagementsystem MySQL finden Sie eine textuelle Beschreibung als Grammatik. Im Vergleich ist diese aber nicht so einfach zu lesen wie die grafische Darstellung, weil Referenzen aufgelöst werden müssen.
05:46
Es ist daher Geschmackssache, welche Darstellungsweise einem mehr oder weniger zusagt.