SlideShare a Scribd company logo
1 of 37
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
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ProgeGo
logico

    Lo
schema
E/R
descrive
un
dominio
applicaMvo
ad

     un
dato
livello
di
astrazione

    Lo
schema
E/R
è
molto
uMle
per:

         fornire
una
descrizione
sinteMca
e
visiva

         rappresentare
buona
parte
della
semanMca

          dell’applicazione

         scambiare
informazioni
sull’aWvità
progeGuale
tra
i

          membri
del
team
di
progeGo
e
mantenere
una

          documentazione





 3
                                     Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ProgeGo
logico

    Non
esistono
DBMS
in
grado
di
operare

     direGamente
sui
conceW
di
schemi
E/R

         è
quindi
necessario
tradurli
in
altri
schemi
di
daM

          (logico
relazionale
in
queste
lezioni)

         questa
traduzione
può
essere
eseguita
in
modo
semi‐
          automaMco

         le
scelte
alternaMve
devono
tenere
conto

          dell’efficienza
dello
schema
logico
risultante
e
delle

          operazioni
da
effeGuare
(derivanM
da
flussi
e

          processi)





 4
                                     Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Processo
di
design

      raccolta
requisiM
                           dominio

                                                  applicaMvo


progeGazione
               schema
conceGuale

 conceGuale
                      (E/R)



progeGazione
                  schema
logico

   logica
                       (SQL:
DDL)



                                DBMS 

                                                                     DB

                           (SQL:
DDL,
DML)
                                         




 5
                                          Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Scelte
alternaMve

–  il
progeGo
logico
presenta
in
generale
una

   soluzione
standard
determinabile
in
modo

   semplice
e
direGo


–  a
seconda
dei
casi
sono
però
disponibili
anche

   soluzioni
alternaMve
che
possono
rivelarsi
più
o

   meno
convenienM


–  per
una
scelta
correGa
sono
necessarie:

     •    previsioni
sulla
natura
e
la
frequenza
delle
operazioni

     •    valutazioni
quanMtaMve
sui
volumi
di
daM
(enMtà,

          associazioni,
percentuali
di
copertura
di
gerarchie,

          percentuali
di
valori
nulli)



 6
                                      Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Scelte
alternaMve

si
possono
individuare
alcune
regole
intuiMve:

         le
proprietà
logiche
sono
comunque
primarie

          rispeGo
ai
moMvi
di
efficienza

         tenere
sulla
stessa
enMtà
informazioni
che

          verranno
di
frequente
consultate
insieme

         tenere
su
enMtà
separate
informazioni
che

          verranno
consultate
separatamente

         limitare
l’incidenza
di
valori
nulli
per
aGribuM

          opzionali





7
                                     Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Fasi
del
progeGo

il
progeGo
produce
trasformazioni
e
traduzioni

dello
schema
E/R
con
le
seguenM
fasi:

      1  eliminazione
delle
gerarchie
isa

      2  selezione
delle
chiavi
primarie,
eliminazione
delle

         idenMficazioni
esterne


      3  trasformazione
degli
aGribuM
composM
o
mulMpli

      4  traduzione
di
enMtà
e
associazioni
in
schemi
di

         relazioni

      5  verifica
di
normalizzazione






 8
                                   Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Fasi
del
progeGo

         dopo
le
prime
tre
fasi,
lo
schema
E/R
è

          cosMtuito
soltanto
da
enMtà,
associazioni
e

          aGribuM
semplici

         la
quarta
fase
non
è
complessa

         la
quinta
richiede
molta
aGenzione


!         si
tenga
presente
che
ogni
trasformazione

          impoverisce
lo
schema;
la
semanMca
persa

          deve
restare
soGo
forma
di
vincoli
di
integrità

          che
governeranno
l’uMlizzo
delle
relazioni



     9
                               Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Eliminazione
delle
gerarchie

il
modello
relazionale
non
rappresenta
le

gerarchie,
le
gerarchie
sono
sosMtuite
da
enMtà

e
associazioni:
                                                                   K

                                                                   E

      1)
mantenimento
delle

                                                      A

      



enMtà
con
associazioni


      2)
collasso
verso
l’alto
                        E1
                  E2


      3)
