<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-x-formal">
	<id>https://glossar.hs-augsburg.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=T0m</id>
	<title>GlossarWiki - Benutzerbeiträge [de-formal]</title>
	<link rel="self" type="application/atom+xml" href="https://glossar.hs-augsburg.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=T0m"/>
	<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/Spezial:Beitr%C3%A4ge/T0m"/>
	<updated>2026-07-17T01:24:18Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Verbundoperatoren_(Join)&amp;diff=12703</id>
		<title>Verbundoperatoren (Join)</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Verbundoperatoren_(Join)&amp;diff=12703"/>
		<updated>2009-01-30T03:50:18Z</updated>

		<summary type="html">&lt;p&gt;T0m: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
&lt;br /&gt;
Verbundoperatoren (auch Joins genannt) verbinden die Spalten zweier Tabellen zu einer Tabelle. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Beschreibung=&lt;br /&gt;
&lt;br /&gt;
Es existieren verschiedene Verbundoperatoren:&lt;br /&gt;
&lt;br /&gt;
*Cross Join&lt;br /&gt;
*Inner Join, Equivalent Join&lt;br /&gt;
*Natural Join&lt;br /&gt;
*Left Join, Left Outer Join&lt;br /&gt;
*Right Outer Join, Right Join&lt;br /&gt;
*Full Outer Join, Full Join&lt;br /&gt;
*Union Join&lt;br /&gt;
*Theta Join&lt;br /&gt;
*Self Join&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross Join ==&lt;br /&gt;
Der Cross Join (auch als Kartesisches Produkt oder Kreuzprodukt bezeichnet)verbindet jede Zeile der ersten Tabelle mit jeder Zeile der Zweiten Tabelle. Die Ergebnistabelle eines Cross Joins kann sehr groß werden und ist häufig nutzlos. &lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA CROSS JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
== Inner Join ==&lt;br /&gt;
Der Inner Join verbindet Datensätze aus zwei Tabellen, welche in beiden Tabellen denselben Werte enthalten. Die Spalten die in beiden Tabellen verglichen werden sollen, muß explizit angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA INNER JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
== Natural Join ==&lt;br /&gt;
Der Natural Join verknüpft die beiden Tabellen über die gleichheit der Felder, in Spalten mit gleichem Namen.&lt;br /&gt;
Spalten mit gleichem Namen werden im Ergebnis nur einmal angezeigt. Haben die Tabellen keine Spalten mit gleichem Namen, wird der Natural Join automatisch zum Cross Join.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA NATURAL JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
== Left Join ==&lt;br /&gt;
Der Left Join (auch Left  Outer Join genannt) erstellt eine so genannte linke Inklusionsverknüpfung. Diese schließt alle Datensätze aus der ersten (linken) Tabelle ein, auch wenn keine entsprechenden Werte für die Datensätze in der zweiten (rechten) Tabelle existieren. Die zu vergleichenden Spalten müssen explizit Angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA LEFT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
== Right Join ==&lt;br /&gt;
Der Right Join (auch Right Outer Join genannt) erstellt eine so genannte rechte Inklusionsverknüpfung. Diese schließt alle Datensätze aus der zweiten (rechten) Tabelle ein, auch wenn keine entsprechenden Werte für die Datensätze in der ersten (linken) Tabelle existieren. Die zu vergleichenden Spalten müssen explizit Angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA RIGHT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
== Full Join ==&lt;br /&gt;
Der Full Join (auch  Full Outer Join genannt) ist eine Kombination von Left Join und Right Join. Die zu vergleichenden Spalten müssen explizit Angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA FULL JOIN TabelleB ON TabelleA.Index = Tabelle.Index&lt;br /&gt;
&lt;br /&gt;
==Union Join==&lt;br /&gt;
Der Union Join nimmt die Datensätze beider Tabellen auf und gibt sie in einer Tabelle aus.&lt;br /&gt;
Der Union Join steht nicht immer zur Verfügung, da er zum SQL 92 Intermediate Level gehört. &lt;br /&gt;
In PostgreSQL steht der Union Join nicht zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA UNION JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
==Theta Join==&lt;br /&gt;
Der Theta Join ist eine Verallgemeinerung des Inner Join. Beim Inner Join wird die Gleichheit des Inhalts zweier Attribute verglichen und beim Theta Join wird der Inhalt der Attribute x und y mit einer beliebigen Formel, zum Beispiel &amp;quot;&amp;lt;&amp;quot;, &amp;quot;&amp;lt;=&amp;quot;, &amp;quot;&amp;gt;&amp;quot;, &amp;quot;&amp;gt;=&amp;quot;, &amp;quot;&amp;lt;&amp;gt;&amp;quot; verglichen.&lt;br /&gt;
 SELECT * FROM TabelleA INNER JOIN TabelleB ON TabelleA.x &amp;lt;= TabelleB.y&lt;br /&gt;
