Normalizzazione - Alice Pavarani

annuncio pubblicitario
Normalizzazione
Alice Pavarani
Ridondanza
 Ridondanza è la ripetizione di informazioni
Spreco di spazio
Anomalie
su disco
• Anomalia di aggiornamento
• Anomalia di cancellazione
• Anomalia di inserimento
Incongruenza
ed inconsistenza
V B - Sistemi Informativi Aziendali
della base di dati
Anomalie (esempio)
Impiegato Stipendio Progetto
Bilancio Funzione
Rossi
20
Marte
2
Tecnico
Verdi
35
Giove
10
Progettista
Verdi
35
Venere
15
Progettista
Neri
55
Venere
15
Direttore
Neri
55
Giove
10
Consulente
Neri
55
Marte
2
Consulente
Mori
48
Marte
2
Direttore
Mori
48
Venere
15
Progettista
Bianchi
40
Venere
15
Progettista
Bianchi
40
Giove
10
Direttore
V B - Sistemi Informativi Aziendali
Anomalie (esempio)
 Ridondanza
 Lo stipendio di ciascun impiegato è ripetuto in tutte le
ennuple relative a ciascun impiegato
 Il bilancio del progetto è ripetuto in tutte le ennuple relative a
ciascun progetto
 Anomalia di aggiornamento
 Se lo stipendio di un impiegato varia, è necessario andarne a
modificare il valore in diverse ennuple
 Anomalia di cancellazione
 Se un impiegato interrompe la partecipazione a tutti i
progetti, dobbiamo cancellarlo in corrispondenza di ogni
progetto
 Anomalia di inserimento
 Un nuovo impiegato senza progetto non può essere inserito
V B - Sistemi Informativi Aziendali
Forme normali
 Si dice forma normale la proprietà di uno schema
relazionale che ne garantisce il livello di qualità, cioè
l’assenza di determinati difetti
 Le forme normali garantiscono qualità di livello incrementale
 La procedura che permette di trasformare schemi non
normalizzati in schemi che soddisfano una forma normale
è detta normalizzazione
 Una relazione non normalizzata:
 Presenta ridondanze
 Si presta a malfunzionamenti (anomalie)
 Può potare la base di dati in uno stato inconsistente
 In genere, la causa di questo problema è l’inserimento di
informazioni eterogenee in un’unica relazione
V B - Sistemi Informativi Aziendali
Normalizzazione
 Procedura che completa il processo di progettazione logica
di un database, esaminando le tabelle alla ricerca delle
possibili incongruenze nella loro definizione
 La normalizzazione va utilizzata come tecnica di verifica dei
risultati, non costituisce una metodologia di progettazione
 Obiettivo della normalizzazione è quello di eliminare la
ridondanza delle informazioni, garantendo la non-perdita
delle informazioni
 La fase di normalizzazione si basa su un semplice criterio:
Se una relazione presenta più concetti tra loro dipendenti, la
si decompone in relazioni più piccole, una per ogni concetto.
V B - Sistemi Informativi Aziendali
Dipendenza funzionale
Si ha dipendenza funzionale tra attributi quando il
valore di un insieme di attributi A determina il valore
dell’attributo B, e si indica con A  B .
Si dice che B dipende funzionalmente da A,
o che A è un determinante per B.
NOTA: Se l’insieme di attributi A è chiave della relazione,
la dipendenza funzionale è detta banale e non è causa di
anomalie
V B - Sistemi Informativi Aziendali
Dipendenza funzionale: esempio
Inventario (NumInventario, Prodotto, Magazzino, Quantità, IndirizzoMagazzino)
 NumeroInventario è chiave primaria della relazione,
perciò è determinante per ogni attributo
NumeroInventario  (Prodotto, Magazzino, Quantità, IndirizzoMagazzino)
 (Prodotto, Magazzino) è chiave della relazione,
perciò è determinante per ogni attributo
(Prodotto, Magazzino)  (NumeroInventario, Quantità, IndirizzoMagazzino)
 Magazzino è determinante per IndirizzoMagazzino
Magazzino  IndirizzoMagazzino
V B - Sistemi Informativi Aziendali
Prima Forma Normale 1FN
Una relazione è in prima forma normale (1FN) quando
rispetta i requisiti fondamentali del modello relazionale:
 Tutte le righe della tabella contengono lo stesso numero di




