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: