SlideShare a Scribd company logo
1 of 36
Download to read offline
A)
Introduzione

                                            1
    2


     B)
Prog.
ConceGuale
(ER)
                            
                             C)
Modello
Relazionale,

                                                          Algebra
relazionale,
SQL
                                                                                 


     1
   2
    3
    4
    5
    6
   7
                 1
    2
    3
    4
    5
    6
    7


          D)
Prog.
Logica
e
                             E)
Tecnologia
di
un
DBMS

          Normalizzazione  


           1
    2
    3
    4
                            1
    2
    3
    4
    5
    6



                                   F)
Programmazione
DB



                                             1
   2


2
                                                     Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Nelle
lezioni
precedenM

  Abbiamo
visto
la
conversione
degli
schemi
E/R

   in
schemi
logici
relazionali

  questa
aTvità,
che
va
soGo
il
nome
di
progeGo

   logico,
prevede
una
serie
di
fasi

che
applicano

   regole
di
trasformazione
e
traduzione





 3
                             Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

In
questa
lezione

  conMnueremo
a
risolvere
i
problemi
legaM
alla

   costruzione
di
schemi
relazionali,
vedremo,
in

   parMcolare,
come
produrre
schemi
relazionali

   esenM
da
anomalie
e
non
susceTbili
di
perdita

   di
informazioni
nelle
operazioni
di
join

  riprenderemo
il
conceGo
di

dipendenza

   funzionale

  introdurremo
il
conceGo
di
forma
normale





4
                            Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Il
caso
in
esame

     impiegato
 sMpendio
                progeGo
 budget
                  funzione

     Rossi














2




















biella









300










tecnico

     Verdi














3




















valvola






500









progeTsta

     Verdi














3




















albero







1500







progeTsta

     Neri
















7




















albero







1500







direGore

     Neri
















7




















valvola






500









consulente

     Neri
















7




















biella









300









consulente

     Mori















6




















biella









300









direGore

     Mori















6




















albero







1500







progeTsta

     Bianchi










6




















albero







1500







progeTsta

     Bianchi










6




















biella









300









progeTsta

5
                                                  Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Ridondanze
e
anomalie

1)
ridondanza
:


         si
ripete
più
volte
la
noMzia
che
un
impiegato

          percepisce
un
certo
sMpendio

         si
ripete
più
volte
che
un
progeGo
ha
un
certo

          budget

         i
valori
di
progeGo
e
di

impiegato
si

ripetono
e

          quindi
non
possono
singolarmente
essere
presi

          come
chiave

         la
chiave
è
(progeGo,
impiegato)
:
non
si
hanno

          ripeMzioni





6
                                         Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Ridondanze
e
anomalie

2)
aggiornamento
:


         poiché
si
ripete
più
volte
la
noMzia
che
un
impiegato

          percepisce
un
certo
sMpendio,
se
lo
sMpendio
viene

          aggiornato
questo
deve
essere
faGo
su
tuGe
le
tuple

          che
riguardano
un
certo
impiegato

         poiché
si
ripete
più
volte
che
un
progeGo
ha
un

          certo
budget,
se
il
budget
viene
aggiornato
lo
si
deve

          fare
su
tuGe
le
tuple
che
riguardano
un
certo

          progeGo





7
                                       Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Ridondanze
e
anomalie

3)
cancellazione
:


         supponendo
che
un
impiegato
lasci
l’azienda
o
non

          partecipi
a
progeT
rischiamo
di
perdere
i
daM
sui

          progeT
se
era
l’ulMmo
impiegato
del
progeGo

         analogamente
per
i
daM
degli
impiegaM
se
un

          progeGo
viene
eliminato

         se
la
chiave
è
(progeGo,
impiegato)
in
entrambi
i
casi

          di
eliminazione
si
potrebbero
avere
valori
nulli
nella

          chiave





8
                                       Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Ridondanze
e
anomalie

4)
inserimento
:

         se
la
chiave
è
(progeGo,
impiegato)
non
è
possibile

          inserire
i
daM
di
un
impiegato
se
non
è
stato

          assegnato
ad
almeno
un
progeGo,
analogamente

          per
un
nuovo
progeGo
a
cui
non
è
stato
ancora

          assegnato
un

impiegato

         acceGare
un
inserimento
di
(progeGo)
o,

          (impiegato)
vuol
dire

che
si
inseriscono
valori
nulli

          (
incompaMbili
con
la
chiave)





9
                                        Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Ridondanze
e
anomalie

     casi
così
eclatanM
non
succedono
se
si
è
seguita
la

      prassi
correGa
di
progeGazione:
prima
lo
schema
E/R
e

      poi
la
traduzione
in
schema
relazionale

     può
però
succedere
che
carenze
di
specifiche
o
errori

      di
schemaMzzazione
possano
portare
a
relazioni
con

      anomalie

     i
casi
sono
invece
più
frequenM
quando
si
esaminano

      vecchi
DB
scarsamente
documentaM
o,
addiriGura,
si

      cerca
di
intuire
la
natura
dei
daM
da
documenM
che

      sinteMzzano
le
informazioni
su
moduli
cartacei






