ESAME DB 31/01/2006
Prof. Giovanni Giuffrida
SECONDO MODULO (DB2)
NON DIMENTICATE IL NOME E LA MATRICOLA
Nome ________________________________________
Matricola: ___________________
INDICATE COSA DOVETE REGISTRARE
DB 9cfu
DB1 6cfu
DB2 6cfu
Altro: __________
Punteggio finale (questa parte verrà riempita dal docente)
======== BUON LAVORO ========
DIPENDENZE FUNZIONALI E NORMALIZZAZIONE
[15 punti] Considera un database di opere sinfoniche contenenti informazioni su teatri, date, orchestre, direttori
d’orchestra, compositori e sinfonie. Assumere che:
 Non possono esistere due opere di autori diversi con lo stesso titolo;
 al massimo un’orchestra ed un direttore possono suonare in un certo teatro in una certa data;
 un direttore può essere assegnato ad un solo teatro ed un teatro può avere un solo direttore;
 le sinfonie sono composte da un singolo compositore;
 un’orchestra può suonare diverse sinfonie di diversi compositori in un teatro nello stesso giorno.
Definire uno schema relazionale per il problema dato, formalizzare un insieme di dipendenze funzionali che modellino
i vincoli sopra definiti, indicare le chiavi nello schema definito e mostrare che lo schema fornito sia normalizzato
secondo la BCNF.
[5 punti] Indica tre benefici pratici derivanti dalla normalizzazione BCNF di uno schema relazionale.
TRIGGER
Viene dato il seguente schema inerente un database di articoli di una rivista settimanale. Ogni articolo è identificato da
una chiave univoca (idArticolo) e viene pubblicato su un certo numero della rivista (numRivista). Il significato delle
relazioni è ovvio.
Articolo( idArticolo, numRivista, idAutore, titolo);
Autore( idAutore, nome, cognome);
Citazione( idArticolo, numRivista, idArticoloCitato, numRivistaCitata);
PosParole( idParola, idArticolo, numRivista, posizione);
Parole( idParola, descParola);
Rivista( numRivista, data, copieDistribuite);
Le uniche chiavi dello schema sono quelle indicate (chiavi primarie) e nessun altra. Per lo schema indicato scrivere dei
trigger in formato IBM-DB2 a supporto delle seguenti operazioni:
 [4 punti] Integrità referenziale 1: Garantire che per ogni inserimento e aggiornamento nella relazione
“Citazione” l’articolo citato (idArticoloCitato) e il numero della rivista (numRivistaCitata) corrispondano ad
un articolo indicato nella relazione Articolo.
 [4 punti] Integrità referenziale 2: Quando un autore viene licenziato (i.e., rimosso dalla relazione “Autore”)
tutti i riferimenti ai suoi articoli devono essere cancellati.
 [4 punti] Sequenza: Garantire che le parole nella relazione PosParole vengano inserite in ordine (1,2,3…), cioè
ogni inserimento di una parola segua quello precedente e che quindi non ci siano buchi nella sequenza e che la
sequenza parta da 1.