Čo je to Pripojiť sa k systému DBMS?
Pripojenie v DBMS je binárna operácia, ktorá umožňuje kombinovať produkt spojenia a výber v jednom príkaze. Cieľom vytvorenia podmienky spojenia je, že vám pomôže spojiť údaje z dvoch alebo viacerých tabuliek DBMS. Tabuľky v DBMS sú asociované pomocou primárneho kľúča a cudzích kľúčov.
V tomto výučbe DBMS sa dozviete:
- Typy spojenia
- Vnútorné pripojenie
- Pripojte sa Theta
- Pripojiť sa k EQUI:
- Prirodzené spojenie (⋈)
- Vonkajší spoj
- Ľavé vonkajšie spojenie (A
B)
- Pravý vonkajší spoj (A
B)
- Úplné vonkajšie spojenie (A
B)
Typy spojenia
V systéme DBMS existujú hlavne dva typy spojení:
- Vnútorné spojenia: Theta, prírodné, EQUI
- Vonkajší spoj: ľavý, pravý, plný
Pozrime sa na ne podrobne:
Vnútorné pripojenie
INNER JOIN sa používa na vrátenie riadkov z oboch tabuliek, ktoré vyhovujú danej podmienke. Je to najbežnejšia operácia spojenia a dá sa považovať za predvolený typ spojenia
Vnútorné spojenie alebo ekvijoin je spojenie založené na komparátoroch, ktoré používa porovnanie rovnosti v spojení-predikát. Ak však používate iné operátory porovnania, ako je „>“, nemožno to nazvať ekvijoin.
Inner Join sa ďalej delí na tri podtypy:
- Pripojte sa Theta
- Prirodzené spojenie
- Pripojte sa k EQUI
Pripojte sa Theta
THETA JOIN vám umožňuje zlúčiť dve tabuľky na základe podmienky predstavovanej theta. Theta sa pripája k práci pre všetkých operátorov porovnávania. Je označený symbolom θ . Všeobecný prípad operácie JOIN sa nazýva Theta join.
Syntax:
A ⋈θ B
Theta join môže vo výberových kritériách použiť akékoľvek podmienky.
Zvážte nasledujúce tabuľky.
Tabuľka A | Tabuľka B | |||
stĺpec 1 | stĺpec 2 | stĺpec 1 | stĺpec 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
Napríklad:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A. stĺpec 2> B. stĺpec 2 (B) | |
stĺpec 1 | stĺpec 2 |
1 | 2 |
Pripojte sa k EQUI
Pripojenie EQUI sa vykoná, keď pripojenie Theta používa iba podmienku rovnocennosti. Pripojenie EQUI je najťažšia operácia, ktorá sa dá efektívne implementovať v RDBMS, a jedným z dôvodov, prečo majú RDBMS zásadné problémy s výkonom.
Napríklad:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. stĺpec 2 = B. stĺpec 2 (B) | |
stĺpec 1 | stĺpec 2 |
1 | 1 |
Prirodzené spojenie (⋈)
NATURAL JOIN nevyužíva žiadneho z porovnávacích operátorov. V tomto type spojenia by mali mať atribúty rovnaký názov a doménu. V programe Natural Join by mal byť medzi dvoma vzťahmi aspoň jeden spoločný atribút.
Vykonáva rovnosť formujúcu výber u tých atribútov, ktoré sa objavujú v oboch vzťahoch, a eliminuje duplicitné atribúty.
Príklad:
Zvážte nasledujúce dve tabuľky
C. | |
Num | Námestie |
2 | 4 |
3 | 9 |
D | |
Num | Kocka |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
Num | Námestie | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
Vonkajší spoj
OUTER JOIN nevyžaduje každý záznam v dvoch spojení tabuliek mať zodpovedajúci záznam. V tomto type spojenia si tabuľka zachová každý záznam, aj keď neexistuje žiadny iný zhodný záznam.
Tri typy vonkajších spojení sú:
- Ľavý vonkajší spoj
- Správne vonkajšie
- Úplné vonkajšie pripojenie
Ľavé vonkajšie spojenie (A
B)
LEFT JOIN vráti všetky riadky z tabuľky vľavo, aj keď v tabuľke vpravo nenájdete žiadne zodpovedajúce riadky. Ak sa v tabuľke vpravo nenájde žiadny zodpovedajúci záznam, vráti sa NULL.
Zvážte nasledujúce 2 tabuľky
A | |
Num | Námestie |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
Num | Kocka |
2 | 8 |
3 | 18 |
5 | 75 |
AB
A ⋈ B | ||
Num | Námestie | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Pravý vonkajší spoj (A
B)
RIGHT JOIN vráti všetky stĺpce z tabuľky vpravo, aj keď v tabuľke vľavo nenájdete žiadne zodpovedajúce riadky. Ak sa v tabuľke vľavo nenašli žiadne zhody, vráti sa NULL. PRAVÉ vonkajšie spojenie je opakom ľavého spojenia
V našom príklade predpokladajme, že musíte získať mená členov a filmy, ktoré si prenajali. Teraz máme nového člena, ktorý si zatiaľ žiadny film neprenajal.
AB
A ⋈ B | ||
Num | Kocka | Námestie |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Úplné vonkajšie spojenie (A
B)
V FULL OUTER JOIN sú do výsledku zahrnuté všetky n-tice z oboch vzťahov bez ohľadu na podmienku zhody.
Príklad:
AB
A ⋈ B | ||
Num | Námestie | Kocka |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Zhrnutie:
- V systéme DBMS existujú hlavne dva typy spojení 1) Vnútorné spojenie 2) Vonkajšie pripojenie
- Vnútorné spojenie je často používanou operáciou spojenia a možno ho považovať za predvolený typ spojenia.
- Inner Join sa ďalej delí na tri podtypy: 1) Theta join 2) Natural join 3) EQUI join
- Theta Join vám umožňuje zlúčiť dve tabuľky na základe stavu predstavovaného theta
- Ak pripojenie theta použije iba podmienku rovnocennosti, stane sa pripojením ekv.
- Prirodzené spojenie nepoužíva žiadneho z porovnávacích operátorov.
- Vonkajšie spojenie nevyžaduje, aby každý záznam v dvoch tabuľkách spojení mal zodpovedajúci záznam.
- Vonkajší spoj sa ďalej delí na tri podtypy: 1) Ľavý vonkajší spoj 2) Pravý vonkajší spoj 3) Úplný vonkajší spoj
- Funkcia LEFT Outer Join vráti všetky riadky z tabuľky vľavo, aj keď v tabuľke vpravo nenájdete žiadne zodpovedajúce riadky.
- Funkcia RIGHT Outer Join vráti všetky stĺpce z tabuľky vpravo, aj keď v tabuľke vľavo nenájdete žiadne zodpovedajúce riadky.
- V úplnom vonkajšom spojení sú do výsledku zahrnuté všetky n-tice z obidvoch vzťahov bez ohľadu na podmienku zhody.