10
                                   Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

  La
dipendenza
funzionale
è
un
vincolo
di

   integrità
per
il
modello
relazionale

  dall’osservazione
della
relazione
ricaviamo

   che:

          ogni
volta
che
in
una
tupla
compare
un
certo

           impiegato
lo
sMpendio
è
sempre
lo
stesso

          possiamo
dire
che
il
valore
dell’impiegato
determina

           il
valore
dello
sMpendio,
cioè:

               esiste
una
funzione
che
associa
ad
ogni
valore
nel
dominio


                impiegato
uno
ed
un
solo
valore
nel
dominio
sMpendio

          analogamente
per
un
valore
di
progeGo




11
                                               Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Ricordiamo
che:

                                     Dominio:
2,3,4,5….
20

      Schema



          impiegato
 sMpendio
               progeGo
 budget
 funzione

R

e
        Rossi















2

















biella










300











tecnico

l
        Verdi















3

















valvola








500










progeTsta

a

z
        Verdi














3


















albero








1500









progeTsta

i
        
Neri
















7


















albero








1500









direGore

o

n
        Neri
















7


















valvola







500










consulente

e
        Neri
















7

















biella











300










consulente



12
                                                     Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

    La
dipendenza
funzionale
si
può
definire

     formalmente
:

         data
una
relazione
R
definita
su
uno
schema
S(X)
e

          due
soGoinsiemi
di
aGribuM
Y
e
Z
non
vuoM
di
X,

          esiste
una
dipendenza
funzionale
Y→
Z
,
se,
per
ogni

          coppia
di
tuple
t1
e
t2
avenM
lo
stesso
valore
di
Y

          risulta
che
hanno
lo
stesso
valore
di
Z

    dall’osservazione
della
relazione
ricaviamo

     che:

         impiegato
→
sMpendio
e
progeGo
→
budget





13
                                      Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

  AGenzione
:
se
prendiamo
la
chiave
K
della
relazione
R

   si
verifica
facilmente
che
esiste
una
dipendenza

   funzionale
tra
K
ed
ogni
aGributo
dello
schema

  infaT
per
definizione
di
chiave
esiste
un
solo
valore
di

   K
in
R
e
quindi
la
dipendenza
di
cui
sopra
è
banalmente

   soddisfaGa

  nell’esempio:


  
impiegato,
progeGo
→

sMpendio,
budget,
funzione





14
                                Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

Però:


  impiegato,
progeGo
→
funzione

  
è
una
dipendenza
completa,


  mentre

  
impiegato,
progeGo
→
sMpendio
 
e

  
impiegato,
progeGo
→
budget


  
sono
in
realtà


  
impiegato→
sMpendio

e

progeGo
→
budget


  
queste
sono
dipendenze
parziali
che
causano
anomalie





15
                               Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

    Le
ridondanze
e
le
anomalie
sono
causate
da

     dipendenze
X
→
Y
che
permeGono
ripeMzioni

     all’interno
della
relazione
(
impiegato,
sMpendio
e

     progeGo,
budget

si
ripetono
nella
relazione),
in
altre

     parole
:

    Le
ridondanze
e
le
anomalie
sono
causate
da

     dipendenze
X
→
Y
tali
che
X
non
conMene
la
chiave

     della
relazione

    Una
relazione
R
è
in
forma
normale
(Boyce

e
Codd)
se,

     per
ogni
dipendenza
X
→
Y
in
R,
X
conMene
una
chiave

     K
di
R
(
X
è
superchiave)




 16
                                  Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

  Una
relazione
non
in
forma
normale
è
possibile
che

   venga
decomposta
in
due
o
più
relazioni
in
forma

   normale

  la
decomposizione
si
può
aGuare
effeGuando

   proiezioni
in
modo
tale
da
oGenere
che
ciascuna

   dipendenza
funzionale

corrisponda
ad
una
relazione

   separata

  nell’esempio
:

  
FUNZIONI
per
impiegato,
progeGo
→
funzione

  
IMPIEGATI
per
impiegato
→
sMpendio


  
PROGETTI
per
progeGo
→
budget




 17
                               Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

      impiegato
           sMpendio
           impiegato
       progeGo
         funzione

      Rossi













2













                                               Rossi













biella











tecnico

      Verdi














3
















                                               Verdi













valvola








progeTsta

      Neri
















7
















                                               Verdi













albero









progeTsta

      Mori















6
















                                               Neri















albero









direGore

      Bianchi










6
















                                               Neri















valvola








consulente

                                               Neri















biella










consulente

      progeGo
             budget

                                               Mori













biella











direGore

         biella








300
                   Mori













albero









progeTsta

       valvola






500
                      Bianchi









albero









progeTsta

        albero






1500
                     Bianchi









biella











direGore


18
                                                        Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

     FUNZIONI,
IMPIEGATI
e
PROGETTI
sono
normalizzate

      perché
soddisfano
la
definizione
di
forma
normale


     la
relazione
non
decomposta
può
essere
ricostruita
con

      il
join:


     
SELECT
*

     
FROM



IMPIEGATI
I,
PROGETTI
P,
FUNZIONI
F

     
WHERE