colonne
Gli attributi rappresentano informazioni elementari
I valori che compaiono in una colonna sono tutti dello
stesso tipo, cioè appartengono allo stesso dominio
Ogni riga è diversa da tutte le altre
L’ordine delle righe nella tabella è irrilevante
Gli attributi devono essere informazioni non ulteriormente
scomponibili e non devono essere gruppi di attributi ripetuti.
V B - Sistemi Informativi Aziendali
1FN (esempio)
Attributo
multiplo
Dipendente (Matricola, Cognome, Nome, Città, FamiliariACarico)
 L’attributo FamiliariACarico è un attributo multiplo,
perciò non è elementare
 La relazione Dipendente non è in 1FN
 Conversione in due tabelle
Dipendente (Matricola, Cognome, Nome, Città)
Familiari (IDFam, CognomeFam, NomeFam, MatricolaDip)
V B - Sistemi Informativi Aziendali
1FN (esempio)
Dipendente
Matricola
15001
Cognome
Rossi
Nome
Mario
Città
FamiliariACarico
Milano
Rossi Luca
Rossi Francesca
Rossi Giulia
15002
Dipendente
Familiari
Matricola
Cognome
Nome
Città
IDFam
CognomeFam
NomeFam
MatricolaDip
15001
Rossi
Mario
Milano
50001
Rossi
Luca
15001
50002
Rossi
Francesca
15001
50003
Rossi
Giulia
15001
15002
V B - Sistemi Informativi Aziendali
Seconda Forma Normale 2FN
Una relazione è in seconda forma normale (2FN)
quando è in prima forma normale e tutti i suoi attributi
non-chiave dipendono dall’intera chiave. Ovvero, non
possiede attributi che dipendono soltanto da una parte
della chiave.
La 2FN elimina la dipendenza parziale degli attributi dalla
chiave e riguarda il caso di relazioni con chiavi composte,
cioè formate da più attributi.
V B - Sistemi Informativi Aziendali
2FN: esempio
Inventario (Prodotto, Magazzino, Quantità, IndirizzoMagazzino)
 IndirizzoMagazzino dipende funzionalmente dall’attributo Magazzino che è
una porzione della chiave, non l’intera chiave
Magazzino  IndirizzoMagazzino
1.
Costruire una relazione che comprende tutti gli attributi presenti nella
dipendenza funzionale che viola la 2FN
Magazzino  IndirizzoMagazzino
 Il determinante della dipendenza funzionale diventa la chiave della nuova
relazione
Negozi (Magazzino, IndirizzoMagazzino)
2.
Costruire un relazione che comprende gli attributi della relazione di
partenza, privata dell’attributo che dipende parzialmente dalla chiave
Inventario (Prodotto, Magazzino, Quantità)
V B - Sistemi Informativi Aziendali
2FN (esempio)
Inventario
Inventario
Prodotto
Magazzino
Quantità
545
CA1
800
545
PA2
700
545
VE1
356
100
CA1
245
Prodotto
Magazzino
Quantità
IndirizzoMagazzino
200
VE1
230
545
CA1
800
Via Tonale, 12
545
PA1
370
545
PA2
700
Via Mazzini, 25
100
PA2
350
545
VE1
356
Via Farini, 5
100
CA1
245
Via Tonale, 12
Negozi
200
VE1
230
Via Farini, 5
Magazzino
IndirizzoMagazzino
545
PA1
370
Via Garibaldi, 38
CA1
Via Tonale, 12
100
PA2
350
Via Mazzini, 25
PA1
Via Garibaldi, 38
PA2
Via Mazzini, 25
VE1
Via Farini, 5
V B - Sistemi Informativi Aziendali
Dipendenza transitiva
Si ha dipendenza transitiva tra attributi quando B
dipende funzionalmente da A (AB) e C dipende
funzionalmente da B (BC).
Si dice che C dipende transitivamente da A
(A  C transitivamente).
V B - Sistemi Informativi Aziendali
Terza Forma Normale 3FN
Una relazione è in terza forma normale (3FN) quando è
in seconda forma normale e tutti i suoi attributi nonchiave dipendono direttamente dalla chiave. Ovvero, non
possiede attributi non-chiave che dipendono da altri
attributi non-chiave.
La 3FN elimina la dipendenza transitiva degli attributi dalla
chiave.
V B - Sistemi Informativi Aziendali
3FN: esempio
Studenti (Cognome, Scuola, TelefonoScuola)
 Dipendenze funzionali
