Asocieri DBMS: THETA, Interne, Externe, Equivalente Tipuri de Asociere
⚡ Rezumat inteligent
Într-un SGBD, o joncțiune este o operație binară care combină rânduri din două sau mai multe tabele folosind cheile lor primare și externe. Join-urile se împart în join-uri interne, care returnează doar rândurile care corespund, și join-uri externe, care păstrează rândurile care nu corespund și umplu golurile cu valori nule.

Ce este o joncțiune într-un SGBD?
Alăturați-vă în DBMS este o operație binară care vă permite să combinați un produs de joncțiune și o selecție într-o singură instrucțiune. Scopul creării unei condiții de joncțiune este de a combina datele din două sau mai multe tabele. Tabelele sunt asociate folosind cheile lor primare și chei străine.
Tipuri de alăturare
Există în principal două tipuri de îmbinări în DBMS:
- Imbinari interioare: Theta, Natural, EQUI
- Îmbinări exterioare: Stânga, Dreapta, Completă
Tabelul de mai jos prezintă o previzualizare a tuturor tipurilor de îmbinare înainte ca fiecare să fie explicat cu un exemplu.
| Alatura-te | Returnări | Rânduri nepotrivite |
|---|---|---|
| Interior (Theta / EQUI / Natural) | Rânduri care corespund condiției în ambele tabele | A scăzut |
| Stânga Exterior | Toate rândurile din stânga plus potrivirile | Păstrat din stânga, nul în dreapta |
| Dreapta Exterior | Toate rândurile din dreapta plus potrivirile | Păstrat la dreapta, nul la stânga |
| Exterior complet | Toate rândurile din ambele tabele | Păstrat de la ambele părți, nul unde lipsește |
Alăturare interioară
Alăturare interioară este utilizată pentru a returna rânduri din ambele tabele care îndeplinesc condiția dată. Este cea mai utilizată operație de unire și poate fi considerată tipul implicit de unire.
O joncțiune internă, sau echijoin, este o joncțiune bazată pe comparatoare care utilizează comparații de egalitate în predicatul joncțiunii. Cu toate acestea, dacă utilizați alți operatori de comparație, cum ar fi „>”, nu poate fi numită echijoin. Join-ul intern este î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 pe baza condiției reprezentate de theta. Join-urile theta funcționează pentru toți operatorii de comparație. Sunt notate cu simbolul θCazul general al unei operații JOIN se numește theta join.
Sintaxă:
A ⋈θ B
O joncțiune theta poate utiliza orice condiții în 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 realizează atunci când o joncțiune theta folosește doar condiția de echivalență. Join-ul EQUI este cea mai dificilă operație de implementat eficient într-un RDBMSși acesta este unul dintre motivele pentru care un RDBMS poate avea probleme 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 folosește niciun operator de comparație. În acest tip de joncțiune, atributele ar trebui să aibă același nume și domeniu. Într-o joncțiune naturală, ar trebui să existe cel puțin un atribut comun între cele două relații.
Efectuează o selecție care formează egalitatea asupra atributelor 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 unite să aibă o înregistrare corespondentă. În acest tip de unire, tabelul păstrează fiecare înregistrare chiar dacă nu există nicio altă înregistrare corespondentă. Cele trei tipuri de unire externă 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 se găsesc rânduri corespondente în tabelul din dreapta. Când nu se găsește nicio înregistrare corespondentă în dreapta, se returnează null.
Luați în considerare următoarele două 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 se găsesc rânduri corespondente în tabelul din stânga. În cazul în care nu se găsesc corespondențe în stânga, se returnează valoarea null. O joncțiune externă la dreapta este opusul unei joncțiuni la stânga.
AB
| A ⟖ B | ||
|---|---|---|
| În | Cub | Pătrată |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Îmbinare externă 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 |


