Si vuole creare una base di dati per gestire gli abbonamenti ad alcune
riviste stipulati da persone residenti in varie città. In ogni città la consegna
delle riviste viene curata da un distributore.
Creare gli schemi concettuale, logico e fisico, creare il database, inserirvi i
dati indicati e poi eseguire le seguenti query:
1. selezionare l’elenco dei distributori con nome, via, cap e città della
sede
2. selezionare l’elenco dei distributori e delle città nelle quali
distribuiscono le riviste
3. Selezionare tutti gli abbonati di Trieste
4. Selezionare tutti gli abbonati di Trieste con abbonamento annuale
5. Selezionare tutti gli abbonamenti ed i relativi abbonati a Topolino
6. Selezionare tutti gli abbonamenti a Topolino di durata pluriennale
7. Selezionare tutti gli abbonamenti a Topolino da consegnare a
Trieste
8. Individuare l’elenco degli abbonati a Focus serviti dal distributore
Telma e Louise trans
9. Selezionare l’elenco degli abbonati a Focus e a Topolino
 rivista – è un giornale che ha un titolo, una descrizione ed un costo
 abbonato – è una persona fisica o giuridica ( uomo, ente, associazione,
società, … ) che acquista una certa quantità di giornali: ha nome,
indirizzo
 città – sono le città in cui si possono spedire gli abbonamenti: ha un
nome ed un distributore che si occupa delle consegne
 distributore – è una persona o una società che si occupa della
consegna dei giornali nelle città: ha un nome, un indirizzo, un telefono
Flavia Lollis ITIS A. Volta Trieste
1 di 13
Modello concettuale
Modello logico
Flavia Lollis ITIS A. Volta Trieste
2 di 13
Modello fisico
Flavia Lollis ITIS A. Volta Trieste
3 di 13
elenco dati nelle tabelle
rivista
distributore
Flavia Lollis ITIS A. Volta Trieste
4 di 13
città
abbonato
Flavia Lollis ITIS A. Volta Trieste
5 di 13
abbonamento
Se volete caricare la stessa struttura e gli stessi dati per le tabelle seguite i seguenti passi:
1. scaricare dal sito la struttura dei dati abbonamenti.sql
2. create nel vostro mysql un database di nome abbonamenti (se già esiste
continuamdo lo ricoprite)
3. posizionatevi nel database appena creato e premete il bottone importa
4. selezionate il file abbonamenti.sql appena scaricato
5. premete esegui
Il file contiene una serie di istruzioni SQL che nell’ordine cancellano le tabelle se esistono,
le creano ed inseriscono i dati.
Flavia Lollis ITIS A. Volta Trieste
6 di 13
Esecuzione query
1. selezionare l’elenco dei distributori con nome, via, cap e città
della sede
SELECT distributore.nome, via, cap, citta.nome
FROM distributore, citta
WHERE distributore.codCitta = citta.codCitta
risultato
2. selezionare l’elenco dei distributori e delle città nelle quali
distribuiscono le riviste
SELECT distributore.nome, citta.nome
FROM citta, distributore
WHERE distributore.codDistr = citta.codDistr
risultato
Flavia Lollis ITIS A. Volta Trieste
7 di 13
3. Selezionare tutti gli abbonati di Trieste
SELECT cognome, abbonato.nome, citta.nome
FROM abbonato, citta
WHERE citta.nome='Trieste'
AND
abbonato.codCitta=citta.codCitta
risultato
4. Selezionare tutti gli abbonati di Trieste con abbonamento
annuale
SELECT cognome, abbonato.nome, citta.nome, anniDurata
FROM abbonato, citta, abbonamento
WHERE citta.nome='Trieste'
AND
anniDurata = 1
AND
abbonato.codCitta=citta.codCitta
AND
abbonamento.codAbbonato=abbonato.codAbbonato
risultato
5. Selezionare tutti gli abbonamenti ed i relativi abbonati a
Topolino
SELECT numAbbonamento, cognome, abbonato.nome
Flavia Lollis ITIS A. Volta Trieste
8 di 13
FROM abbonamento, rivista, abbonato
WHERE rivista.titolo = 'Topolino'
AND
abbonamento.codRivista=rivista.codRivista AND
abbonato.codAbbonato=abbonamento.codAbbonato
risultato
6. Selezionare
pluriennale
tutti
gli
abbonamenti
a
Topolino
di
durata
SELECT numAbbonamento, cognome, abbonato.nome
FROM abbonamento, rivista, abbonato
WHERE rivista.titolo = 'Topolino'
anniDurata > 1
AND
AND
abbonamento.codRivista=rivista.codRivista AND
abbonato.codAbbonato=abbonamento.codAbbonato
risultato
7. Selezionare tutti gli abbonamenti a Topolino da consegnare a
Trieste
Flavia Lollis ITIS A. Volta Trieste
9 di 13
SELECT numAbbonam, cognome, abbonato.nome, citta.nome, titolo
FROM abbonamento, rivista, abbonato, citta
WHERE rivista.titolo = 'Topolino'
citta.nome = 'Trieste'
AND
AND
abbonamento.codRivista=rivista.codRivista AND
abbonato.codAbbonato =abbonamento.codAbbonato
AND
citta.codCitta=abbonato.codCitta
risultato
8. Individuare l’elenco degli abbonati a Focus serviti dal distributore Telma
e Louise trans
SELECT distributore.nome, rivista.titolo, citta.nome, abbonato.cognome
FROM abbonato, abbonamento, rivista, distributore, citta
WHERE rivista.titolo = 'Focus' AND
abbonamento.codRivista = rivista.codRivista
AND
abbonato.codAbbonato=abbonamento.codAbbonato
AND
citta.codCitta = abbonato.codCitta
AND
distributore.codDistr = citta.codDistr
AND
distributore.nome = 'Telma e Louise trans'
risultato
9. Selezionare l’elenco degli abbonati a Focus e a Topolino
Flavia Lollis ITIS A. Volta Trieste
10 di 13
SELECT abbonato.codAbbonato, abbonato.nome, abbonato.cognome
FROM abbonato, abbonamento, rivista
WHERE abbonato.codAbbonato = abbonamento.codAbbonato AND
abbonamento.codRivista = rivista.codRivista
AND
rivista.titolo='Focus'
AND
abbonato.codAbbonato IN (SELECT abbonato.codAbbonato
FROM abbonato, abbonamento, rivista
WHERE abbonato.codAbbonato =
abbonamento.codAbbonato AND
abbonamento.codRivista =
rivista.codRivista
AND
rivista.titolo = 'Topolino' )
risultato
Flavia Lollis ITIS A. Volta Trieste
11 di 13
Flavia Lollis ITIS A. Volta Trieste
12 di 13
Flavia Lollis ITIS A. Volta Trieste
13 di 13