I.IMPIEGATO

=
F.IMPIEGATO

     
AND






F.PROGETTO
=
P.PROGETTO




19
                                   Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

• Quando
la
relazione
originale
è
ricostruibile
con


 
il
join
la
decomposizione
è
correGa
e
si
dice


 
essere
senza
perdita

• notare
che
lo
schema
correGo
corrisponde
alla


 
traduzione
di:

                             funzioni

  impiegato
                                        progeGo

                           (0,n)
   (0,n)

           impiegaM
                            progeT

                                                                   budget

               sMpendio
            funzione



20
                                      Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

  Schemi
E/R
correT
producono
in
generale
buoni
schemi

   relazionali
senza
problemi
di
anomalie
e
ridondanze

e

   corrispondono
a
decomposizioni
senza
perdita

  Schemi
E/R
dove
non
tuT
i
vincoli
sono
espressi
nello

   schema
e/o
in
presenza
di
associazioni
n_arie
possono

   però
venire
tradoT
(non
intenzionalmente)
in
schemi

   relazionali
non
ben
normalizzaM


  È
quindi
importante
ricontrollare
la
normalizzazione:

   operazione
questa
non
sempre
facile
o,
possibile
per

   carenza
di
specifice




21
                                Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

      ad
esempio,
lo
schema
già
visto
in
precedenza:



      nome
            matricola
           c_paz
                  nome


              medico
                  c_or
             paziente

                                    (data
 ,ora)

        (0,n)
                                                        (0,n)


                                    appunta

                 ha
                                            con

                                    

mento

                        (1,1)
                      (1,1)



22
                                          Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

 Per
mezzo
dell’idenMficazione
esterna
individua


 correGamente
le
due
dipendenze:


 matricola,
data,
ora
→
c_paz


 c_paz,
data,
ora
→
matricola

 e
si
traduce
nello
schema
relazionale:

 medico
(matricola,
nome)

 paziente
(c_paz,
cognome)

 appuntamento
(matricola,
data,
ora,
c_paz)


 oppure

 appuntamento
(c_paz
,
data,
ora,
matricola)



23
                                Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

• Non
sempre
le
decomposizioni
producono
effeT

  desiderabili

• decomposizioni
errate
possono
generare
relazioni
che,

  ricongiunte
con
il
join,
producono
relazioni
con
daM

  incerM
si
ha
quindi
una
perdita
di
informazione

• consideriamo
un
esempio
di
relazione:

 
SEDI
(impiegato,
progeGo,
sede)



 
con
le
dipendenze:

 
impiegato,
progeGo
→
sede

 
impiegato
→
sede



e



progeGo
→
sede




24
                                Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

chiave
di
SEDI
:
        impiegato
        progeGo
         sede

impiegato,
progeGo

                          Rossi













biella











milano

Vincolo:

               Verdi













valvola








torino

gli
impiegaM
hanno

      Verdi












albero










torino

come
sede
la
sede

       Bianchi








cinghia








milano

dei
loro
progeT
          Neri














valvola








torino



      decomponendo
secondo
le
due
dipendenze:




25
                                      Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

 i                                                                      p
 m    impiegato
         sede
      progeGo
           sede
            r
 p
 i    Rossi













milano
                                        o
                                    biella










milano

 e                                                                      g
      Verdi













torino
    valvola








torino
             e
 g
 a    Bianchi









milano
      albero









torino
             t
 t    Neri















torino
                                       t
                                    cinghia







milano

 i
                                                                     i

il
join
sull’aGributo
comune:

SELECT
I.IMPIEGATO,
P.PROGETTO,
P.SEDE


FROM
IMPIEGATI
I,
PROGETTI
P

WHERE
I.SEDE
=
P.SEDE


26
                                 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

      impiegato
       progeGo
        sede


      Rossi












biella











milano

      Rossi












cinghia








milano
                     crea
tuple

      Verdi













valvola








torino
                    che
non

      Verdi












albero










torino
                    esistevano!

      Bianchi








biella











milano

      Bianchi








cinghia








milano

      Neri














valvola








torino

      Neri














albero









torino





27
                                                 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

• Inoltre
,
anche
se
sono
correGe,
le
due
relazioni
non

  rispeGano
il
vincolo
che
la
sede
di
un
impiegato
è
la

  sede
dei
suoi
progeT,
un
progeGo
potrebbe
cambiare

  sede
indipendentemente
dagli
impiegaM

• Regola:

 
una
buona
decomposizione
deve
prevedere
la

  ricostruzione
della
relazione
di
partenza
con
operazioni

  di
join
su
chiavi

• Osservazione
:

 
i
join
su
aGribuM
che
si
corrispondono
n
a
m
sono

  rischiosi



28
                                Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

      p                            impiegato
          progeGo
          i
      r progeGo
          sede
                                          m
      o                             Rossi













biella







                                                                   
     p
      g biella










milano
                                         i
                                    Verdi













valvola





                                                                  
      e
      e valvola








torino

      t albero









torino
     Verdi












albero
            g
                                                                         a
      t                             Bianchi









cinghia

                                                                         t
      i cinghia







milano
      Neri















