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.