Il modello relazionale – La normalizzazione

Transcript

Il modello relazionale – La normalizzazione
1
Introduzione alle
Basi di Dati
Massimo Paolucci
([email protected])
DIST – Università di Genova
2
Sistema Azienda
‰ Sistema organizzativo è costituito da una serie di risorse e
di regole necessarie per lo svolgimento coordinato delle
attività al fine del perseguimento degli scopi
‰ Sistema informativo è un sottosistema di
un’organizzazione aziendale che gestisce le informazioni
di interesse per l’attività dell’azienda
‰ Sistema informatico gestisce le informazioni per mezzo
della tecnologia informatica allo scopo di razionalizzare e
standardizzare le procedure di archiviazione e gestione
delle informazioni, che sono rappresentate attraverso i dati
Introduzione – I DBMS
3
‰Base di Dati
• Collezione di dati, utilizzati per rappresentare
le informazioni di interesse per una o più
applicazioni di una organizzazione
• Collezione di dati gestita da un DBMS
4
Introduzione – I DBMS
‰ Un Data Base Management System (DBMS) è un
sistema che permette di utilizzare un calcolatore
per memorizzare e recuperare informazioni
‰ Un DBMS è un sistema software "general purpose”
‰ Un DB è in generale una struttura organizzata di
dati secondo un modello ben definito e specificato
a priori
‰ Un DBMS è un sistema di "facilities" per effettuare
le tre operazioni fondamentali sui dati: ricerca,
aggiornamento, cancellazione
5
Introduzione – I DBMS
Un DBMS permette:
‰ il controllo centralizzato dei dati
‰ la riduzione della ridondanza dei dati
Programmi
‰ di evitare inconsistenze nei dati
applicativi
‰ la condivisione dei dati tra gli utenti
‰ l’uso di standard di rappresentazione
‰ l’uso di restrizioni d’accesso ai dati
‰ il mantenimento dell'integrità dei dati
per mezzo di procedure di validazione
‰ la realizzazione della data
independence
DataBase
Utenti
finali
6
Introduzione – I DBMS
‰L’architettura a tre livelli dei DBMS
‰ Livello esterno
• Lo schema esterno descrive parte della base di dati in un
modello logico (viste parziali, derivate)
‰ Livello logico
• Lo schema logico descrive l’intera base di dati nel modello
logico “principale” del DBMS
‰ Livello fisico
• Lo schema fisico rappresenta lo schema logico attraverso
strutture fisiche di memorizzazione
7
Introduzione – I DBMS
‰ L’architettura a tre livelli dei DBMS
Utenti finali
Linguaggio
Host
+ DSL
Linguaggio
Host
+ DSL
Vista esterna A
Linguaggio
Host
+ DSL
Vista esterna B
...
mappatura
esterna/concettuale
DBMS
Vista Concettuale
mappatura
concettuale/interna
Data Base Fisico
8
Introduzione – I DBMS
‰ I DBMS come sistemi transazionali
• La condivisione dei dati e l’accesso concorrente comporta il
problema del mantenimento della congruenza dei dati
ƒ Un esempio: l’addebito su un conto corrente (cc) effettuato
con la sequenza di due operazioni:
– (a) il controllo della disponibilità
– (b) la sottrazione della somma addebitata
Due addebiti contemporanei di 1000 € su un cc con saldo di
1000 €
A verifica cc >= 1000 €
B verifica cc >= 1000 €
A sottrae 1000 €
B sottrae 1000 €
ottenendo sul cc un saldo finale di -1000 €!
9
Introduzione – I DBMS
‰ I DBMS come sistemi transazionali
• Transazione:
Un insieme di operazioni sui dati che devono essere
eseguite completamente, prima che gli stessi dati
siano nuovamente disponibili
• La transazione rappresenta un’insieme di operazioni
non decomponibili sui dati ("atomicità della
transazione”)
• Nell’esempio le operazioni (a) e (b) devono essere
contenute in un’unica transazione
10
I modelli di dati – concetti generali
‰ Il modello dei dati caratterizza il livello concettuale
e quello esterno dei DBS (DataBase System)
‰ E’ definito da regole precise e permette di
esprimere sia le proprietà statiche che quelle
dinamiche dei dati
‰ Evoluzione dei modelli
•
•
•
•
Modello Gerarchico
Modello Reticolare
Modello Relazionale
Modelli Object Relational ed Object Oriented
11
Il modello relazionale
‰ I dati nei RDB sono memorizzati in tabelle
‰ La tabella corrisponde ad un particolare costrutto
matematico detto relazione
‰ Le informazioni sono rappresentate dai righe presenti nelle
tabelle
• Un esempio:
Il database di una azienda che produce strumenti elettronici
sono conservate informazioni relative ai componenti usati,
ai fornitori ed alle spedizioni effettuate
Tre Tabelle/Relazioni: Fornitori, Parti e Spedizioni
12
Il modello relazionale
Un esempio: le tabelle
TABELLA FORNITORI
F# FNOME CODICE
F1 ROSSI
20
F2 BIANCHI
10
F3 PARODI
30
CITTA'
SAVONA
GENOVA
GENOVA
TABELLA PARTI
P#
PNOME
P1 RESISTENZA
P2
CAPACITA'
P3
INDUTTORE
P4 CONDUTTORE
DIMENSIONI PESO
GRANDE
20
MEDIA
15
PICCOLO
15
GRANDE
22
TABELLA SPEDIZIONI
F#
F1
F1
F1
F2
F2
F3
P# QUANTITA'
P1
300
P2
200
P3
200
P1
300
P2
400
P2
200
CITTA'
SAVONA
GENOVA
IMPERIA
SAVONA
13
Il modello relazionale
‰ Terminologia
TABELLA = RELAZIONE ≈ FILE
RIGA
RECORD
TUPLA
F#
FNOME
•
•
•
•
•
•
F1
ROSSI
•
•
•
•
•
•
•••
•••
COLONNE CAMPI ATTRIBUTI
14
Il modello relazionale
‰ Caratteristiche generali del modello relazionale:
• Le righe di una tabella sono definite dall'insieme dei valori
corrispondenti ai campi della tabella stessa
• I valori che possono essere assegnati a ciascun campo
sono il dominio di quel campo
• Il dominio di un campo è l’insieme di tutti e soli i valori che
possono essere assunti da un determinato attributo di una
relazione. (Ad esempio, il dominio dei codici fiscali è
formato da stringhe di 16 caratteri composte seguendo una
precisa regola)
• Informazioni contenute in tabelle distinte possono essere
associate semplicemente per mezzo della condivisione di
campi (ossia di domini) tra tali tabelle
• Il modello relazionale basa la propria forza sulla semplicità
15
Il modello relazionale
‰ Definizione formale
Relazione:
Data una collezione di insiemi D1,...,Dn, non necessariamente
distinti, una relazione R su tali insiemi è un insieme di ennuple
ordinate (d1,...,dn) tali che d1∈D1,..., dn∈Dn
Gli insiemi Di si dicono Domini della relazione
Il valore n è il grado della relazione
Il numero di n-uple presenti in R rappresenta la cardinalità di R.
Una relazione R sugli insiemi D1,...,Dn è un sottinsieme del
prodotto cartesiano D1x ... xDn
16
Il modello relazionale
‰ Una tabella (relazione) è un insieme di righe, ciascuna formata
dallo stesso numero di campi
‰ Ad ogni campo è assegnato un determinato valore tra quelli
ammessi per il dominio su cui è definito, oppure non è
assegnato alcun valore (NULL, valore nullo)
‰ Tutti i campi (attributi) di una tabella devono essere distinti,
mentre un dominio può ripetersi più volte
Ad esempio
COMPONENTI
P#_PRINC.
P1
P1
P5
P3
P6
P5
P2
P#_SEC.
P7
P4
P3
P6
P1
P6
P4
QUANTITA'
2
4
1
3
9
8
6
17
Il modello relazionale
‰ Vincoli di integrità
• Proprietà che devono essere soddisfatte dalle istanze
che rappresentano informazioni corrette per le
applicazioni
‰ Intrarelazionale
• Tupla – può essere valutato su ciascuna tupla
indipendentemente dalle altre
• Dominio – impone restrizioni sul dominio di un attributo
‰ Interrelazionale – vincolo che coinvolge più relazioni
• Integrità referenziale
18
Il modello relazionale
‰ Tutte le relazioni di un DB relazionale devono essere
normalizzate, cioè, ciascun attributo in ogni riga, deve essere
"atomico", ossia non scomponibile in valori elementari
Ad esempio
Non Normalizzata
Normalizzata
DOPO
PRIMA
PQ
F#
P# QTY
F1
F2
F3
F4
P1
P2
P3
P4
300
200
400
200
P1
P2
P2
300
400
P2
P4
P5
200
300
400
200
P#
QTY
F1
P1
F1
P2
P3
300
200
400
200
F#
F1
F1
F2
F2
P4
P1
P2
F3
F4
P2
P2
F4
F4
P4
P5
300
400
200
200
300
400
19
Il modello relazionale
‰ Il concetto di chiave e tipi di chiavi
• Una tabella (relazione) non deve contenere due righe
identiche
• E’ sempre possibile scegliere un sottinsieme di campi
di una tabella in maniera da identificare univocamente
ciascuna riga della tabella
• Chiave Primaria (Primary Key, PK) di una tabella: il
minimo sottinsieme di campi che permette di
identificare univocamente le righe della tabella
Esempi:
F# nella tabella FORNITORI
P# nella tabella PARTI
(F#, P#) nella tabella SPEDIZIONI
Il codice fiscale in una ipotetica tabella anagrafica del
Ministero delle Finanze è certamente la chiave primaria !
20
Il modello relazionale
‰ Il concetto di chiave e tipi di chiavi
• Chiavi candidate: più attributi in una relazione
esistono con la proprietà di poter essere chiave
primaria
Ad esempio
AUTOVETTURE
TARGA
ANNO TELAIO
GEA12345 1985 2314567
SV345678
1987 8769843
GED987566 1990 1423657
IM234567
1988 8887652
PROPRIETARIO
ROSSI
VERDI
BIANCHI
BRUNI
• Tra le chiavi candidate deve essere scelta la chiave
primaria
• Le chiavi escluse si dicono chiavi alternative
21
Il modello relazionale
‰ Il concetto di chiave e tipi di chiavi
• Le righe di una tabella rappresentano "entità" nel
mondo reale (ad es., autovetture, fornitori, ecc.)
• la chiave primaria rappresenta il modo con cui è
possibile distinguere tra loro le entità
1a Regola di Integrità (chiavi primarie)
Nessuna componente della chiave primaria di una
relazione può assumere valore nullo
22
Il modello relazionale
‰ Il concetto di chiave e tipi di chiavi
• Le informazioni presenti in tabelle diverse possono
essere associate tra loro perchè tali tabelle hanno dei
domini in comune
Ad esempio: F# è condiviso tra FORNITORI e
SPEDIZIONI
• Quando il dominio di un campo che è chiave primaria
in una tabella A è presente anche in un’altra tabella B,
il campo di B definito su di esso è detto Chiave
Esterna (Foreign Key, FK) verso la tabella A
Ad esempio, F# è chiave primaria in FORNITORI ed è
chiave esterna in SPEDIZIONI verso la tabella
FORNITORI
23
Il modello relazionale
‰ Il concetto di chiave e tipi di chiavi
2a Regola di Integrità (chiavi esterne)
Una chiave esterna in una relazione A verso una
relazione B può assumere valore nullo oppure
solamente uno tra i valori assunti dalla chiave primaria
di B
24
Il modello relazionale – gli operatori
‰Algebra relazionale
‰ Operazioni fondamentali
• Unione
• Differenza
• Prodotto cartesiano
• Selezione
• Proiezione
‰ Operazioni derivate
• Intersezione
• Join
25
Il modello relazionale – gli operatori
‰ Gli operatori relazioni rappresentano la base teorica per i
linguaggi di interrogazioni di RDB, quindi per SQL
‰ Gli operatori relazionali permettono l’esecuzione di
ricerche considerando le tabelle come insiemi, senza
operare record per record
‰ Gli operatori prendono in input tabelle e generano in
output nuove tabelle
‰ Esistono tre operatori relazionali fondamentali:
SELECT, PROJECT, JOIN
26
Il modello relazionale – gli operatori
‰ Un esempio: effettuare nel database FORNITORI, PARTI e
SPEDIZIONI le seguenti ricerche:
a) trovare la CITTA' del fornitore F2
b) trovare il numero F# ed il CODICE per i fornitori di Genova
c) trovare il nome della parte (PNOME) per quelle parti fornite
dal fornitore F1
d) trovare, per ciascuna parte che è già stata fornita, il P# e il
nome della CITTA' di immagazzinamento
27
Il modello relazionale – gli operatori
‰ Operatore SELECT
¾ costruisce una nuova relazione estraendo un sottinsieme
orizzontale delle righe di una relazione specificata in input;
le righe selezionate sono quelle che soddisfano una
condizione espressa sui valori degli attributi della relazione
in input
•
Ad esempio: Estrarre dalla tabella FORNITORI i dati relativi al
fornitore F1
SELECT FORNITORI WHERE F#=“F1” GIVING RISULTATO1
RISULTATO1
F# FNOM E CODICE
CITTA'
F1 ROSSI
20
SAVONA
28
Il modello relazionale – gli operatori
‰ Operatore PROJECT
¾ costruisce una nuova relazione estraendo un sottinsieme
verticale degli attributi di una relazione specificata in input,
rimuovendo inoltre eventuali n-uple duplicate
•
Ad esempio: Proiettare la tabella FORNITORI estraendo solo il
campo relativo alle CITTA’
PROJECT FORNITORI OVER CITTA’ GIVING RISULTATO2
RISULTATO2
CITTA'
SAVONA
GENOVA
29
Il modello relazionale – gli operatori
‰ Gli esempi ...
•
Gli operatori SELECT e PROJECT sono sufficienti per
poter risolvere i primi due problemi di ricerca in due passi
(vediamo il primo)
a) trovare la CITTA' del fornitore F2
1. SELECT FORNITORI WHERE F#=“F2” GIVING TEMP
TEMP
F#
F2
FNOME CODICE CITTA'
BIANCHI
10
GENOVA
2. PROJECT TEMP OVER CITTA’ GIVING RISULTATO
RISULTATO
CITTA'
GENOVA
30
Il modello relazionale – gli operatori
‰ Operatore JOIN (naturale o equi-join)
¾ genera una tabella unione di due tabelle sulla base di un
attributo (dominio) comune alle due tabelle originali. La
nuova tabella è formata da righe che sono la
concatenazione delle righe della prima tabella con le righe
della seconda tabella che hanno lo stesso valore per
l'attributo comune
•
Ad esempio: Unire le tabelle FORNITORI e PARTI sulla base del
campo CITTA'
JOIN FORNITORI AND PARTI OVER CITTA’GIVING RISULTATO3
RISULTATO 3
F#
F1
F1
F2
F3
FNOM E
ROSSI
ROSSI
BIANCHI
PARO DI
CODICE
20
20
10
30
CITTA'
SAVONA
SAVONA
GENOVA
GENOVA
P#
P1
P4
P2
P2
PNOM E
RESISTENZA
CONDUTTORE
CAPACITA'
CAPACITA'
DIM ENSIONI PESO
G RANDE
20
G RANDE
22
M EDIA
15
M EDIA
15
31
Il modello relazionale – gli operatori
‰ Un esempio di uso di join
c) trovare il nome della parte (PNOME) per quelle parti fornite
dal fornitore F1
1. SELECT SPEDIZIONI WHERE F#=F1 GIVING TEMP1
F#
F1
F1
F1
TEMP1
P# QUANTITA'
P1
300
P2
200
P3
200
2. JOIN TEMP1 AND PARTI OVER P# GIVING TEMP2
F#
F1
F1
F1
P#
P1
P2
P3
Q U AN T IT A'
300
200
200
TE M P 2
PNOME
D IM E N S IO N I
R E S IS T E N Z A
G R AN D E
C AP AC IT A'
M E D IA
IN D U T TO R E
P IC C O L O
PESO
20
15
15
C IT TA'
S AV O N A
GENOVA
IM P E R IA
3. PROJECT TEMP OVER PNOME GIVING RISULTATO
RISULTATO
PNOME
RESISTENZA
CAPACITA'
INDUTTORE
32
Il modello relazionale – La normalizzazione
‰ La teoria della normalizzazione interviene nella fase del
progetto dei DBR
‰ Dalle proprietà semantiche dei dati consente di
analizzare/definire la struttura più appropriata per le
tabelle
‰ La teoria definisce diverse regole che le tabelle devono
rispettare per evitare la presenza di dati ridondanti, quindi
di anomalie durante le operazioni di DM
‰ Un esempio: una tabella SPEDIZIONI con i seguenti
campi (F#, P#, QUANTITA’, CODICE) presenta anomalie
33
Il modello relazionale – La normalizzazione
‰ Una relazione è in una Forma Normale (Normal Form NF)
se rispetta un certo insieme di regole
Relazioni Normalizzate e non
Relazioni Normalizzate (1NF)
2NF
3NF
BCNF
4NF
Project/Join NF
34
Il modello relazionale – La normalizzazione
‰ La dipendenza funzionale
Definizione
Data una relazione R con due attributi X e Y, si dice che Y
dipende funzionalmente da X se per ogni valore di X in R
è associato uno ed un solo valore di Y
X
Y
Definizione alternativa
Data una relazione R con due attributi X e Y, Y dipende
funzionalmente da X se ogni coppia di ennuple che presentano uno
stesso valore per X, presentano anche lo stesso valore per Y
35
Il modello relazionale – La normalizzazione
‰ La dipendenza funzionale
• La dipendenza funzionale dipende dalle proprietà
semantiche dei dati
• I diagrammi di dipendenza funzionale descrivono tali
proprietà ed i vincoli di consistenza associati
Dipendenza funzionale completa
Data una relazione R con due attributi X e Y, si dice che Y
dipende funzionalmente in maniera completa da X attributo
composto di R se e solo se Y dipende funzionalmente da X
e non da sottoinsiemi di X.
36
Il modello relazionale – La normalizzazione
‰ Prima forma normale (1NF)
Definizione
Una relazione R è 1NF se e solo se è Normalizzata, ossia
tutti i suoi domini sono atomici
PRIMA
F#
F1
F1
F1
F1
F1
F1
F2
F2
F3
F4
F4
F4
CAP
16200
16200
16200
16200
16200
16200
16100
16100
16100
16200
16200
16200
CITTA'
SAVONA
SAVONA
SAVONA
SAVONA
SAVONA
SAVONA
GENOVA
GENOVA
GENOVA
SAVONA
SAVONA
SAVONA
P#
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
QUANTITA'
300
200
400
200
100
100
300
400
200
200
300
400
37
Il modello relazionale – La normalizzazione
‰ Prima forma normale (1NF)
F#
CAP
QUANTITA'
P#
CITTA'
• Le relazioni 1NF presentano anomalie quando si effettuano
operazioni di DM (insert, delete, update)
Soluzione: spezzare la relazioni in nuove relazioni
aumentando il livello di normalizzazione (Project)
38
Il modello relazionale – La normalizzazione
‰ Seconda forma normale (2NF)
Definizione
Una relazione R è 2NF se e solo se è 1NF ed ogni attributo
non chiave è completamente dipendente dalla chiave
primaria
• Passaggio 1NF a 2NF: project (non c’è perdita di
informazione)
• Passaggio 2NF a 1NF: join (ci può essere perdita di
informazione)
39
Il modello relazionale – La normalizzazione
‰ Seconda forma normale (2NF)
Nel caso della tabella PRIMA:
PROJECT PRIMA OVER F#, CODICE, CITTA’ GIVING SECONDA
PROJECT PRIMA OVER F#, P#, QUANTITA’ GIVING SP
CAP
F#
F#
QUANTITA'
P#
CITTA'
SP
SECONDA
40
Il modello relazionale – La normalizzazione
‰ Seconda forma normale (2NF)
SECONDA presenta ancora anomalie
SP
SECONDA
F#
F1
F2
F3
F4
F5
CAP
16200
16100
16100
16200
16300
C IT T A '
SAVONA
GENOVA
GENOVA
SAVONA
IM P E R IA
F#
F1
F1
F1
F1
F1
F1
F2
F2
F3
F4
F4
F4
P#
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
QUANTITA'
300
200
400
200
100
100
300
400
200
200
300
400
41
Il modello relazionale – La normalizzazione
‰ Terza forma normale (3NF)
Definizione
Una relazione R è 3NF se e solo se è 2NF ed ogni attributo
non chiave non dipendente in maniera transitiva dalla chiave
primaria
• Passaggio 2NF a 3NF: project (non c’è perdita di
informazione)
• Passaggio 3NF a 2NF: join (ci può essere perdita di
informazione)
42
Il modello relazionale – La normalizzazione
‰ Terza forma normale (3NF)
Nel caso della tabella SECONDA:
PROJECT SECONDA OVER F#, CITTA’ GIVING FC
PROJECT SECONDA OVER CITTA’, CODICE GIVING CC
CITTA'
F#
FC
F#
F1
F2
F3
F4
F5
CITTA'
SAVONA
GENOVA
GENOVA
SAVONA
IMPERIA
CITTA'
CAP
CC
CAP
16200
16100
16300
16400
CITTA'
SAVONA
GENOVA
IMPERIA
LA SPEZIA
43
Il modello relazionale – La normalizzazione
‰ Boyce-Codd normal form (BCNF)
• Determinante
Un attributo, anche composto, da cui altri attributi di una
relazione dipendono funzionalmente in maniera completa
Definizione
Un relazione R è BCNF se e solo se ogni determinante è
chiave candidata
• LA BCNF può essere considerata una migliore definizione
della 3NF che non fa riferimento alle precedenti forme
normali.
44
Il modello relazionale – La normalizzazione
‰ Boyce-Codd normal form (BCNF)
• Un esempio: la relazione SMI
ƒ esiste un solo insegnante che insegna una certa
materia ad un particolare studente
ƒ un insegnante insegna una sola materia
ƒ una materia può essere insegnata da più insegnanti
SMI
STUDENTE
INSEGNANTE
MATERIA
STUDENTE
ROSSI
ROSSI
BIANCHI
BIANCHI
MATERIA
MATEMATICA
FISICA
MATEMATICA
FISICA
INSEGNANTE
Prof. VERDI
Prof. BRUNI
Prof. VERDI
Prof. NERI
45
Il modello relazionale – La normalizzazione
‰ Boyce-Codd normal form (BCNF)
•
Un esempio: la relazione SMI
Determinanti: (Studente, Materia) e Insegnante
Chiavi candidate:
(Studente, Materia) e (Studente, Insegnante)
Insegnante non è chiave candidata ⇒ SMI non è BCNF
•
Si può trasformare SMI in BCNF con due PROJECT:
PROJECT SMI OVER Studente, Insegnante GIVING SI
PROJECT SMI OVER Insegnante,Materia GIVING IM
46
Il modello relazionale – La normalizzazione
‰ Boyce-Codd normal form (BCNF)
•
Un esempio: la relazione SMI trasformata in BCNF
SI
STUDENTE
IM
INSEGNANTE
INSEGNANTE
MATERIA
47
Il modello relazionale – La normalizzazione
‰ Quarta forma normale (4NF)
•
Si basa sul concetto di dipendenza multi-valente
•
Se U e V sono sottoinsiemi degli attributi di una relazione R,
e se W è l’insieme degli attributi di R non compresi in U e V,
la dipendenza multi-valente U->->V esiste in R se e solo se
R è il join delle sue proiezioni R(UV) e R(UW)
Definizione
Una relazione è 4NF se e solo se, qualora vi compaia una
dipendenza multi-valente, A->->B, tutti gli attributi della
relazione dipendono anche funzionalmente da A
48
Il modello relazionale – La normalizzazione
‰ Quarta forma normale (4NF)
•
Un esempio: la relazione CIT
ƒ Un corso può avere uno o più insegnanti e prevedere
uno o più libri di testo
ƒ Ogni insegnante adotta tutti i libri di testo previsti dal
corso
Insegnante
Corso
Testo
49
Il modello relazionale – La normalizzazione
‰ Quarta forma normale (4NF)
•
Un esempio: la relazione CIT in 4NF
Corso
Italiano
Italiano
Italiano
Italiano
Italiano
Italiano
Matematica
Insegnante
Rossi
Rossi
Rossi
Verdi
Verdi
Verdi
Bianchi
Matematica
Bianchi
Matematica
Neri
Matematica
Neri
Matematica
Parodi
Matematica
Parodi
Testo
Vocabolario
Antologia
Grammatica
Vocabolario
Antologia
Grammatica
Algebra
Moderna
Geometria
Applicata
Algebra
Moderna
Geometria
Applicata
Algebra
Moderna
Geometria
Applicata
Corso
Italiano
Italiano
Matematica
Matematica
Matematica
Insegnante
Rossi
Verdi
Bianchi
Neri
Parodi
Corso
Testo
Italiano
Vocabolario
Italiano
Antologia
Italiano
Grammatica
Matematica
Algebra
Moderna
Matematica Geometria
Applicata
50
Il modello relazionale – La normalizzazione
‰ Quinta forma normale (5NF)
•
Si basa sulla dipendenza Projection/Join (JD)
•
Una relazione R(X,Y,Z) soddisfa la dipendenza di join (JD)
se e solo se R è uguale al join delle sue proiezioni su X, Y e
Z, dove X, Y e Z costituiscono sottoinsiemi degli attributi di R
Definizione
Una relazione R è 5NF se e solo se ogni dipendenza di join
in R è una conseguenza delle sue chiavi candidate
•
Una relazione 5NF non presenta altre anomalie che
possano essere rimosse mediante proiezione e join
51
Il modello relazionale – La normalizzazione
‰ Quinta forma normale (5NF)
•
Un esempio: la relazione APF
Una azienda acquista uno o più prodotti
Una azienda può essere cliente di più fornitori per i
prodotti che acquista
Un fornitore può vendere più articoli
Azienda
ACME
ACME
ACME
Rossi s.n.c.
Prodotto
A
B
A
A
Fornitore
Bianchi
Bianchi
Neri
Bianchi
52
Il modello relazionale – La normalizzazione
‰ Quinta forma normale (5NF)
•
Un esempio: la relazione APF in 5NF
Azienda
ACME
ACME
Rossi s.n.c.
Azienda
ACME
ACME
Rossi s.n.c.
Prodotto
A
B
A
Fornitore
Bianchi
Neri
Bianchi
Prodotto
A
B
A
Fornitore
Bianchi
Bianchi
Neri