Normalizzazione di Basi di Dati, forme normali e dipendenza funzionale

Slide da Iis Altiero Spinelli su Normalizzazione di Basi di Dati. Il Pdf, adatto per lo studio universitario di Informatica, spiega concetti come le forme normali, la dipendenza funzionale e la prima forma normale (1NF), con esempi pratici.

Mostra di più

40 pagine

Normalizzazione
di Basi di Dati
Prof. Francesco Accarino
IIS Altiero Spinelli
via Leopardi 132 Sesto San Giovanni
Forme normali
Una forma normale è una proprietà di una
base di dati relazionale che ne garantisce la
“qualità”, cioè l'assenza di determinati difetti
Quando una relazione non è normalizzata:
presenta ridondanze,
si presta a comportamenti poco desiderabili
durante gli aggiornamenti
Le forme normali sono di solito definite sul
modello relazionale

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Normalizzazione di Basi di Dati

Normalizzazione
di Basi di Dati
Prof. Francesco Accarino
IIS Altiero Spinelli
via Leopardi 132 Sesto San Giovanni

Forme normali

  • Una forma normale è una proprietà di una
    base di dati relazionale che ne garantisce la
    "qualità", cioè l'assenza di determinati difetti
    Quando una relazione non è normalizzata:
    o presenta ridondanze,
    o si presta a comportamenti poco desiderabili
    durante gli aggiornamenti
  • Le forme normali sono di solito definite sul
    modello relazionale

Normalizzazione: Procedura e Verifica

Procedura che permette di trasformare
schemi non normalizzati in schemi che
soddisfano una forma normale (i.e.,
normalizzati)
• La normalizzazione va utilizzata come
tecnica di verifica dei risultati della
progettazione di una base di dati
Non è una metodologia di progettazione

Anomalie in una Relazione

Tabella Impiegato

Impiegato
Stipendio
Progetto
Bilancio
Funzione
Rossi
20
Marte
2
Verdi
35
Giove
15
Verdi
35
Venere
15
Neri
55
Venere
15
Neri
55
Giove
15
Neri
55
Marte
2
Mori
48
Marte
2
Mori
48
Venere
15
Bianchi
48
Venere
15
Bianchi
48
Giove
15
tecnico
progettista
progettista
direttore
consulente
consulente
direttore
progettista
progettista
direttore

Tipi di Anomalie

Lo stipendio di ciascun impiegato è ripetuto in tutti i
records
o Ridondanza
Se lo stipendio di un impiegato varia, è necessario
andarne a modificare il valore in diverse ennuple
0
anomalia di aggiornamento
Se un impiegato interrompe la partecipazione a tutti i
progetti,dobbiamo cancellarlo
0
anomalia di cancellazione
- Un nuovo impiegato senza progetto non può essere
inserito
0
anomalia di inserimento

Problemi di Rappresentazione

abbiamo usato un'unica relazione per
rappresentare informazioni eterogenee
gli impiegati con i relativi stipendi
a i progetti con i relativi bilanci
o le partecipazioni degli impiegati ai progetti con le
relative funzioni

Normalizzazione delle Relazioni

Processo di Normalizzazione di Codd

Il processo di normalizzazione (proposto da Codd)
sottopone uno schema di relazione a una serie di test
per certificare se soddisfa una data forma normale.
Esistono:
• Prima forma normale (1NF)
• Seconda forma normale (2NF)
• Terza forma normale (3NF)
. Forma normale di Boyce e Codd (BCNF)
• (4NF e 5NF)

Obiettivi della Normalizzazione

• La normalizzazione dei dati può essere considerata
come un processo di analisi degli schemi forniti, basato
sulle loro dipendenze funzionali e chiavi primarie, per
raggiungere le proprietà desiderate di
1. Minimizzazione della ridondanza
2. Minimizzazione delle anomalie di
inserimento/cancellazione/modifica
Schemi di relazione inadeguati, che non soddisfano
certe condizioni vengono decomposti in schemi di
relazione più piccoli che superano i test e pertanto
possiedono le proprietà desiderate.

Dipendenza Funzionale

Definizioni Chiave

• La chiave Primaria è l'insieme di uno o più attributi che
identificano in modo univoco un record della tabella
• La chiave candidata è ogni insieme minimale di uno o
più attributi che possono svolgere la funzione di chiave
primaria(ci possono essere più chiavo candidate ma una
sola chiave primaria)
L'attributo no chiave è un campo che non fa parte della
chiave primaria

