1. Basi di Dati
Basi di Dati
Esercizi di algebra relazionale
2. Gestione ordini
Gestione ordini
COD‐CLI NOME CITTA P
COD‐CLI NOME CITTA P‐IVA cliente
COD‐ORD COD‐
COD‐ORD COD‐CLI DATA IMPORTO ordine
COD‐ORD COD‐PROD QTA
COD‐ORD
ORD COD PROD
COD‐ dettaglio
COD‐PROD NOME PREZZO
COD‐PROD NOME PREZZO prodotto
2 Basi di Dati ‐ Esercizi algebra relazionale
3. Esercizi
Quali ordini ha emesso Paolo?
Quali ordini ha emesso Paolo?
PROJECT [COD ORD]
PROJECT [COD‐ORD]
PROJECT [COD‐
SELECT [NOME = ‘Paolo’]
(CLIENTE JOIN ORDINE)
(CLIENTE JOIN ORDINE)
πCOD‐ORD (σ NOME = ‘Paolo’ (
COD‐
CLIENTE ORDINE))
3 Basi di Dati ‐ Esercizi algebra relazionale
4. Esercizi
Quali prodotti (nomi) sono ordinati da un cliente di
Milano?
PROJECT [PRODOTTO.NOME]
PROJECT [PRODOTTO.NOME]
[ ]
(
(SELECT [CITTA = ‘Milano’] CLIENTE)
( [ ‘ l ’] )
JOIN ORDINE JOIN DETTAGLIO JOIN
PRODOTTO
)
π PRODOTTO.NOME ( (σCITTA = ‘Milano’ CLIENTE)
( (σ
ORDINE DETTAGLIO PRODOTTO )
4 Basi di Dati ‐ Esercizi algebra relazionale
10. Esercizi
Quale impiegato e' stato assunto per primo?
πNOME IMPIEGATO ‐
IMPIEGATO ‐
πNOME (IMPIEGATO DATA‐ASS>DATA‐ASS
DATA‐ASS>DATA‐
πDATA‐ASS IMPIEGATO )
DATA‐
NOME NOME NOME
MINUS
Piero
Piero Giorgio Piero
Giorgio Giovanni
Giovanni
10 Basi di Dati ‐ Esercizi algebra relazionale
11. Esercizi
Quale impiegato e' assegnato a tutti i progetti?
PROJECT [MATR, NUM‐PROG]
PROJECT [MATR, NUM‐
ASSEGNAMENTO
÷
PROJECT [NUM PROG]
PROJECT [NUM‐PROG]
[NUM‐
PROGETTO
MATR NUM‐
NUM‐PROG
1 3 NUM‐
NUM‐PROG
MATR
÷
1 4 3
1
2 3 4
3 4
11 Basi di Dati ‐ Esercizi algebra relazionale
13. Divisione (÷)
Divisione (÷)
Il risultato dell’operazione di divisione (÷) tra due relazioni r ed s,
con schemi R(X) ed S(Y), Y sottoinsieme di X, è una relazione d,
con schema D(X‐Y), contenente le tuple di r associate a tutte le
tuple
t l di s.
r R(X)
s S(Y)
MATR NUM‐
NUM‐PROG d D(X‐Y)
d D(X‐
1 3 NUM‐
NUM‐PROG
MATR
÷
1 4 3
1
2 3 4
3 4
13 Basi di Dati ‐ Esercizi algebra relazionale
14. Divisione
L’operatore di divisione non è un operatore di base, ma
p p ,
può essere derivato dagli operatori che già conosciamo.
In particolare:
p
r ÷ s ≡
r ÷ s ≡ PROJECT [X‐Y] r
PROJECT [X‐ ]
[
MINUS
PROJECT [X‐Y]
PROJECT [X‐ ]
[
( ( (PROJECT [X‐Y] r) x s)
( ( (PROJECT [X‐
MINUS r)
S )
14 Basi di Dati ‐ Esercizi algebra relazionale