DBMS-kopplingar: THETA, Inner, Outer, Equi-kopplingstyper
โก Smart sammanfattning
Join i DBMS รคr en binรคr operation som kombinerar rader frรฅn tvรฅ eller flera tabeller med hjรคlp av deras primรคra och frรคmmande nycklar. Joins delas upp i inner joins, som endast returnerar matchande rader, och outer joins, som behรฅller omatchade rader och fyller luckor med null.

Vad รคr en Join i ett DBMS?
Gรฅ med i DBMS รคr en binรคr operation som lรฅter dig kombinera en join-produkt och ett urval i en enda sats. Mรฅlet med att skapa ett join-villkor รคr att kombinera data frรฅn tvรฅ eller flera tabeller. Tabellerna associeras med hjรคlp av sina primรคrnycklar och utlรคndska nycklar.
Typer av gรฅ med
Det finns huvudsakligen tvรฅ typer av kopplingar i DBMS:
- Inre leder: Theta, Natural, EQUI
- Yttre skarvar: Vรคnster, Hรถger, Full
Tabellen nedan fรถrhandsgranskar alla kopplingstyper innan varje fรถrklaras med ett exempel.
| Ansluta sig | Returer | Omatchade rader |
|---|---|---|
| Inre (Theta / EQUI / Naturlig) | Rader som matchar villkoret i bรฅda tabellerna | Tappade |
| Vรคnster yttre | Alla vรคnstra rader plus trรคffar | Hรฅlls frรฅn vรคnster, null till hรถger |
| Hรถger yttre | Alla hรถgra rader plus matchningar | Hรฅlls frรฅn hรถger, null till vรคnster |
| Fullstรคndig yttre | Alla rader frรฅn bรฅda tabellerna | Undantaget frรฅn bรฅda, null dรคr det saknas |
Inre koppling
Inre koppling anvรคnds fรถr att returnera rader frรฅn bรฅda tabellerna som uppfyller det givna villkoret. Det รคr den mest anvรคnda kopplingsoperationen och kan betraktas som standardkopplingstypen.
En inner join, eller equijoin, รคr en jรคmfรถrelsebaserad join som anvรคnder likhetsjรคmfรถrelser i join-predikatet. Men om du anvรคnder andra jรคmfรถrelseoperatorer som ">" kan den inte kallas en equijoin. Inner join รคr vidare indelad i tre undertyper:
- Theta gรฅr med
- Naturlig anslutning
- EQUI gรฅ med
Theta Gรฅ med
Theta Gรฅ med lรฅter dig slรฅ samman tvรฅ tabeller baserat pรฅ villkoret som representeras av theta. Theta-kopplingar fungerar fรถr alla jรคmfรถrelseoperatorer. Det betecknas med symbolen ฮธDet allmรคnna fallet med en JOIN-operation kallas en theta-join.
Syntax:
A โฮธ B
En theta-koppling kan anvรคnda vilka villkor som helst i urvalskriterierna.
Tรคnk pรฅ fรถljande tabeller.
| Tabell A | Tabell B | |||
|---|---|---|---|---|
| kolumn 1 | kolumn 2 | kolumn 1 | kolumn 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Till exempel:
A โ A.column 2 > B.column 2 (B)
| A โ A.kolumn 2 > B.kolumn 2 (B) | |
|---|---|
| kolumn 1 | kolumn 2 |
| 1 | 2 |
EQUI Gรฅ med
EQUI Gรฅ med gรถrs nรคr en theta-join endast anvรคnder ekvivalensvillkoret. EQUI-join รคr den svรฅraste operationen att implementera effektivt i en RDBMS, och det รคr en anledning till varfรถr ett RDBMS kan ha prestandaproblem.
Till exempel:
A โ A.column 2 = B.column 2 (B)
| A โ A.kolumn 2 = B.kolumn 2 (B) | |
|---|---|
| kolumn 1 | kolumn 2 |
| 1 | 1 |
Naturlig gรฅ med (โ)
Naturlig gรฅ med anvรคnder ingen jรคmfรถrelseoperator. I den hรคr typen av koppling bรถr attributen ha samma namn och domรคn. I en naturlig koppling bรถr det finnas minst ett gemensamt attribut mellan de tvรฅ relationerna.
Den utfรถr ett urval som skapar likhet pรฅ de attribut som fรถrekommer i bรฅda relationerna och eliminerar de dubbla attributen.
Exempel: betrakta fรถljande tvรฅ tabeller.
| C | |
|---|---|
| I | Fyrkant |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| I | Cube |
| 2 | 8 |
| 3 | 18 |
C โ D
| C โ D | ||
|---|---|---|
| I | Fyrkant | Cube |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
Yttre anslutning
An Yttre anslutning krรคver inte att varje post i de tvรฅ kopplade tabellerna har en matchande post. I den hรคr typen av koppling behรฅller tabellen varje post รคven om ingen annan matchande post finns. De tre typerna av yttre kopplingar รคr:
- Vรคnster yttre anslutning
- Hรถger yttre anslutning
- Full yttre anslutning
Vรคnster yttre skarv (A โ B)
Vรคnster yttre anslutning returnerar alla rader frรฅn tabellen till vรคnster, รคven om inga matchande rader hittas i tabellen till hรถger. Nรคr ingen matchande post hittas till hรถger returneras null.
Betrakta fรถljande tvรฅ tabeller.
| A | |
|---|---|
| I | Fyrkant |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| I | Cube |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| A โ B | ||
|---|---|---|
| I | Fyrkant | Cube |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Hรถger yttre skarv (A โ B)
Hรถger yttre anslutning returnerar alla kolumner frรฅn tabellen till hรถger, รคven om inga matchande rader hittas i tabellen till vรคnster. Om inga matchningar hittas till vรคnster returneras null. En hรถger yttre koppling รคr motsatsen till en vรคnster koppling.
AB
| A โ B | ||
|---|---|---|
| I | Cube | Fyrkant |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Fullstรคndig yttre koppling (A โ B)
I en Full yttre anslutning, alla tupler frรฅn bรฅda relationerna ingรฅr i resultatet, oavsett matchningsvillkor.
Exempel:
AB
| A โ B | ||
|---|---|---|
| I | Fyrkant | Cube |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |


