Basi di Dati 1 - a.a. 1997-98 - Testo Esercitazione
Ultima modifica: 28 gennaio 1998.
Commenti a Giovanna Guerrini.
Il problema
Si vuole realizzare un'applicazione base di dati per la gestione di una
biblioteca comunale.
Per i libri, si e` interessati ad informazioni circa il titolo, gli autori
e il tipo.
I tipi possibili sono: narrativa, saggistica, poetica, testi scientifici.
Per ogni libro, possono essere presenti piu` copie.
Per ogni copia si e` interessati ad informazioni circa
la collocazione, la casa editrice, la data di pubblicazione ed il costo.
Alcune copie possono essere rovinate; per queste si vuole mantenere anche
l'informazione relativa al tipo di difetto e al fatto che la copia sia o
non sia
in restauro.
Se la copia e` in restauro, si vuole mantenere la data in cui la copia e`
entrata in
restauro.
Per ogni autore si vuole inoltre mantenere il nome, la data ed il luogo di
nascita.
Per gli utenti, si e` interessati ad informazioni circa il nome, il codice
identificativo, l'indirizzo di residenza, il recapito telefonico.
Gli utenti sono inoltre classificati in: studenti non universitari, studenti
universitari, docenti, altri utenti.
Per alcune statistiche interne, si e` interessati a mantenere
informazioni relative alla scuola a cui sono iscritti gli studenti non
universitari, informazioni relative alla facolta` a cui sono iscritti gli
studenti universitari, informazioni relative alla scuola e/o universita` in cui
insegnano i docenti.
Per i prestiti si e` interessati ad informazioni circa la copia in
prestito, il codice dell'utente a cui si riferisce il prestito, la data di
inizio del prestito.
Per ottenere un libro in prestito, l'utente deve fornire informazioni
relative al libro
di interesse. Condizione necessaria affinche` il prestito possa essere
concesso e` che esista almeno una copia non in restauro del libro
richiesto.
E` previsto un numero massimo di copie di libri che un utente puo' avere
contemporaneamente in prestito. In particolare:
- studenti non universitari 3
- studenti universitari 4
- docenti 5
- altri utenti 2.
Superati questi valori, il prestito non viene concesso.
Se il prestito viene concesso,
esso e` valido 1 mese dalla data di inizio prestito per i libri di
narrativa e poetica, 2 mesi dalla data di inizio del prestito per i saggi e i
testi scientifici.
Ogni giorno la biblioteca controlla i prestiti in scadenza e provvede a
notificare la scadenza del prestito all'utente, tramite l'invio di una
cartolina (notifica di primo livello). Se dopo 5 giorni la copia in prestito
non viene restituita, invia
una seconda cartolina (notifica di secondo livello). Se dopo ulteriori 5
giorni la copia in prestito
non e` ancora stata
restituita, telefona direttamente all'utente (notifica di terzo livello).
Utenti notificati non possono prendere ulteriori libri in prestito.
Si vuole mantenere traccia di tutte le notifiche comunicate (tramite
posta o
telefono) agli utenti per copie non ancora restituite. Per ogni notifica
si deve inoltre tenere conto del livello della notifica e della data di
notifica.
Le operazioni previste sulla base di dati sono le seguenti:
- Inserimento dati
-
Inserimento nuovo utente.
- Inserimento nuova copia (ed eventualmente nuovo autore).
- Cancellazione dati
- Cancellazione utente.
- Cancellazione copia (ed eventualmente autore).
- Aggiornamento dati
- Aggiornamento dati utente.
- Aggiornamento dati copia (determinare quali aggiornamenti sono significativi).
- Altre procedure di gestione (di base)
- Determinazione dello stato di un libro
(disponibile/non disponibile).
- Determinazione dello stato di una copia (disponibile/non disponibile).
- Reperimento, dato un utente, di tutte le copie in prestito a suo nome.
- Reperimento, dato un utente, del numero di copie in prestito a suo nome.
-
Determinazione dello stato di notifica di un dato utente (non
notificato/notificato per almeno una copia).
-
Determinazione (giornaliera) di tutti gli utenti a cui deve essere spedita
la prima cartolina.
-
Determinazione (giornaliera) di tutti gli utenti a cui deve essere spedita
la seconda cartolina.
-
Determinazione (giornaliera) di tutti gli utenti a cui si deve telefonare.
-
Elenco di tutti gli utenti ai quali e` stata richiesta la restituzione di
una copia,
con l'indicazione della copia richiesta e del tipo di notifica corrente
(prima cartolina, seconda cartolina, telefono).
-
Elenco delle copie in restauro.
-
Elenco delle copie difettose non ancora in restauro.
-
Elenco indicante per ogni utente il numero di copie in prestito, suddivise per
tipo.
-
Elenco indicante per ogni tipologia di utente la percentuale di copie
correntemente in prestito, suddivise per tipo.
-
Elenco indicante per ogni autore il numero di libri da lui scritti presenti in
biblioteca.
-
Elenco indicante per ogni tipo di libro il costo totale relativo
all'acquisto di copie di libri di quel tipo
e il costo medio.
-
Elenco indicante per ogni scuola/universita`, il numero di copie in
prestito a studenti e il
numero di copie in prestito a docenti
di tale scuola/universita`.
- Altre procedure di gestione (avanzate)
-
Controllo ammissibilita` di un prestito.
-
Registrazione di un prestito ammissibile.
-
Procedura relativa alla restituzione di un libro in prestito.
-
Controllo prestiti e aggiornamento giornaliero delle notifiche.
Svolgimento dell'esercitazione
Comprende i seguenti punti:
-
Definizione della struttura della base di dati usando il modello
Entity-Relationship.
Precisare le cardinalita` delle associazioni e i vincoli di identificazione
(chiavi).
- Specifica di eventuali altri vincoli di integrita`.
-
Traduzione nel modello relazionale.
-
Implementazione usando Microsoft Access o DB4. In entrambi i casi, si usi SQL
per quanto e` possibile
ed i linguaggi di comandi di Access/DB4 per il resto (ad esempio, gestione
di menu, gestione degli errori).
In particolare, si indichino esplicitamente i comandi
SQL corrispondenti alle varie funzionalita` richieste al punto 4.).
Per chi sostiene sia Basi di dati 1 che Basi di dati 2, l'esercitazione
comprende
inoltre i seguenti punti:
-
Discussione e giustificazione dell'eventuale uso di indici nell'implementazione.
-
Traduzione nel modello ad oggetti (ODMG) e stesura di uno schema di
implementazione [per le varie classi vanno indicate le segnature e la
specifica delle
funzionalita` delle operazioni, non l'implementazione], mettendo in
evidenza le
differenze dello schema risultante con lo schema relazionale.
Consegna e valutazione
La consegna dovra` avvenire entro il 30 settembre 1998 per chi sostiene l'esame
con la modalita` ``compitini", prima di sostenere l'orale per gli altri.
All'esercitazione verra` assegnato un incremento/decremento
nell'intervallo [-1,+3]
sul voto ottenuto dai compitini o dall'esame orale.