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.

  • 🔗 Scop principal: O joncțiune îmbină tabelele corelate într-un singur set de rezultate pe baza unei condiții de joncțiune.
  • 🎯 Alăturare interioară: Returnează doar rândurile care îndeplinesc condiția în ambele tabele; tipul implicit de joncțiune.
  • 📐 Theta și EQUI: O joncțiune theta folosește orice operator de comparație; o joncțiune EQUI folosește doar egalitatea.
  • 🔄 Îmbinare naturală: Se potrivește cu atribute cu nume identice și elimină coloana duplicată.
  • ⬅️ Unire exterioară stângă: Păstrează fiecare rând din tabelul din stânga, completând cu null acolo unde cel din dreapta nu are potrivire.
  • ➡️ Unire exterioară dreaptă: Păstrează fiecare rând din tabelul din dreapta, completând cu null unde cel din stânga nu are potrivire.
  • 🌐 Alăturare exterioară completă: Păstrează toate rândurile din ambele tabele, indiferent de potrivire.

Join-uri în SGBD Stânga Dreapta

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:

  1. Imbinari interioare: Theta, Natural, EQUI
  2. Î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.

Stânga la exterior

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
A Left Outer Join B
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.

Alăturați-vă la dreapta

A Right Outer Join B
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:

A Full Outer Join B
A ⟗ B
În Pătrată Cub
2 4 8
3 9 18
4 16 -
5 - 75

Întrebări frecvente

O joncțiune internă returnează doar rândurile care se potrivesc în ambele tabele. O joncțiune externă păstrează, de asemenea, rândurile nepotrivite din unul sau ambele tabele, completând partea lipsă cu valori nule.

O joncțiune theta poate utiliza orice operator de comparație, cum ar fi mai mare decât sau mai mic decât. O joncțiune EQUI este o joncțiune theta restricționată la operatorul de egalitate, deci se potrivește doar cu valori egale.

Ambele se potrivesc pe bază de egalitate, dar o joncțiune naturală se potrivește automat pe coloanele cu nume identice și elimină coloana duplicată. O joncțiune EQUI denumește condiția explicit și păstrează ambele coloane.

Da. Având în vedere schema și întrebarea, inteligența artificială poate alege tipul de joncțiune și cheile, de exemplu o joncțiune la stânga pentru a păstra clienții fără comenzi. Confirmați rezultatul, deoarece o joncțiune greșită modifică numărul de rânduri.

Da. Inteligența artificială poate detecta dacă cheia de asociere nu este unică pe o parte, producând o explozie de tip „many-to-many” și poate sugera adăugarea unei condiții sau agregarea mai întâi, astfel încât fiecare potrivire să fie numărată o singură dată.

Rezumați această postare cu: