Sei sulla pagina 1di 37

Basi di Dati - VII

Corso di Laurea in Informatica

Schemi relazionali e anomalie

Anno Accademico 2013/2014

Paolo Baldan
baldan@math.unipd.it
http://www.math.unipd.it/~baldan

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Thursday, May 15, 2014

Teoria Relazionale: Introduzione

Modello relazionale:

Teoria Relazionale: Introduzione

Modello relazionale:

Attrattivo per la sua semplicit: tutto rappresentato come relazione

Attrattivo per la sua semplicit: tutto rappresentato come relazione


Limiti di espressivit
attributi composti o multivalore
associazioni molti a molti
gerarchie

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Teoria Relazionale: Introduzione

Teoria Relazionale: Introduzione

Tre metodi per produrre uno schema relazionale:

Tre metodi per produrre uno schema relazionale:

a) Partire da un buon schema a oggetti e tradurlo

a) Partire da un buon schema a oggetti e tradurlo

b) Costruire direttamente le relazioni

b) Costruire direttamente le relazioni

c) Partire da uno schema relazionale fatto da altri e modificarlo o completarlo

c) Partire da uno schema relazionale fatto da altri e modificarlo o completarlo


Teoria della normalizzazione relazionale:
qualit dello schema, cosa sono le anomalie e come eliminarle.

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Teoria Relazionale: Introduzione

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Tre metodi per produrre uno schema relazionale:

Schemi con Anomalie

Esempio:

a) Partire da un buon schema a oggetti e tradurlo

StudentiEdEsami(Matricola, Nome, Provincia, AnnoNascita,


Materia, Voto)

b) Costruire direttamente le relazioni


c) Partire da uno schema relazionale fatto da altri e modificarlo o completarlo

Anomalie:
Ridondanze

Teoria della normalizzazione relazionale:

Potenziali inconsistenze

qualit dello schema, cosa sono le anomalie e come eliminarle.

Impossibilit di rappresentare alcuni fatti (anomalie in inserzioni/

Particolarmente utile se si usano i metodi (b) o (c). Moderatamente utile anche

eliminazioni)

quando si usa il metodo (a).

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Schemi con Anomalie

Se dividiamo lo schema in due tabelle come ...

Schemi con Anomalie

Se dividiamo lo schema in due tabelle come ...

Studenti (Matricola, Nome, Provincia, AnnoNascita)

Studenti (Matricola, Nome, Provincia, AnnoNascita)

Esami (Nome, Materia, Voto)

Esami (Nome, Materia, Voto)

Perdita di informazione: pi studenti possono avere lo stesso nome e quindi si


perde la connessione tra studenti ed esami.

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Schemi con Anomalie

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Se dividiamo lo schema come

Schemi con Anomalie

Se dividiamo lo schema come

Studenti (Matricola, Nome, Provincia, AnnoNascita)

Studenti (Matricola, Nome, Provincia, AnnoNascita)

Esami (Matricola, Materia, Voto)

Esami (Matricola, Materia, Voto)

Divisione soddisfacente! Perche???

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Schemi con Anomalie

Se dividiamo lo schema come

Obiettivi

Obiettivi della teoria:

Studenti (Matricola, Nome, Provincia, AnnoNascita)

Equivalenza di schemi

Esami (Matricola, Materia, Voto)

Qualit degli schemi (forme normali)


Trasformazione degli schemi (normalizzazione di schemi)

Divisione soddisfacente! Perche???

Nota: per associare i voti agli studenti devo fare un join, ma la teoria della
normalizzazione non considera lefficienza

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Obiettivi

Obiettivi della teoria:


Equivalenza di schemi
Qualit degli schemi (forme normali)
Trasformazione degli schemi (normalizzazione di schemi)

Dipendenze funzionali

Ipotesi dello schema di relazione universale:


Tutti i fatti possono essere descritti da attributi di ununica relazione U
(relazione universale), cio gli attributi hanno un significato globale.

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Thursday, May 15, 2014

Corso di Basi di Dati

Istanze valide

10

Istanze valide

10

Per formalizzare la nozione di schema senza anomalie, occorre una descrizione

Per formalizzare la nozione di schema senza anomalie, occorre una descrizione

formale delle propriet dei fatti rappresentati in uno schema relazionale.

formale delle propriet dei fatti rappresentati in uno schema relazionale.

Istanza valida di una relazione R:


nozione semantica
dipende da ci che sappiamo del dominio del discorso (non estensionale, non
deducibile da alcune istanze dello schema)

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Istanze valide

10

Dipendenze Funzionali

11

Per formalizzare la nozione di schema senza anomalie, occorre una descrizione

Dato uno schema R(T) e X, Y T, una dipendenza funzionale (DF) un vincolo

formale delle propriet dei fatti rappresentati in uno schema relazionale.

su R del tipo
XY
i.e. X determina funzionalmente Y o Y determinato da X, da leggersi come

Istanza valida di una relazione R:

in ogni istanza valida di R il valore di X determina univocamente il valore di Y:

nozione semantica
dipende da ci che sappiamo del dominio del discorso (non estensionale, non
deducibile da alcune istanze dello schema)

Nozione fondamentale: dipendenza funzionale

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Dipendenze Funzionali

11

Dato uno schema R(T) e X, Y T, una dipendenza funzionale (DF) un vincolo

Dipendenze Funzionali

12

Unistanza r di R soddisfa X Y se la propriet vale per r

su R del tipo
XY

r |= X Y

i.e. X determina funzionalmente Y o Y determinato da X, da leggersi come

t1, t2 r.

se t1[X] = t2[X]