Esempio di Dipendenza Funzionale

ESEMPIO:
Inventario( NumeroInventario, Prodotto, Magazzino, Quantità IndirizzoMagazzino)
• NumeroInventario è una chiave candidata
Prodotto non è una chiave candidata
. Magazzino non è una chiave candidata
• (Prodotto Magazzino) è una chiave candidata
• (Prodotto, Magazzino, Quantità) non è una chiave candidata non
è una chiave candidata perché contiene al suo interno un
sottoinsieme di attributi che sono già chiave candidata
IL progettista sceglierà la chiave primaria in base alle particolari
esigenze che intende soddisfare

Determinanti e Dipendenza Transitiva

• Si ha dipendenza funzionale tra attributi quando il valore di un
insieme di attributi A determina un singolo valore dell'attributo B e si
indica con A ->B. Si dice anche che B dipende da A o che A è un
determinante per B
Se un attributo è chiave candidata di una relazione allora è un
determinante di ogni attributo della relazione e viceversa, un
attributo che determina tutti gli altri attributi è chiave candidata.
• NumeroInventario è determinante di ogni attributo
• (Prodotto Magazzino) è determinante di ogni attributo
• Magazzino è determinante di indirizzo Magazzino
Si ha dipendenza transitiva quando A determina B e B determina C. Si
dice allora che C dipende transitivamente da A

Prima Forma Normale (1NF)

Requisiti della 1NF

Richiede che il dominio di un attributo
comprenda solo valori atomici (semplici,
indivisibili) e che il valore di qualsiasi attributo
in una tupla sia un valore singolo del dominio.
a 1NF è già parte integrante della definizione
formale di relazione nel modello relazionale.
o tutte le righe della tabella contengono lo stesso numero di colonne
o gli attributi rappresentano informazioni elementari
o i valori che compaiono in una colonna appartengono allo stesso
dominio
u ogni riga è diversa da tutte le altre
l'ordine con il quale le righe compaiono nella tabella è irrilevante

Esempio di Tabella non in 1NF

IMPIEGATI
Cod. impiegato
Cognome
Nome
Data nascita
Figli a carico
001242
Rossi
Franco
09/11/1961
Marco
Giuseppe
Sandra
001318
Verdi
Alberto
24/04/1963
Sonia
Claudio
Una tabella di questo genere NON è in Prima forma normale in quanto
l'attributo figli a carico contiene più valori.

Normalizzazione in 1NF

Con un processo di normalizzazione la tabella deve essere
trasformata in 2 tabelle
Cod. impiegato
Cognome
Nome
Data nascita
001242
Rossi
Franco
09/11/1961
001318
Verdi
Alberto
24/04/1963
1
Cod. impiegato
Cod. Figlio
Nome
001242
01
Marco
001242
02
Giuseppe
N
001242
03
Sandra
001318
01
Sonia
001318
02
Claudio

Seconda Forma Normale (2FN)

Requisiti della 2FN

Requisiti della Seconda forma normale
E' in prima forma normale
• tutti i suoi attributi non-chiave dipendono dall'intera
chiave, cioè non possiede attributi che dipendono
soltanto da una parte della chiave
La seconda forma normale elimina la dipendenza parziale degli attributi
dalla chiave. Esempio:
La Tabella T1(A1,A2,A3,A4,A5) con
(A1, A2) -> A3
A1 > A4
A2 -> A5
non è in 2FN, e può essere normalizzata in
2FN con le tabelle:
T2(A1,A2,A3)
T3(A1,A4)
T4(A2,A5)

Chiave Primaria Composta in 2FN

La seconda forma normale riguarda quindi le tabelle in cui la chiave
primaria sia composta da più attributi e stabilisce che, in questo
caso, tutte le colonne corrispondenti agli altri attributi dipendano
dall'intera chiave primaria.
ESEMPIO: Inventario
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Chiave primaria: Codarticolo + CodMagazzino

Soluzione per Inventario in 2FN

Inventario
CodArticolo
CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Soluzione: mettere in 2FN
Articolo
CodArticolo DescArticolo
Magazzino
CodMagazzino IndirizzoMagazzino
1
1
N
N
Inventario
CodArticolo
CodMagazzino Quantità

Terza Forma Normale (3FN)

