L'algebra relazionale
Cos'è l'algebra relazionale
L'algebra relazionale è un linguaggio di interrogazione teorico delle basi dati nel modello relazionale.
E' stata ideato da Edgar Codd negli anni '70.
Si tratta di un linguaggio "procedurale" perché descrive il procedimento da seguire per risolvere un problema in un database relazionale.
Nota. E' un linguaggio teorico sul quale si fondano altri linguaggio usati per interrogare e gestire le basi dati come il linguaggio SQL.
Si chiama "relazionale" perché utilizza le tabelle (relazioni matematiche) come operandi e il risultato è un'altra tabella (relazione).
Infine, è un'algebra perché rispetta tutte le proprietà matematiche delle algebre.
Gli operatori dell'algebra relazionale
L'algebra relazionale utilizza diversi operatori che possono essere composti tra loro per costruire espressioni più complesse.
- Unione
Determina una relazione (tabella) composta dall'unione delle tuple di due relazioni r1 e r2 che hanno gli stessi attributi X.r1 ∪ r2
- Intersezione
Determina una relazione (tabella) composta dalle tuple in comune di due relazioni r1 e r2 che hanno gli stessi attributi X.r1 ⋂ r2
- Differenza
Determina una relazione (tabella) composta dalle tuple che appartegono a una relazione (r1) ma non a un'altra relazione (r2). Le tabelle r1 e r2 devono avere gli stessi attributi X.r1-r2
- Ridenominazione
Cambia il nome di uno o più attributi da X a Y in una relazione.ρ Y←X (r)
- Prodotto cartesiano
Crea una relazione composta da tutte le combinazioni di tuple della prima tabella con la seconda.r1 x r2
- Selezione
Seleziona le tuple/ennuple di una relazione (tabella) che soddisfano una condizione booleana.σX>0(r)
- Proiezione
Seleziona alcune colonne di una relazione.πX (r)
- Join
Associa le tuple di due tabelle che hanno gli stessi valori in uno o più attributi. - Divisione
Individua le tuple <x> della prima relazione r1 che associate alle tuple <y> della seconda relazione r2 determinano una tupla <x,y> inclusa in r1.r1/r2
Le interrogazioni
In algebra relazionale un'interrogazione è una funzione che genera una relazione risultato E(r) a partire da un insieme di istanze (tuple) della relazione r.
Ogni interrogazione è un'espressione composta da variabili, attributi e operatori.
In genere esistono diverse strade per ottenere un risultato.
Nota. Le espressioni che determinano lo stesso risultato dalle stesse relazioni in ingresso sono dette espressioni equivalenti.
Esempio
Ho una relazione 'anagrafica' con uno schema di attributi composto da nome, cognome, città.
Ecco un esempio di interrogazione
σ(nome='Andrea'∧cognome ='Minini') (anagrafica)
Lo stesso risultato posso ottenerlo con un'espressione equivalente.
σ(nome='Andrea')(σ(cognome ='Minini') (anagrafica))
In questo secondo caso ho suddiviso la selezione congiuntiva in una selezione atomica a cascata.
Il risultato finale è sempre lo stesso.
Com esercitarsi in algebra relazionale. Per esercitarmi online nelle operazioni di algebra relazionale posso usare il relational algebra calculator.
E così via