&lt;br /&gt;
==Self Join==&lt;br /&gt;
Der Self Join dient dazu, um in bestimmten Situationen einen Verbund innerhalb einer einzigen Tabelle bilden zu können. Dazu muss man der Tabelle zwei verschiedene Aliasnamen geben. Self Joins können mit allen Joins durchgeführt werden. Ein Beispiel für den Gebrauch eines Self Joins ist zum Beispiel ein Vergleich innerhalb einer Tabelle. &lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Cross Join==&lt;br /&gt;
 SELECT * FROM TabelleA CROSS JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               1           Jan           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               1           Jan           5         08.11.2001&lt;br /&gt;
                                                         2           Tom           1         16.05.1976&lt;br /&gt;
                                                         2           Tom           2         29.07.1985&lt;br /&gt;
                                                         2           Tom           5         08.11.2001&lt;br /&gt;
                                                         3           Anne          1         16.05.1976&lt;br /&gt;
                                                         3           Anne          2         29.07.1985&lt;br /&gt;
                                                         3           Anne          5         08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Inner Join ==&lt;br /&gt;
 SELECT * FROM TabelleA INNER JOIN TabelleB ON TabelleA.Index = TabelleB.Liste&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               &lt;br /&gt;
                                                         &lt;br /&gt;
                                                         &lt;br /&gt;
== Natural Join ==&lt;br /&gt;
 SELECT * FROM TabelleA NATURAL JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                       &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum           Index |  Name |  Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976            1      Jan     16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985            2      Tom     29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Left Join ==&lt;br /&gt;
 SELECT * FROM TabelleA LEFT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               3           Anne         NULL          NULL&lt;br /&gt;
&lt;br /&gt;
== Right Join ==&lt;br /&gt;
 SELECT * FROM TabelleA RIGHT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001              NULL         NULL          5         08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Full Join ==&lt;br /&gt;
 SELECT * FROM TabelleA FULL JOIN TabelleB ON TabelleA.Index = Tabelle.Index&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               3           Anne         NULL          NULL&lt;br /&gt;
                                                        NULL         NULL          5         08.11.2001&lt;br /&gt;
== Union Join ==&lt;br /&gt;
 SELECT * FROM Mitarbeiter UNION JOIN Projekte&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan          NULL          NULL&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom          NULL          NULL&lt;br /&gt;
    3      Anne           5     08.11.2001               3           Anne         NULL          NULL&lt;br /&gt;
                                                        NULL         NULL          1         16.05.1976&lt;br /&gt;
                                                        NULL         NULL          2         29.07.1985&lt;br /&gt;
                                                        NULL         NULL          5         08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Theta Join == &lt;br /&gt;
Sie haben eine Tabelle mit Mannschaften und möchten diese im Weltmeisterschaftsmodus (Für Hin- und Rückspiel müssen Sie einfach den Operator &amp;quot;&amp;lt;&amp;gt;&amp;quot; verwenden) gegeneinander antreten lassen:&lt;br /&gt;
 SELECT x.Team AS Heim, y.Team AS Gast FROM Mannschaften AS x INNER JOIN Mannschaften AS y ON h.m_id &amp;gt; g.m_id&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Mannschaften&#039;&#039;&#039;                                            &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   m_id  | Team                                          Heim    |    Gast&lt;br /&gt;
    1      Deutschland                                   Spanien      Deutschland                  &lt;br /&gt;
    2      Spanien                                       Holland      Deutschland          &lt;br /&gt;
    3      Holland                                       Italien      Deutschland               &lt;br /&gt;
    4      Italien                                       Holland      Spanien          &lt;br /&gt;
                                                         Italien      Spanien          &lt;br /&gt;
                                                         Italien      Holland          &lt;br /&gt;
== Self Join == &lt;br /&gt;
Sie haben eine Tabelle mit Namen, Personalnummer und der Personalnummer des Vorgesetzten. Es soll zu jedem Mitarbeiter der Name des Vorgesetzten ermittelt werden: &lt;br /&gt;
 SELECT x.Name, x.Personalnummer, y.Name &amp;quot;Chef&amp;quot; FROM Mitarbeiter x, Mitarbeiter y WHERE x.ChefsPersonalnummer = y.Personalnummer  &lt;br /&gt;
&lt;br /&gt;
               &#039;&#039;&#039;Mitarbeiter&#039;&#039;&#039;                                              &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Personalnummer  | Name |  ChefsPersonalnummer         Name    |    Personalnummer   |   Chef&lt;br /&gt;
         1          Maier         2                      Maier              1             Mueller&lt;br /&gt;
         2          Mueller       3                      Mueller            2             Kuenstler       &lt;br /&gt;
         3          Kuenstler     1                      Kuenstler          3             Maier          &lt;br /&gt;
                                        &lt;br /&gt;
=Quellen=&lt;br /&gt;
*http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap7.htm&lt;br /&gt;
*http://www.thomaskaelin.ch/media/archive1/zusammenfassungen/db1.pdf&lt;br /&gt;
*http://www.postgresql.org/docs/8.3/interactive/queries-table-expressions.html&lt;br /&gt;
*http://www.tinohempel.de/info/info/datenbank/operation.htm&lt;br /&gt;
*http://aktuell.de.selfhtml.org/artikel/datenbanken/&lt;br /&gt;
* http://rowa.giso.de/oracle/latex/Komplexere_SQL_Abfragen.html&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>T0m</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Verbundoperatoren_(Join)&amp;diff=12172</id>
		<title>Verbundoperatoren (Join)</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Verbundoperatoren_(Join)&amp;diff=12172"/>
		<updated>2008-07-15T22:05:41Z</updated>

		<summary type="html">&lt;p&gt;T0m: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Definition=&lt;br /&gt;
&lt;br /&gt;
Verbundoperatoren (auch Joins genannt) verbinden die Spalten zweier Tabellen zu einer Tabelle. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Beschreibung=&lt;br /&gt;
&lt;br /&gt;
Es existieren verschiedene Verbundoperatoren:&lt;br /&gt;
&lt;br /&gt;
*Cross Join&lt;br /&gt;
*Inner Join, Equivalent Join&lt;br /&gt;
*Natural Join&lt;br /&gt;
*Left Join, Left Outer Join&lt;br /&gt;
*Right Outer Join, Right Join&lt;br /&gt;
*Full Outer Join, Full Join&lt;br /&gt;
*Union Join&lt;br /&gt;
*Theta Join&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cross Join ==&lt;br /&gt;
Der Cross Join (auch als Kartesisches Produkt oder Kreuzprodukt bezeichnet)verbindet jede Zeile der ersten Tabelle mit jeder Zeile der Zweiten Tabelle. Die Ergebnistabelle eines Cross Joins kann sehr groß werden und ist häufig nutzlos. &lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA CROSS JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
== Inner Join ==&lt;br /&gt;
Der Inner Join verbindet Datensätze aus zwei Tabellen, welche in beiden Tabellen denselben Werte enthalten. Die Spalten die in beiden Tabellen verglichen werden sollen, muß explizit angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA INNER JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
== Natural Join ==&lt;br /&gt;
Der Natural Join verknüpft die beiden Tabellen über die gleichheit der Felder, in Spalten mit gleichem Namen.&lt;br /&gt;
Spalten mit gleichem Namen werden im Ergebnis nur einmal angezeigt. Haben die Tabellen keine Spalten mit gleichem Namen, wird der Natural Join automatisch zum Cross Join.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA NATURAL JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
== Left Join ==&lt;br /&gt;
Der Left Join (auch Left  Outer Join genannt) erstellt eine so genannte linke Inklusionsverknüpfung. Diese schließt alle Datensätze aus der ersten (linken) Tabelle ein, auch wenn keine entsprechenden Werte für die Datensätze in der zweiten (rechten) Tabelle existieren. Die zu vergleichenden Spalten müssen explizit Angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA LEFT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
== Right Join ==&lt;br /&gt;
Der Right Join (auch Right Outer Join genannt) erstellt eine so genannte rechte Inklusionsverknüpfung. Diese schließt alle Datensätze aus der zweiten (rechten) Tabelle ein, auch wenn keine entsprechenden Werte für die Datensätze in der ersten (linken) Tabelle existieren. Die zu vergleichenden Spalten müssen explizit Angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA RIGHT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
== Full Join ==&lt;br /&gt;
Der Full Join (auch  Full Outer Join genannt) ist eine Kombination von Left Join und Right Join. Die zu vergleichenden Spalten müssen explizit Angegeben werden.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA FULL JOIN TabelleB ON TabelleA.Index = Tabelle.Index&lt;br /&gt;
&lt;br /&gt;
==Union Join==&lt;br /&gt;
Der Union Join nimmt die Datensätze beider Tabellen auf und gibt sie in einer Tabelle aus.&lt;br /&gt;
Der Union Join steht nicht immer zur Verfügung, da er zum SQL 92 Intermediate Level gehört. &lt;br /&gt;
In PostgreSQL steht der Union Join nicht zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
 SELECT * FROM TabelleA UNION JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
==Theta Join==&lt;br /&gt;
Der Theta Join ist eine Verallgemeinerung des Inner Join. Beim Inner Join wird die Gleichheit des Inhalts zweier Attribute verglichen und beim Theta Join wird der Inhalt der Attribute x und y mit einer beliebigen Formel, zum Beispiel &amp;quot;&amp;lt;&amp;quot;, &amp;quot;&amp;lt;=&amp;quot;, &amp;quot;&amp;gt;&amp;quot;, &amp;quot;&amp;gt;=&amp;quot;, &amp;quot;&amp;lt;&amp;gt;&amp;quot; verglichen.&lt;br /&gt;
 SELECT * FROM TabelleA INNER JOIN TabelleB ON TabelleA.x &amp;lt;= TabelleB.y&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
==Cross Join==&lt;br /&gt;
 SELECT * FROM TabelleA CROSS JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               1           Jan           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               1           Jan           5         08.11.2001&lt;br /&gt;
                                                         2           Tom           1         16.05.1976&lt;br /&gt;
                                                         2           Tom           2         29.07.1985&lt;br /&gt;
                                                         2           Tom           5         08.11.2001&lt;br /&gt;
                                                         3           Anne          1         16.05.1976&lt;br /&gt;
                                                         3           Anne          2         29.07.1985&lt;br /&gt;
                                                         3           Anne          5         08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Inner Join ==&lt;br /&gt;
 SELECT * FROM TabelleA INNER JOIN TabelleB ON TabelleA.Index = TabelleB.Liste&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               &lt;br /&gt;
                                                         &lt;br /&gt;
                                                         &lt;br /&gt;
== Natural Join ==&lt;br /&gt;
 SELECT * FROM TabelleA NATURAL JOIN TabelleB&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                       &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum           Index |  Name |  Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976            1      Jan     16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985            2      Tom     29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Left Join ==&lt;br /&gt;
 SELECT * FROM TabelleA LEFT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               3           Anne         NULL          NULL&lt;br /&gt;
&lt;br /&gt;
== Right Join ==&lt;br /&gt;
 SELECT * FROM TabelleA RIGHT JOIN TabelleB ON TabelleA.Index = TabelleB.Index&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001              NULL         NULL          5         08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Full Join ==&lt;br /&gt;
 SELECT * FROM TabelleA FULL JOIN TabelleB ON TabelleA.Index = Tabelle.Index&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan           1         16.05.1976&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom           2         29.07.1985&lt;br /&gt;
    3      Anne           5     08.11.2001               3           Anne         NULL          NULL&lt;br /&gt;
                                                        NULL         NULL          5         08.11.2001&lt;br /&gt;
== Union Join ==&lt;br /&gt;
 SELECT * FROM Mitarbeiter UNION JOIN Projekte&lt;br /&gt;
&lt;br /&gt;
       &#039;&#039;&#039;TabelleA&#039;&#039;&#039;             &#039;&#039;&#039;TabelleB&#039;&#039;&#039;                                    &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   Index | Name         Index | Geb.Datum          TabelleA.Index |  Name | TabelleB.Index | Geb.Datum&lt;br /&gt;
    1      Jan            1     16.05.1976               1           Jan          NULL          NULL&lt;br /&gt;
    2      Tom            2     29.07.1985               2           Tom          NULL          NULL&lt;br /&gt;
    3      Anne           5     08.11.2001               3           Anne         NULL          NULL&lt;br /&gt;
                                                        NULL         NULL          1         16.05.1976&lt;br /&gt;
                                                        NULL         NULL          2         29.07.1985&lt;br /&gt;
                                                        NULL         NULL          5         08.11.2001&lt;br /&gt;
