Si supponga di voler creare un database con i libri della vostra biblioteca personale. Ogni libro è caratterizzato da titolo, casa editrice, anno pubblicazione, ed autori. Ogni autore è caratterizzato da nome, cognome e nazionalità. Non ci sono limiti al numero di autori che un libro può avere.
Creare le tabelle necessarie e riempirle con qualche dato di esempio. Le tabelle devono essere in formato InnoDB e contenere gli opportuni vincoli di integrità referenziale.
Generare ed inviare come soluzione del compito un file dump del database e un file in formato CSV per ogni tabella che avete creato. Inviare, infine, un elenco di comandi SQL in grado di creare il seguente scenario:
amministratore
può effettuare qualunque operazione su tutte le tabelle del database in questione, da qualunque computer, ma solo previa immissione di una opportuna password;lettore
può accedere in lettura a tutte le tabelle del database in questione, senza immettere password, ma solo dal computer locale.Alcuni problemi comuni che ho riscontrato sono:
SMALLINT
). Alcuni di voi hanno usato altri tipi, come CHAR
, DATE
e DECIMAL
. Queste sono soluzioni meno desiderabili.Ecco i risultati finali. Gli asterischi si riferiscono agli errori di cui sopra.
Studenti | Giudizio | Commento |
---|---|---|
Adriani, Mariani | Insuff. | *1 - titolo del libro e cognome autore non sono buone chiavi primarie perché non sono garantite essere uniche (ci sono molti autori divsersi con lo stesso cognome, ad esempio) |
Altomare, Francescone, Terrenzi | Insuff. | *1, *2 |
Bonelli | Insuff. | *1 - mancano il dump del database e i file CSV - i comandi GRANT concedono diritti di accesso a tutto il server e non al solo database dei libri |
Candeloro, De Luca F. | Insuff | *1 - per concedere diritti di accesso a tutte le tabelle di un database, usare la forma <database>.* invece di ripetere il comando GRANT per tutte le tabelle |
Candeloro, De Luca F. bis | Ottimo | |
Capparella | Ottimo | |
Cardone, Staniscia | Sufficiente | - non si può usare la sintassi *.<tabella> nel comando GRANT , e anche se funzionasse sarebbe sbagliato perché concederebbe diritti di accesso alla tabella su tutti i database, che non è quanto richiesto |
Cialfi | Insuff. | *1, *2 - mi sembra strano che, in accordo alla tabella scritto , tutti gli autori abbiano partecipato alla scrittura di tutti i libri |
Cialfi bis | Ottimo | |
Cilli, Di Giovanni, Paglialunga | Ottimo | |
Coccione | Ottimo | |
D'Ambrosio, Sappracone | Sufficiente | *2 - mancano i comandi GRANT |
D'Aveta, Di Chiro | Ottimo | |
De Luca S. | Buono | *2 |
D'Incecco, Marchesani | Ottimo | |
Iuras, Palermo | Insuff. | *1 |
Iuras, Palermo bis | Ottimo | *1 |
Mazzotti, Scutti | Buono | - i comandi GRANT forniscono l'accesso a tutti i database sul server, non solo a quello dei libri |
Monachese | Insuff. | *1 - mancano il dump del database e i file CSV |
Pignoli | Buono | - il comando CREATE USER amministratore@localhost dovrebbe essere rimpiazzato con CREATE USER amministratore@'%' , in quanto è a quest'ultimo che vengono concessi i diritti necessari con il comando GRANT |
Pirro | Insuff. | *1 - i comandi GRANT forniscono l'accesso a tutti i database sul server, non solo a quello dei libri- l'utente lettore si può collegare da qualunque computer, non solo da quello locale come richiesto - le chiavi esterne non hanno lo stesso tipo delle chiavi primari a cui si riferiscono - mancano il dump del database e i file CSV |
Salerno | Insuff. | *1 - i comandi GRANT forniscono l'accesso a tutti i database sul server, non solo a quello dei libri |
Salerno bis | Ottimo | |
Tontodonati | Buono | - mancano i vincoli di chiave esterna |
Chi ha ottenuto un voto insufficiente può recuperare o venendo a ricevimento o inviandomi una versione corretta.