valvola
         i

  il
join
sull’aGributo
comune:

  SELECT
I.IMPIEGATO,
P.PROGETTO,
P.SEDE


  FROM
IMPIEGATI
I,
PROGETTI
P

  WHERE
I.PROGETTO
=
P.PROGETTO


29
                                Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali


la
decomposizione
        impiegato
        progeGo
         sede

è
correGa

                           Rossi













biella











milano

però
abbiamo
perso


nello
schema

            Verdi













valvola








torino

precedente
la

            Verdi













albero









torino

dipendenza
                Bianchi









cinghia








milano

impiegato
→
sede
          Neri















valvola








torino




problema:
che
ne
è
di
Verdi
se
il
progeGo
Albero


va
a
Roma?



 30
                                      Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

      Se
fossimo
parMM
dallo
schema
E/R?


                    nome
       lavoro
              cognome

                            (1,m)
   (1,n)

sede_p
          progeGo
                         impiegato


                                                      sede_i


 avremmo
comunque
dovuto
dichiarare,
a
parte


 dallo
schema
E/R,
il
vincolo
che
la
sede
di
un


 impiegato
deve
essere
uguale
alla
sede
dei



 progeT
in
cui
lavora,
e
lo
schema
relazionale:



31
                                  Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

 p
 r progeGo
 sede
                       impiegato
        progeGo

 o                                                                           l
 g biella










milano
             Rossi












biella







     a
 e valvola







torino
               Verdi












valvola





      v
 t albero








torino
               Verdi












albero

                                                                             o
 t                                                                           r
 i cinghia







milano
               Bianchi








cinghia
             o
                                   i    Neri














valvola

      impiegato
        sede

                                   m
                                   p
      Rossi












milano

                                   i
                                   e    questa
soluzione


      Verdi













torino
   g
                                   a    consente
anche
(0,n)

      Bianchi









milano

                                   t    nell’associazione

      Neri














torino
   i

32
                                         Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Dipendenze
funzionali

 il
join
adesso
sarà:


 SELECT
I.IMPIEGATO,
P.PROGETTO,
P.SEDE


 FROM
IMPIEGATI
I,
PROGETTI
P,
LAVORO
L

 WHERE
I.IMPIEGATO
=
L.IMPIEGATO


 AND
L.PROGETTO
=
P.PROGETTO



 che
oTene
la
relazione
richiesta
senza
perdita


 perché
lavora
su
chiavi


 però
non
c’è
garanzia
sull’uguaglianza
di
sede




33
                                 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Conclusioni
parMcolari

  è
difficile
progeGare
una
soluzione
relazionale

   che
mantenga
le
tre
dipendenze

senza
l’aiuto

   di
sowware
scriGo
ad
hoc

  è
possibile
ricavare
una
soluzione
senza

   perdita

  partendo
dallo
schema
E/R
si
oTene
una

   soluzione
più
flessibile
perché
consente

   inserimenM
indipendenM
di
nuovi
progeT
ed

   impiegaM
senza
introdurre
valori
nulli




34
                          Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Conclusioni
generali

     ProgeGare
i
daM
è
difficile

–  il
lavoro
di
gruppo
è
importanMssimo
per
evitare

   differenze
di
percezione
e
di
visione
dei

   problemi

–  DFD,
schemi
E/R,
dipendenze
funzionali
sono

   uMlissimi
per
descrivere
e
capire
i
problemi

          tanta
più
conoscenza
si
riesce
a
descrivere
negli

           schemi,
tanta
meno
verrà
espressa
in
con
vincoli

           meno
leggibili
o,
dispersa
in
programmi
di
difficile

           leGura
e
aggiornamento




35
                                      Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

Conclusioni
generali


      –  è
bene
però
anche
non
eccedere
con
schemi

         parMcolarmente
complicaM
contenenM
un

         eccesso
di
conceT
fiTzi
e
di
collegamento
che

         rendono
difficile
la
leGura
e
la
soluzione

         innaturale

      –  la
documentazione
di
progeGo
è
pertanto

         fondamentale





36
                              Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni


More Related Content

Similar to D3 Normali

Basi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei datiBasi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei datiMajong DevJfu
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimentiMajong DevJfu
 
Prova finale di econometria applicata
Prova finale di econometria applicataProva finale di econometria applicata
Prova finale di econometria applicataFabio Torreggiani
 
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non bastaIl tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non bastaStefano Muro
 
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia
 
TECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVI
TECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVITECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVI
TECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVImateriamedia
 
Java Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningJava Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningAndrea Ciccotta
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiAngela Cristina
 

Similar to D3 Normali (14)

D4 Dderivati
D4 DderivatiD4 Dderivati
D4 Dderivati
 
Basi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei datiBasi di Dati - C1 - Il modello relazionale dei dati
Basi di Dati - C1 - Il modello relazionale dei dati
 
R sim rank
R sim rank  R sim rank
R sim rank
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
 
Cesvip 20110124
Cesvip 20110124Cesvip 20110124
Cesvip 20110124
 
Prova finale di econometria applicata
Prova finale di econometria applicataProva finale di econometria applicata
Prova finale di econometria applicata
 
