Esercitazione sull’Algebra Relazionale - Alfonso Fuggetta · sull’Algebra Relazionale Thursday,...

Post on 18-Feb-2019

223 views 3 download

Transcript of Esercitazione sull’Algebra Relazionale - Alfonso Fuggetta · sull’Algebra Relazionale Thursday,...

Esercitazione sull’Algebra Relazionale

Thursday, January 12, 12

Schema

Thursday, January 12, 12

Elencare i libri della biblioteca pubblicati dopo il 1997

Thursday, January 12, 12

Elencare i libri della biblioteca pubblicati dopo il 1997

Thursday, January 12, 12

Elencare i libri della biblioteca pubblicati dopo il 1997

Thursday, January 12, 12

Thursday, January 12, 12

Trovare i titoli dei libri di informatica presi a prestito nel giugno 2002

Thursday, January 12, 12

Trovare i titoli dei libri di informatica presi a prestito nel giugno 2002

Thursday, January 12, 12

Trovare i titoli dei libri di informatica presi a prestito nel giugno 2002

Thursday, January 12, 12

Query non ottimizzata

Thursday, January 12, 12

Query non ottimizzata

Thursday, January 12, 12

Query non ottimizzata

Thursday, January 12, 12

Query non ottimizzata

Thursday, January 12, 12

Query non ottimizzata

Thursday, January 12, 12

Query non ottimizzata

Thursday, January 12, 12

Trovare i codici e i nomi degli utenti che non hanno mai preso in prestito libri di Informatica dell’Apogeo

Thursday, January 12, 12

Trovare i codici e i nomi degli utenti che non hanno mai preso in prestito libri di Informatica dell’Apogeo

Thursday, January 12, 12

Trovare i codici e i nomi degli utenti che non hanno mai preso in prestito libri di Informatica dell’Apogeo

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Codice=CodiceUtente

Thursday, January 12, 12

Trovare i titoli dei libri presi a prestito nel mese di giugno 2002 oppure archiviati nel mese di giugno 2002

Thursday, January 12, 12

Trovare i titoli dei libri presi a prestito nel mese di giugno 2002 oppure archiviati nel mese di giugno 2002

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Thursday, January 12, 12

Trovare per ciascun utente il titolo dell’ultimo libro preso in prestito

Thursday, January 12, 12

DATILIBRO(ISBN, Titolo, AnnoPubblicazione, CasaEditrice, PrimoAutore, Genere)

LIBRO(Collocazione, ISBN, DataArchiviazione)

PRESTITO(Collocazione, CodiceUtente, DataPrestito, DataRestituzione)

UTENTE(Codice, Cognome, Nome, Indirizzo, Telefono)

Trovare per ciascun utente il titolo dell’ultimo libro preso in prestito

Thursday, January 12, 12

DATILIBRO(ISBN, Titolo, AnnoPubblicazione, CasaEditrice, PrimoAutore, Genere)

LIBRO(Collocazione, ISBN, DataArchiviazione)

PRESTITO(Collocazione, CodiceUtente, DataPrestito, DataRestituzione)

UTENTE(Codice, Cognome, Nome, Indirizzo, Telefono)

Trovare per ciascun utente il titolo dell’ultimo libro preso in prestito

Thursday, January 12, 12

DATILIBRO(ISBN, Titolo, AnnoPubblicazione, CasaEditrice, PrimoAutore, Genere)

LIBRO(Collocazione, ISBN, DataArchiviazione)

PRESTITO(Collocazione, CodiceUtente, DataPrestito, DataRestituzione)

UTENTE(Codice, Cognome, Nome, Indirizzo, Telefono)

Trovare per ciascun utente il titolo dell’ultimo libro preso in prestito

Thursday, January 12, 12

DATILIBRO(ISBN, Titolo, AnnoPubblicazione, CasaEditrice, PrimoAutore, Genere)

LIBRO(Collocazione, ISBN, DataArchiviazione)

PRESTITO(Collocazione, CodiceUtente, DataPrestito, DataRestituzione)

UTENTE(Codice, Cognome, Nome, Indirizzo, Telefono)

Trovare per ciascun utente il titolo dell’ultimo libro preso in prestito

Thursday, January 12, 12

Thursday, January 12, 12

ΠCognome,Nome,Titolo ( ( PRESTITO – ( ρCU1ßCodiceUtente,DP1ßDataPrestito PRESTITO w< CU1=CU2 ∧ DP1<DP2 ρCU2ßCodiceUtente,DP2ßDataPrestito PRESTITO ) ) wv CodiceUtente=Codice UTENTE

wv LIBRO wv DATILIBRO )

Thursday, January 12, 12

Consideriamo lo schema

VOLO(SitoPartenza, SitoArrivo)

Determinare tutti i possibili collegamenti tra due aeroporti in cui si debbano prendere al massimo due voli

Thursday, January 12, 12

Consideriamo lo schema

VOLO(SitoPartenza, SitoArrivo)

Determinare tutti i possibili collegamenti tra due aeroporti in cui si debbano prendere al massimo due voli

VOLO2=VOLO

VOLO U ΠVOLO.Partenza,VOLO2.Arrivo ( VOLO wv VOLO.Arrivo=VOLO2.Partenza VOLO2)

Thursday, January 12, 12

Supponiamo ora di voler determinare tutti i possibili collegamenti:

non è possibile con l’algebra: per farlo è necessaria la ricorsione

Thursday, January 12, 12

IMPIEGATO (Nome, Età, Stipendio) DIPENDENZA (Manager, Sottoposto)

Abbreviando: IMP (Nome, Età, Stip) DIP (Mngr, Sott)

15) Trovare gli impiegati dipendenti di Mario

Gerarchia aziendale

Thursday, January 12, 12

IMPIEGATO (Nome, Età, Stipendio) DIPENDENZA (Manager, Sottoposto)

Abbreviando: IMP (Nome, Età, Stip) DIP (Mngr, Sott)

15) Trovare gli impiegati dipendenti di Mario

Gerarchia aziendale

ΠNome((σMngr = “Mario” DIP) wv Sott = Nome IMP) oppureρNome<-Sott ΠSottσMngr = “Mario” DIP

Thursday, January 12, 12

17) Le coppie di impiegati che collaborano alle dipendenze di Mario (ipotesi: chi ha lo stesso superiore collabora)

Thursday, January 12, 12

17) Le coppie di impiegati che collaborano alle dipendenze di Mario (ipotesi: chi ha lo stesso superiore collabora)

ΠS1,S2 (( σMngr=“Mario” ( ρS1ßSottDIP)) wv S1<>S2 ( σMngr=“Mario” ( ρS2ßSottDIP)))

Thursday, January 12, 12

18) Trovare gli impiegati che non hanno un manager, cioè non sono in relazione di dipendenza da nessuno

Thursday, January 12, 12

18) Trovare gli impiegati che non hanno un manager, cioè non sono in relazione di dipendenza da nessuno

ΠNome ( IMP – (IMP w< Nome=Sott DIP ))

Thursday, January 12, 12

19) Impiegati di 30 anni oppure che guadagnano 30000 €

Thursday, January 12, 12

19) Impiegati di 30 anni oppure che guadagnano 30000 €

ΠNome (σEtà=30 ∨ Stip=30000 IMP)

Thursday, January 12, 12

20) Impiegati di meno di 30 anni che guadagnano almeno 30000 €

Thursday, January 12, 12

20) Impiegati di meno di 30 anni che guadagnano almeno 30000 €

ΠNome (σEtà<30 ∧ Stip>=30000 IMP)

Thursday, January 12, 12

21) Manager con un loro dipendente che guadagna di più

Thursday, January 12, 12

21) Manager con un loro dipendente che guadagna di più

ΠNomeM( ( (ρNomeSßNome,StipSßStipIMP) wvStipS>StipM

(ρNomeMßNome,StipMßStipIMP) ) wvNomeM=Mngr∧NomeS=Sott DIP )

Thursday, January 12, 12