Qualità dello schema logico
Ci proponiamo di verificare la
qualità dello schema logico utilizzando gli strumenti della teoria della
normalizzazione.
Gli
schemi in 1NF sono caratterizzati dalle seguenti proprietà:
- tutti gli attributi possono
assumere solo valori singoli in un dominio costituito da valori atomici;
- non esistono relazioni
nidificate.
Se la progettazione dello schema
della base di dati viene effettuata con opportuni criteri, ponendo particolare
cura nella progettazione concettuale, tutti gli schemi di relazione ottenuti
dovrebbero sempre essere in 1NF. Nel nostro caso, tutti gli schemi sono
in prima forma normale.
Uno schema di relazione R
è in 2NF se è in 1NF e se non esiste un attributo A non primo che
dipende funzionalmente in modo parziale da una chiave candidata di R.
Nel nostro schema di base di dati, la maggior parte degli schemi di relazione
ha una sola chiave candidata, che quindi è anche chiave primaria. Fanno eccezione
i seguenti schemi di relazione:
- Cliente, che ha
chiave primaria PartitaIVA e possiede un'altra chiave candidata RagioneSociale
(è inverosimile che esistano due clienti con la stessa ragione sociale);
- TipoDiArticolo,
che ha chiave primaria Codice e possiede un'altra chiave candidata
SchemaElettrico, dal momento che nello schema ER le cardinalità
della partecipazione di questi due tipi di entità alla associazione Schematizzazione
sono entrambe (1, 1).
- SchemaElettrico,
che ha chiave primaria Codice e possiede un'altra chiave candidata
NomeFile.
Nel caso di questi tre schemi
di relazione, entrambe le chiavi candidate sono composte da un singolo attributo:
per questo motivo, eventuali dipendenze funzionali verso attributi non primi
sono necessariamente complete. Tutti gli altri schemi di relazione hanno
un'unica chiave candidata. Ad eccezione dello schema Assegnazione,
tutti hanno chiave primaria formata da un'unico attributo e sono quindi
in 2NF. Per quanto riguarda invece lo schema di relazione Assegnazione,
nessuno degli attributi non primi (cioè OreInterneOrdinaria, OreEsterneOrdinarie,
OreInterneStraordinarie, OreEsterneStraordinarie) dipende
funzionalmente da uno solo degli attributi di chiave primaria Operatore
e Lavoro.
Uno schema di relazione R
è in 3NF se per ogni dipendenza funzionale X -> A non banale vale almeno una
delle seguenti condizioni:
- X è superchiave
di R;
- A è un attributo
primo.
L'unico caso in cui la proprietà
di 3NF può essere discussa riguarda lo schema di relazione Cliente.
In questo schema potrebbero sembrare sussistere le seguenti dipendenze funzionali:
- Comune -> CAP;
- Comune -> Provincia;
- Comune -> Stato;
- CAP -> Provincia;
- ...
In realtà, i clienti possono
risiedere in diversi stati. Possono esistere nomi di città uguali tra stati
diversi, con provincie/regioni diverse e codici di avviamento postale diversi.
Per questi motivi, le dipendenze funzionali suddette non esistono. Va detto
che la grande maggioranza dei clienti è italiana, ma va anche aggiunto che
questo gruppo di attributi non è di interesse per alcuna operazione. Il
committente, infatti, desidera mantenere questi dati solo per completezza.