allora

t1[Y] = t2[Y]

in ogni istanza valida di R il valore di X determina univocamente il valore di Y:

r istanza valida di R,
t1, t2 r.

se t1[X] = t2[X]

allora

t1[Y] = t2[Y]

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Dipendenze Funzionali

12

Unistanza r di R soddisfa X Y se la propriet vale per r

13

DotazioniLibri(CodiceLibro, NomeNegozio, IndNegozio, Titolo, Quantit)


DF:

r |= X Y
t1, t2 r.

Esempio

{ CodiceLibro Titolo
se t1[X] = t2[X]

allora

t1[Y] = t2[Y]

NomeNegozio IndNegozio
CodiceLibro, NomeNegozio IndNegozio, Titolo, Quantit }

r soddisfa un insieme F di DF
r |= F
se, per ogni X Y F, vale r |= X Y

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esprimere le dipendenze funzionali

14

Consideriamo: NomeNegozio IndNegozio

Esprimere le dipendenze funzionali

14

Consideriamo: NomeNegozio IndNegozio


Espressione diretta:
Se in due record il NomeNegozio uguale, anche lIndNegozio uguale:
NomeNegozio=
IndNegozio=

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Esprimere le dipendenze funzionali

14

Esprimere le dipendenze funzionali

Consideriamo: NomeNegozio IndNegozio

Consideriamo: NomeNegozio IndNegozio

Espressione diretta:

Espressione diretta:

Se in due record il NomeNegozio uguale, anche lIndNegozio uguale:


NomeNegozio=
IndNegozio=
Per contrapposizione:

14

Se in due record il NomeNegozio uguale, anche lIndNegozio uguale:


NomeNegozio=
IndNegozio=
Per contrapposizione:

Se lIndNegozio diverso allora il NomeNegozio diverso:


IndNegozio
NomeNegozio

Se lIndNegozio diverso allora il NomeNegozio diverso:


IndNegozio
NomeNegozio
Per assurdo:
Non possono esserci due dotazioni con NomeNegozio uguale e IndNegozio
diverso:
Not (NomeNegozio= IndNegozio )

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esempio

15

Orari(CodAula, NomeAula, Piano, Posti, Materia, CDL, Docente, Giorno, Ora)

Esempio

15

Orari(CodAula, NomeAula, Piano, Posti, Materia, CDL, Docente, Giorno, Ora)


1. In un dato momento, un docente si trova al pi in unaula

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Esempio

15

Orari(CodAula, NomeAula, Piano, Posti, Materia, CDL, Docente, Giorno, Ora)

Esempio

15

Orari(CodAula, NomeAula, Piano, Posti, Materia, CDL, Docente, Giorno, Ora)

1. In un dato momento, un docente si trova al pi in unaula

1. In un dato momento, un docente si trova al pi in unaula

2. Non possibile che due docenti diversi siano nella stessa aula
contemporaneamente

2. Non possibile che due docenti diversi siano nella stessa aula
contemporaneamente
3. Se due lezioni si svolgono su due piani diversi appartengono a due corsi di
laurea diversi

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esempio

15

Orari(CodAula, NomeAula, Piano, Posti, Materia, CDL, Docente, Giorno, Ora)

Riassunto

16

Qualit degli schemi relazionali

1. In un dato momento, un docente si trova al pi in unaula

Anomalie

2. Non possibile che due docenti diversi siano nella stessa aula
contemporaneamente

Dipendenze funzionali X Y

3. Se due lezioni si svolgono su due piani diversi appartengono a due corsi di


laurea diversi

r |= X Y

4. Se due lezioni diverse per la stessa materia si svolgono lo stesso giorno,


appartengono a due CDL diversi

F |= X Y

5. Normalizzazione di Schemi Relazionali

se t1, t2 r. se t1[X] = t2[X] allora t1[Y] = t2[Y]

r soddisfa un insieme F di DF ( r |= F )

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Propriet delle dipendenze funzionali

17

Dipendenze funzionali come parte integrante dello schema:

Propriet delle dipendenze funzionali

17

Dipendenze funzionali come parte integrante dello schema:

R <T, F> denota uno schema con attributi T e dipendenze funzionali F.

R <T, F> denota uno schema con attributi T e dipendenze funzionali F.

Uno schema R <T, F> soddisfa anche altre dipendenze:

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Propriet delle dipendenze funzionali

17

Dipendenze funzionali come parte integrante dello schema:

Propriet delle dipendenze funzionali

17

Dipendenze funzionali come parte integrante dello schema:

R <T, F> denota uno schema con attributi T e dipendenze funzionali F.

R <T, F> denota uno schema con attributi T e dipendenze funzionali F.

Uno schema R <T, F> soddisfa anche altre dipendenze:

Uno schema R <T, F> soddisfa anche altre dipendenze:

Dipendenze implicate: Sia F un insieme di DF sullo schema R, diremo che

Dipendenze implicate: Sia F un insieme di DF sullo schema R, diremo che

F implica logicamente X Y

F implica logicamente X Y

F |= X Y

F |= X Y

se ogni istanza r di R che soddisfa F soddisfa anche X Y.

se ogni istanza r di R che soddisfa F soddisfa anche X Y.


Dipendenze banali: implicate dal vuoto, es.
{} |= X -> X

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Esempio

18

Sia R<T, F>, con T = { X, Y, Z,W } e F = {X Y, X Z, Z W }.

Regole di inferenza

19

Come derivare DF implicate logicamente da F?

{} |= X Y Y ( DF banale)

-> insieme di regole di inferenza.

F |= X Y Z
Dim.
se t1[X] = t2[X]

t1[Y] = t2[Y]
e t1[Z] = t2[Z]

quindi t1[YZ] = t2[YZ]


F |= X W
Dim. Esercizio ...

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Regole di inferenza

19

Come derivare DF implicate logicamente da F?

Derivazione

20

Definizione: Sia F un insieme di DF, diremo che X Y derivabile da F


F | X Y

-> insieme di regole di inferenza.

se X Y pu essere inferito da F usando gli assiomi di Armstrong

Assiomi di Armstrong (sono in realt regole di inferenza)


Se Y X, allora X Y

(Riflessivit R)

Se X Y, Z T, allora XZ YZ

(Arricchimento A)

Se X Y, Y Z, allora X Z

(Transitivit T)

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Derivazione

20

Definizione: Sia F un insieme di DF, diremo che X Y derivabile da F

Derivazione

20

Definizione: Sia F un insieme di DF, diremo che X Y derivabile da F

F | X Y

F | X Y

se X Y pu essere inferito da F usando gli assiomi di Armstrong

Es.:

Corso di Basi di Dati

se X Y pu essere inferito da F usando gli assiomi di Armstrong

X Y, X Z | X YZ

Es.:

X Y, X Z | X YZ

XY

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

XZ

Corso di Basi di Dati

Derivazione

20

Definizione: Sia F un insieme di DF, diremo che X Y derivabile da F

Derivazione

20

Definizione: Sia F un insieme di DF, diremo che X Y derivabile da F

F | X Y

F | X Y

se X Y pu essere inferito da F usando gli assiomi di Armstrong

Es.:

se X Y pu essere inferito da F usando gli assiomi di Armstrong

X Y, X Z | X YZ

(A)

Es.:

XZ

XY

(A)

X XY

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

20

Definizione: Sia F un insieme di DF, diremo che X Y derivabile da F


F | X Y
se X Y pu essere inferito da F usando gli assiomi di Armstrong

XZ

X XY

XY YZ

(A)

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Derivazione

21

Si dimostra che valgono anche le regole:


{X Y, X Z} | X YZ

(unione U)

Z Y, {X Y} | X Z

(decomposizione D)

X Y, X Z | X YZ

(A)

XY

XZ

X XY

XY YZ
X YZ

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

XY

Thursday, May 15, 2014

Derivazione

Es.:

X Y, X Z | X YZ

(A)
(T)

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Derivazione

21

(unione U)

Z Y, {X Y} | X Z

(decomposizione D)

22

R(A, B, C, D),

Si dimostra che valgono anche le regole:


{X Y, X Z} | X YZ

Esempio
F = {A B, BC D}

Da U e D si ricava che
Proposizione: se Y = A1A2An allora
F |- X Y

F |- X A1, F |- X A2, , F |- X An

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

22

F = {A B, BC D}

Esempio
F = {A B, BC D}

Vale AC ABCD (AC [super]chiave) ?


1. A B

Thursday, May 15, 2014

22

R(A, B, C, D),

Vale AC ABCD (AC [super]chiave) ?

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Esempio
R(A, B, C, D),

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

data

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esempio

22

R(A, B, C, D),

F = {A B, BC D}

F = {A B, BC D}

Vale AC ABCD (AC [super]chiave) ?

data

1. A B

2. AC BC da 1. e A

data

2. AC BC da 1. e A
3. BC D

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

data

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Esempio

22

R(A, B, C, D),

F = {A B, BC D}

Esempio

22

R(A, B, C, D),

Vale AC ABCD (AC [super]chiave) ?


1. A B

22

R(A, B, C, D),

Vale AC ABCD (AC [super]chiave) ?


1. A B

Esempio

F = {A B, BC D}

Vale AC ABCD (AC [super]chiave) ?

data

1. A B

data

2. AC BC da 1. e A

2. AC BC da 1. e A

3. BC D

3. BC D

data

4. BC BCD

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

da 3. e A

Corso di Basi di Dati

data

4. BC BCD

da 3. e A

5. AC BCD

da 2., 4. e T

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esempio

22

R(A, B, C, D),

F = {A B, BC D}

Corrett. e complet. degli assiomi di Armstrong

23

Teorema: Gli assiomi di Armstrong sono corretti e completi.

Vale AC ABCD (AC [super]chiave) ?


1. A B

data

2. AC BC da 1. e A
3. BC D

data

4. BC BCD

da 3. e A

5. AC BCD

da 2., 4. e T

6. AC ABCD

da 5. e A

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Corrett. e complet. degli assiomi di Armstrong

23

Teorema: Gli assiomi di Armstrong sono corretti e completi.

F | f

23

Teorema: Gli assiomi di Armstrong sono corretti e completi.

Correttezza degli assiomi:


F, f,

Corrett. e complet. degli assiomi di Armstrong

Correttezza degli assiomi:


F |= f

F, f,

F | f

F |= f

Completezza degli assiomi:


F,f,

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

F |= f

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

F | f

Corso di Basi di Dati

Chiusura di un insieme di dipendenze funzionali

24

Chiusura di F:

Chiusura di un insieme di dipendenze funzionali

24

Chiusura di F:
+

Dato un insieme F di DF, la chiusura di F, denotata con F+, :

Dato un insieme F di DF, la chiusura di F, denotata con F , :


F+ = { X Y | F |- X Y }

F+ = { X Y | F |- X Y }

Problema dellimplicazione:
controllare se una DF

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

X Y F+

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Chiusura di un insieme di dipendenze funzionali

24

Chiusura di F:

Chiusura di un insieme di attributi

25

Definizione Dato R<T, F>, e X T, la chiusura di X rispetto ad F, denotata con


+

XF+, (o X+, se F chiaro dal contesto)

Dato un insieme F di DF, la chiusura di F, denotata con F , :


F+ = { X Y | F |- X Y }

XF+ = { A T | F | X A }.

Problema dellimplicazione:
controllare se una DF

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

X Y F+

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Chiusura di un insieme di attributi

25

Chiusura lenta

26

Definizione Dato R<T, F>, e X T, la chiusura di X rispetto ad F, denotata con

Un semplice algoritmo per calcolare X+ (ne esiste uno migliore di complessit di

XF+, (o X+, se F chiaro dal contesto)

tempo lineare)

XF+ = { A T | F | X A }.

Algoritmo CHIUSURA LENTA


input
R<T, F>, X T

Un algoritmo efficiente per risolvere il problema dellimplicazione senza


calcolare la chiusura di F scaturisce dal seguente teorema.
+

Teorema X Y F

X+

output
begin
X+ = X

while (X+ cambia) do

Y XF

for each W V in F with W X+ and V X+


do X+ = X+ V
end

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Esempio

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

27

F = {DB E, B C, A B}

Esempio

27

F = {DB E, B C, A B}

trovare (AD)+:

trovare (AD)+:
X+ = AD

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esempio

27

F = {DB E, B C, A B}

Esempio

27

F = {DB E, B C, A B}

trovare (AD)+:

trovare (AD)+:

X+ = AD

X+ = AD

X+ = ADB

X+ = ADB
X+ = ADBE

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Esempio

27

F = {DB E, B C, A B}

Esempio

27

F = {DB E, B C, A B}

trovare (AD)+:

trovare (AD)+:

X+ = AD

X+ = AD

X+ = ADB

X+ = ADB

X+ = ADBE

X+ = ADBE

X+ = ADBEC

X+ = ADBEC
verificare se A C

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Chiavi e attributi primi

28

Definizione Fissato R<T, F>, diremo che W T chiave (candidata) di R se:


W T F+

(W superchiave)

V W, V T F+

(se V W, V non superchiave)

Copertura Canonica

Attributo primo: attributo che appartiene ad almeno una chiave


Complessit
Il problema di trovare tutte le chiavi di una relazione richiede un algoritmo
di complessit esponenziale nel caso peggiore
Il problema di controllare se un attributo primo NP-completo

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Copertura di un insieme di DF

Thursday, May 15, 2014

30

Definizione

Copertura: Attributi estranei

31

Sia F un insieme di DF, data una dipendenza X Y F

Due insiemi di DF, F e G, sullo schema R sono equivalenti, F G,

si dice che X contiene un attributo estraneo A se

se F+ = G+.

(X {A}) Y F+, cio

F |- (X {A}) Y

Se F G, allora F una copertura di G (e G una copertura di F).

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Copertura: Attributi estranei

31

Sia F un insieme di DF, data una dipendenza X Y F

Copertura di un insieme di DF
si dice che X Y una dipendenza ridondante se
(F {X Y})+ = F+

si dice che X contiene un attributo estraneo A se


(X {A}) Y F+, cio

32

equivalentemente

F |- (X {A}) Y

F {X Y} |- X Y
Esempio: se vale
Docente, Giorno, Ora -> CodAula
Docente, Giorno -> Ora

Esempio: se vale
Docente, Giorno, Ora -> CodAula
CodAula -> NomeAula

allora
Docente, Giorno -> CodAula

inutile avere anche


Docente, Giorno, Ora -> NomeAula

nella prima dipendenza Ora attributo estraneo

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Copertura Canonica

33

F detta una copertura canonica se

Calcolo della copertura canonica

34

Algoritmo per calcolare una copertura canonica:

la parte destra di ogni DF in F un attributo ( X A );

Trasformare le dipendenze nella forma X A

non esistono attributi estranei;

Eliminare gli attributi estranei

nessuna dipendenza in F ridondante.

Eliminare le dipendenze ridondanti

Teorema Per ogni insieme di dipendenze F esiste una copertura canonica.


Es: R < {A,B,C,D, E}, {DB EC, B C, A B, A C} >

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Copertura canonica

35

Copertura canonica

35

importante eliminare prima gli attributi estranei, e poi le dipendenze

importante eliminare prima gli attributi estranei, e poi le dipendenze

ridondanti

ridondanti

Es. { BA -> D, B -> A, D -> A }

Es. { BA -> D, B -> A, D -> A }

La copertura canonica non unica.


Es. {AB->C, A->B, B->A} ha come coperture canoniche
- {A->C, A->B, B->A}
- {B->C, A->B, B->A}
Attributi estranei eliminati uno alla volta!

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Riassunto

36

Qualit degli schemi relazionali e anomalie


Dipendenze funzionali X Y
r |= X Y

se t1, t2 r. se t1[X] = t2[X] allora t1[Y] = t2[Y]

Decomposizione di Schemi

Chiusura di un insieme di dipendenze


F+ = { X Y | F |- X Y }
Chiave e attributi primi
Copertura canonica (attributi estranei, dipendenze ridondanti)

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Thursday, May 15, 2014

Corso di Basi di Dati

Decomposizione di Schemi

38

In generale, per eliminare anomalie da uno schema occorre decomporlo in

Decomposizione di Schemi

39

Esempio:

schemi pi piccoli "equivalenti"

StudentiEdEsami(Matricola, Nome, Provincia, AnnoNascita, Materia, Voto)

{Studenti(Matricola, Nome, Provincia,AnnoNascita),

Decomposizione

Esami(Matricola, Materia, Voto)}

Dato uno schema R(T),


= { R1(T1), , Rk(Tk) } una decomposizione di R se T1 ... Tk = T

{Studenti(Matricola, Nome, Provincia,AnnoNascita),


Esami(Nome, Materia, Voto)}

{Studenti(Matricola, Nome, Provincia,AnnoNascita),


Esami(Materia, Voto)}
5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Decomposizione di Schemi

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

40

Due propriet desiderabili di una decomposizione:

Preservazione dei dati

41

Dato uno schema R(T)


la decomposizione = { R1(T1), , Rk(Tk) } preserva i dati se per ogni istanza

preservazione dei dati

valida r di R:

preservazione delle dipendenze

r = T1 (r) T2 (r) Tk (r)


Dalla definizione di giunzione naturale segue:

... propriet indipendenti

Osservazione. Se = { R1(T1), , Rk(Tk) } una decomposizione di R(T), allora


per ogni istanza r di R:
r T1 (r) T2 (r) Tk (r)

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esempio di decomposizione

42

r=

a1

c1

a2

c2

Allora la decomposizione { R1(AB), R2(BC) }:

T1 (r) =

43

... non preserva i dati, infatti r T1(r) T1(r)

Sia r unistanza valida di R(ABC):


A

Esempio di decomposizione

a1

c1

a2

c2

T2 (r) =

Corso di Basi di Dati

Thursday, May 15, 2014

Decomposizioni binarie

a1

c1

a1

c2

a2

c1

a2

c2

Qual una decomposizione che preserva i dati?

non preserva i dati, infatti r T1(r) T1(r)

5. Normalizzazione di Schemi Relazionali

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

44

Teorema

Proiezione di dipendenze

45

Definizione Dato lo schema R<T, F>, e T1 T, la proiezione di F su T1


T1 (F) = { X Y | X Y T1 e X Y F+ }

Sia R<T, F> uno schema di relazione,


la decomposizione ={R1(T1), R2(T2)} preserva i dati sse
T1 T2 T1 F+ oppure T1 T2 T2 F+.

Esistono criteri anche per decomposizioni in pi di due schemi.

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Proiezione di dipendenze

45

Proiezione di dipendenze

46

Algoritmo (banale) per il calcolo di T1(F)

Definizione Dato lo schema R<T, F>, e T1 T, la proiezione di F su T1


T1 (F) = { X Y | X Y T1 e X Y F+ }

T1(F)=
for each Y T1 do
- Z:= YF+

Esempio

- T1(F) = T1(F) { Y Z T1 }

- Sia R(A, B, C) e F = {A B, B C, C A}.


- AB (F) {A B, B A}
- AC (F) {A C, C A}

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Corso di Basi di Dati

Thursday, May 15, 2014

Preservazione delle Dipendenze: Esempio

47

Telefoni (Prefisso, Numero, Localit, Abbonato, Via)


{ P N L A V,

5. Normalizzazione di Schemi Relazionali

Preservazione delle Dipendenze: Esempio

47

Telefoni (Prefisso, Numero, Localit, Abbonato, Via)

LP}

{ P N L A V,

LP}

Si consideri la decomposizione:
= { Tel < {N, L, A, V}, F1 >,

Pref < {L, P}, F2 > }

con
F1 ={ LN A V }
F2 ={ L P }

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Preservazione delle Dipendenze: Esempio

47

Preservazione delle Dipendenze: Esempio

48

Telefoni (Prefisso, Numero, Localit, Abbonato, Via)


{ P N L A V,

LP}

Si consideri la decomposizione:
= { Tel < {N, L, A, V}, F1 >,

Pref < {L, P}, F2 > }

con
F1 ={ LN A V }
F2 ={ L P }
Preserva dati ma non le dipendenze: PN L non deducibile da F1 e F2.

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Localit

Abbonato

Via

Prefisso

Localit

5348

Padova

Gino

Pascoli

49

Padova

5348

Vigonza

Ignazio

Silone

49

Vigonza

2344

Venezia

Lino

Leopardi

41

Venezia

2122

Padova

Ciro

Pavese

49

Padova

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Preservazione delle Dipendenze: Esempio

48

Preserva dati ma non le dipendenze: PN L non deducibile da F1 e F2.


Esistono istanze valide della decomposizione che non sono proiezione di una
istanza valida della relazione originale

49

Definizione Dato lo schema R<T, F>, la decomposizione = {R1, ..., Rn} preserva le
dipendenze se lunione delle dipendenze in Ti(F) una copertura di F.

= {R1, ..., Rn} preserva le dipendenze ha complessit di tempo polinomiale.

Numero

Localit

Abbonato

Via

Prefisso

Localit

5348

Padova

Gino

Pascoli

49

Padova

5348

Vigonza

Ignazio

Silone

49

Vigonza

2344

Venezia

Lino

Leopardi

41

Venezia

2122

Padova

Ciro

Pavese

49

Padova

5. Normalizzazione di Schemi Relazionali

Preservazione delle dipendenze

Dato lo schema R<T, F>, il problema di stabilire se la decomposizione

Pi concretamente ( F1 ={ LN A V }, F2 ={ L P } )

Thursday, May 15, 2014

Numero

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Preservazione delle dipendenze

49

Definizione Dato lo schema R<T, F>, la decomposizione = {R1, ..., Rn} preserva le
dipendenze se lunione delle dipendenze in Ti(F) una copertura di F.

Dato lo schema R<T, F>, il problema di stabilire se la decomposizione

Forme Normali

