È un linguaggio formale completamente procedurale per interrogare una base di dati relazionali. Si fonda sul concetto di relazione matematica ed è la base dei database relazionali. Consiste di un insieme di operatori che possono essere applicati a una (operatori unari) o due (operatori binari) istanze di relazione e forniscono come risultato una nuova istanza di relazione.
N.B.: Bisogna sempre ricordare che le operazioni di SQL possono creare duplicati, quelle dell’algebra relazionale lavorano su insiemi, rimuovendo/non ammettendo duplicati.
In una relazione, il numero di domini di cui si fa il prodotto cartesiano è il suo grado.
In una relazione, Il numero di tuple di una relazione è la sua cardinalità.
-
In SQL il concetto di dominio si traduce concretamente nel tipo degli attributi.
-
Le tuple di una relazione sono tutte distinte.
Operazioni
Unarie
Binarie
L’unica che agisce (temporaneamente) sullo schema
Esempio 1 (semplice)
Considerando le tabelle:
Auto(targa, cilindrata, modello, città, posti) Moto(targa, cilindrata, modello, regione)
Restituisci targa, cilindrata, modello di auto circolanti a Roma con 2 posti e moto circolanti nel lazio.
Procedimento:
- A = seleziona le auto che circolano nella Città Roma e hanno 2 posti.
- B = seleziona le moto che circolano nella Regione Lazio.
- A1 = proietta la targa, la cilindrata e il modello su A.
- B1 = proietta la targa, la cilindrata e il modello su B.
- Restituisci A1 unita a B1.
Espressione relazionale:
Esempio 2 (il più difficile possibile)
- pittore(id, nome, cognome, data_n, data_m)
- quadro(id, titolo, data, pittore)
Per ogni pittore in vita, trovare nome, cognome e titolo del primo quadro dipinto