La normalizzazione FN1,FN2,… è una tecnica di progettazione usata per i data base relazionali; è di particolare utilità quando si creano direttamente le tabelle relazionali, senza passare preventivamente per una analisi E/R.
Y è funzionalmente dipendente dall’attributo K se e solo se ad ogni valore di K corrisponde un preciso valore di Y, cioè:
Attributo-non-chiave = f (attributo-chiave)
oppure:
(y1,y2,y3, … yn) = f(k1,k2, … km)
INSERIMENTO. I dati relativi ad un nuovo fornitore non possono essere inseriti finché lo stesso non fornisce qualcosa (mancherebbe il valore di Codp, che è obbligatorio).
CANCELLAZIONE. Se si cancella una fornitura (cioè una riga) si eliminano i dati della fornitura (effetto voluto) ma si possono perdere anche quelli del fornitore (effetto non voluto).
MODIFICA. Se un fornitore (es.: SA) cambia sede si devono modificare tutte le righe ad esso relative (con il rischio di tralasciarne qualcuna e rendere incoerenti i dati).
Se è in FN1 e tutti gli attributi (non chiave) dipendono dalla chiave primaria.
La T deve essere in FN1 e tutti gli attributi (non chiave) dipendono dalla chiave primaria.
Perché Citt e Trasp dipendono da Codf e non anche da Codp
Anomalie
INSERIMENTO: non si può inserire una nuova città finché non vi sia un fornitore nella stessa (infatti la chiave è il codice del fornitore).
CANCELLAZIONE: se si elimina una riga in FORNITORI si perdono anche le informazioni che riguardano la città.
Una tabella del data base relazionale è in FN3, se è in FN2 ed ogni attributo non chiave è funzionalmente dipendente dalla chiave primaria.
Una tabella del data base relazionale è in FN3, se è in FN2 ed ogni attributo non chiave è funzionalmente dipendente dalla chiave primaria.
INSERIMENTO: si può inserire un record riguardante una nuova città senza che sia necessario che in essa ci sia già un fornitore; analogamente si può inserire un nuovo fornitore anche se non ha ancora fornito niente.
CANCELLAZIONE: si può cancellare una fornitura senza rischiare di perdere le informazioni relative a città e fornitore.
MODIFICA: se un fornitore cambia sede occorre modificare solo un record e così pure se cambiano le informazioni relative ad una città.
La normalizzazione è un procedimento in due fasi, che struttura i dati in tabelle e rimuove i dati ridondanti, che possono creare anomalie nelle operazioni sul data base. Ciò avviene creando nuove tabelle a partire da quelle inizialmente definite. Abbiamo considerato i primi tre livelli di ‘forma normale’ (la teoria ne definisce 5) e possiamo dire che i primi due livelli possono considerarsi dei passaggi intermedi per pervenire al terzo. Una tabella si dice in forma normale se rispetta un certo insieme di vincoli, più si avanza nella sequenza dei livelli più i vincoli sono stringenti. Eliminare i dati ridondanti, significa che nell’insieme delle tabelle, sarà memorizzata una sola copia di ciascun dato che non sia una chiave primaria. Questa è una caratteristica della FN3 e fa sì che le tabelle possano essere modificate senza incorrere in perdite di consistenza dei dati. Quando una tabella è in FN3, tutti gli attributi non chiave sono indipendenti fra loro e dipendono invece dalla chiave primaria.
Se è in 2nf e tutti gli attributi non chiave dipendono direttamente dalla chiave e non da altri attributi.
Tuple del risultato = tuple degli operandi con valori uguali sugli attributi comuni (es.:Reparto).
Tuple del risultato = tutte le tuple della prima tabella con valori uguali sugli attributi comuni.
1. Introduzione all'informatica
2. Le principali strutture dei dati
4. Hardware: gli elementi fondamentali dell'architettura di un elaboratore elettronico.
5. Le memorie, organizzazione dei dati e interfacce
6. La gestione delle memorie, indicatori di prestazioni e tassonomia dei computer
7. Software di sistema e applicativo
8. Sistemi informatici e modelli di database
9. Le forme normali e l'algebra relazionale
10. Lo sviluppo del software in azienda
12. La trasmissione dei dati e reti