Da Oracle a PostgreSQL: l'evoluzione dei RDBMS
Da Oracle a PostgreSQL: l'evoluzione dei RDBMSDa Oracle a PostgreSQL: l'evoluzione dei RDBMS
Da Oracle a PostgreSQL: l'evoluzione dei RDBMS
 
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
 
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non bastaIl tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
Il tuo team "agile" scrive codice "flaccido"? Forse scrum non basta
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
Stefano Bragaglia MSc Thesis, awarded as Best Italian thesis in AI 2009/2010
 
TECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVI
TECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVITECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVI
TECNOLOGIE DELL’INFORMAZIONE PER COORDINARE PROGETTI COLLABORATIVI
 
Java Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningJava Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine Learining
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 

More from Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

More from Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

D3 Normali

  • 1.
  • 2. A)
Introduzione
 1
 2
 B)
Prog.
ConceGuale
(ER) 
 C)
Modello
Relazionale,
 Algebra
relazionale,
SQL 
 1
 2
 3
 4
 5
 6
 7
 1
 2
 3
 4
 5
 6
 7
 D)
Prog.
Logica
e
 E)
Tecnologia
di
un
DBMS
 Normalizzazione 
 1
 2
 3
 4
 1
 2
 3
 4
 5
 6
 F)
Programmazione
DB
 1
 2
 2
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 3. Nelle
lezioni
precedenM
   Abbiamo
visto
la
conversione
degli
schemi
E/R
 in
schemi
logici
relazionali
   questa
aTvità,
che
va
soGo
il
nome
di
progeGo
 logico,
prevede
una
serie
di
fasi

che
applicano
 regole
di
trasformazione
e
traduzione
 3
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 4. In
questa
lezione
   conMnueremo
a
risolvere
i
problemi
legaM
alla
 costruzione
di
schemi
relazionali,
vedremo,
in
 parMcolare,
come
produrre
schemi
relazionali
 esenM
da
anomalie
e
non
susceTbili
di
perdita
 di
informazioni
nelle
operazioni
di
join
   riprenderemo
il
conceGo
di

dipendenza
 funzionale
   introdurremo
il
conceGo
di
forma
normale
 4
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 5. Il
caso
in
esame
 impiegato
 sMpendio
 progeGo
 budget
 funzione
 Rossi














2




















biella









300










tecnico
 Verdi














3




















valvola






500









progeTsta
 Verdi














3




















albero







1500







progeTsta
 Neri
















7




















albero







1500







direGore
 Neri
















7




















valvola






500









consulente
 Neri
















7




















biella









300









consulente
 Mori















6




















biella









300









direGore
 Mori















6




















albero







1500







progeTsta
 Bianchi










6




















albero







1500







progeTsta
 Bianchi










6




















biella









300









progeTsta
 5
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 6. Ridondanze
e
anomalie
 1)
ridondanza
:

   si
ripete
più
volte
la
noMzia
che
un
impiegato
 percepisce
un
certo
sMpendio
   si
ripete
più
volte
che
un
progeGo
ha
un
certo
 budget
   i
valori
di
progeGo
e
di

impiegato
si

ripetono
e
 quindi
non
possono
singolarmente
essere
presi
 come
chiave
   la
chiave
è
(progeGo,
impiegato)
:
non
si
hanno
 ripeMzioni
 6
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 7. Ridondanze
e
anomalie
 2)
aggiornamento
:

   poiché
si
ripete
più
volte
la
noMzia
che
un
impiegato
 percepisce
un
certo
sMpendio,
se
lo
sMpendio
viene
 aggiornato
questo
deve
essere
faGo
su
tuGe
le
tuple
 che
riguardano
un
certo
impiegato
   poiché
si
ripete
più
volte
che
un
progeGo
ha
un
 certo
budget,
se
il
budget
viene
aggiornato
lo
si
deve
 fare
su
tuGe
le
tuple
che
riguardano
un
certo
 progeGo
 7
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 8. Ridondanze
e
anomalie
 3)
cancellazione
:

   supponendo
che
un
impiegato
lasci
l’azienda
o
non
 partecipi
a
progeT
rischiamo
di
perdere
i
daM
sui
 progeT
se
era
l’ulMmo
impiegato
del
progeGo
   analogamente
per
i
daM
degli
impiegaM
se
un
 progeGo
viene
eliminato
   se
la
chiave
è
(progeGo,
impiegato)
in
entrambi
i
casi
 di
eliminazione
si
potrebbero
avere
valori
nulli
nella
 chiave
 8
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 9. Ridondanze
e
anomalie
 4)
inserimento
:
   se
la
chiave
è
(progeGo,
impiegato)
non
è
possibile
 inserire
i
daM
di
un
impiegato
se
non
è
stato
 assegnato
ad
almeno
un
progeGo,
analogamente
 per
un
nuovo
progeGo
a
cui
non
è
stato
ancora
 assegnato
un

impiegato
   acceGare
un
inserimento
di
(progeGo)
o,
 (impiegato)
vuol
dire

