DBMS-koblinger: THETA, indre, ytre, ekvivalente koblingstyper

⚡ Smart oppsummering

Joining i DBMS er en binær operasjon som kombinerer rader fra to eller flere tabeller ved hjelp av primærnøklene og fremmednøklene. Joins deles inn i indre joins, som bare returnerer samsvarende rader, og ytre joins, som beholder ikke-samsvarende rader og fyller mellomrom med null.

  • 🔗 Kjerneformål: En sammenføyning slår sammen relaterte tabeller til ett enkelt resultatsett basert på en sammenføyningsbetingelse.
  • 🎯 Indre sammenføyning: Returnerer bare rader som oppfyller betingelsen i begge tabellene; standard sammenføyningstype.
  • 📐 Theta og EQUI: En theta-kobling bruker en hvilken som helst sammenligningsoperator; en EQUI-kobling bruker bare likhet.
  • 🔄 Naturlig sammenføyning: Samsvarer med identisk navngitte attributter og fjerner den dupliserte kolonnen.
  • ¬ i ... Venstre ytre skjøt: Beholder hver rad fra venstre tabell, og fyller ut null der høyre ikke har noen treff.
  • ➡️ Høyre ytre kobling: Beholder hver rad fra den høyre tabellen, og fyller ut null der den venstre ikke har noen treff.
  • 🌐 Full ytre sammenføyning: Beholder alle rader fra begge tabellene uavhengig av treff.

Blir med i DBMS Venstre Høyre

Hva er en Join i DBMS?

Bli med i DBMS er en binær operasjon som lar deg kombinere et sammenføyningsprodukt og et utvalg i én setning. Målet med å opprette en sammenføyningsbetingelse er å kombinere dataene fra to eller flere tabeller. Tabellene er tilknyttet ved hjelp av primærnøklene sine og utenlandske nøkler.

Typer bli med

Det er hovedsakelig to typer sammenføyninger i DBMS:

  1. Indre ledd: Theta, Natural, EQUI
  2. Ytre skjøter: Venstre, Høyre, Full

Tabellen nedenfor viser en forhåndsvisning av alle sammenføyningstypene før hver enkelt forklares med et eksempel.

Bli med Returer Uoverensstemmende rader
Indre (Theta / EQUI / Naturlig) Rader som samsvarer med betingelsen i begge tabellene droppet
Venstre ytre Alle venstre rader pluss treff Holdes fra venstre, null på høyre
Høyre ytre Alle riktige rader pluss treff Holdes fra høyre, null på venstre
Full ytre Alle rader fra begge tabellene Holdt fra begge, null der det mangler

Indre sammenføyning

Indre sammenføyning brukes til å returnere rader fra begge tabellene som oppfyller den gitte betingelsen. Det er den mest brukte sammenføyningsoperasjonen og kan betraktes som standard sammenføyningstype.

En indre sammenføyning, eller ekvisammenføyning, er en komparatorbasert sammenføyning som bruker likhetssammenligninger i sammenføyningspredikatet. Men hvis du bruker andre sammenligningsoperatorer som «>», kan den ikke kalles en ekvisammenføyning. Indre sammenføyning er videre delt inn i tre undertyper:

  • Theta bli med
  • Naturlig sammenføyning
  • EQUI bli med

Theta Bli med

Theta Bli med lar deg slå sammen to tabeller basert på betingelsen representert av theta. Theta-sammenslåinger fungerer for alle sammenligningsoperatorer. Det er angitt med symbolet θDet generelle tilfellet for en JOIN-operasjon kalles en theta-join.

Syntaks:

A ⋈θ B

En theta-kobling kan bruke hvilke som helst betingelser i utvalgskriteriene.

Tenk på følgende tabeller.

Tabell A Tabell B
kolonne 1 kolonne 2 kolonne 1 kolonne 2
1 1 1 1
1 2 1 3

For eksempel:

A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A.kolonne 2 > B.kolonne 2 (B)
kolonne 1 kolonne 2
1 2