&lt;br /&gt;
== Theta Join == &lt;br /&gt;
Sie haben eine Tabelle mit Mannschaften und möchten diese im Weltmeisterschaftsmodus (Für Hin- und Rückspiel müssen Sie einfach den Operator &amp;quot;&amp;lt;&amp;gt;&amp;quot; verwenden) gegeneinander antreten lassen:&lt;br /&gt;
 SELECT x.Team AS Heim, y.Team AS Gast FROM Mannschaften AS x INNER JOIN Mannschaften AS y ON h.m_id &amp;gt; g.m_id&lt;br /&gt;
&lt;br /&gt;
      &#039;&#039;&#039;Mannschaften&#039;&#039;&#039;                                            &#039;&#039;&#039;Ergebnis&#039;&#039;&#039;&lt;br /&gt;
   m_id  | Team                                          Heim    |    Gast&lt;br /&gt;
    1      Deutschland                                   Spanien      Deutschland                  &lt;br /&gt;
    2      Spanien                                       Holland      Deutschland          &lt;br /&gt;
    3      Holland                                       Italien      Deutschland               &lt;br /&gt;
    4      Italien                                       Holland      Spanien          &lt;br /&gt;
                                                         Italien      Spanien          &lt;br /&gt;
                                                         Italien      Holland          &lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
*http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/chap7.htm&lt;br /&gt;
*http://www.thomaskaelin.ch/media/archive1/zusammenfassungen/db1.pdf&lt;br /&gt;
*http://www.postgresql.org/docs/8.3/interactive/queries-table-expressions.html&lt;br /&gt;
*http://www.tinohempel.de/info/info/datenbank/operation.htm&lt;br /&gt;
*http://aktuell.de.selfhtml.org/artikel/datenbanken/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>T0m</name></author>
	</entry>
	<entry>
		<id>https://glossar.hs-augsburg.de/w/index.php?title=Kategorie:UML&amp;diff=12160</id>
		<title>Kategorie:UML</title>
		<link rel="alternate" type="text/html" href="https://glossar.hs-augsburg.de/w/index.php?title=Kategorie:UML&amp;diff=12160"/>
		<updated>2008-07-15T20:13:34Z</updated>

		<summary type="html">&lt;p&gt;T0m: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Eingereicht zur Überprüfung}}&lt;br /&gt;
&lt;br /&gt;
=Definition=&lt;br /&gt;
UML steht für Unified Modeling Language und ist eine grafische Darstellung zur Beschreibung objektorientierter Modelle. UML ist von der OMG entwickelt und standartisiert. Das UML-Modell hilft in der Entwurfsphase bevors es an das Programmieren der Software geht, in dem es folgende Aufgaben erfüllt:&lt;br /&gt;
* Analyse der Anforderungen&lt;br /&gt;
* Visualisierung eines Problems&lt;br /&gt;
* Entwurf von Programmen und Datenbanken&lt;br /&gt;
* Kommunikation mit Anwendungsexperten&lt;br /&gt;
* Implemtierung der Lösung in einer Programmiersprache und&lt;br /&gt;
* Vorbereitung der Dokumentation&lt;br /&gt;
&lt;br /&gt;
=Historie der UML=&lt;br /&gt;
Mitte der 70er Jahre tauchten die ersten Modellierungssprachen für die objektorientierte Analyse und das objektorientierte Design auf. Bekannte Modellierungsmethoden wurden  zum Beispiel von Grady Booch, Ivar Jacobson, James Rumbaugh sowie Edward Yourdon und Peter Coad entwickelt. 1995 kam es im Auftrag der Rational Software Corporation dazu, dass Booch und Rumbaugh ihre Ansätze zur so genannten Unified Method (UM) vereinten. Als dann noch Elemte des Object Oriented Software Engineering (OOSE) von Ivar Jacobson eingebracht wurden, war dies die Geburtsstunde der UML-Version 0.9. Der Zusammenschluss von Grady Booch, Ivar Jacobson und James Rumbaugh, die seitdem in der Fachwelt auch als &amp;quot;die drei Amigos&amp;quot; bekannt sind, führte dazu, dass sich immer mehr namhafte Firmen und andere Organisationen den Bemühungen um eine einheitliche Sprache anschlossen. 1997 wurde deshalb die UML-Version 1.1 veröffentlicht, die bei der Object Management Group (OMG) zur Standardisierung eingereicht und akzeptiert wurde. Seitdem ist die OMG verantwortlich für die Pflege und Weiterentwicklung der UML und hat Im November 2007 die aktuelle Version UML 2.1.2 released.&lt;br /&gt;
 &lt;br /&gt;
