Corso di Elementi di Bioinformatica
Ingegneria Biomedica
Elementi di Basi di Dati
Progettazione di basi di dati:
Esercizi di Algebra Relazionale
Tratto dalle slide relative al Cap. 3 del libro “Basi di
Dati” di Atzeni, Ceri, Paraboschi, Torlone - McGraw-Hill,
1996-2006
AA 2014-15
Esercizi
Impiegati
Matricola Nome
7309
Rossi
5998
Bianchi
9553
Neri
5698
Bruni
4076
Mori
8123
Lupi
Supervisione
AA 2014-15
Età
34
37
42
43
45
46
Impiegato
7309
5998
9553
5698
4076
Stipendio
45
38
35
42
50
60
Capo
5698
5698
4076
4076
8123
2
Esercizio 1
• Trovare matricola, nome, età e stipendio
degli impiegati che guadagnano più di 40
(Keuro)
SELStipendio>40(Impiegati)
AA 2014-15
3
Esercizio 2
 Trovare matricola, nome ed età degli
impiegati che guadagnano più di 40
PROJMatricola, Nome, Età (SELStipendio>40(Impiegati))
AA 2014-15
4
Esercizio 3
 Trovare le matricole dei capi degli
impiegati che guadagnano più di 40
PROJ ( Supervisione
JOIN
SEL
(Impiegati) )
Capo
Impiegato=Matricola
Stipendio>40
AA 2014-15
5
Esercizio 4
 Trovare nome e stipendio dei capi degli
impiegati che guadagnano più di 40
PROJNome,Stipendio (Impiegati
JOIN Matricola=Capo
PROJCapo(Supervisione
JOIN Impiegato=Matricola
SELStipendio>40(Impiegati)))
AA 2014-15
6
Esercizio 5
 Trovare gli impiegati che guadagnano più
del proprio capo, mostrando matricola,
nome e stipendio dell'impiegato e del
capo
PROJMatricola, Nome, Stipendio, MatrC, NomeC, StipC
(SELStipendio>StipC
(RENMatrC, NomeC, StipC, EtàC ← Matricola, Nome, Stipendio, Età
(Impiegati)
JOIN MatrC=Capo
Supervisione
AA 2014-15
JOIN Impiegato=Matricola Impiegati)))
7
Esercizio 6
 Trovare le matricole dei capi i cui
impiegati guadagnano tutti più di 40
PROJCapo (Supervisione)
PROJCapo (Supervisione
JOIN
Impiegato=Matricola
SELStipendio ≤ 40(Impiegati))
AA 2014-15
8
NB è sostanzialmente l'approccio usato in SQL
Una convenzione e notazione
alternativa per i join
 Ignoriamo il join naturale ...
 cioè non consideriamo implicitamente
condizioni su attributi con nomi uguali
 Per "riconoscere" attributi con lo stesso
nome ...

gli premettiamo il nome della relazione
 Usiamo “assegnazioni” (cioé viste) ...
 per ridenominare le relazioni e gli attributi
(questi ultimi solo quando serve per l'unione)
AA 2014-15
9
Esercizio 7
• Trovare gli impiegati che guadagnano più
del proprio capo, mostrando matricola,
nome e stipendio dell'impiegato e del capo
AA 2014-15
10
Esercizio 7 – Soluzione (a)
PROJMatricola, Nome, Stipendio, MatrC, NomeC, StipC
(SELStipendio>StipC
(RENMatrC, NomeC, StipC, EtàC ← Matricola, Nome, Stipendio, Età
(Impiegati)
JOIN MatrC=Capo Supervisione
JOIN Impiegato=Matricola Impiegati))
AA 2014-15
11
Esercizio 7 – Soluzione (b)
Capi := Impiegati
PROJImpiegati.Matricola, Impiegati.Nome, Impiegati.Stipendio,
Capi.Matricola,Capi.Nome, Capi.Stipendio
(SELImpiegati.Stipendio>Capi.Stipendio
Capi JOIN Matricola=Capo
Supervisione
JOIN
AA 2014-15
Impiegato=Matricola
Impiegati))
12