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.

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:
- Indre ledd: Theta, Natural, EQUI
- 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.
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 |
AB
| 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.
AB
| 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:
AB
| A โ B | ||
|---|---|---|
| I | Square | Cube |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |


