Questo è il secondo esempio, che
porteremo avanti per tutto il manuale, di progettazione e realizzazione di una
base di dati. Tutte le scelte sono attuate per semplificare al massimo la
realizzazione del database, lo scopo è quello di fornire un’idea e un metodo per
risolvere anche problemi più complessi di quelli analizzati.
PROBLEMA
Siamo interessati a memorizzare la collezione di CD
musicali di casa. Le informazioni che interessano sono quelle relative al titolo
dell’album e al nome dell’autore. Ove sia possibile, si intende registrare,
inoltre, i titoli delle canzoni di un album, la casa discografica e il genere
musicale.
ANALISI DEI REQUISITI
Cosa siamo interessati a rappresentare:
Si vogliono memorizzare i CD e le musicassette di casa, i
dati che interessano sono il titolo dell’album, cognome e nome dell’autore o il
nome del gruppo, la casa discografica, e il genere musicale. Della casa
discografica interessa il nome, indirizzo Internet e il numero di telefono.
Si possono incontrare cantanti o singoli gruppi, per
semplificare si considera il cognome come il nome del gruppo musicale.
Lo stesso titolo può apparire su più album (capita di
trovare autori diversi che hanno utilizzato lo stesso titolo di album, o autori
che in diversi album hanno la stessa canzone).
Una canzone (titolo della canzone) appartiene ad un solo
album, per semplificare il database, quindi se due album contengono canzoni con
lo stesso titolo, ci saranno più righe sull’archivio.
Dati che non possono
mancare:
Un album è caratterizzato per sua natura dal titolo, questo significa che non
potrà esistere sulla tabella che rappresenta i CD e le musicassette un record
senza titolo, non avrebbe nessun significato.
Per gli autori l’unico dato importante è il cognome.
Per le case discografiche l’unico dato importante è il nome.
Per le canzoni il dato importante è il titolo.
Integrità referenziali:
Quando eliminiamo (o aggiorniamo) un autore, tutti i suoi album devono essere
eliminati (o aggiornati).
Quando eliminiamo (o aggiorniamo) un album, tutti le canzoni corrispondenti
devono essere eliminate (o aggiornate).
Quando eliminiamo (o aggiorniamo) una casa discografica, devono rimanere gli
album. Se la casa discografica viene aggiornata, devono essere aggiornati anche
gli album.
PROGETTAZIONE
Definizione delle tabelle.
Dall’analisi dei requisiti risulta che ci sono 4 oggetti da rappresentare:
album, autori, case discografiche e canzoni.
Per ogni tabella si devono
definire i campi e le caratteristiche dei campi. Procediamo creando uno schema
su un foglio di carta, per ogni tabella, simile a quelli rappresentati nelle
figura 8.01 – 8.04.
FIG. 8.01
Avendo già l’esperienza
dell’archivio libreria, ci preoccupiamo subito di scegliere o aggiungere un
campo chiave primaria in ogni tabella.
FIG. 8.02
FIG. 8.03
FIG. 8.04
Definizione delle
relazioni.
Un album può avere più autori, un autore può aver pubblicato più album. La
relazione è molti a molti.
Un album ha più canzoni, una canzone corrisponde ad un solo album. La relazione
è uno a molti, la tabella album rappresenta il lato uno, la tabella canzoni il
lato molti.
Un album corrisponde ad una casa editrice, una casa editrice corrisponde a più
album. La relazione è uno a molti, la tabella album è il lato molti, la tabella
case editrici è il lato uno.
Tracciamo uno schema grafico, figura 8.05.
FIG. 8.05
Normalizzazione delle
tabelle.
Tutte le regole sono rispettate, ma sappiamo che la relazione molti a molti tra
la tabella album e la tabella autori non può essere creata in un DBMS. Come si è
visto, si deve creare una nuova tabella relazione, che contiene i due campi
chiave primaria della tabelle considerate, la figura 8.06 visualizza la tabella
relazioni, da aggiungere allo schema.
FIG. 8.06
La chiave primaria della
tabella relazioni sono i due campi, Album e Autore, insieme.
Anche lo schema delle relazioni deve essere modificato, come nella figura 8.07.
FIG. 8.07