Join DBMS: tipi di join interni, THETA, esterni ed equi Operazioni
Che cos'รจ l'adesione al DBMS?
Partecipa al DBMS รจ un'operazione binaria che consente di combinare il prodotto di unione e la selezione in un'unica istruzione. L'obiettivo della creazione di una condizione di unione รจ quello di aiutare a combinare i dati di due o piรน tabelle DBMS. Le tabelle nel DBMS sono associate utilizzando la chiave primaria e le chiavi esterne.
Tipi di unione
Esistono principalmente due tipi di join in DBMS:
- Join interni: Theta, Natural, EQUI
- Giunzione esterna: sinistra, destra, completa
Vediamoli nel dettaglio:
unione interna
unione interna viene utilizzato per restituire righe da entrambe le tabelle che soddisfano la condizione specificata. ร l'operazione di unione piรน utilizzata e puรฒ essere considerata un tipo di unione predefinito
Un Inner join o equijoin รจ un join basato su comparatori che utilizza confronti di uguaglianza nel predicato di join. Tuttavia, se usi altri operatori di confronto come โ>โ non puรฒ essere chiamato equijoin.
Inner Join ulteriormente suddiviso in tre sottotipi:
- Partecipazione theta
- Unione naturale
- Aderisci all'EQUI
Theta Partecipa
Theta Partecipa consente di unire due tabelle in base alla condizione rappresentata da theta. I join theta funzionano per tutti gli operatori di confronto. ร indicato dal simbolo ฮธ. Il caso generale dell'operazione JOIN รจ chiamato Theta join.
Sintassi:
A โฮธ B
Il join theta puรฒ utilizzare qualsiasi condizione nei criteri di selezione.
Consideriamo le seguenti tabelle.
| Tabella A | Tabella B | |||
|---|---|---|---|---|
| colonna 1 | colonna 2 | colonna 1 | colonna 2 | |
| 1 | 1 | 1 | 1 | |
| 1 | 2 | 1 | 3 | |
Per esempio:
A โ A.column 2 > B.column 2 (B)
| A โ A.colonna 2 > B.colonna 2 (B) | |
|---|---|
| colonna 1 | colonna 2 |
| 1 | 2 |
EQUI Partecipa
EQUI Partecipa viene eseguito quando un join Theta utilizza solo la condizione di equivalenza. EQUI join รจ l'operazione piรน difficile da implementare in modo efficiente in un file RDBMSe uno dei motivi per cui gli RDBMS presentano problemi di prestazioni essenziali.
Per esempio:
A โ A.column 2 = B.column 2 (B)
| A โ A.colonna 2 = B.colonna 2 (B) | |
|---|---|
| colonna 1 | colonna 2 |
| 1 | 1 |
Unione naturale (โ)
unione naturale non utilizza nessuno degli operatori di confronto. In questo tipo di join, gli attributi dovrebbero avere lo stesso nome e dominio. In Natural Join, dovrebbe esserci almeno un attributo comune tra due relazioni.
Esegue la selezione che forma l'uguaglianza sugli attributi che compaiono in entrambe le relazioni ed elimina gli attributi duplicati.
Esempio:
Considerate le due tabelle seguenti
| C | |
|---|---|
| In | Quadrata |
| 2 | 4 |
| 3 | 9 |
| D | |
|---|---|
| In | Cubo |
| 2 | 8 |
| 3 | 18 |
C โ D
| C โ D | ||
|---|---|---|
| In | Quadrata | Cubo |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
unione esterna
An unione esterna non richiede che ogni record nelle due tabelle di join abbia un record corrispondente. In questo tipo di join, la tabella conserva ciascun record anche se non esiste nessun altro record corrispondente.
Tre tipi di join esterni sono:
- Join esterno sinistro
- Giunto esterno destro
- Join esterno completo
Unione esterna sinistra (A โ B)
Join esterno sinistro restituisce tutte le righe della tabella a sinistra anche se non รจ stata trovata alcuna riga corrispondente nella tabella a destra. Quando non viene trovato alcun record corrispondente nella tabella a destra, viene restituito NULL.
Considera le seguenti 2 tabelle
| A | |
|---|---|
| In | Quadrata |
| 2 | 4 |
| 3 | 9 |
| 4 | 16 |
| B | |
|---|---|
| In | Cubo |
| 2 | 8 |
| 3 | 18 |
| 5 | 75 |
AB
| A โ B | ||
|---|---|---|
| In | Quadrata | Cubo |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
Giunzione esterna destra ( A โ B )
Giunto esterno destro restituisce tutte le colonne della tabella a destra anche se non รจ stata trovata alcuna riga corrispondente nella tabella a sinistra. Se non รจ stata trovata alcuna corrispondenza nella tabella a sinistra, viene restituito NULL. RIGHT external JOIN รจ l'opposto di LEFT JOIN
Nel nostro esempio, supponiamo che tu debba ottenere i nomi dei membri e i film da loro noleggiati. Ora abbiamo un nuovo membro che non ha ancora noleggiato nessun film.
AB
| A โ B | ||
|---|---|---|
| In | Cubo | Quadrata |
| 2 | 8 | 4 |
| 3 | 18 | 9 |
| 5 | 75 | - |
Unione esterna completa (A โ B)
In un Join esterno completo , tutte le tuple di entrambe le relazioni vengono incluse nel risultato, indipendentemente dalla condizione di corrispondenza.
Esempio:
AB
| A โ B | ||
|---|---|---|
| In | Quadrata | Cubo |
| 2 | 4 | 8 |
| 3 | 9 | 18 |
| 4 | 16 | - |
| 5 | - | 75 |
Sintesi
- Esistono principalmente due tipi di join DBMS 1) Unione interna 2) Unione esterna
- Un inner join รจ l'operazione di join ampiamente utilizzata e puรฒ essere considerata un tipo di join predefinito.
- L'Inner Join รจ ulteriormente suddiviso in tre sottotipi: 1) Theta join 2) Natural join 3) EQUI join
- Theta Join ti consente di unire due tabelle in base alla condizione rappresentata da theta
- Quando un theta join utilizza solo la condizione di equivalenza, diventa un equi join.
- Il join naturale non utilizza nessuno degli operatori di confronto.
- Un'unione esterna non richiede che ogni record nelle due tabelle di unione abbia un record corrispondente.
- L'Outer Join รจ ulteriormente suddiviso in tre sottotipi: 1) Left Outer Join 2) Right Outer Join 3) Full Outer Join
- Il LEFT Outer Join restituisce tutte le righe della tabella a sinistra, anche se non รจ stata trovata alcuna riga corrispondente nella tabella a destra.
- Il RIGHT Outer Join restituisce tutte le colonne della tabella a destra, anche se non รจ stata trovata alcuna riga corrispondente nella tabella a sinistra.
- In una full external join, tutte le tuple di entrambe le relazioni vengono incluse nel risultato, indipendentemente dalla condizione di corrispondenza.