che
si
inseriscono
valori
nulli
 (
incompaMbili
con
la
chiave)
 9
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 10. Ridondanze
e
anomalie
   casi
così
eclatanM
non
succedono
se
si
è
seguita
la
 prassi
correGa
di
progeGazione:
prima
lo
schema
E/R
e
 poi
la
traduzione
in
schema
relazionale
   può
però
succedere
che
carenze
di
specifiche
o
errori
 di
schemaMzzazione
possano
portare
a
relazioni
con
 anomalie
   i
casi
sono
invece
più
frequenM
quando
si
esaminano
 vecchi
DB
scarsamente
documentaM
o,
addiriGura,
si
 cerca
di
intuire
la
natura
dei
daM
da
documenM
che
 sinteMzzano
le
informazioni
su
moduli
cartacei

 10
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 11. Dipendenze
funzionali
   La
dipendenza
funzionale
è
un
vincolo
di
 integrità
per
il
modello
relazionale
   dall’osservazione
della
relazione
ricaviamo
 che:
   ogni
volta
che
in
una
tupla
compare
un
certo
 impiegato
lo
sMpendio
è
sempre
lo
stesso
   possiamo
dire
che
il
valore
dell’impiegato
determina
 il
valore
dello
sMpendio,
cioè:
   esiste
una
funzione
che
associa
ad
ogni
valore
nel
dominio

 impiegato
uno
ed
un
solo
valore
nel
dominio
sMpendio
   analogamente
per
un
valore
di
progeGo
 11
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 12. Ricordiamo
che:
 Dominio:
2,3,4,5….
20
 Schema
 impiegato
 sMpendio
 progeGo
 budget
 funzione
 R
 e
 Rossi















2

















biella










300











tecnico
 l
 Verdi















3

















valvola








500










progeTsta
 a
 z
 Verdi














3


















albero








1500









progeTsta
 i
 
Neri
















7


















albero








1500









direGore
 o
 n
 Neri
















7


















valvola







500










consulente
 e
 Neri
















7

















biella











300










consulente
 12
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 13. Dipendenze
funzionali
   La
dipendenza
funzionale
si
può
definire
 formalmente
:
   data
una
relazione
R
definita
su
uno
schema
S(X)
e
 due
soGoinsiemi
di
aGribuM
Y
e
Z
non
vuoM
di
X,
 esiste
una
dipendenza
funzionale
Y→
Z
,
se,
per
ogni
 coppia
di
tuple
t1
e
t2
avenM
lo
stesso
valore
di
Y
 risulta
che
hanno
lo
stesso
valore
di
Z
   dall’osservazione
della
relazione
ricaviamo
 che:
   impiegato
→
sMpendio
e
progeGo
→
budget
 13
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 14. Dipendenze
funzionali
   AGenzione
:
se
prendiamo
la
chiave
K
della
relazione
R
 si
verifica
facilmente
che
esiste
una
dipendenza
 funzionale
tra
K
ed
ogni
aGributo
dello
schema
   infaT
per
definizione
di
chiave
esiste
un
solo
valore
di
 K
in
R
e
quindi
la
dipendenza
di
cui
sopra
è
banalmente
 soddisfaGa
   nell’esempio:

 
impiegato,
progeGo
→

sMpendio,
budget,
funzione
 14
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 15. Dipendenze
funzionali
 Però:

   impiegato,
progeGo
→
funzione
 
è
una
dipendenza
completa,

   mentre
 
impiegato,
progeGo
→
sMpendio
 
e
 
impiegato,
progeGo
→
budget

 
sono
in
realtà

 
impiegato→
sMpendio

e

progeGo
→
budget

 
queste
sono
dipendenze
parziali
che
causano
anomalie
 15
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 16. Dipendenze
funzionali
   Le
ridondanze
e
le
anomalie
sono
causate
da
 dipendenze
X
→
Y
che
permeGono
ripeMzioni
 all’interno
della
relazione
(
impiegato,
sMpendio
e
 progeGo,
budget

si
ripetono
nella
relazione),
in
altre
 parole
:
   Le
ridondanze
e
le
anomalie
sono
causate
da
 dipendenze
X
→
Y
tali
che
X
non
conMene
la
chiave
 della
relazione
   Una
relazione
R
è
in
forma
normale
(Boyce

e
Codd)
se,
 per
ogni
dipendenza
X
→
Y
in
R,
X
conMene
una
chiave
 K
di
R
(
X
è
superchiave)
 16
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 17. Dipendenze
funzionali
   Una
relazione
non
in
forma
normale
è
possibile
che
 venga
decomposta
in
due
o
più
relazioni
in
forma
 normale
   la
decomposizione
si
può
aGuare
effeGuando
 proiezioni
in
modo
tale
da
oGenere
che
ciascuna
 dipendenza
funzionale

corrisponda
ad
una
relazione
 separata
   nell’esempio
:
 
FUNZIONI
per
impiegato,
progeGo
→
funzione
 
IMPIEGATI
per
impiegato
→
sMpendio

 
PROGETTI
per
progeGo
→
budget

 17
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 18. Dipendenze
funzionali
 impiegato
 sMpendio
 impiegato
 progeGo
 funzione
 Rossi