collasso
verso
il
basso

                           A1
                  A2



      l’applicabilità
e
la
convenienza
delle
soluzioni
dipendono


      dalle
proprietà
di
copertura
e
dalle
operazioni
previste




10
                                        Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Mantenimento
delle
enMtà

–     tuGe
le
enMtà


vengono
                          E
              K

      mantenute
                                                        A

                                                  (0,1)
 (0,1)

–     le
enMtà
figlie
sono
in

      associazione
con
l’enMtà
                    (1,1)
(1,1)

      padre
                                E1
                   E2

–     le
enMtà
figlie
sono

      idenMficate
esternamente

      tramite
l’associazione

             A1
                    A2




                questa
soluzione
è
sempre
possibile,

                
indipendentemente
dalla
copertura



11
                                Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Mantenimento
enMtà
‐
es.:


                                           cod
            progeGo

      cod
       progeGo

                                           desc

      desc

                                                           (0,1)
 (0,1)

                               n_schede

          prog_sw
      prog_hw
                         (1,1)
 (1,1)

                                                prog_sw
              prog_hw

                      (1,n)

       mesi
                                                               n_schede

                                   usa
                      (1,n)

       uomo
                                mesi

                     (0,n)
                 uomo

                                                            (0,n)
            usa

                       comp_hw

                                                                comp_hw





12
                                        Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Eliminazione
delle
gerarchie

     Il
collasso
verso
l’alto
riunisce
tuGe
le
enMtà
figlie

      nell’enMtà
padre


                    E
               K
           (0,1)

                                     A
        A1

                                                     (0,1)
       E
              K

                                               A2
                                A

        E1
                    E2

                                          seleGore

              A1
        A2


seleGore
è
un
aGributo
che
specifica
se
una


istanza
di
E
apparMene
a
una
delle
soGoenMtà


13
                                             Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
l’alto

     il
collasso
verso
l’alto
favorisce
operazioni
che

      consultano
insieme
gli
aGribuM
dell’enMtà

      padre
e
quelli
di
una
enMtà
figlia:

           in
questo
caso
si
accede
a
una
sola
enMtà,
anziché

            a
due
aGraverso
una
associazione


     gli
aGribuM
obbligatori
per
le
enMtà
figlie

      divengono
opzionali
per
il
padre

           si
avrà
una
certa
percentuale
di
valori
nulli






14
                                      Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
l’alto

                                            (0,1)

                                        A1
                            K

                                            (0,1)
          E

 Copertura
dell’ISA                     A2

                                                                        A

  totale
esclusiva:


                                            seleGore

  seleGore
ha
N
valori,


  quante
sono
le
soGoenMtà

  parziale
esclusiva:


  seleGore
ha
N+1
valori;
il
valore
in
più
serve


  per

le
istanze
che
non
appartengono
ad


  alcuna
soGoenMtà


15
                                Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
l’alto

Copertura
dell’ISA:
                                                                          K

non
esclusiva:
occorrono

tanM
seleGori
booleani
quante

          sel_i
        E

sono
le
soGoenMtà,


sel_i
è
“vero”
per
ogni

                                                  A

istanza
di
E
che
apparMene
a
E_i
               (0,n)

se
la
copertura
è
parziale
i
seleGori

possono
essere
tuW


“falsi”

le
associazioni
connesse
alle
soGoenMtà
si

trasportano
su
E,
le
eventuali
cardinalità

minime
diventano
0



16
                                   Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
l’alto

                                                    tesi
(0,1)

                 studente
           matr.
                                              matr.

                                     cogn.
                        studente

  tesi
                  (p,e)
                                                          cogn.

                                       stage
      stage
(0,1)

                                                                                   seleGore

      laureando
        diplomando

      (1,1)
                      (1,1)
             (0,1)
                             (0,1)



                                                                                      denom.

                                                cod_r

        relatore
         azienda
                        relatore
           azienda

               cod_r
             denom.

                                                 il
dominio
di
sel
è
(L,D,N)



17
                                                  Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
l’alto


 studente(123,
rossi)








laureando(123,
DFD)

 studente(218,
bianchi)

 studente(312,
verdi)







