Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Titoli dei libri presi
- Titoli dei libri presi in prestito il giorno 13/7/2011
- Autori dei libri presi in prestito da Paolo Bianchi
- Codici degli utenti che hanno preso in prestito libri scritti da Camilleri oppure da De Luca
- Titoli dei libri presi in prestito il giorno 13/7/2011 da Paolo Bianchi
- Trovare gli utenti che hanno preso in prestito solo libri di Camilleri
SOLUZIONI:
- Titoli dei libri presi in prestito il giorno 13/7/2011
- Autori dei libri presi in prestito da Paolo Bianchi
- Codici degli utenti che hanno preso in prestito libri scritti da Camilleri oppure da De Luca
- Titoli dei libri presi in prestito il giorno 13/7/2011 da Paolo Bianchi
- Trovare gli utenti che hanno preso in prestito solo libri di Camilleri
LIBRI(codice_libro, autore, titolo)
UTENTI(codice_utente, nome, cognome)
PRESTITI(codice_utente, codice_libro, data_prestito)
S1 = (Prestiti) data_prestito = 13/7/2011
(S1 Libri) titolo
oppure direttamente:
((Prestiti) Libri) titolo data_prestito = 13/7/2011
LIBRI(codice_libro, autore, titolo)
UTENTI(codice_utente, nome, cognome)
PRESTITI(codice_utente, codice_libro, data_prestito)
S1 = Utenti(nome = "Paolo" AND cognome = "Bianchi")
S2 = S1 Prestiti
S3 = S2 Libri
(S3) autore
Ottimizzando:
S1 = Utenti(nome = "Paolo" AND cognome = "Bianchi")
(S1 Prestiti Libri) autore
LIBRI(codice_libro, autore, titolo)
UTENTI(codice_utente, nome, cognome)
PRESTITI(codice_utente, codice_libro, data_prestito)
S1 = (Libri) autore = "Camilleri" OR autore = "De Luca"
(S1 Prestiti) codice_utente
LIBRI(codice_libro, autore, titolo)
UTENTI(codice_utente, nome, cognome)
PRESTITI(codice_utente, codice_libro, data_prestito)
S1 = (Prestiti) data_prestito = 13/7/2011
S2 = S1 UTENTI(nome = "Paolo" AND cognome = "Bianchi")
S3 = S2 Libri
(S3) titolo
LIBRI(codice_libro, autore, titolo)
UTENTI(codice_utente, nome, cognome)
PRESTITI(codice_utente, codice_libro, data_prestito)
S1 = (Libri) autore = "Camilleri"
S2 = (Prestiti) codice_libro IN S1.codice_libro
S3 = S2 UTENTI
(S3) nome, cognome
„Bianchi‟nomeS2 = (S1 Prestiti)codice_libroS3 = S2 Libri(S3)autorec) Codici degli utenti che hanno preso in prestito libri scritti da Camillerioppure da De LucaLIBRI(codice_libro, autore, titolo)UTENTI(codice_utente, nome, cognome)PRESTITI(codice_utente, codice_libro, data_prestito)S1 = (Libri)=„Camilleri„ OR autore = „De Luca‟autoreS2 = S1 Prestiti(S2)codice_utente 9d) Titolo dei libri presi in prestito il giorno 13/7/2011 da Paolo BianchiLIBRI(codice_libro, autore, titolo)UTENTI(codice_utente, nome, cognome)PRESTITI(codice_utente, codice_libro, data_prestito)S1 = Utenti( )=„Paolo„ AND cognome = „Bianchi‟nomeS2 = Prestiti( )data_prestito = 13/7/2011S3 = (S1 S2)codice_libroS4 = S3 Libri( S4)titoloe) Trovare gli utenti che hanno preso in prestito solo libri di Camilleri.LIBRI(codice_libro, autore, titolo)UTENTI(codice_utente, nome, cognome)PRESTITI(codice_utente, codice_libro, data_prestito)S1 = (Libri)=„Camilleri„autoreS2 =
(S1)codice_libroS3 = S2 Prestiti S4 = (S3)codice_ utente T1 = (Libri)<>„Camilleri„autore T2 = (T1)codice_libro T3 = T2 Prestiti T4 = (T3)codice_ utente S4-T4 10 Esercizio 2 Si assuma il seguente schema relazionale per la gestione del noleggio di cd: CD(codice_cd, autore, titolo) CLIENTI(codice_cliente, codice_fiscale, nome, cognome) NOLEGGIO(codice_cliente, codice_cd, data_noleggio) nell‟algebra relazionale, ciascuna delle seguenti interrogazioni: a) Autore e titolo dei cd noleggiati da Paolo Bianchi in data 20/1/2012 b) Nome e cognome dei clienti che hanno noleggiato cd dei Radiohead in data 12/10/2001 c) Titolo dei cd che sono stati noleggiati dal cliente avente codice C123 oppure dal cliente avente codice G624 d) Trovare i clienti che hanno stesso nome e cognome, ma diverso Codice Fiscale. SOLUZIONE: a) Autore e titolo dei cd noleggiati da Paolo Bianchi in data 20/1/2012 CD(codice_cd, autore, titolo) CLIENTI(codice_cliente, codice_fiscale, nome, cognome) NOLEGGIO(codice_cliente, codice_cd, data_noleggio) b) Nome e cognome dei clienti che hanno noleggiato cd dei Radiohead in data 12/10/2001 CD(codice_cd, autore, titolo) CLIENTI(codice_cliente, codice_fiscale, nome, cognome) NOLEGGIO(codice_cliente, codice_cd, data_noleggio) c) Titolo dei cd che sono stati noleggiati dal cliente avente codice C123 oppure dal cliente avente codice G624 CD(codice_cd, autore, titolo) CLIENTI(codice_cliente, codice_fiscale, nome, cognome) NOLEGGIO(codice_cliente, codice_cd, data_noleggio) d) Trovare i clienti che hanno stesso nome e cognome, ma diverso Codice Fiscale. CD(codice_cd, autore, titolo) CLIENTI(codice_cliente, codice_fiscale, nome, cognome) NOLEGGIO(codice_cliente, codice_cd, data_noleggio)
- S1 = Noleggio Clienti
- S2 = (S1)=„Paolo„ AND cognome = „Bianchi‟data_noleggio = 20/1/2012 AND nome
- S3 = S2)(codice_cd(S3 CD)autore, titolo 11
- Ottimizzando:
- S1 = (Noleggio)data_noleggio = 20/1/2012
- S2 = Clienti( )=„Paolo„ AND cognome = „Bianchi‟nome
- S3 = S1 S2)(codice_cd(S3 CD)autore, titolo
- b) Nome e cognome dei clienti che hanno noleggiato cd dei Radiohead in data 12/10/2001
- CD(codice_cd, autore, titolo)
- CLIENTI(codice_cliente, codice_fiscale, nome, cognome)
- NOLEGGIO(codice_cliente, codice_cd, data_noleggio)
- S1 = (Noleggio)data_noleggio = 12/10/2001
- S2 = (CD)= „Radiohead„autore
- S3 = (S1 S2)codice_cliente(S3 Clienti)nome, cognome
- c) Titolo dei cd che sono stati noleggiati dal cliente avente codice C123 oppure dal cliente avente codice G624
- CD(codice_cd, autore, titolo)
- CLIENTI(codice_cliente, codice_fiscale, nome, cognome)
- NOLEGGIO(codice_cliente,
(codice_cd, data_noleggio) (Noleggio) CD=„ codice_cliente = „G624‟ titolo codice_cliente C123‟ OR Oppure: (Noleggio)) S1 = ( „C123‟ codice_cliente = „G624‟ codice_cd codice_cliente = OR≡ ∪(Noleggio) S1 = ( =„ codice_cliente = „G624‟ codice_cd codice_cliente C123‟ (Noleggio))(S2 = S1 CD) titolo 12d) Trovare i clienti che hanno stesso nome e cognome, ma diverso CodiceFiscale CD(codice_cd, autore, titolo) CLIENTI(codice_cliente, codice_fiscale, nome, cognome) NOLEGGIO(codice_cliente, codice_cd, data_noleggio) Ridenominiamo gli attributi della tabella Clienti: ρ ( Clienti1(nome1 nome, cognome1 cognome, codice_fiscale1codice_fiscale), Clienti)è equivalente a scrivere: ρ(nome1C = nome, cognome1 cognome, codice_fiscale1 codice_fiscale, Clienti) ( Clientinome, cognome, codice_fiscale Clienti.nome = Clienti1.nome1 AND Clienti.cognome = Clienti1.cognome1 AND Clienti.codice_fiscale<> Clienti1.codice_fiscale1) Clienti1 Il join
(Prenotazioni)codice_viaggiatore, codice_treno, dataS3 = (TRENI)codice_treno, provenienza, destinazioneS4 = (VIAGGIATORI)codice_viaggiatore, nome, cognomeS5 = S1 JOIN S2 ON S1.codice_treno = S2.codice_trenoS6 = S5 JOIN S3 ON S5.codice_treno = S3.codice_trenoS7 = S6 JOIN S4 ON S6.codice_viaggiatore = S4.codice_viaggiatoreS8 = SELECT nome, cognome FROM S7 WHERE data = '10/12/2011' AND provenienza = 'Pisa' AND destinazione = 'Roma'b) Elenco delle date in cui viaggiatori dal cognome Bianchi hanno effettuatoprenotazioniS9 = SELECT DISTINCT data FROM S1 JOIN S4 ON S1.codice_viaggiatore = S4.codice_viaggiatore WHERE cognome = 'Bianchi'c) Provenienza e destinazione dei treni su cui è stata effettuata almeno unaprenotazioneS10 = SELECT DISTINCT provenienza, destinazione FROM S3 JOIN S2 ON S3.codice_treno = S2.codice_treno(Treni)provenienza = „Pisa‟ AND destinazione = „Roma‟
S3 = (S1 S2)codice_viaggiatore
S4 = S3 Viaggiatori(S4)nome, cognome
14b) Elenco delle date in cui viaggiatori dal cognome Bianchi hanno effettuatoprenotazioni
VIAGGIATORI (codice_viaggiatore, nome, cognome)
TRENI (codice_treno, provenienza, destinazione)
PRENOTAZIONI (codice_viaggiatore, codice_treno, data)
S1 = (Viaggiatori)cognome = „Bianchi „
(S1 Prenotazioni)dataoppure direttamente:
((Viaggiatori) Prenotazioni)cognome = „Bianchi „data
c) Provenienza e destinazione dei treni su cui è stata effettuata almeno unaprenotazione
VIAGGIATORI (codice_viaggiatore, nome, cognome)
TRENI (codice_treno, provenienza, destinazione)
PRENOTAZIONI (codice_viaggiatore, codice_treno, data)
(Treni Prenotazioni)provenienza, destinazione
15Esercizio 4
Si assuma il seguente schema relazionale per la gestione di un video-noleggio:
CLIENTI (codice_cliente, nome, cognome)
FILM(codice_film, titolo, anno, genere)
NOLEGGIO(codice_cliente,
<p>codice_film, data)</p>
<p>Si esprima, nell‟algebra relazionale, ciascuna delle seguenti interrogazioni:</p>
<p>a) Nome e cognome dei clienti che hanno noleggiato film di fantascienza</p>
<p>b) Titolo ed anno dei film di fantascienza</p>
<p>c) Titolo dei film gialli noleggiati da Paolo Bianchi</p>
<p>d) Cognome dei clienti che in data 10/12/2011 hanno noleggiato film di
fantascienza o film girati nel 1965</p>
<p>SOLUZIONE:</p>
<p>a) Nome e cognome dei clienti che hanno noleggiato film di fantascienza</p>
<p><code>(( (Film) Noleggio) Clienti)„fantascienza‟nome, cognome genere =</code></p>
<p>b) Titolo ed anno dei film di fantascienza</p>
<p><code>( (Film)„fantascienza‟titolo, anno genere =</code></p>
<p>c) Titolo dei film gialli noleggiati da Paolo Bianchi</p>
<p><code>S1 = (Film)„giallo‟genere =</code></p>
<p><code>S2 = (Clienti)„Bianchi‟ AND nome = „Paolo‟cognome =</code></p>
<p><code>S3 = (S1 Noleggio)codice_cliente</code></p>
<p><code>S4 = S3 S2(S4)titolo 16</code></p>
<p>d) Cognome dei clienti che in data 10/12/2011 hanno noleggiato film di
fantascienza o film girati nel 1965</p>
<p><code>CLIENTI (codice_cliente, nome, cognome)</code></p>
<p><code>FILM(codice_film, titolo, anno, genere)</code></p>
<p><code>NOLEGGIO(codice_cliente, data)</code></p>
a) Edificio e nome delle aule prenotate per gli esami di informatica il giorno 10/12/2011