1. Cognome  (Scuola, TelefonoScuola)
2. Scuola  TelefonoScuola
BANALE
 La dipendenza funzionale #2 viola la 3FN, in quanto l’attributo
TelefonoScuola dipende funzionalmente dall’attributo non-chiave
Scuola,
 Ovvero TelefonoScuola dipende transitivamente (e non direttamente)
da una chiave (Cognome)
 La normalizzazione viene effettuata esattamente come per la 2FN
Scuola (Scuola, TelefonoScuola)
Studente (Cognome, Scuola)
V B - Sistemi Informativi Aziendali
3FN (esempio)
Studente
Cognome
Scuola
TelefonoScuola
Bianchi
Liceo Fermi
02-2563561
Gialli
ITC Paleari
06-1236456
Leoni
Liceo Dante
011-3354661
Rossi
ITIS Leonardo
045-1245996
Neri
ITIS Galvani
081-4787716
Verdi
Liceo Dante
011-3354661
Lorenzini
ITIS Leonardo
045-1245996
Bedoni
Liceo Fermi
02-2563561
V B - Sistemi Informativi Aziendali
Studente
Cognome
Scuola
Bianchi
Liceo Fermi
Gialli
ITC Paleari
Leoni
Liceo Dante
Rossi
ITIS Leonardo
Neri
ITIS Galvani
Verdi
Liceo Dante
Lorenzini
ITIS Leonardo
Bedoni
Liceo Fermi
Scuola
Scuola
Telefono
Liceo Fermi
02-2563561
ITC Paleari
06-1236456
Liceo Dante
011-3354661
ITIS Leonardo
045-1245996
ITIS Galvani
081-4787716
Algoritmo di scomposizione
Data una relazione R
1. Si identificano tutte le dipendenze funzionali e le chiavi
(anche non primarie) di R
2. Se una dipendenza funzionale viola le regole di
normalizzazione:
a.
b.
c.
3.
Si costruisce una nuova relazione con tutti gli attributi della
dipendenza funzionale considerata
Il determinante della dipendenza funzionale è la chiave
primaria della tabella definita al punto a.
Si costruisce una seconda relazione rimuovendo dalla
tabella di partenza tutti gli attributi he sono determinati
dalla dipendenza funzionale in esame
Si ripete il punto 2. finché non ci sono più dipendenze
funzionali che violano le regole di normalizzazione
V B - Sistemi Informativi Aziendali
Esercizio (da fare)
 Inventario (Prodotto, Magazzino, Quantità,
NomeProdotto, PrezzoUnitario, IndirizzoMagazzino)
 Inventario (NumeroInventario, Prodotto, Magazzino,
Quantità, NomeProdotto, PrezzoUnitario,
IndirizzoMagazzino)
 Incarico (Impiegato, Stipendio, Progetto, Bilancio,
Funzione)
V B - Sistemi Informativi Aziendali
Osservazioni (1)
 La normalizzazione è un procedimento algoritmico
quindi, almeno apparentemente, di semplice
attuazione
 MA il punto 1. dell’algoritmo di scomposizione e, in
generale, la normalizzazione può avvenire solo dopo che
sono state individuate tutte le dipendenze funzionali
 L’individuazione delle dipendenze funzionali di una
relazione è una fase non automatizzabile, richiede
infatti una conoscenza approfondita della realtà che si
vuole gestire
V B - Sistemi Informativi Aziendali
Osservazioni (2)
 La normalizzazione rende più complesse le operazioni di
ritrovamento dei dati
 In generale nelle basi di dati, la consistenza e l’integrità
dei dati sono prioritarie rispetto alla velocità di
ritrovamento dei dati
 Database operativi, i dati sono in continuo aggiornamento
 Database di sola lettura, i dati non sono mai modificati
ma acceduti solamente per essere analizzati ed elaborati a
scopo informativo (es. supporto alle decisioni, applicazioni
direzionali,…)
 L’unico fattore importante è la velocità di accesso ai dati
 La ridondanza è tollerata anzi, addirittura voluta
V B - Sistemi Informativi Aziendali
Scarica