= {R1, ..., Rn} preserva le dipendenze ha complessit di tempo polinomiale.

Un teorema importante:
Teorema
Sia = {Ri<Ti, Fi>} una decomposizione di R<T, F>
che preservi le dipendenze e tale che un Tj sia una superchiave per R.
Allora preserva i dati.
5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Thursday, May 15, 2014

Forme normali

51

1FN

Forma normale di Boyce-Codd

52

Intuizione:

Impone una restrizione sul tipo di una relazione: ogni attributo ha un tipo
elementare (non strutturato, non multivalore).
ora vincolo del modello relazionale

2FN, 3FN e FNBC


Impongono restrizioni sulle dipendenze funzionali
FNBC la pi naturale e la pi restrittiva.

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Forma normale di Boyce-Codd

52

Intuizione:

Forma normale di Boyce-Codd

52

Intuizione:

Una dipendenza non banale XA indica lesistenza di una collezione di entit

Una dipendenza non banale XA indica lesistenza di una collezione di entit

identificate da X e con attributi X+

identificate da X e con attributi X+


Se vi in R una dipendenza XA non banale ed X non superchiave, allora X
modella lidentit di unentit diversa da quelle modellate dallintera R

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Forma normale di Boyce-Codd

52

Intuizione:

Forma normale di Boyce-Codd

52

Intuizione:

Una dipendenza non banale XA indica lesistenza di una collezione di entit

Una dipendenza non banale XA indica lesistenza di una collezione di entit

identificate da X e con attributi X+

identificate da X e con attributi X+

Se vi in R una dipendenza XA non banale ed X non superchiave, allora X

Se vi in R una dipendenza XA non banale ed X non superchiave, allora X

modella lidentit di unentit diversa da quelle modellate dallintera R

modella lidentit di unentit diversa da quelle modellate dallintera R

Ad esempio, in StudentiEdEsami
StudentiEdEsami(Matricola, Nome, Provincia, AnnoNascita, Materia, Voto)

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Forma normale di Boyce-Codd

52

Intuizione:

Forma normale di Boyce-Codd

52

Intuizione:

Una dipendenza non banale XA indica lesistenza di una collezione di entit

Una dipendenza non banale XA indica lesistenza di una collezione di entit

identificate da X e con attributi X+

identificate da X e con attributi X+

Se vi in R una dipendenza XA non banale ed X non superchiave, allora X

Se vi in R una dipendenza XA non banale ed X non superchiave, allora X

modella lidentit di unentit diversa da quelle modellate dallintera R

modella lidentit di unentit diversa da quelle modellate dallintera R

Ad esempio, in StudentiEdEsami

Ad esempio, in StudentiEdEsami

StudentiEdEsami(Matricola, Nome, Provincia, AnnoNascita, Materia, Voto)

StudentiEdEsami(Matricola, Nome, Provincia, AnnoNascita, Materia, Voto)

Matricola -> Nome e Matricola non (super)chiave.

Matricola -> Nome e Matricola non (super)chiave.


Matricola -> Nome, Provincia, AnnoNascita

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Boyce-Codd Normal Form (BCNF)

53

Boyce-Codd Normal Form (BCNF)

53

Definizione: Lo schema R<T, F> in BCNF se per ogni XA F+, con A X (non

Definizione: Lo schema R<T, F> in BCNF se per ogni XA F+, con A X (non

banale), X una superchiave.

banale), X una superchiave.


Teorema: R<T, F> in BCNF

per ogni XY F non banale,


X una superchiave.

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Boyce-Codd Normal Form (BCNF)

53

Algoritmo di analisi

54

Definizione: Lo schema R<T, F> in BCNF se per ogni XA F+, con A X (non

R<T,F> decomposta in: Ra<Ta, Fa> e Rb<Tb, Fb> e su di esse si ripete il

banale), X una superchiave.

procedimento; esponenziale.
input:

Teorema: R<T, F> in BCNF

R<T, F>, con F copertura canonica

per ogni XY F non banale,

output: decomposizione in BCNF che preserva i dati

X una superchiave.

= {R<T, F>}
while esiste in una Ri<Ti, Fi> non in BCNF per la DF X A

Esempi:

do

1. Docenti(CodiceFiscale, Nome, Dipartimento, Indirizzo)


2. Impiegati(Codice, Qualifica, NomeFiglio)
3. Librerie(CodiceLibro, NomeNegozio, IndNegozio, Titolo, Quantit)
4. Telefoni(Prefisso, Numero, Localit, Abbonato, Via)
F = {P N L A V, L P}
5. Normalizzazione di Schemi Relazionali

end
Corso di Basi di Dati

Thursday, May 15, 2014

Propriet dellalgoritmo

Ta = X+
Fa = Ta (Fi)
Tb = Ti X+ X
Fb = Tb (Fi)
= Ri {Ra<Ta, Fa>, Rb<Tb, Fb>}
(Ra ed Rb sono nomi nuovi)

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

55

Preserva i dati, ma non necessariamente le dipendenze

Propriet dellalgoritmo

55

Preserva i dati, ma non necessariamente le dipendenze


Esempi di decomposizioni senza perdita di dipendenze:

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Propriet dellalgoritmo

55

Propriet dellalgoritmo

Preserva i dati, ma non necessariamente le dipendenze

Preserva i dati, ma non necessariamente le dipendenze

Esempi di decomposizioni senza perdita di dipendenze:

Esempi di decomposizioni senza perdita di dipendenze:

Docenti(CodiceFiscale, Nome, Dipartimento, Indirizzo), {CF N D; D I}