=UML-Diagrammtypen=&lt;br /&gt;
    * Anwendungsfalldiagramm&lt;br /&gt;
    * Klassendiagramm&lt;br /&gt;
    * Aktivitätsdiagramm&lt;br /&gt;
    * Kollaborationsdiagramm&lt;br /&gt;
    * Sequenzdiagramm&lt;br /&gt;
    * Zustandsdiagramm&lt;br /&gt;
    * Komponentendiagramm&lt;br /&gt;
    * Einsatzdiagramm&lt;br /&gt;
&lt;br /&gt;
=Klassen=&lt;br /&gt;
[[Medium:UML_grafiken_klassen.png]]&lt;br /&gt;
&lt;br /&gt;
Grafisch werden Klassen und Objekte im UML in der Regel als Rechtecke dargestellt. Diese wiederum sind in drei Bereiche unterteilt: An oberster Stelle steht der Klassenname, dann folgen die Attributdefinition mit Attributnamen und Attributtypen und im 3. Abschnitt die Methodendeklarationen. Auch die Sichtbarkeit (public, private, protected) der Attribute und Methoden können hier bereits angegeben werden. Objekte haben einen ähnlichen Aufbau, statt Klassenname wird hier der Objektname eingetragen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Assoziation=&lt;br /&gt;
[[Medium:UML_grafiken_assoziation.png]]&lt;br /&gt;
&lt;br /&gt;
Die Assoziation beschreibt eine Beziehung zwischen zwei oder mehreren Objekten. Assoziationen können gerichtet und ungerichtet sein. Gerichtete Assoziationen geben eine Navigationsrichtung vor, diese wird mit einem offenen Pfeil dargestellt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Aggregation=&lt;br /&gt;
[[Medium:UML_grafiken_aggregation.png]]&lt;br /&gt;
&lt;br /&gt;
Die Aggregation ist eine spezielle Form der Assoziation. Dabei handelt es sich um eine Part-of-Beziehung. Im Fall der Aggregation kann ein Teil des Ganzen auch bestehen, wenn das Ganze nicht mehr existiert. Dargestellt wir diese Verbindung mit einer ungefüllten Raute.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Komposition=&lt;br /&gt;
[[Medium:UML_grafiken_komposition.png]]&lt;br /&gt;
&lt;br /&gt;
Die Komposition ist ebenfalls eine Assoziation, allerdings hängt die Existenz der einzelnen Teile vom Aggregat ab. Sie können nicht alleine bestehen. Die Komposition erkennt man an der gefüllten Raute.&lt;br /&gt;
&lt;br /&gt;
=Kardinalität=&lt;br /&gt;
An den Enden der Beziehungen wird die Kardinalität angeben. Dadurch wird festgelegt wie häufig ein Objekt diese Beziehung eingehen kann. Zum Beispiel besteht der Katalog aus einem bis unendlich vielen Artikeln. Der Artikel ist Teil von keinem bis unendlich vielen Katalogen.&lt;br /&gt;
&lt;br /&gt;
=Quellen=&lt;br /&gt;
*Objektrelationale Datenbanken, Can Türker, Gunter Saake, 2006, ISBN 3-89864-190-2&lt;br /&gt;
*Das Einsteigerseminar UML 2, Dr. Thomas Erler, 2004, ISBN 3-8266-7363-8&lt;br /&gt;
*http://www.oose.de/uml.htm&lt;br /&gt;
*http://www.omg.org/uml&lt;br /&gt;
*http://www.jeckle.de/unified.htm&lt;br /&gt;
*http://www.torsten-horn.de/techdocs/uml.htm#UML-Use-Case-Diagramm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:Informatik]]&lt;/div&gt;</summary>
		<author><name>T0m</name></author>
	</entry>
</feed>