Requisiti della 3FN

Requisiti della Terza forma normale
E' in Seconda forma normale
• tutti gli attributi non-chiave dipendono direttamente dalla
chiave, cioè non possiede attributi che dipendono da
altri attributi che non sono in chiave
La terza forma normale elimina la dipendenza transitiva degli attributi
dalla chiave. Esempio:
La Tabella T1(A1,A2,A3,A4) con A2 -> A4
non è in 3FN, e può essere normalizzata in
3FN con le tabelle:
T2(A1,A2,A3)
T3(A2,A4)
18

Dipendenze nella 3FN

La terza forma normale stabilisce che non esistano dipendenze tra le
colonne di una tabella se non basate sulla chiave primaria.
ESEMPIO: Impiegati
CodImpiegato
Nome Reparto TelefonoReparto
Chiave primaria CodImpiagato
Dipendenze funzionali CodImpiegato -> Reparto
Reparto > TelefonoReparto
19

Esempio di Impiegato in 3FN

Impiegato
CodImpiegato
Nome Reparto TelefonoReparto
Problemi
• telefono del Reparto ripetuto per ogni Impiegato di quel Reparto (ridondanza)
. se il telefono cambia, occorre modificare molte righe
• con errori di aggiornamento, si avrebbero telefoni differenti
• se un Reparto non ha impiegati, non si può conoscere il suo telefono
Soluzione: mettere in 3FN
Impiegato
Reparto
CodImpiegato
Nome
Reparto
Reparto
TelefonoReparto
20

Riepilogo della Normalizzazione

Benefici della Normalizzazione

Con la normalizzazione:
la tabella iniziale viene scomposta in più tabelle
• complessivamente forniscono le stesse informazioni
di partenza
• mantengono le dipendenze tra gli attributi
in ciascuna di esse ogni attributo dipende
direttamente dalla chiave
• vengono evitati problemi di ridondanza e di
inconsistenza dei dati
non ci deve essere perdita complessiva delle
informazioni
21

Forme Normali Riassunte

Prima forma normale
possiede i requisiti fondamentali del modello relazionale, in
particolare ogni attributo è elementare, non ci sono righe uguali,
non ci sono attributi di gruppo o ripetuti
Seconda forma normale
è in prima forma normale e non ci sono attributi non-chiave che
dipendono parzialmente dalla chiave
Terza forma normale
è in seconda forma normale e non ci sono attributi non-chiave che
dipendono transitivamente dalla chiave
22

Integrità Referenziale

Definizione di Integrità Referenziale

Per integrità referenziale si intende l'insieme di
regole che garantiscono l'integrità dei dati di un
modello
relazionale
rendendo
valide
le
associazioni tra le tabelle ed eliminando gli
eventuali errori di inserimento, cancellazione o
modifica di dati collegati tra loro.
23

Regole e Azioni dell'Integrità Referenziale

Per ogni valore non nullo della chiave esterna, deve esistere un valore
corrispondente della chiave primaria nella tabella associata
ON DELETE
ON UPDATE
Relazione2
Chiave
B1
B2
FK1
K1
A
A2
A3
A4
xxxx
xxxx
xxxx
xxxx
XXXX
xxxx
-
xxxx
-
xxxx
-
-
-
xxxx
Ogni valore non
nullo di FK1 deve
comparire in K1
Relazione1
no action
set null
cascade
xxxx
xxxx
xxxx
24

Effetti dell'Integrità Referenziale

Non è possibile immettere un valore nella chiave esterna di una tabella associata, se
tale valore non esiste tra le chiavi della tabella primaria
Esempio: Se esiste una integrità referenziale (Foreign key) tra l'ordine ed il
cliente: un ordine non può essere assegnato ad un cliente che non esiste nella
tabella dei clienti.
Non è possibile eliminare una riga dalla tabella primaria, se esistono righe legate ad
essa attraverso la chiave esterna nella tabella correlata
Esempio: Non è possibile eliminare un cliente dalla tabella dei clienti se ci sono
ordini assegnati a quel cliente nella tabella degli ordini.
Non si può modificare il valore assegnato ad una chiave nella tabella primaria, se
essa compare in qualche riga della tabella correlata
Esempio: Non è possibile modificare il valore alla chiave di un cliente se si sono
ordini per quel cliente già registrati nella tabella degli ordini.
25

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.