Docenti(CodiceFiscale, Nome, Dipartimento, Indirizzo), {CF N D; D I}


R1(D,I)
F1 = { D I }

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

R2(CF,N,D)
F2={ CF N D }

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Propriet dellalgoritmo

55

Propriet dellalgoritmo

Preserva i dati, ma non necessariamente le dipendenze

Preserva i dati, ma non necessariamente le dipendenze

Esempi di decomposizioni senza perdita di dipendenze:

Esempi di decomposizioni senza perdita di dipendenze:

Docenti(CodiceFiscale, Nome, Dipartimento, Indirizzo), {CF N D; D I}


R1(D,I)
F1 = { D I }

R1(D,I)
F1 = { D I }

R2(CF,N,D)
F2={ CF N D }

Impiegati(Codice, Qualifica, NomeFiglio), {C Q}


R1(C, Q)
F1 = { C Q }

5. Normalizzazione di Schemi Relazionali

55

Docenti(CodiceFiscale, Nome, Dipartimento, Indirizzo), {CF N D; D I}

R2(CF,N,D)
F2={ CF N D }

Impiegati(Codice, Qualifica, NomeFiglio), {C Q}

Thursday, May 15, 2014

55

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

R2(C, NF)
F2={ }

Corso di Basi di Dati

Riassunto

56

Boyce-Codd Normal Form

Propriet dellalgoritmo (cont.)

57

Decomposizione con perdita di dipendenze:

Anomalia:

Telefoni(Prefisso, Numero, Localit, Abbonato, Via),


{P N L A V ; L P}

- dipendenza XA non banale, con X non superchiave,


- X identit di unentit con attributi X+ diversa da quelle modellate
dallintera R

- R1(L, P)
F1 = { L P }

- Es:
StudentiEdEsami(Matricola, Nome, Prov, AnnoNascita, Materia, Voto)

- Preserva dati ma non le dipendenze: P N L non deducibile da F1 e F2.

R2(L, N, A, V)
F2 = { LN AV }

con Matricola -> Nome, Prov, AnnoNascita


Schema in BCNF = schema privo di anomalie
Algoritmo di normalizzazione

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Propriet dellalgoritmo (cont.)

57

Decomposizione con perdita di dipendenze:

Terza Forma Normale (3FN)


per ogni XA F+, non banale, X una superchiave oppure A primo.

{P N L A V ; L P}

Nota:

R2(L, N, A, V)
F2 = { LN AV }

- La 3FN ammette una dipendenza non banale e non-da-chiave se gli


attributi a destra sono primi;

- Preserva dati ma non le dipendenze: P N L non deducibile da F1 e F2.


Non esiste una decomposizione in BCNF che preservi le dipendenze
- P, N, L non possono stare nella stessa relazione (altrimenti P, N chiave e
L P dipendenza anomala)

Thursday, May 15, 2014

la BCNF non ammette mai nessuna dipendenza non banale e non-dachiave.

Teorema R<T, F> in 3FN se per ogni X Y F,


X una superchiave oppure ogni attributo in Y-X primo.

- P N L non nella proiezione e non derivabile


5. Normalizzazione di Schemi Relazionali

58

Definizione R <T, F> in 3FN se

Telefoni(Prefisso, Numero, Localit, Abbonato, Via),

- R1(L, P)
F1 = { L P }

Corso di Basi di Dati

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esempi

59

Non sono in 3FN:

Esempi

60

Sono in 3FN, ma non in BCNF:


Telefoni(Prefisso, Numero, Localit, Abbonato, Via)

Docenti(CodiceFiscale, Nome, Dipartimento, Indirizzo)


{ CF N D; D I }

F = {P N L A V, L P}

Chiavi: CF

Chiavi: P N, L N

Impiegati(Codice, Qualifica, NomeFiglio)


{CQ}

Esami(Matricola, Telefono, Materia, Voto)

Chiavi: C NF

Matricola Telefono

Matricola Materia Voto


Telefono Matricola
Chiavi:
Matricola Materia
Telefono Materia

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Algoritmo di sintesi

61

Sia R<T, F>, con F copertura canonica

Algoritmo di sintesi

62

una decomposizione

1. Si partiziona F in gruppi tali che ogni gruppo abbia lo stesso determinante

ogni attributo compare (anche quelli non coinvolti in dipendenze)

(parte sx).
2. Si definisce uno schema di relazione per ogni gruppo, con attributi gli
attributi che appaiono nelle DF del gruppo, e chiavi i determinanti.
3. Si eliminano gli schemi contenuti in altri.
4. Se la decomposizione non contiene uno schema i cui attributi sono una
superchiave di R, si aggiunge lo schema con attributi W, con W una chiave di
R
Output: Decomposizione in 3NF che preserva dati e dipendenze

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Algoritmo di sintesi

62

una decomposizione

Algoritmo di sintesi

62

una decomposizione

ogni attributo compare (anche quelli non coinvolti in dipendenze)

ogni attributo compare (anche quelli non coinvolti in dipendenze)

preserva le dipendenze

preserva le dipendenze

per ogni X -> A, c una relazione che contiene X e A

per ogni X -> A, c una relazione che contiene X e A


preserva i dati
dato che preserva le dipendenze, e c una relazione che contiene una
superchiave di R ... teorema precedente

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Algoritmo di sintesi: Esempio

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

63

R < {A,B,C,D,E} , {A B C D E, C D} >

Algoritmo di sintesi: Esempio

63

R < {A,B,C,D,E} , {A B C D E, C D} >


copertura canonica
A B C, A B E, C D

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Algoritmo di sintesi: Esempio

63