diplomando(312,
turbina)




                                                         (seleGore)



        studente(123,rossi,




L,
DFD,


NULL)

        studente(218,bianchi,
N,
NULL,
NULL)

        studente(312,verdi,




D,
NULL,
turbina)





18
                                       Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
l’alto

  esiste
una
precisa
relazione
tra
il
valore
del

   seleGore
e
i
campi
che
possono
avere
valore

   diverso
da
NULL

  campi
prima
obbligatori
ora
ammeGono
il

   valore
NULL

  per
una
sMma
delle
percentuali
di
NULL
occorre

   conoscere
le
percentuali
di
laureandi
e

   diplomandi



 19
                         Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
il
basso

 Collasso
verso
il
basso:


   si
elimina
l’enMtà
padre
trasferendone

gli

    aGribuM
su
tuGe
le
enMtà
figlie

          una
associazione
del
padre
è
replicata,
tante
volte

           quante
sono
le
enMtà
figlie

          la
soluzione
è
interessante
in
presenza
di
molM

           aGribuM
di
specializzazione
(con
il
collasso
verso

           l’alto
si
avrebbe
un
eccesso
di
valori
nulli)

          favorisce
le
operazioni
in
cui
si
accede

           separatamente
alle
enMtà
figlie




20
                                     Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

ISA:
collasso
verso
il
basso

limiM
di
applicabilità:
                                                  K

                                                         E

•  se
la
copertura
non
è
totale
                                          A

    non
si
può
fare:




dove
meGere
gli
E
che
non

    sono
né
E1,
né
E2
?
                     E1
                    E2


•  se
la
copertura
non
è
                          A1
        A2

    esclusiva
introduce

    ridondanza:
per
una
istanza

    presente
sia
in
E1
che
in
E2
si
          E1
                   E2

    rappresentano
due
volte
gli

    aGribuM
di
E
                                          K
 A
 A1
            A2
 A
 K



21
                                    Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Collasso
verso
il
basso:
es.


                                       iscri<o
 (1,n)

            cf
         dipendente
                           sindacato

           cognome
                     (0,1)
       (0,1)
           dirige

                        (t,e)

 mansione
                                                          (1,n)

                                      qualifica

                                                                       classe

           impiegato
   operaio
                   dirigente

  (1,n)
                                 (1,n)





22
                                    Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Collasso
verso
il
basso:
es.


                                  (0,n)
                               (0,n)
       sindacato

                                                                                (0,n)

mansione
                         (0,1)
 (0,1)
                                 (0,1)
         classe

                                                            qualifica

 (1,n)
          impiegato
                 operaio
            (1,n)
 dirigente
                 (0,1)


          cf
            co.
       cf
             co.
            cf
         co.

                                                           (1,1)
                        (0,n)

                         (1,1)
                                     (0,n)
                        dir_d

                                           dir_o

                dir_i

                                       (0,n)




23
                                                            Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Scelta
della
chiave
primaria

     È
necessario
che
tra
i
diversi
idenMficatori
di

      una
enMtà
venga
designata
una
chiave

      primaria:

per
la
chiave
primaria
occorrerà,
infaW,

      che
il
DBMS
sia
provvisto
di
strumenM
per
garanMre

      l’unicità
dei
valori

     criteri
eurisMci
di
scelta:

            primo:
scegliere
la
chiave
che
è
usata
più

             frequentemente
per
accedere
all’enMtà

            secondo:
si
preferiscono
chiavi
semplici
a
chiavi

             composte,
interne
anziché
esterne




24
                                      Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

IdenMficatori
esterni

    una
componente
di

     idenMficazione
esterna
codice
                                     (E1)

                                           stabilimento

     di
una
enMtà
E2
da

                            denom

     una
enMtà
E1
                                    (1,n)

     aGraverso
una
                                    lavora
         (R)

     associazione
R

     comporta
il
trasporto
                           (1,1)

     della
chiave
primaria
 matr
          dipendente
                 (E2)

     di
E1
su
E2

                             cognome





 25
                                 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

IdenMficatori
esterni

    in
questo
modo

     l’associazione
è

     rappresentata
aGraverso
la

     chiave,
e
può
essere

     eliminata
                        codice
             stabilimento

    la
chiave
trasportata
è
chiave

     esterna

    in
