Simulazione informatica Esercizio da svolgere con il DBMS MySQL

Simulazione informatica
Esercizio da svolgere con il DBMS MySQL ed il client HeidiSQL
1. Crea un database di nome VideoNoleggi che contenga tre tabelle, una chiamata Clienti che
contiene l'anagrafica dei clienti di un negozio di videonoleggio, una chiamata DVD che contiene
l'elenco dei DVD disponibili ed una chiamata Noleggi che contiene l'elenco dei noleggi relativi ai
DVD che vengono presi in prestito dai clienti.
Un cliente può prendere in prestito quanti DVD vuole, quindi un singolo record della tabella Clienti
può essere correlato a uno o più record della tabella Noleggi. Un singolo video, tuttavia, è
associato a un solo cliente in un determinato momento, quindi un singolo record della tabella
Noleggi è correlato a un solo record della tabella Clienti. Allo stesso modo ciascun record della
tabella DVD è correlato ad uno o più record della tabella Noleggi, in quanto ad ogni noleggio viene
registrato il nome del cliente ma anche il video che è stato noleggiato.
2. Crea la tabella Clienti scegliendo opportunamente il tipo, la dimensione ed il formato dei campi:
Cognome
Nome
Indirizzo
Città
Numero_tel
3. Aggiungi il campo ID_cliente di tipo chiave primaria Auto_Increment
4. Inserisci almeno 10 record:
ID_studente
Cognome
Nome
1
2
3
4
5
Coletti
Verdi
Gianelli
Esposito
Moretti
Roberta
Alberto
Sara
Antonio
Giuseppe
6
7
8
9
10
Sandri
Sonetti
Rossi
Frollino
Capelli
Bruno
Maria
Matteo
Marco
Manuela
Indirizzo
Via Gardena, 34
Via Cavour, 11
Corso Rivolta, 43
Via Albertoni, 34
Corso C.Colombo,
126
Viale Cavour, 32
Via Verdi, 3
Via Natta, 32
Via Mazzini, 11
Via C.Colombo, 21
Città
Numero_tel
Pescara
Bergamo
Firenze
Napoli
Ancona
+3933056453423
+3933356457423
+3933356453423
+3933156153420
+3934656453421
Roma
Palermo
Lecce
Bologna
Milano
+3933353853122
+3933355953423
+3934556453424
+3934323453425
+3932156412426
Esiste una relazione uno a molti fra una coppia di tabelle quando un singolo record della prima
tabella può essere correlato a uno o più record della seconda tabella, ma un singolo record della
seconda tabella può essere correlato a un solo record della prima tabella. Esaminiamo un esempio
generico di questo tipo di relazione. Questa è la più comune relazione in assoluto che può esistere
fra una coppia di tabelle in un database ed è la più facile da identificare. Essa è cruciale dal punto
di vista dell’integrità dei dati in quanto aiuta a eliminare i dati duplicati e a ridurre al minimo i dati
ridondanti.
5. Crea la tabella DVD scegliendo opportunamente il tipo, la dimensione ed il formato dei campi:
Titolo
Anno
Regista
Genere
Nazione
6. Aggiungi il campo ID_video di tipo chiave primaria Auto_Increment
7. Inserisci almeno 10 record:
ID_vide
o
1
2
Titolo
Anno
Regista
Genere
Nazione
1986
1998
M.Scorsese
A. Tornatore
Commedia
Fantastico
USA
Italia
3
4
5
6
7
8
9
Il colore dei soldi
La leggenda del pianista
sull'oceano
Il cacciatore
Taxi Driver
My fairlady
Profumo di donna
Blood diamonds
Novecento
Apocalipse now
1978
1976
1964
1992
2007
1976
1979
Guerra
Drammatico
Commedia
Drammatico
Drammatico
Drammatico
Guerra
USA
USA
USA
USA
USA
Italia
USA
10
V per vendetta
2005
M. Cimino
M. Scorsese
J. Cuckor
M. Brest
E. Zwick
B.Bertolucci
F. Ford
Coppola
J. Mc Teigue
Azione
Inghilterra
8. Crea la tabella Noleggi per creare una relazione di tipo 1 a molti tra le tre tabelle. scegliendo
opportunamente il tipo, la dimensione ed il formato dei campi:
id_cliente
id_dvd
data_noleggio
data_restituzione
I campi id_dvd e id_cliente sono chiavi esterne, pertanto quando crei la tabella ricordati di
inserire il vincolo relazionale che non ammette la possibilità di inserire chiavi esterne non correlate
al relativo studente o strumento.
6. Aggiungi il campo ID_noleggio di tipo chiave primaria Auto_Increment
7. Inserisci almeno 20 record:
ID_noleggio
1
2
3
4
5
6
7
Id_cliente
1
8
1
3
3
2
1
Id_dvd
1
4
2
7
1
2
3
Data_noleggio
10/03/2013
11/03/2013
21/03/2013
11/04/2013
14/04/2013
18/04/2013
21/04/2013
Data_restituzione
11/03/2013
11/03/2013
22/03/2013
22/04/2013
21/04/2013
22/04/2013
26/04/2013
8
9
10
11
12
13
14
15
16
17
18
19
20
6
3
5
2
2
1
3
7
8
9
10
3
10
5
4
3
2
7
5
6
3
5
6
5
5
6
11/05/2013
14/05/2013
14/05/2013
14/05/2013
19/05/2013
21/05/2013
22/05/2013
24/05/2013
19/05/2013
19/06/2013
21/07/2013
05/08/2013
12/08/2013
12/05/2013
18/05/2013
22/05/2013
21/05/2013
20/05/2013
29/06/2013
22/06/2013
02/06/2013
20/05/2013
22/06/2013
04/08/2012
6/08/2013
14/08/2013