Algebra Relazionale
Eugenio Di Sciascio
1
Introduzione





L’algebra relazionale è un linguaggio
procedurale: le operazioni vengono specificate
descrivendo il procedimento da seguire
Essa è un’algebra chiusa. E’ costituita da un
insieme di operatori definiti su relazioni che
producono relazioni.
Pertanto il risultato di una operazione può essere
ulteriormente manipolato.
I principali operatori sono la selezione e la
proiezione (unari) e il join (binario)
Esistono le operazioni tipiche dell’insiemistica,
unione, intersezione, differenza e il prodotto
cartesiano
2
Selezione



Consente di selezionare un sottoinsieme delle
tuple di una relazione che soddisfino una
condizione di selezione.
L’operazione è espressa in generale come:
 condizione_ di _ selezione (  relazione  )
La condizione di selezione può prevedere
comparazione tra attributi compatibili o con
costanti, oltre a essere ottenuta collegando varie
condizioni mediante connettivi logici (and, or,
not).
3
Esempio
Impiegati
da tan asc 01 01 60 dataass 05 0393
Data di
nascita
08-dic-48
Data di
assunzione
01-mag-92
Andrew
19-feb-52
14-ago-92
Leverling
Janet
30-ago-63
01-apr-92
Peacock
19-set-37
03-mag-93
Buchanan
Margare
tSteven
04-mar-55
17-ott-93
Suyama
Michael
02-lug-63
17-ott-93
King
Robert
29-mag-60
02-gen-94
Callahan
Laura
09-gen-58
05-mar-94
Dodswort
h
Rossi
Anne
27-gen-66
15-nov-94
Cognome
Nome
Davolio
Nancy
Fuller
Im piegato
Data di
nascita
Data di
assunzione
Cognome
Nome
Suyama
Michae
l
Robert
02-lug-63
17-ott-93
29-mag-60
02-gen-94
Anne
27-gen-66
15-nov-94
King
Dodswort
h
mario
4
Selezione (2)
L’operazione viene applicata a ciascuna
tupla individualmente.
 La relazione risultante mantiene lo schema
di quella di partenza, i.e. il grado rimane
invariato.
 La cardinalità risultante è invece  di
quella di partenza.
 La selezione è commutativa:

 cond1 (  cond 2 R )   cond 2 (  cond1 R )
5
Proiezione
Consente di selezionare un sottoinsieme
delle colonne (attributi) di una relazione
elencati in una lista di attributi di
proiezione
 L’operazione è espressa in generale come:

 lista_ di _ attributi (  relazione  )
6
Proiezione (2)
L’operazione modifica, in generale, il
grado, i.e. il numero di attributi.
 L’operazione modifica, in generale, anche
la cardinalità (perché?)
 L’operazione non è commutativa.

7
Esempio
Impiegato
Cognome
Nome
Posizione
Titolo
Davolio
Nancy
Rappresentante
Dott.ssa
Fuller
Andrew
Direttore vendite
Leverling
Janet
Peacock
Data di nascita
Cognome
Nome
08-dic-48
Davolio
Nancy
Ing.
19-feb-52
Fuller
Andrew
Funzionario commerciale
Dott.ssa
30-ago-63
Leverling
Janet
Margaret
Rappresentante
Dott.ssa
19-set-37
Peacock
Margaret
Buchanan
Steven
Direttore commerciale
Ing.
04-mar-55
Buchanan
Steven
Suyama
Michael
Rappresentante
Dott.
02-lug-63
Suyama
Michael
King
Robert
Rappresentante
Dott.
29-mag-60
King
Robert
Callahan
Laura
Resp. comm. di zona
Dott.ssa
09-gen-58
Callahan
Laura
Dodsworth
Anne
Rappresentante
Dott.ssa
27-gen-66
Dodsworth
Anne
Rossi
mario
Rossi
mario
 cognome,nome( impiegato)
Titolo
Dott.
 titolo( impiegato )
Dott.ssa
Ing.
8
Sequenze di operazioni

Trattando operazioni in una algebra chiusa
è ovviamente possibile scrivere espressioni
come sequenza di operazioni
 cognome,nome(  titolo" dott." ( impiegato ))
Cognome
Nome
Posizione
Titolo
Data di nascita
Davolio
Nancy
Rappresentante
Dott.ssa
08-dic-48
Fuller
Andrew
Direttore vendite
Ing.
19-feb-52
Leverling
Janet
Funzionario commerciale
Dott.ssa
30-ago-63
Peacock
Margaret
Rappresentante
Dott.ssa
19-set-37
Buchanan
Steven
Direttore commerciale
Ing.
04-mar-55
Suyama
Michael
Rappresentante
Dott.
02-lug-63
King
Robert
Rappresentante
Dott.
29-mag-60
Callahan
Laura
Resp. comm. di zona
Dott.ssa
09-gen-58
Dodsworth
Anne
Rappresentante
Dott.ssa
27-gen-66
Rossi
mario
Nome
Cognome
Michael
Suyama
Robert
King
9
Unione, intersezione, differenza





Operazioni binarie dell’insiemistica
Hanno senso su relazioni compatibili, cioè con
identici attributi o almeno appartenenti al
medesimo dominio.
Unione: RS produce una relazione che include
tutte le tuple presenti in R o in S o in entrambe.
Intersezione: RS produce una relazione che
include tutte le tuple presenti sia in R che in S.
Differenza: R-S produce una relazione che
include tutte le tuple presenti in R, ma non in S.
10
Esempio
Studente (S)
Laureato (L)
mat
119310
125314
199111
mat
119310
125314
501111
cognome città
di sciascio bari
rossi
bari
verdi
foggia
SL
mat
119310
125314
199111
501111
cognome città
di sciascio bari
rossi
bari
bianchi
lecce
SL
cognome città
di sciascio bari
rossi
bari
verdi
foggia
bianchi
lecce
mat
cognome città
119310 di sciascio bari
125314 rossi
bari
S-L
mat
cognome città
501111 bianchi
lecce
11
Prodotto cartesiano
E’ una operazione binaria su insiemi, ma
non richiede la compatibilità delle
relazioni partecipanti..
 Essa è denotata con il simbolo X.
 Il grado della relazione risultante è pari
alla somma dei gradi delle due relazioni
partecipanti.
 La cardinalità è pari al prodotto di quelle
delle due relazioni partecipanti.

12
Esempio
13
Join
E’ l’operazione utilizzata per combinare
coppie di tuple provenienti da relazioni
collegate in singole tuple.
 Consente di elaborare le “associazioni” tra
relazioni.

R  condizione S   condizione ( R  S )

<condizione> è dello stesso tipo di quella
già vista per la selezione
14
Join (2)




Il join con una condizione generica è detto theta
join
Quando la condizione sia una uguaglianza
l’operazione è detta equi join.
Questa operazione includerà due volte, nella
tabella risultante, gli attributi su cui è posta la
condizione di uguaglianza.
Quando l’operazione si limita a riportare una
volta l’attributo di comparazione nella tabella
risultante parleremo di join naturale.
15