Anteprima
Vedrai una selezione di 6 pagine su 24
Esercizi di Algebra Relazionale Pag. 1 Esercizi di Algebra Relazionale Pag. 2
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Esercizi di Algebra Relazionale Pag. 6
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Esercizi di Algebra Relazionale Pag. 11
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Esercizi di Algebra Relazionale Pag. 16
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Esercizi di Algebra Relazionale Pag. 21
1 su 24
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Titoli dei libri presi

  1. Titoli dei libri presi in prestito il giorno 13/7/2011
  2. Autori dei libri presi in prestito da Paolo Bianchi
  3. Codici degli utenti che hanno preso in prestito libri scritti da Camilleri oppure da De Luca
  4. Titoli dei libri presi in prestito il giorno 13/7/2011 da Paolo Bianchi
  5. Trovare gli utenti che hanno preso in prestito solo libri di Camilleri

SOLUZIONI:

  1. Titoli dei libri presi in prestito il giorno 13/7/2011
  2. 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

  3. Autori dei libri presi in prestito da Paolo Bianchi
  4. 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

  5. Codici degli utenti che hanno preso in prestito libri scritti da Camilleri oppure da De Luca
  6. 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

  7. Titoli dei libri presi in prestito il giorno 13/7/2011 da Paolo Bianchi
  8. 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

  9. Trovare gli utenti che hanno preso in prestito solo libri di Camilleri
  10. 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)
  1. S1 = Noleggio Clienti
  2. S2 = (S1)=„Paolo„ AND cognome = „Bianchi‟data_noleggio = 20/1/2012 AND nome
  3. S3 = S2)(codice_cd(S3 CD)autore, titolo 11
  4. Ottimizzando:
  5. S1 = (Noleggio)data_noleggio = 20/1/2012
  6. S2 = Clienti( )=„Paolo„ AND cognome = „Bianchi‟nome
  7. S3 = S1 S2)(codice_cd(S3 CD)autore, titolo
  8. b) Nome e cognome dei clienti che hanno noleggiato cd dei Radiohead in data 12/10/2001
  9. CD(codice_cd, autore, titolo)
  10. CLIENTI(codice_cliente, codice_fiscale, nome, cognome)
  11. NOLEGGIO(codice_cliente, codice_cd, data_noleggio)
  12. S1 = (Noleggio)data_noleggio = 12/10/2001
  13. S2 = (CD)= „Radiohead„autore
  14. S3 = (S1 S2)codice_cliente(S3 Clienti)nome, cognome
  15. c) Titolo dei cd che sono stati noleggiati dal cliente avente codice C123 oppure dal cliente avente codice G624
  16. CD(codice_cd, autore, titolo)
  17. CLIENTI(codice_cliente, codice_fiscale, nome, cognome)
  18. 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

Dettagli
A.A. 2019-2020
24 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher melissa.meli.1997.21.06 di informazioni apprese con la frequenza delle lezioni di Basi di dati e sistemi informativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Bari o del prof Loseto Giuseppe.