DBMS spojení: Vnitřní, THETA, Vnější, Equi Typy spojení Operace
Co je Join v DBMS?
Připojte se k DBMS je binární operace, která umožňuje spojit produkt spojení a výběr v jednom jediném příkazu. Cílem vytvoření podmínky spojení je, že vám pomůže zkombinovat data ze dvou nebo více tabulek DBMS. Tabulky v DBMS jsou spojeny pomocí primárního klíče a cizích klíčů.
Typy spojení
V DBMS existují hlavně dva typy spojení:
- Vnitřní spojení: Theta, Natural, EQUI
- Vnější spojení: levý, pravý, plný
Podívejme se na ně podrobně:
Vnitřní spojení
Vnitřní spojení slouží k vrácení řádků z obou tabulek, které splňují danou podmínku. Je to nejpoužívanější operace spojení a lze ji považovat za výchozí typ spojení
Vnitřní spojení nebo equijoin je spojení založené na komparátoru, které používá srovnání rovnosti v predikátu spojení. Pokud však použijete jiné porovnávací operátory jako „>“, nelze to nazvat equijoin.
Vnitřní spojení se dále dělí na tři podtypy:
- Připojte se k Theta
- Přirozené spojení
- Připojte se EQUI
Theta Připojte se
Theta Připojte se umožňuje sloučit dvě tabulky na základě podmínky reprezentované theta. Theta joins fungují pro všechny operátory porovnání. Označuje se symbolem θ. Obecný případ operace JOIN se nazývá připojení Theta.
Syntaxe:
A ⋈θ B
Theta join může použít libovolné podmínky ve výběrových kritériích.
Zvažte následující tabulky.
Tabulka A | Tabulka B | |||
---|---|---|---|---|
sloupec 1 | sloupec 2 | sloupec 1 | sloupec 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Například:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A.sloupec 2 > B.sloupec 2 (B) | |
---|---|
sloupec 1 | sloupec 2 |
1 | 2 |
EQUI Připojte se
EQUI Připojte se se provádí, když spojení Theta používá pouze podmínku ekvivalence. EQUI join je nejobtížnější operace, kterou lze efektivně implementovat v RDBMSa jeden z důvodů, proč má RDBMS zásadní problémy s výkonem.
Například:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.sloupec 2 = B.sloupec 2 (B) | |
---|---|
sloupec 1 | sloupec 2 |
1 | 1 |
Přirozené spojení (⋈)
Přirozené spojení nevyužívá žádný ze srovnávacích operátorů. V tomto typu spojení by atributy měly mít stejný název a doménu. V přirozeném spojení by mezi dvěma vztahy měl existovat alespoň jeden společný atribut.
Provádí výběr tvořící rovnost na těch atributech, které se objevují v obou relacích, a odstraňuje duplicitní atributy.
Příklad:
Zvažte následující dvě tabulky
C | |
---|---|
V | náměstí |
2 | 4 |
3 | 9 |
D | |
---|---|
V | Kostka |
2 | 8 |
3 | 18 |
C ⋈ D
C⋈ D | ||
---|---|---|
V | náměstí | Kostka |
2 | 4 | 8 |
3 | 9 | 18 |
Vnější připojení
An Vnější připojení nevyžaduje, aby každý záznam ve dvou tabulkách spojení měl odpovídající záznam. V tomto typu spojení tabulka uchovává každý záznam, i když neexistuje žádný jiný odpovídající záznam.
Tři typy vnějších spojení jsou:
- Levý vnější spoj
- Pravé vnější spojení
- Úplné vnější připojení
Levý vnější spoj (A ⟕ B)
Levý vnější spoj vrátí všechny řádky z tabulky vlevo, i když nebyly nalezeny žádné odpovídající řádky v tabulce vpravo. Pokud není v tabulce vpravo nalezen žádný odpovídající záznam, je vrácena hodnota NULL.
Zvažte následující 2 tabulky
A | |
---|---|
V | náměstí |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
V | Kostka |
2 | 8 |
3 | 18 |
5 | 75 |
A B
A ⋈ B | ||
---|---|---|
V | náměstí | Kostka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Pravý vnější spoj (A ⟖ B)
Pravé vnější spojení vrátí všechny sloupce z tabulky vpravo, i když v tabulce vlevo nebyly nalezeny žádné odpovídající řádky. Pokud nebyly v tabulce nalevo nalezeny žádné shody, je vrácena hodnota NULL. RIGHT vnější JOIN je opakem LEFT JOIN
V našem příkladu předpokládejme, že potřebujete získat jména členů a filmy, které si půjčují. Nyní máme nového člena, který si zatím nepůjčil žádný film.
A B
A ⋈ B | ||
---|---|---|
V | Kostka | náměstí |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Úplné vnější spojení (A ⟗ B)
V Úplné vnější připojení , všechny n-tice z obou vztahů jsou zahrnuty do výsledku, bez ohledu na podmínku shody.
Příklad:
A B
A ⋈ B | ||
---|---|---|
V | náměstí | Kostka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Shrnutí
- Existují hlavně dva typy spojení DBMS 1) Vnitřní spojení 2) Vnější spojení
- Vnitřní spojení je široce používaná operace spojení a lze ji považovat za výchozí typ spojení.
- Inner Join se dále dělí na tři podtypy: 1) Theta join 2) Natural join 3) EQUI join
- Theta Join umožňuje sloučit dvě tabulky na základě podmínky reprezentované theta
- Když theta spojení používá pouze podmínku ekvivalence, stává se ekvi spojením.
- Přirozené spojení nevyužívá žádný z operátorů porovnání.
- Vnější spojení nevyžaduje, aby každý záznam ve dvou tabulkách spojení měl odpovídající záznam.
- Vnější spojení se dále dělí na tři podtypy: 1) Levé vnější spojení 2) Pravé vnější spojení 3) Úplné vnější spojení
- LEFT Outer Join vrátí všechny řádky z tabulky vlevo, i když nebyly nalezeny žádné odpovídající řádky v tabulce vpravo.
- Pravé vnější spojení vrátí všechny sloupce z tabulky napravo, i když v tabulce vlevo nebyly nalezeny žádné odpovídající řádky.
- V úplném vnějším spojení jsou do výsledku zahrnuty všechny n-tice z obou vztahů, bez ohledu na podmínku shody.