EQUI Bli med

EQUI Bli med gjøres når en theta-kobling kun bruker ekvivalensbetingelsen. EQUI-kobling er den vanskeligste operasjonen å implementere effektivt i en RDBMS, og det er én av grunnene til at et RDBMS kan ha ytelsesproblemer.

For eksempel:

A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.kolonne 2 = B.kolonne 2 (B)
kolonne 1 kolonne 2
1 1

Natural Join (⋈)

Naturlig Bli med bruker ingen sammenligningsoperator. I denne typen sammenføyning bør attributtene ha samme navn og domene. I en naturlig sammenføyning bør det være minst ett felles attributt mellom de to relasjonene.

Den utfører et utvalg som danner likhet på attributtene som vises i begge relasjonene og eliminerer duplikatattributtene.

Eksempel: vurder de følgende to tabellene.

C
I Square
2 4
3 9
D
I Cube
2 8
3 18
C ⋈ D
C ⋈ D
I Square Cube
2 4 8
3 9 18

Ytre sammenføyning

An Ytre sammenføyning krever ikke at hver post i de to sammenkoblede tabellene har en samsvarende post. I denne typen sammenkobling beholder tabellen hver post selv om det ikke finnes noen annen samsvarende post. De tre typene ytre sammenkobling er:

  • Venstre ytre skjøt
  • Høyre ytre skjøt
  • Full ytre sammenføyning

Venstre ytre skjøt (A ⟕ B)

Venstre ytre skjøt returnerer alle radene fra tabellen til venstre, selv om ingen samsvarende rader finnes i tabellen til høyre. Når ingen samsvarende poster finnes til høyre, returneres null.

Venstre ytre skjøt

Tenk på de følgende to tabellene.

A
I Square
2 4
3 9
4 16
B
I Cube
2 8
3 18
5 75
A Left Outer Join B
A ⟕ B
I Square Cube
2 4 8
3 9 18
4 16 -

Høyre ytre skjøt (A ⟖ B)

Høyre ytre skjøt returnerer alle kolonnene fra tabellen til høyre, selv om ingen samsvarende rader finnes i tabellen til venstre. Der det ikke finnes noen samsvarende rader til venstre, returneres null. En høyre ytre kobling er det motsatte av en venstre kobling.

Høyre ytre skjøt

A Right Outer Join B
A ⟖ B
I Cube Square
2 8 4
3 18 9
5 75 -

Full ytre sammenføyning (A ⟗ B)

I en Full ytre sammenføyning, alle tupler fra begge relasjonene er inkludert i resultatet, uavhengig av samsvarsbetingelsen.

Eksempel:

A Full Outer Join B
A ⟗ B
I Square Cube
2 4 8
3 9 18
4 16 -
5 - 75

Spørsmål og svar

En indre kobling returnerer bare rader som samsvarer i begge tabellene. En ytre kobling beholder også umatchede rader fra én eller begge tabellene, og fyller den manglende siden med null.

En theta-kobling kan bruke en hvilken som helst sammenligningsoperator, for eksempel større enn eller mindre enn. En EQUI-kobling er en theta-kobling som er begrenset til likhetsoperatoren, så den matcher bare like verdier.

Begge samsvarer ved likhet, men en naturlig kobling samsvarer automatisk på identisk navngitte kolonner og fjerner den dupliserte kolonnen. En EQUI-kobling navngir betingelsen eksplisitt og beholder begge kolonnene.

Ja. Gitt skjemaet og spørsmålet, kan AI velge sammenføyningstype og nøkler, for eksempel en venstre sammenføyning for å holde kunder uten bestillinger. Bekreft resultatet, siden en feil sammenføyning endrer radantall.

Ja. AI kan oppdage at sammenføyningsnøkkelen ikke er unik på én side, noe som fører til en mange-til-mange-eksplosjon, og foreslå å legge til en betingelse eller aggregere først slik at hvert treff telles én gang.

Oppsummer dette innlegget med: