L’ algebra relazionale è un linguaggio di interrogazione di basi di dati. E’ un linguaggio procedurale, in cui cioè le operazioni complesse vengono specificate descrivendo il procedimento da seguire per ottenere la soluzione. L’algebra relazionale è basata su concetti di tipo algebrico. Sostanzialmente questo linguaggio è costituito da un insieme di operatori, definiti su relazioni, che producono ancora relazioni come risultati. Questo operatori sono cinque e danno l'intero potere espressivo del linguaggio:
Concatenazione di più operazioni algebriche consentono di estrarre qualsiasi informazione dai dati. Prendiamo come esempio la seguente basi di dati, rappresentata attraverso il modello relazionale, e analizziamo una ad una le cinque operazioni fondamentali.
Selezione
L’ operazione di selezione viene indicata nel seguente modo:
Questa operazione indica che la selezione deve avvenire nella relazione STUDENTE, mentre “nome=’Paola’” indica la condizione di selezione. Il risultato che otterremo sarà una tabella (priva di nome), avente come schema lo stesso schema di STUDENTE e come istanza le tuple di STUDENTE che soddisfano il predicato di selezione. Nel nostro caso avremo quindi solo quelle tuple della tabella STUDENTE in cui l’ istanza dell’ attributo “nome” è uguale a “Paola”.
Il predicato di selezione è un’ espressione booleana di predicati semplici, le operazioni ammesse sono:
Un esempio di selezione, con un predicato di selezione, leggermente più complesso può essere:
Dalla relazione STUDENTE dobbiamo selezionare tutte quelle tuple in cui l’ istanza dell’ attributo “città” è “Torino” o “Roma” (operatore booleano OR), e l’ istanza dell’ attributo “Cdip” è diversa da “Log” (operatore booleano AND seguito da un NOT). Si noti che i simboli utilizzati per rappresentare gli operatori booleani sono da ricondursi alla logica formale. Il risultato di questa operazione sarà:
La tabella che otteniamo non ha un nome. Possiamo assegnargli un nome attraverso il procedimento di assegnamento.
L’ assegnamento serve quindi per dare un nome al risultato di una espressione algebrica. Attenzione però, l’ assegnamento non fa parte delle operazioni algebriche, come nemmeno la ridenominazione, altro procedimento utilizzato per modificare i nomi degli attributi di una relazione.
In questo esempio, in una ipotetica relazione PATERNITA' l' attributo "genitore" è stato ridenominato in "padre".
Differenza
Questa operazione non fa nient’ altro che fare TABELLA1 - TABELLA2. La differenza ha però un vincolo fondamentale: si può fare se TABELLA1 e TABELLA2 sono compatibili, ovvero solo se hanno lo stesso schema. Per esempio INFORMATICI – TORINESI è una tabella (priva di nome) avente come schema lo schema di INFORMATICI e come istanza la differenza delle tuple di INFORMATICI e TORINESI.
Proiezione
E’ un operazione che restituisce una tabella (priva di nome) avente come schema gli attributi Nome e Cdip e come istanza la restrizione delle tuple sugli attributi Nome e Cdip. Nel nostro caso otteniamo una tabella del seguente tipo:
Supponendo di fare un’ operazione di proiezione solo sull’ attributo Cdip della relazione STUDENTE, si verrebbero a creare dei duplicati, delle tuple ripetute (ci sono infatti due studenti nel corso d’informatica). Nei linguaggi formali la proiezione elimina i duplicati automaticamente pertanto avremo:
Unione
Questa operazione, che unisce due o più relazioni, si può fare solo se TABELLA1 e TABELLA2 sono compatibili. Due tabelle sono dette compatibili se hanno lo stesso grado oppure se hanno domini ordinatamente dello stesso tipo. Per esempio l’ unione tra informatici e torinesi è una tabella (priva di nome) avente come schema lo schema di INFORMATICI e come istanza la unione delle tuple di INFORMATICI e TORINESI.
Prodotto cartesiano
Il prodotto cartesiano di due relazioni R x S è una tabella (priva di nome) avente come schema gli attributi di R e S e come istanza tutte le possibili coppie di tuple di R e S.
Queste cinque operazioni possono naturalmente essere concatenare tra loro. Per esempio se l’ interrogazione che vogliamo fare è: “quali studenti sono iscritti al diploma di informatica?”, faremo sia un’ operazione di selezione che una di proiezione:
o “quali studenti di Logistica non sono di Milano?”
Ad alcune particolari concatenazioni di operazioni algebriche elementari viene associato un nome. Per esempio il Join è una particolare selezione fatta sulla relazione ottenuta da un prodotto cartesiano. Per saperne di più consulta i seguenti aggiornamenti:
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.