Tema di informatica
Prof.ssa Alessandra Valpiani
Prof. Antonio Garavaglia
Docenti di informatica presso ITIS LAGRANGE di Milano
Soluzione
Si tratta di un classico problema di progettazione ed implementazione di un database che richiede da parte del tecnico un’analisi puntuale dei bisogni in modo da ottimizzare non solo i tempi di accesso, ma anche l’occupazione di spazio sul supporto di memorizzazione.
In particolare risulta fondamentale analizzare lo schema logico del database in modo da ridurre al minimo la duplicazione dei dati, mantenendo però una struttura che, in caso di crash, consenta di recuperare, se non tutti, almeno buona parte dei dati.
Trattandosi di un archivio piuttosto complesso in cui gli elementi fondamentali, libri e clienti, risultano essere presenti in numero piuttosto consistente appare indispensabile prevedere per il sistema un sistema di backup automatico che consenta di ridurre al minimo le possibilità di perdite di dati (ad esempio prevedendo l’esistenza di un secondo server di supporto, su cui periodicamente viene aggiornata una copia del database con le variazioni apportate nell’ultimo periodo).
a.1)
Da un punto di vista logico, dopo aver adeguatamente analizzato la traccia, appare evidente che l’intero database si articola intorno alle seguenti entità fondamentali:
- Libro, contenente tutti i dati relativi al libro in giacenza
- Cliente, contenente tutti i dati relativi al cliente abilitato agli acquisti on line
- Ordine, contenente i dati relativi agli ordini
Questa prima conclusione deriva dal fatto che i dati relativi ai reparti possono concettualmente essere visti come attributi del singolo libro, mentre il carrello Acquisti è chiaramente collegato al singolo ordine che, contabilmente, riprende i medesimi dati.
La traccia ministeriale, comunque, fornisce di per sé alcune utili indicazioni sulla linea da seguire nell’ottimizzare lo sviluppo del database, suddividendo le entità fondamentali in entità più semplici correlate tra loro mediante relazioni 1:1 e 1:N.
In base a queste considerazioni possiamo individuare le seguenti entità:
| Reparto | Tipologia | Tipologia carta |
| Codice | Codice | Codice |
| Descrizione | Descrizione | Descrizione |
| Libro | Cliente | Ordine |
| ISBN | Codice fiscale | Numero |
| Titolo | Cognome | Data |
| Autore | Nome | codice fiscale cliente |
| Prezzo | Indirizzo | stato dell’ordine |
| Codice | Tip | |
| Cod Rep | Cap | scadenza prevista |
| Dati supplementari | Città | |
| Anno | Nazione | |
| Editore | Telefono/Fax | Voce ordine |
| Collana | Numero ordine | |
| Data archiviazione | Password | ISBN |
| Foto | Codice carta | Quantitativo |
| Numero carta | Disponibile/In attesa | |
| Scadenza |
Possiamo notare che, nonostante le singole entità proposte non prevedano direttamente tutti gli attributi previsti dalla traccia, attraverso adeguate relazioni ed opportune query è possibile rispondere a tutte le richieste della traccia.