presenza
di
più
               codice

     idenMficazioni
in
cascata,
è

     necessario
iniziare
la
            matr
              dipendente

     propagazione
dall’enMtà
che

     non
ha
idenMficazioni
esterne
     cognome




 26
                                    Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

AGribuM
composM/ripetuM


 le
relazioni
non
possono
(per
definizione)

 
contenere
aGribuM
composM
o,
aGribuM


 
ripetuM
ma
solamente
aGribuM
“atomici”

               cf

 cognome

       via
            dipendente

      num

                                               codice

       ciGà
   indirizzo

                                (0,n)

                                            descrizione

                              qualifica




27
                                       Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

AGribuM
composM

     Due
possibili
soluzioni

          eliminare
l’aGributo
composto
e
considerare
i
suoi

           componenM
come
aGribuM
semplici

                  in
questo
modo
si
perde
la
visione
unitaria
ma
si

                   manMene
l’arMcolazione
dei
componenM




                                                        (0,n)

                        cf

                                                                 qualifica

                                   dipendente

                   cognome


                                 via
 num
           ciGà




28
                                              Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

AGribuM
composM

     eliminare
i
componenM
e
considerare
l’aGributo
come

      semplice

             in
questo
modo
lo
schema
risulta
semplificato,

              perdendo
parte
dei
deGagli




                                                    (0,n)

                   cf

                                                              qualifica

                             dipendente

              cognome


                                 indirizzo





29
                                           Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

AGribuM
ripetuM

La
definizione
di
relazione
impone
che,
se
una
enMtà

E
ha
un
aGributo
A
ripetuto,
si
crei
una
nuova
enMtà

che
contenga
l’aGributo

e
sia
collegata
a
E:

Caso
a)
‐
un
valore
può
comparire
una
volta
sola






nella

ripeMzione:

  la
nuova
enMtà
EA
ha
l’idenMficatore
composto

  dall’idenMficatore
di
E
più
l’aGributo
A


         cf
                                                      cf

      cogn.
                         qualifica
                    codice

                dipendente

      indir.
                                                      descr.




30
                                Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

AGribuM
ripetuM

Caso
b)
‐
un
valore
può
comparire
più
volte
nella

ripeMzione:

la
nuova
enMtà
EA
ha
l’idenMficatore
composto

dall’idenMficatore
di
E
più
un
valore
idenMficante
sinteMco
(ad

esempio,
un
numero
d’ordine)




       data

       casa
                        marcatori

                    parMta

       ospiM

                               (0,n)




 31
                               Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

AGribuM
ripetuM



                   ....

        data

        casa
              parMta

        ospiM





        data
                                    marcatore

        casa
        marcature
           (1,1)

       n_ordine



32
                              Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Traduzione
standard

     ogni
enMtà
è
tradoGa
con
una
relazione
con
gli

      stessi
aGribuM

          la
chiave
è
la
chiave
(o
idenMficatore)
dell’enMtà
stessa

           (già
visto)

     ogni
associazione
è
tradoGa
con
una
relazione

      con
gli
stessi
aGribuM,
cui
si
aggiungono
gli

      idenMficatori
di
tuGe
le
enMtà
che
essa
collega

      (già
visto)

        la
chiave
è
composta
dalle
chiavi
delle
enMtà
collegate

         (questa
può
però
essere
una
superchiave,
come
si

         vedrà
in
seguito)



33
                                      Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Traduzione
standard


      K1

      A1
         E1

      B1

                        (1,n)
       E1
(K1,
A1,
B1,...)

            AR

                   R
                E2
(K2,
A2,
B2,...)

            BR

                        (1,n)
       R
(K1,K2,
AR,
BR,...)
      K2

      A2
         E2

      B2



34
                              Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Traduzione
standard
es.


         matr

      cognome
        studente

        nome

                            (1,n)

             anno

           piano_s

                            (1,n)

        codice

        denom.
        corso




35
                               Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Traduzione
standard
es.

 STUDENTE


(MATR,
COGNOME,
NOME)

 CORSO


(CODICE,
DENOM)

 PIANO_ST
(MATR,
CODICE,
ANNO)





 FK:

 
MATR
REFERENCES
STUDENTE

 FK: 
CODICE
REFERENCES
CORSO



                                                    in
