Uniri DBMS: tipuri de unire interioare, THETA, exterioare, echi Operații
Ce este Join in DBMS?
Alăturați-vă în DBMS este o operațiune binară care vă permite să combinați produsul de unire și selecția într-o singură declarație. Scopul creării unei condiții de îmbinare este că vă ajută să combinați datele din două sau mai multe tabele DBMS. Tabelele din DBMS sunt asociate folosind cheia primară și cheile externe.
Tipuri de alăturare
Există în principal două tipuri de îmbinări în DBMS:
- Imbinari interioare: Theta, Natural, EQUI
- Unire exterioară: stânga, dreapta, complet
Să le vedem în detaliu:
Alăturare interioară
Alăturare interioară este folosit pentru a returna rânduri din ambele tabele care îndeplinesc condiția dată. Este cea mai utilizată operațiune de îmbinare și poate fi considerată ca tip de îmbinare implicit
O îmbinare interioară sau echijoin este o îmbinare bazată pe comparator care utilizează comparații de egalitate în predicatul de îmbinare. Cu toate acestea, dacă utilizați alți operatori de comparație precum „>” nu poate fi numit echijoin.
Inner Join împărțit în continuare în trei subtipuri:
- Theta se alătură
- Unire naturală
- EQUI se alătură
Theta Join
Theta Join vă permite să îmbinați două tabele în funcție de condiția reprezentată de theta. Theta se alătură muncii pentru toți operatorii de comparație. Este notat prin simbol θ. Cazul general al operațiunii JOIN se numește unire Theta.
Sintaxă:
A ⋈θ B
Theta join poate folosi orice condiții din criteriile de selecție.
Luați în considerare următoarele tabele.
Tabelul A | Tabelul B | |||
---|---|---|---|---|
coloana 1 | coloana 2 | coloana 1 | coloana 2 | |
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
De exemplu:
A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A.coloana 2 > B.coloana 2 (B) | |
---|---|
coloana 1 | coloana 2 |
1 | 2 |
Alăturați-vă EQUI
Alăturați-vă EQUI se face atunci când o îmbinare Theta folosește numai condiția de echivalență. EQUI join este cea mai dificilă operațiune de implementat eficient într-un RDBMS, și un motiv pentru care RDBMS au probleme esențiale de performanță.
De exemplu:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.coloana 2 = B.coloana 2 (B) | |
---|---|
coloana 1 | coloana 2 |
1 | 1 |
Asociere naturală (⋈)
Asociere naturală nu utilizează niciunul dintre operatorii de comparație. În acest tip de alăturare, atributele ar trebui să aibă același nume și același domeniu. În Natural Join, ar trebui să existe cel puțin un atribut comun între două relații.
Efectuează selecția formând egalitate asupra acelor atribute care apar în ambele relații și elimină atributele duplicate.
Exemplu:
Luați în considerare următoarele două tabele
C | |
---|---|
În | Pătrat |
2 | 4 |
3 | 9 |
D | |
---|---|
În | Cub |
2 | 8 |
3 | 18 |
C ⋈ D
C ⋈ D | ||
---|---|---|
În | Pătrat | Cub |
2 | 4 | 8 |
3 | 9 | 18 |
Alăturare exterioară
An Alăturare exterioară nu necesită ca fiecare înregistrare din cele două tabele de unire să aibă o înregistrare care se potrivește. În acest tip de îmbinare, tabelul reține fiecare înregistrare chiar dacă nu există nicio altă înregistrare care se potrivește.
Trei tipuri de îmbinări exterioare sunt:
- Stânga la exterior
- Alăturați-vă la dreapta
- Alăturare completă exterioară
Îmbinare exterioară stângă (A ⟕ B)
Stânga la exterior returnează toate rândurile din tabelul din stânga chiar dacă nu au fost găsite rânduri care să se potrivească în tabelul din dreapta. Când nu se găsește nicio înregistrare care să corespundă în tabelul din dreapta, este returnat NULL.
Luați în considerare următoarele 2 tabele
A | |
---|---|
În | Pătrat |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
În | Cub |
2 | 8 |
3 | 18 |
5 | 75 |
AB
A ⋈ B | ||
---|---|---|
În | Pătrat | Cub |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
Îmbinare exterioară dreaptă ( A ⟖ B )
Alăturați-vă la dreapta returnează toate coloanele din tabelul din dreapta chiar dacă nu au fost găsite rânduri care să corespundă în tabelul din stânga. Acolo unde nu au fost găsite potriviri în tabelul din stânga, este returnat NULL. RIGHT outer JOIN este opusul LEFT JOIN
În exemplul nostru, să presupunem că trebuie să obțineți numele membrilor și filmele închiriate de aceștia. Acum avem un nou membru care nu a închiriat încă niciun film.
AB
A ⋈ B | ||
---|---|---|
În | Cub | Pătrat |
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Îmbinare exterioară completă ( A ⟗ B)
Într-o Alăturare completă exterioară , toate tuplurile din ambele relații sunt incluse în rezultat, indiferent de condiția de potrivire.
Exemplu:
AB
A ⋈ B | ||
---|---|---|
În | Pătrat | Cub |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Rezumat
- Există în principal două tipuri de îmbinări Baze de date 1) Imbinare interioara 2) Imbinare exterioara
- O îmbinare internă este operația de îmbinare utilizată pe scară largă și poate fi considerată un tip de îmbinare implicit.
- Inner Join este împărțit în continuare în trei subtipuri: 1) Imbinare Theta 2) Imbinare naturală 3) Imbinare EQUI
- Theta Join vă permite să îmbinați două tabele în funcție de condiția reprezentată de theta
- Când o îmbinare theta folosește numai condiția de echivalență, devine o îmbinare echi.
- Asocierea naturală nu utilizează niciunul dintre operatorii de comparație.
- O îmbinare exterioară nu necesită ca fiecare înregistrare din cele două tabele de îmbinare să aibă o înregistrare care se potrivește.
- Îmbinarea exterioară este împărțită în trei subtipuri: 1) Îmbinarea exterioară din stânga 2) Îmbinarea exterioară din dreapta 3) Îmbinarea exterioară completă
- Left Outer Join returnează toate rândurile din tabelul din stânga, chiar dacă nu au fost găsite rânduri care să se potrivească în tabelul din dreapta.
- RIGHT Outer Join returnează toate coloanele din tabelul din dreapta, chiar dacă nu au fost găsite rânduri care să se potrivească în tabelul din stânga.
- Într-o îmbinare exterioară completă, toate tuplurile din ambele relații sunt incluse în rezultat, indiferent de condiția de potrivire.