R < {A,B,C,D,E} , {A B C D E, C D} >

Algoritmo di sintesi: Esempio

63

R < {A,B,C,D,E} , {A B C D E, C D} >

copertura canonica

copertura canonica

A B C, A B E, C D

A B C, A B E, C D

chiavi

chiavi

solo A B

solo A B
decomposizione
R1 < { A, B, C, E } , { A B C E } >
R2 < { C, D }, { C D } >

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Le DF non bastano: DF multivalore

64

Impiegati(Codice, StoriaStipendio, NomeFiglio)


Verdi

1000

Giorgio

Verdi

1000

Anna

Verdi

1400

Giorgio

Verdi

1400

Rossi

1900

Le DF non bastano: DF multivalore

65

Altri esempi:
Impiegati

Impiegati

Codice

Codice

Anna

Qualifiche: seq num

Posizioni: seq (Qualifica,

Gino

NomeFigli: seq string

NomeDirigente)

La coesistenza di due propriet multivalore indipendenti, fa s che per ogni


impiegato esistano tante ennuple quante sono le possibili coppie di valori di
Stipendio e NomeFiglio.

Risolti nella 4NF

Impiegati
Codice
Stipendi: seq num
NomeFigli: seq string

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

4NF

66

Denormalizzazione

67

Dopo la progettazione logica pu essere opportuno reintrodurre nello schema

Dato R<T,F>

fisico delle anomalie

Dipendenza multivalore X ->> Y


r istanza valida R se esistono due ennuple t1, t2 r con t1[X]=t2[X]

Es. Studenti (Matricola, ....), Esami (Data, Voto, ..., Matricola)

esistono due ennuple t3, t4 r tali che, se Z=T-(X Y)


-

t1[X] = t2[X] = t3[X] = t4[X]

t1[Y] = t3[Y]

t2[Y] = t4[Y]

t1[Z] = t4[Z]

t2[Z] = t3[Z]

se occorre effettuare spesso la giunzione Studenti-Esami e invece si


effettuano poche operazioni su Studenti si possono comporre le due tabelle
- meno giunzioni
- maggiore occupazione di memoria

X multidetermina Y (determina linsieme dei possibili valori di Y)

- maggior costo delle operazioni di modifica

banale se Y X oppure X Y = T
R<T,F> in 4NF se per ogni dipendenza X ->> Y non banale, X una superchiave

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

Uso della normalizzazione

5. Normalizzazione di Schemi Relazionali

Corso di Basi di Dati

Thursday, May 15, 2014

68

Come principio (anche nella progettazione in altri modelli)

Esercizio 1

69

Si consideri il seguente schema relazionale


Vendite(Commesso, Negozio, Citt, Data, CodProd, Taglia, Colore)

Analisi di DB esistenti (singole tabelle)

Prodotti(CodProd, Taglia, Colore, Prezzo)

Progettazione concettuale nel modello relazionale

Supponiamo che:
a. Ogni commesso lavori in un solo negozio e in una sola citt.
b. Ogni negozio si trovi in una sola citt.
c. Un dato prodotto abbia sempre lo stesso prezzo.
d. Ogni prodotto sia disponibile in pi taglie e colori.

5. Normalizzazione di Schemi Relazionali

Thursday, May 15, 2014

Corso di Basi di Dati

Esercizi riassuntivi

Thursday, May 15, 2014

Corso di Basi di Dati

Esercizio 1 (cont.)

70

Basandosi solo su queste assunzioni:

Finanziamenti(CodDip, IndDip, CodDoc, TelDoc, CodFin, Ammontare, Scadenza)

- si dia una copertura canonica delle DF

sia assuma che

- si specifichino le chiavi delle due relazioni

- Ogni docente aderisce ad un unico dipartimento, ed ha un unico numero di


telefono.

- si dica se sono in
BCNF

3NF

71

Data lo schema di relazione

- si diano le dipendenze funzionali

Esercizio 2

- Un finanziamento pu riguardare pi docenti, e un docente pu avere pi


finanziamenti.

- se non sono in BCNF, fornire una forma normale in BCNF

- Ogni dipartimento ha un unico indirizzo.


- Ogni finanziamento ha un unico ammontare ed un'unica scadenza.

Esercizi riassuntivi

Corso di Basi di Dati

Thursday, May 15, 2014

Esercizi riassuntivi

Corso di Basi di Dati

Thursday, May 15, 2014

Esercizio 2 (cont.)

72

Esercizio 3

73

Basandosi solo su queste assunzioni:


- si diano le dipendenze funzionali
- si dia una copertura canonica delle DF
- si specifichino le chiavi della relazione
- si dica se e` in
-

BCNF

3NF

- se non e` in 3NF, fornire una forma normale in 3NF

Esercizi riassuntivi

Thursday, May 15, 2014

Corso di Basi di Dati

Esercizi riassuntivi

Thursday, May 15, 2014

Corso di Basi di Dati

Esercizio 3

73

Dato lo schema di relazione R(A,B,C,D,E,F) con dipendenze

Esercizio 3

73

Dato lo schema di relazione R(A,B,C,D,E,F) con dipendenze

A B -> C E D

A B -> C E D

C D F -> A E

C D F -> A E

D F -> B C

D F -> B C
Determinare
una copertura canonica
(Sol. A B -> C, A B -> E, A B -> D, D F -> A, D F -> B )
le chiavi della relazione
(Sol. DF, ABF)

Esercizi riassuntivi

Thursday, May 15, 2014

Corso di Basi di Dati

Esercizi riassuntivi

Thursday, May 15, 2014

Corso di Basi di Dati