SQL...





36
                           Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

Traduzione
standard
es.

CREATE TABLE STUDENTE   (MATR... NOT NULL,
…, NOME... ,    PRIMARY KEY (MATR));
CREATE TABLE CORSO   (CODICE... NOT NULL,
DENOM       ... ,    PRIMARY KEY (CODICE));
CREATE TABLE PIANO_ST (MATR... NOT NULL,
CODICE... NOT NULL, ANNO…
PRIMARY KEY (MATR, CODICE),
FOREIGN KEY (MATR) REFERENCES STUDENTE
FOREIGN KEY (CODICE) REFERENCES CORSO);




37
                        Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)


More Related Content

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
 

D1 Plogico

  • 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
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 3. ProgeGo
logico
   Lo
schema
E/R
descrive
un
dominio
applicaMvo
ad
 un
dato
livello
di
astrazione
   Lo
schema
E/R
è
molto
uMle
per:
   fornire
una
descrizione
sinteMca
e
visiva
   rappresentare
buona
parte
della
semanMca
 dell’applicazione
   scambiare
informazioni
sull’aWvità
progeGuale
tra
i
 membri
del
team
di
progeGo
e
mantenere
una
 documentazione
 3
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 4. ProgeGo
logico
   Non
esistono
DBMS
in
grado
di
operare
 direGamente
sui
conceW
di
schemi
E/R
   è
quindi
necessario
tradurli
in
altri
schemi
di
daM
 (logico
relazionale
in
queste
lezioni)
   questa
traduzione
può
essere
eseguita
in
modo
semi‐ automaMco
   le
scelte
alternaMve
devono
tenere
conto
 dell’efficienza
dello
schema
logico
risultante
e
delle
 operazioni
da
effeGuare
(derivanM
da
flussi
e
 processi)
 4
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 5. Processo
di
design
 raccolta
requisiM
 dominio
 applicaMvo
 progeGazione
 schema
conceGuale
 conceGuale
 (E/R)
 progeGazione
 schema
logico
 logica
 (SQL:
DDL)
 DBMS 
 DB
 (SQL:
DDL,
DML) 
 5
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 6. Scelte
alternaMve
 –  il
progeGo
logico
presenta
in
generale
una
 soluzione
standard
determinabile
in
modo
 semplice
e
direGo

 –  a
seconda
dei
casi
sono
però
disponibili
anche
 soluzioni
alternaMve
che
possono
rivelarsi
più
o
 meno
convenienM

 –  per
una
scelta
correGa
sono
necessarie:
 •  previsioni
sulla
natura
e
la
frequenza
delle
operazioni
 •  valutazioni
quanMtaMve
sui
volumi
di
daM
(enMtà,
 associazioni,
percentuali
di
copertura
di
gerarchie,
 percentuali
di
valori
nulli)
 6
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 7. Scelte
alternaMve
 si
possono
individuare
alcune
regole
intuiMve:
   le
proprietà
logiche
sono
comunque
primarie
 rispeGo
ai
moMvi
di
efficienza
   tenere
sulla
stessa
enMtà
informazioni
che
 verranno
di
frequente
consultate
insieme
   tenere
su
enMtà
separate
informazioni
che
 verranno
consultate
separatamente
   limitare
l’incidenza
di
valori
nulli
per
aGribuM
 opzionali
 7
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 8. Fasi
del
progeGo
 il
progeGo
produce
trasformazioni
e
traduzioni
 dello
schema
E/R
con
le
seguenM
fasi:
 1  eliminazione
delle
gerarchie
isa
 2  selezione
delle
chiavi
primarie,
eliminazione
delle
 idenMficazioni
esterne

 3  trasformazione
degli
aGribuM
composM
o
mulMpli
 4  traduzione
di
enMtà
e
associazioni
in
schemi
di
 relazioni
 5  verifica
di
normalizzazione

 8
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 9. Fasi
del
progeGo
   dopo
le
prime
tre
fasi,
lo
schema
E/R
è
 cosMtuito
soltanto
da
enMtà,
associazioni
e
 aGribuM
semplici
   la
quarta
fase
non
è
complessa
   la
quinta
richiede
molta
aGenzione
 !  si
tenga
presente
che
ogni
trasformazione
 impoverisce
lo
schema;
la
semanMca
persa
 deve
restare
soGo
forma
di
vincoli
di
integrità
 che
governeranno
l’uMlizzo
delle
relazioni
 9
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 10. Eliminazione
delle
gerarchie
 il
modello
relazionale
non
rappresenta
le
 gerarchie,
le
gerarchie
sono
sosMtuite
da
enMtà
 e
associazioni:
 K
 E
 1)
mantenimento
delle

 A
 



enMtà
con
associazioni

 2)
collasso
verso
l’alto
 E1
 E2
 3)
collasso
verso
il
basso

 A1
 A2
 l’applicabilità
e
la
convenienza
delle
soluzioni
dipendono

 dalle
proprietà
di
copertura
e
dalle
operazioni
previste
 10
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 11. Mantenimento
delle
enMtà
 –  tuGe
le
enMtà


vengono
 E
 K
 mantenute
 A
 (0,1)
 (0,1)
 –  le
enMtà
figlie
sono
in
 associazione
con
l’enMtà
 (1,1)
(1,1)
 padre
 E1
 E2
 –  le
enMtà
figlie
sono
 idenMficate
esternamente
 tramite
l’associazione

 A1
 A2
 questa
soluzione
è
sempre
possibile,
 
indipendentemente
dalla
copertura
 11
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 12. Mantenimento
enMtà
‐
es.:
 cod
 progeGo
 cod
 progeGo
 desc
 desc
 (0,1)
 (0,1)
 n_schede
 prog_sw
 prog_hw
 (1,1)
 (1,1)
 prog_sw
 prog_hw
 (1,n)
 mesi
 n_schede
 usa
 (1,n)
 uomo
 mesi
 (0,n)
 uomo
 (0,n)
 usa
 comp_hw
 comp_hw
 12
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 13. Eliminazione
delle
gerarchie
   Il
collasso
verso
l’alto
riunisce
tuGe
le
enMtà
figlie
 nell’enMtà
padre
 E
 K
 (0,1)
 A
 A1
 (0,1)
 E
 K
 A2
 A
 E1
 E2
 seleGore
 A1
 A2
 seleGore
è
un
aGributo
che
specifica
se
una

 istanza
di
E
apparMene
a
una
delle
soGoenMtà
 13
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 14. ISA:
collasso
verso
l’alto
   il
collasso
verso
l’alto
favorisce
operazioni
che
 consultano
insieme
gli
aGribuM
dell’enMtà
 padre
e
quelli
di
una
enMtà
figlia:
   in
questo
caso
si
accede
a
una
sola
enMtà,
anziché
 a
due
aGraverso
una
associazione
   gli
aGribuM
obbligatori
per
le
enMtà
figlie
 divengono
opzionali
per
il
padre
   si
avrà
una
certa
percentuale
di
valori
nulli

 14
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 15. ISA:
collasso
verso
l’alto
 (0,1)
 A1
 K
 (0,1)
 E
 Copertura
dell’ISA A2
 A
 totale
esclusiva:

 seleGore
 seleGore
ha
N
valori,

 quante
sono
le
soGoenMtà
 parziale
esclusiva:

 seleGore
ha
N+1
valori;
il
valore
in
più
serve

 per

le
istanze
che
non
appartengono
ad

 alcuna
soGoenMtà
 15
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 16. ISA:
collasso
verso
l’alto
 Copertura
dell’ISA: K
 non
esclusiva:
occorrono
 tanM
seleGori
booleani
quante

 sel_i
 E
 sono
le
soGoenMtà,

 sel_i
è
“vero”
per
ogni

 A
 istanza
di
E
che
apparMene
a
E_i
 (0,n)
 se
la
copertura
è
parziale
i
seleGori
 possono
essere
tuW

 “falsi”
 le
associazioni
connesse
alle
soGoenMtà
si
 trasportano
su
E,
le
eventuali
cardinalità
 minime
diventano
0
 16
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 17. ISA:
collasso
verso
l’alto
 tesi
(0,1)
 studente
 matr.
 matr.
 cogn.
 studente
 tesi
 (p,e)
 cogn.
 stage
 stage
