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:

  1. Join interni: Theta, Natural, EQUI
  2. 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.

Join esterno sinistro

Considera le seguenti 2 tabelle

A
In Quadrata
2 4
3 9
4 16
B
In Cubo
2 8
3 18
5 75
A Left Outer Join B
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.

Giunto esterno destro

A Right Outer Join B
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:

A Full B
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.