2












 Rossi













biella











tecnico
 Verdi














3















 Verdi













valvola








progeTsta
 Neri
















7















 Verdi













albero









progeTsta
 Mori















6















 Neri















albero









direGore
 Bianchi










6















 Neri















valvola








consulente
 Neri















biella










consulente
 progeGo
 budget
 Mori













biella











direGore
 biella








300
 Mori













albero









progeTsta
 valvola






500
 Bianchi









albero









progeTsta
 albero






1500
 Bianchi









biella











direGore
 18
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 19. Dipendenze
funzionali
   FUNZIONI,
IMPIEGATI
e
PROGETTI
sono
normalizzate
 perché
soddisfano
la
definizione
di
forma
normale
   la
relazione
non
decomposta
può
essere
ricostruita
con
 il
join:
 
SELECT
*
 
FROM



IMPIEGATI
I,
PROGETTI
P,
FUNZIONI
F
 
WHERE

I.IMPIEGATO

=
F.IMPIEGATO
 
AND






F.PROGETTO
=
P.PROGETTO
 19
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 20. Dipendenze
funzionali
 • Quando
la
relazione
originale
è
ricostruibile
con

 
il
join
la
decomposizione
è
correGa
e
si
dice

 
essere
senza
perdita
 • notare
che
lo
schema
correGo
corrisponde
alla

 
traduzione
di:
 funzioni
 impiegato
 progeGo
 (0,n)
 (0,n)
 impiegaM
 progeT
 budget
 sMpendio
 funzione
 20
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 21. Dipendenze
funzionali
   Schemi
E/R
correT
producono
in
generale
buoni
schemi
 relazionali
senza
problemi
di
anomalie
e
ridondanze

e
 corrispondono
a
decomposizioni
senza
perdita
   Schemi
E/R
dove
non
tuT
i
vincoli
sono
espressi
nello
 schema
e/o
in
presenza
di
associazioni
n_arie
possono
 però
venire
tradoT
(non
intenzionalmente)
in
schemi
 relazionali
non
ben
normalizzaM

   È
quindi
importante
ricontrollare
la
normalizzazione:
 operazione
questa
non
sempre
facile
o,
possibile
per
 carenza
di
specifice
 21
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 22. Dipendenze
funzionali
 ad
esempio,
lo
schema
già
visto
in
precedenza:
 nome
 matricola
 c_paz
 nome
 medico
 c_or
 paziente
 (data
 ,ora)
 (0,n)
 (0,n)
 appunta
 ha
 con
 

mento
 (1,1)
 (1,1)
 22
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 23. Dipendenze
funzionali
 Per
mezzo
dell’idenMficazione
esterna
individua

 correGamente
le
due
dipendenze:

 matricola,
data,
ora
→
c_paz

 c_paz,
data,
ora
→
matricola
 e
si
traduce
nello
schema
relazionale:
 medico
(matricola,
nome)
 paziente
(c_paz,
cognome)
 appuntamento
(matricola,
data,
ora,
c_paz)

 oppure
 appuntamento
(c_paz
,
data,
ora,
matricola)
 23
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 24. Dipendenze
funzionali
 • Non
sempre
le
decomposizioni
producono
effeT
 desiderabili
 • decomposizioni
errate
possono
generare
relazioni
che,
 ricongiunte
con
il
join,
producono
relazioni
con
daM
 incerM
si
ha
quindi
una
perdita
di
informazione
 • consideriamo
un
esempio
di
relazione:
 
SEDI
(impiegato,
progeGo,
sede)


 
con
le
dipendenze:
 
impiegato,
progeGo
→
sede
 
impiegato
→
sede



e



progeGo
→
sede
 24
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 25. Dipendenze
funzionali
 chiave
di
SEDI
:
 impiegato
 progeGo
 sede
 impiegato,
progeGo
 Rossi













biella











milano
 Vincolo:

 Verdi













valvola








torino
 gli
impiegaM
hanno

 Verdi












albero










torino
 come
sede
la
sede

 Bianchi








cinghia








milano
 dei
loro
progeT
 Neri














valvola








torino
 decomponendo
secondo
le
due
dipendenze:
 25
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 26. Dipendenze
funzionali
 i p m impiegato
 sede
 progeGo
 sede
 r p i Rossi













milano
 o biella










milano
 e g Verdi













torino
 valvola








torino
 e g a Bianchi









milano
 albero









torino
 t t Neri















torino
 t cinghia







milano
 i
 i il
join
sull’aGributo
comune:
 SELECT
I.IMPIEGATO,
P.PROGETTO,
P.SEDE

 FROM
IMPIEGATI
I,
PROGETTI
P
 WHERE
I.SEDE
=
P.SEDE
 26
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 27. Dipendenze
funzionali
 impiegato
 progeGo
 sede
 Rossi












biella











milano
 Rossi












cinghia








milano
 crea
tuple
 Verdi













valvola








torino
 che
non
 Verdi












albero










torino
 esistevano!
 Bianchi








biella











milano
 Bianchi








cinghia








milano
 Neri














valvola








torino
 Neri