(0,1)
 seleGore
 laureando
 diplomando
 (1,1)
 (1,1)
 (0,1)
 (0,1)
 denom.
 cod_r
 relatore
 azienda
 relatore
 azienda
 cod_r
 denom.
 il
dominio
di
sel
è
(L,D,N)
 17
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 18. ISA:
collasso
verso
l’alto
 studente(123,
rossi)








laureando(123,
DFD)
 studente(218,
bianchi)
 studente(312,
verdi)







diplomando(312,
turbina)
 (seleGore)
 studente(123,rossi,




L,
DFD,


NULL)
 studente(218,bianchi,
N,
NULL,
NULL)
 studente(312,verdi,




D,
NULL,
turbina)
 18
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 19. ISA:
collasso
verso
l’alto
   esiste
una
precisa
relazione
tra
il
valore
del
 seleGore
e
i
campi
che
possono
avere
valore
 diverso
da
NULL
   campi
prima
obbligatori
ora
ammeGono
il
 valore
NULL
   per
una
sMma
delle
percentuali
di
NULL
occorre
 conoscere
le
percentuali
di
laureandi
e
 diplomandi
 19
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 20. ISA:
collasso
verso
il
basso
 Collasso
verso
il
basso:

   si
elimina
l’enMtà
padre
trasferendone

gli
 aGribuM
su
tuGe
le
enMtà
figlie
   una
associazione
del
padre
è
replicata,
tante
volte
 quante
sono
le
enMtà
figlie
   la
soluzione
è
interessante
in
presenza
di
molM
 aGribuM
di
specializzazione
(con
il
collasso
verso
 l’alto
si
avrebbe
un
eccesso
di
valori
nulli)
   favorisce
le
operazioni
in
cui
si
accede
 separatamente
alle
enMtà
figlie
 20
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 21. ISA:
collasso
verso
il
basso
 limiM
di
applicabilità:
 K
 E
 •  se
la
copertura
non
è
totale
 A
 non
si
può
fare:
 


dove
meGere
gli
E
che
non
 sono
né
E1,
né
E2
?
 E1
 E2
 •  se
la
copertura
non
è
 A1
 A2
 esclusiva
introduce
 ridondanza:
per
una
istanza
 presente
sia
in
E1
che
in
E2
si
 E1
 E2
 rappresentano
due
volte
gli
 aGribuM
di
E K
 A
 A1
 A2
 A
 K
 21
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 22. Collasso
verso
il
basso:
es.
 iscri<o
 (1,n)
 cf
 dipendente
 sindacato
 cognome
 (0,1)
 (0,1)
 dirige
 (t,e)
 mansione
 (1,n)
 qualifica
 classe
 impiegato
 operaio
 dirigente
 (1,n)
 (1,n)
 22
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 23. Collasso
verso
il
basso:
es.
 (0,n)
 (0,n)
 sindacato
 (0,n)
 mansione
 (0,1)
 (0,1)
 (0,1)
 classe
 qualifica
 (1,n)
 impiegato
 operaio
 (1,n)
 dirigente
 (0,1)
 cf
 co.
 cf
 co.
 cf
 co.
 (1,1)
 (0,n)
 (1,1)
 (0,n)
 dir_d
 dir_o
 dir_i
 (0,n)
 23
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 24. Scelta
della
chiave
primaria
   È
necessario
che
tra
i
diversi
idenMficatori
di
 una
enMtà
venga
designata
una
chiave
 primaria:

per
la
chiave
primaria
occorrerà,
infaW,
 che
il
DBMS
sia
provvisto
di
strumenM
per
garanMre
 l’unicità
dei
valori
   criteri
eurisMci
di
scelta:
   primo:
scegliere
la
chiave
che
è
usata
più
 frequentemente
per
accedere
all’enMtà
   secondo:
si
preferiscono
chiavi
semplici
a
chiavi
 composte,
interne
anziché
esterne
 24
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 25. IdenMficatori
esterni
   una
componente
di
 idenMficazione
esterna
codice
 (E1)
 stabilimento
 di
una
enMtà
E2
da
 denom
 una
enMtà
E1
 (1,n)
 aGraverso
una
 lavora
 (R)
 associazione
R
 comporta
