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 |