albero









torino
 27
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 28. Dipendenze
funzionali
 • Inoltre
,
anche
se
sono
correGe,
le
due
relazioni
non
 rispeGano
il
vincolo
che
la
sede
di
un
impiegato
è
la
 sede
dei
suoi
progeT,
un
progeGo
potrebbe
cambiare
 sede
indipendentemente
dagli
impiegaM
 • Regola:
 
una
buona
decomposizione
deve
prevedere
la
 ricostruzione
della
relazione
di
partenza
con
operazioni
 di
join
su
chiavi
 • Osservazione
:
 
i
join
su
aGribuM
che
si
corrispondono
n
a
m
sono
 rischiosi
 28
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 29. Dipendenze
funzionali
 p impiegato
 progeGo
 i r progeGo
 sede
 m o Rossi













biella






 
 p g biella










milano
 i Verdi













valvola




 
 e e valvola








torino
 t albero









torino
 Verdi












albero
 g a t Bianchi









cinghia
 t i cinghia







milano
 Neri















valvola
 i
 il
join
sull’aGributo
comune:
 SELECT
I.IMPIEGATO,
P.PROGETTO,
P.SEDE

 FROM
IMPIEGATI
I,
PROGETTI
P
 WHERE
I.PROGETTO
=
P.PROGETTO
 29
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 30. Dipendenze
funzionali
 la
decomposizione
 impiegato
 progeGo
 sede
 è
correGa
 Rossi













biella











milano
 però
abbiamo
perso

 nello
schema

 Verdi













valvola








torino
 precedente
la

 Verdi













albero









torino
 dipendenza
 Bianchi









cinghia








milano
 impiegato
→
sede
 Neri















valvola








torino
 problema:
che
ne
è
di
Verdi
se
il
progeGo
Albero

 va
a
Roma?
 30
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 31. Dipendenze
funzionali
 Se
fossimo
parMM
dallo
schema
E/R?
 nome
 lavoro
 cognome
 (1,m)
 (1,n)
 sede_p
 progeGo
 impiegato
 sede_i
 avremmo
comunque
dovuto
dichiarare,
a
parte

 dallo
schema
E/R,
il
vincolo
che
la
sede
di
un

 impiegato
deve
essere
uguale
alla
sede
dei


 progeT
in
cui
lavora,
e
lo
schema
relazionale:
 31
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 32. Dipendenze
funzionali
 p r progeGo
 sede
 impiegato
 progeGo
 o l g biella










milano
 Rossi












biella







 a e valvola







torino
 Verdi












valvola





 v t albero








torino
 Verdi












albero
 o t r i cinghia







milano
 Bianchi








cinghia
 o i Neri














valvola
 impiegato
 sede
 m p Rossi












milano
 i e questa
soluzione

 Verdi













torino
 g a consente
anche
(0,n)
 Bianchi









milano
 t nell’associazione
 Neri














torino
 i
 32
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 33. Dipendenze
funzionali
 il
join
adesso
sarà:
 SELECT
I.IMPIEGATO,
P.PROGETTO,
P.SEDE

 FROM
IMPIEGATI
I,
PROGETTI
P,
LAVORO
L
 WHERE
I.IMPIEGATO
=
L.IMPIEGATO

 AND
L.PROGETTO
=
P.PROGETTO

 che
oTene
la
relazione
richiesta
senza
perdita

 perché
lavora
su
chiavi
 però
non
c’è
garanzia
sull’uguaglianza
di
sede

 33
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 34. Conclusioni
parMcolari
   è
difficile
progeGare
una
soluzione
relazionale
 che
mantenga
le
tre
dipendenze

senza
l’aiuto
 di
sowware
scriGo
ad
hoc
   è
possibile
ricavare
una
soluzione
senza
 perdita
   partendo
dallo
schema
E/R
si
oTene
una
 soluzione
più
flessibile
perché
consente
 inserimenM
indipendenM
di
nuovi
progeT
ed
 impiegaM
senza
introdurre
valori
nulli
 34
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 35. Conclusioni
generali
   ProgeGare
i
daM
è
difficile
 –  il
lavoro
di
gruppo
è
importanMssimo
per
evitare
 differenze
di
percezione
e
di
visione
dei
 problemi
 –  DFD,
schemi
E/R,
dipendenze
funzionali
sono
 uMlissimi
per
descrivere
e
capire
i
problemi
   tanta
più
conoscenza
si
riesce
a
descrivere
negli
 schemi,
tanta
meno
verrà
espressa
in
con
vincoli
 meno
leggibili
o,
dispersa
in
programmi
di
difficile
 leGura
e
aggiornamento
 35
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni

  • 36. Conclusioni
generali
 –  è
bene
però
anche
non
eccedere
con
schemi
 parMcolarmente
complicaM
contenenM
un
 eccesso
di
conceT
fiTzi
e
di
collegamento
che
 rendono
difficile
la
leGura
e
la
soluzione
 innaturale
 –  la
documentazione
di
progeGo
è
pertanto
 fondamentale
 36
 Basi
di
DaM
‐
La
Normalizzazione
delle
Relazioni