il
trasporto
 (1,1)
 della
chiave
primaria
 matr
 dipendente
 (E2)
 di
E1
su
E2
 cognome
 25
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 26. IdenMficatori
esterni
   in
questo
modo
 l’associazione
è
 rappresentata
aGraverso
la
 chiave,
e
può
essere
 eliminata
 codice
 stabilimento
   la
chiave
trasportata
è
chiave
 esterna
   in
presenza
di
più
 codice
 idenMficazioni
in
cascata,
è
 necessario
iniziare
la
 matr
 dipendente
 propagazione
dall’enMtà
che
 non
ha
idenMficazioni
esterne
 cognome
 26
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 27. AGribuM
composM/ripetuM
 le
relazioni
non
possono
(per
definizione)
 
contenere
aGribuM
composM
o,
aGribuM

 
ripetuM
ma
solamente
aGribuM
“atomici”
 cf
 cognome
 via
 dipendente
 num
 codice
 ciGà
 indirizzo
 (0,n)
 descrizione
 qualifica
 27
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 28. AGribuM
composM
   Due
possibili
soluzioni
   eliminare
l’aGributo
composto
e
considerare
i
suoi
 componenM
come
aGribuM
semplici
   in
questo
modo
si
perde
la
visione
unitaria
ma
si
 manMene
l’arMcolazione
dei
componenM
 (0,n)
 cf
 qualifica
 dipendente
 cognome
 via
 num
 ciGà
 28
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 29. AGribuM
composM
   eliminare
i
componenM
e
considerare
l’aGributo
come
 semplice
   in
questo
modo
lo
schema
risulta
semplificato,
 perdendo
parte
dei
deGagli
 (0,n)
 cf
 qualifica
 dipendente
 cognome
 indirizzo
 29
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 32. AGribuM
ripetuM
 ....
 data
 casa
 parMta
 ospiM
 data
 marcatore
 casa
 marcature
 (1,1)
 n_ordine
 32
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 33. Traduzione
standard
   ogni
enMtà
è
tradoGa
con
una
relazione
con
gli
 stessi
aGribuM
   la
chiave
è
la
chiave
(o
idenMficatore)
dell’enMtà
stessa
 (già
visto)
   ogni
associazione
è
tradoGa
con
una
relazione
 con
gli
stessi
aGribuM,
cui
si
aggiungono
gli
 idenMficatori
di
tuGe
le
enMtà
che
essa
collega
 (già
visto)
   la
chiave
è
composta
dalle
chiavi
delle
enMtà
collegate
 (questa
può
però
essere
una
superchiave,
come
si
 vedrà
in
seguito)
 33
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 34. Traduzione
standard
 K1
 A1
 E1
 B1
 (1,n)
 E1
(K1,
A1,
B1,...)
 AR
 R
 E2
(K2,
A2,
B2,...)
 BR
 (1,n)
 R
(K1,K2,
AR,
BR,...) K2
 A2
 E2
 B2
 34
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 35. Traduzione
standard
es.
 matr
 cognome
 studente
 nome
 (1,n)
 anno
 piano_s
 (1,n)
 codice
 denom.
 corso
 35
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 36. Traduzione
standard
es.
 STUDENTE


(MATR,
COGNOME,
NOME)
 CORSO


(CODICE,
DENOM)
 PIANO_ST
(MATR,
CODICE,
ANNO)




 FK:

 
MATR
REFERENCES
STUDENTE
 FK: 
CODICE
REFERENCES
CORSO
 in
SQL...
 36
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)

  • 37. Traduzione
standard
es.
 CREATE TABLE STUDENTE (MATR... NOT NULL, …, NOME... , PRIMARY KEY (MATR)); CREATE TABLE CORSO (CODICE... NOT NULL, DENOM ... , PRIMARY KEY (CODICE)); CREATE TABLE PIANO_ST (MATR... NOT NULL, CODICE... NOT NULL, ANNO… PRIMARY KEY (MATR, CODICE), FOREIGN KEY (MATR) REFERENCES STUDENTE FOREIGN KEY (CODICE) REFERENCES CORSO); 37
 Basi
di
DaM
‐
ProgeGo
Logico
Relazionale
(Parte
1)