Algebra relazionale
L'ALGEBRA RELAZIONALE è un linguaggio di query procedurale ampiamente utilizzato. Raccoglie istanze di relazioni come input e fornisce occorrenze di relazioni come output. Utilizza varie operazioni per eseguire questa azione. Le operazioni di query sull'algebra relazionale SQL vengono eseguite in modo ricorsivo su una relazione. L'output di queste operazioni è una nuova relazione, che potrebbe essere formata da una o più relazioni di input.
In questo tutorial imparerai:
- Algebra relazionale
- SELEZIONA (σ)
- Proiezione (π)
- Rinomina (ρ)
- Operazione dell'Unione (υ)
- Imposta differenza (-)
- Intersezione
- Prodotto cartesiano (X)
- Partecipa alle operazioni
- Inner Join:
- Theta Join:
- EQUI aderisce:
- GIUNZIONE NATURALE (⋈)
- ESTERNO UNISCI
- Join esterno sinistro (A
B)
- Right Outer Join: (A
B)
- Join esterno completo: (A
B)
Operazioni di base di algebra relazionale SQL
Algebra relazionale si è suddivisa in vari gruppi
Operazioni relazionali unarie
- SELEZIONA (simbolo: σ)
- PROGETTO (simbolo: π)
- RENAME (simbolo: ρ)
Operazioni di algebra relazionale dalla teoria degli insiemi
- UNIONE (υ)
- INTERSEZIONE (),
- DIFFERENZA (-)
- PRODOTTO CARTESIANO (x)
Operazioni relazionali binarie
- ADERIRE
- DIVISIONE
Studiamoli in dettaglio con le soluzioni:
SELEZIONA (σ)
L'operazione SELECT viene utilizzata per selezionare un sottoinsieme di tuple in base a una data condizione di selezione. Sigma (σ) Il simbolo lo denota. Viene utilizzato come espressione per scegliere le tuple che soddisfano la condizione di selezione. L'operatore di selezione seleziona le tuple che soddisfano un determinato predicato.
σp(r)
σ
è il predicato r
sta per relazione che è il nome della tabella p
è logica preposizionale
Esempio 1
σ topic = "Database" (Tutorials)
Output : seleziona le tuple dai tutorial dove topic = 'Database'.
Esempio 2
σ topic = "Database" and author = "guru99"( Tutorials)
Output : seleziona le tuple dai tutorial in cui l'argomento è "Database" e "autore" è guru99.
Esempio 3
σ sales > 50000 (Customers)
Output : seleziona le tuple dei clienti in cui le vendite sono superiori a 50000
Proiezione (π)
La proiezione elimina tutti gli attributi della relazione di input tranne quelli menzionati nell'elenco delle proiezioni. Il metodo di proiezione definisce una relazione che contiene un sottoinsieme verticale di relazione.
Questo aiuta a estrarre i valori degli attributi specificati per eliminare i valori duplicati. Il simbolo (pi) viene utilizzato per scegliere gli attributi da una relazione. Questo operatore ti aiuta a mantenere colonne specifiche da una relazione e scarta le altre colonne.
Esempio di proiezione:
Considera la seguente tabella
Identificativo del cliente | Nome del cliente | Stato |
---|---|---|
1 | Attivo | |
2 | Amazon | Attivo |
3 | Mela | Non attivo |
4 | Alibaba | Attivo |
Qui, la proiezione di CustomerName e dello stato darà
Π CustomerName, Status (Customers)
Nome del cliente | Stato |
---|---|
Attivo | |
Amazon | Attivo |
Mela | Non attivo |
Alibaba | Attivo |
Rinomina (ρ)
Rinomina è un'operazione unaria utilizzata per rinominare gli attributi di una relazione.
ρ (a / b) R rinominerà l'attributo "b" della relazione con "a".
Operazione dell'Unione (υ)
L'UNIONE è rappresentata dal simbolo ∪. Include tutte le tuple che si trovano nelle tabelle A o B. Elimina anche le tuple duplicate. Quindi, l'insieme A UNION l'insieme B sarebbe espresso come:
Il risultato <- A ∪ B
Perché un'operazione sindacale sia valida, devono sussistere le seguenti condizioni:
- R e S devono essere lo stesso numero di attributi.
- I domini degli attributi devono essere compatibili.
- Le tuple duplicate dovrebbero essere rimosse automaticamente.
Esempio
Considera le seguenti tabelle.
Tabella A | Tabella B | |||
colonna 1 | colonna 2 | colonna 1 | colonna 2 | |
---|---|---|---|---|
1 | 1 | 1 | 1 | |
1 | 2 | 1 | 3 |
A ∪ B dà
Tabella A ∪ B | |
colonna 1 | colonna 2 |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
Imposta differenza (-)
- Il simbolo lo denota. Il risultato di A - B, è una relazione che include tutte le tuple che sono in A ma non in B.
- Il nome dell'attributo di A deve corrispondere al nome dell'attributo in B.
- Le relazioni a due operandi A e B dovrebbero essere compatibili o compatibili con l'Unione.
- Dovrebbe essere definita una relazione composta dalle tuple che sono in relazione A, ma non in B.
Esempio
A-B
Tabella A - B | |
colonna 1 | colonna 2 |
---|---|
1 | 2 |
Intersezione
Un'intersezione è definita dal simbolo ∩
A ∩ B
Definisce una relazione costituita da un insieme di tutte le tuple presenti sia in A che in B. Tuttavia, A e B devono essere compatibili con l'unione.

Esempio:
A ∩ B
Tabella A ∩ B | |
colonna 1 | colonna 2 |
---|---|
1 | 1 |
Prodotto cartesiano (X) in DBMS
Il prodotto cartesiano in DBMS è un'operazione utilizzata per unire colonne da due relazioni. In generale, un prodotto cartesiano non è mai un'operazione significativa quando viene eseguito da solo. Tuttavia, diventa significativo quando è seguito da altre operazioni. È anche chiamato Cross Product o Cross Join.
Esempio: prodotto cartesiano
σ colonna 2 = '1' (AXB)
Output - L'esempio sopra mostra tutte le righe dalla relazione A e B la cui colonna 2 ha valore 1
σ colonna 2 = '1' (AXB) | |
colonna 1 | colonna 2 |
---|---|
1 | 1 |
1 | 1 |
Partecipa alle operazioni
L'operazione di join è essenzialmente un prodotto cartesiano seguito da un criterio di selezione.
Operazione di unione indicata con ⋈.
L'operazione JOIN consente anche di unire tuple variamente correlate da diverse relazioni.
Tipi di PARTECIPAZIONE:
Diverse forme di operazione di unione sono:
Join interni:
- Theta si unisce
- EQUI si unisce
- Unione naturale
Unione esterna:
- Join esterno sinistro
- Right Outer Join
- Join esterno completo
Inner Join:
In un inner join, vengono incluse solo le tuple che soddisfano i criteri di corrispondenza, mentre il resto viene escluso. Studiamo vari tipi di Inner Join:
Theta Join:
Il caso generale dell'operazione JOIN è chiamato join Theta. È indicato dal simbolo θ
Esempio
A ⋈θ B
Il join theta può utilizzare qualsiasi condizione nei criteri di selezione.
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 aderisce:
Quando un join theta utilizza solo condizioni di equivalenza, diventa un equi join.
Per esempio:
A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A. colonna 2 = B. colonna 2 (B) | |
colonna 1 | colonna 2 |
---|---|
1 | 1 |
Il join EQUI è le operazioni più difficili da implementare in modo efficiente utilizzando SQL in un RDBMS e uno dei motivi per cui RDBMS ha problemi di prestazioni essenziali.
GIUNZIONE NATURALE (⋈)
L'unione naturale può essere eseguita solo se esiste un attributo comune (colonna) tra le relazioni. Il nome e il tipo dell'attributo devono essere gli stessi.
Esempio
Considera le seguenti due tabelle
C | |
Num | Piazza |
---|---|
2 | 4 |
3 | 9 |
D | |
Num | Cubo |
---|---|
2 | 8 |
3 | 27 |
C ⋈ D
C ⋈ D | ||
Num | Piazza | Cubo |
---|---|---|
2 | 4 | 4 |
3 | 9 | 27 |
ESTERNO UNISCI
In un join esterno, insieme alle tuple che soddisfano i criteri di corrispondenza, includiamo anche alcune o tutte le tuple che non corrispondono ai criteri.
Join esterno sinistro (A
B)
Nel join esterno sinistro, l'operazione consente di mantenere tutte le tuple nella relazione di sinistra. Tuttavia, se non è stata trovata alcuna tupla corrispondente nella relazione giusta, gli attributi della relazione giusta nel risultato del join vengono riempiti con valori nulli.
Considera le seguenti 2 tabelle
UN | |
Num | Piazza |
---|---|
2 | 4 |
3 | 9 |
4 | 16 |
B | |
Num | Cubo |
---|---|
2 | 8 |
3 | 18 |
5 | 75 |
AB
A ⋈ B | ||
Num | Piazza | Cubo |
---|---|---|
2 | 4 | 4 |
3 | 9 | 9 |
4 | 16 | - |
Right Outer Join: (A
B)
Nel join esterno destro, l'operazione consente di mantenere tutte le tuple nella giusta relazione. Tuttavia, se non è presente alcuna tupla corrispondente nella relazione di sinistra, gli attributi della relazione di sinistra nel risultato del join vengono riempiti con valori nulli.
AB
A ⋈ B | ||
Num | Cubo | Piazza |
---|---|---|
2 | 8 | 4 |
3 | 18 | 9 |
5 | 75 | - |
Join esterno completo: (A
B)
In un join esterno completo, tutte le tuple di entrambe le relazioni vengono incluse nel risultato, indipendentemente dalla condizione di corrispondenza.
AB
A ⋈ B | ||
Num | Cubo | Piazza |
---|---|---|
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Sommario
Operazione (simboli) |
Scopo |
---|---|
Seleziona (σ) |
L'operazione SELECT viene utilizzata per selezionare un sottoinsieme di tuple in base a una data condizione di selezione |
Proiezione (π) |
La proiezione elimina tutti gli attributi della relazione di input tranne quelli menzionati nell'elenco delle proiezioni. |
Operazione dell'Unione (∪) |
L'UNIONE è simboleggiata dal simbolo. Include tutte le tuple che si trovano nelle tabelle A o B. |
Imposta differenza (-) |
- Il simbolo lo denota. Il risultato di A - B, è una relazione che include tutte le tuple che sono in A ma non in B. |
Intersezione (∩) |
L'intersezione definisce una relazione costituita da un insieme di tutte le tuple presenti sia in A che in B. |
Prodotto cartesiano (X) |
L'operazione cartesiana è utile per unire colonne da due relazioni. |
Inner Join |
Inner join, include solo quelle tuple che soddisfano i criteri di corrispondenza. |
Theta Join (θ) |
Il caso generale dell'operazione JOIN è chiamato join Theta. È indicato dal simbolo θ. |
EQUI Join |
Quando un join theta utilizza solo condizioni di equivalenza, diventa un equi join. |
Natural Join (⋈) |
L'unione naturale può essere eseguita solo se esiste un attributo comune (colonna) tra le relazioni. |
Outer Join |
In un join esterno, insieme a tuple che soddisfano i criteri di corrispondenza. |
Join esterno sinistro ( |
Nel join esterno sinistro, l'operazione consente di mantenere tutte le tuple nella relazione di sinistra. |
Right Outer join ( |
Nel join esterno destro, l'operazione consente di mantenere tutte le tuple nella giusta relazione. |
Join esterno completo ( |
In un join esterno completo, tutte le tuple di entrambe le relazioni vengono incluse nel risultato indipendentemente dalla condizione di corrispondenza. |