SlideShare a Scribd company logo
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
Da)
‐
Metodi
di
Accesso
(File)

Nelle
lezioni
precedenM

    Avete
visto:

         le
caraGerisMche
delle
principali
unità
di
memoria

          permanente



                     In
questa
lezione

    Presenteremo:

         la
struGura
dei
file

         il
loro
ordinamento





 3
                                               Basi
di
Da)
‐
Metodi
di
Accesso
(File)

StruGura
di
un
data
server


     CPU
                       memorie

                   canale
      permanenM

     memoria

     centrale




     buffer
        blocco



                  blocco‐min
=
seGore


4
                              Basi
di
Da)
‐
Metodi
di
Accesso
(File)

File
Directory

    DIRECTORY
(elenco
dei
file)
è
una
tabella
che
viene

     consultata
dal
FILE
SYSTEM
(che
è
parte
del
sistema

     operaMvo)

o
dal
DBMS
e
che
conMene
le
informazioni
sui

     file.
Sta
sul
disco.

    Il
contenuto
è
molto
diverso
da
sistema
a
sistema,

     informazioni
Mpiche
sono:


       nome
del
file,
proprietario,


       locazione
di
inizio,


       numero
di
blocchi
allocaM,
numero
di
blocchi
uMlizzaM

        ecc.



5
                                          Basi
di
Da)
‐
Metodi
di
Accesso
(File)

StruGura
del
file

 Un
comune
metodo
di
allocazione
è
l’allocazione


 con
indice 
      
       
      
directory

                                       file 
blocco

                                      neGuno



7


     0
    1
    2
     3


     4
    5
    6
     7

                                                 1

     8
    9
    10
   11
                       2

                                                 8

     12
   13
   14
   15

                                                 13




6
                                       Basi
di
Da)
‐
Metodi
di
Accesso
(File)

StruGura
del
file
UNIX

                   b
1
     dim.
di
b
=
512

     inode

     ptr
1
        b
2

     ptr
2

                                    b
11

     ptr
10
       b
10

     ptr
11
                        b
12

     ptr
12

     ptr
13
     128
ptr


                                    b
138



7
                           Basi
di
Da)
‐
Metodi
di
Accesso
(File)

StruGura
del
file
UNIX


     ptr
12
      128
ptr
     128
ptr
   b
139

     ptr
13

                                          
16522

 128
ptr

                                                        
16523



           128
ptr
     128
ptr

                                                           bfin

bfin:
2
113
674

tot.:
1
GB


8
                                        Basi
di
Da)
‐
Metodi
di
Accesso
(File)

StruGura
dei
file

  La
dimensione
dei
blocchi
può
essere

   superiore,
fino
ad
oltre
8
÷
16
kB

  Anche
se
ci
sono
più
livelli
di
indirizzamento
e

   i
file
system
ogmizzano
la
gesMone
del
buffer

   e
il
trasferimento,
le
prestazioni
generali
per

   l’accesso
ad
un
file
vengono
valutate
come

   somma
del
numero
di
blocchi
di
daM
che

   vengono
scrig
o
leg
da
un’operazione




9
                                    Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Accesso
sequenziale
al
file

       Select
*
from
ciGadini
where
codice
=
‘cf’





– ciGadini
è
una
relazione
di
NT
tuple
contenuta


 
in
un
file
di
NB
blocchi

– la
relazione
non
è
in
ordine
di
codice

– vengono
visitaM
i
blocchi
fino
a
che
si
trova
‘cf’




 10
                                          Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Accesso
sequenziale
al
file

– Se
il
‘cf’
non
c’è
il
numero
di
accessi
è
=
NB

– Se
il
‘cf’
c’è,
assumendo
un
uguale
numero
di


 
tuple
per
blocco
e
le
tuple
equiprobabili,
ogni


 
blocco
ha
la
stessa
probailità
1/NB
di
contenere


 

‘cf’
e
il
numero
di
accessi
è
=


 

       
Σ
NB
j/NB
≈
NB/2


 
(
j
è
la
lunghezza
di
ricerca
per
ognuno
degli


 
NB
blocchi)

 
assumendo
NB
=
10000
e
il
tempo
di
accesso
ad


 
un
blocco
su
disco
=
20
ms
(TD
),
si
ha:

 
 
TA
=
NB×TD
/
2
=
100
sec
(
sono
molM)



11
                                        Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file

• Ordinare
un
file
è
uMle
non
solo
per
la
presentazione

   del
contenuto
(elenchi,
lisMni
anagrafi
ecc.),
ma
anche

   per
velocizzare
la
ricerca

• L’ordinamento
di
un
file
molto
grande
è
un’operazione

   molto
lenta
che
viene
di
regola
effeGuata
con
il

   metodo
Sort/Merge
(a
M
vie),

  
supponiamo
di
avere
un
file
di
NB
blocchi
che
non
può

   essere
contenuto
in
memoria
di
lavoro


 
il
file
viene
ordinato
in
due
fasi:

      • la
fase
di
sort,


      • la
fase
di
merge




12
                                        Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file

FASE
DI
SORT:

• vengono
portaM
in
memoria
NM
blocchi
(NM:
disponibilità

  memoria
centrale)
per
volta
e
le
tuple
ordinate
con
un

  algoritmo
di
sort
(es.
Quicksort),

• ogni
gruppo
di
NM
blocchi
viene
memorizzato
in
un
file

  disMnto
(
NF
=

NB/NM

file)




      1
file

         Sort
di

                 NF
file


      di
NB
         NM
blocchi
               ordinaM

      blocchi


13
                                    Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file


FASE
DI
SORT:

Il
primo
passo
è
un
SORT,
dove
i
blocchi
cosMtuenM
il
file

(NB)
vengono
raggruppaM
in
NF
file
(a
gruppi
di
NM)
ed    

ordinaM,
 e
 successivamente
 dispersi
 su
 M
 disposiMvi

logici.


                                   1
   NF
files
in
uscita

                    Area
               dispersi
su

      File
in
                          M
disposiMvi
logici

      ingresso
                    M

                    SORT



14
                                      Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file


FASE
DI
MERGE

• la
fase
è
cosMtuita
da
più
passi:

    – passo:
vengono
portaM
in
memoria
gradualmente
i

      blocchi

di
M
(parametro
del
merge)
file
,
si
opera

      una
fusione
ordinata
delle
tuple
contenute


      oGenendo
un
file
M
volte
più
grande
(ordinato)

    – l’operazione
si
ripete
fino
ad
esaurire
gli
NF
file
(ad

      ogni
passo
NF
diminuisce)

• i
passi
si
ripetono
fondendo
file
sempre
più
grandi
fino

  ad
oGenere
un
unico
file
ordinato




15
                                         Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file

FASE
DI
MERGE


                primo
passo

      1
                       1

                                     NF’=
NF/M
file
ordinaM

                                       M
volte
più
grandi

      M
                       M



                ulMmo
passo

      1

                                1
file
ordinato


       M’≤
M



16
                                      Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file

Esempio
di
fusione
(merge)
con
M
=
2


          5

          
7
                                2

          
9
                                5

          15
                               
6

                                             7

                                             9

            2

                                           
11

           
6

                                            15

          
11

                                            24

           24



17
                                     Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file

  Vediamo
i
passi
di
MERGE
per
un
file
di
81
blocchi
con
M
=
3
,
il
sort

  produce
27
file
di
NM
=
3
blocchi:

 
F4
(9
file
di
3
blocchi)

 
F5
(9
file
di
3
blocchi)

 
F6
(9
file
di
3
blocchi)
                    passo
1



                                         F1
(3
file
di
9
blocchi)

            passo
2
                     F2
(3
file
di
9
blocchi)

                                         F3
(3
file
di
9
blocchi)

    F4
(1
file
di
27
blocchi)

    F5
(1
file
di
27
blocchi)
                   passo
3

    F6
(1
file
di
27
blocchi)

                                       F1
(1
file
di
81
blocchi)


  18
                                             Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file

  I
passi
di
merge
PM
sono
staM
Log
3
(27)
=
3

 
dove
27
è
il
numero
di
file
che
escono
dal
passo
di
sort

  In
generale

PM
=
LogM
(NB/NM)

 
se
NB/NM
è
una
potenza
di
M
il
merge
è
bilanciato,

   altrimenM:
PM
=
LogM
(NB/NM)

  Ad
ogni
passo
di
fusione
la
lunghezza
di
ogni
file
intermedio

   di
uscita

diventa:


 

       
NM
×
M,
NM
×
M2,
NM
×
M3,...

 
l'algoritmo
termina
alla
k‐esima
fusione
quando:
 

         
NM
×
Mk
≥
NB



19
                                         Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ordinamento
del
file


  Ogni
 passo
 comporta
 una
 leGura
 e
 una
 scriGura
 per

   ogni
blocco
(NB).

  Considerando
 che
 la
 fase
 di
 sort
 interno
 iniziale

   comporta
un
passo
prevenMvo,
oGeniamo:


 
 
Csort
=
2
×
NB
×
(PM
+
1)

  Quindi:


 
 

Csort
=
2
×
NB
×
(
LogM
(NB/NM)
+
1)

 
(sono
comunque
possibili
ogmizzazioni)





20
                                          Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Ricerca
binaria

Sul
file
ordinato
si
può
effeGuare
la
ricerca
binaria


           2
                 1
                     NB=11

                       3



              3
        5
 6
                    11

 la
ricerca
binaria
ha
un
costo
Cbin
:

 Cbin
=

Log
2
NB
‐
1

(costo
medio
con
successo)

 Cbin
=
Log
2
NB
+
1

(caso
peggiore,
insuccesso)

 con
i
daM
dell’esercizio

e
NM
=
16,
M
=
8

si
ha

 Csort
=
100000
e
Cbin
=
13÷15
<<
NB/2
=
5000


21
                                         Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Calcolo
del
costo
di
leGura

Esempio
di
calcolo
del
costo
di
leGura
di
un
record,
quando
i

record
sono
ordinaM
rispeGo
alla
chiave
di
ricerca.


Consideriamo
 come
 valori
 caraGerisMci
 del
 disposiMvo
 quelli
                                                                

di
 un
 disco
 dove
 il
 costo
 della
 leGura
 di
 un
 blocco
 di
                                                                

dimensioni
512
byte
è
dato
da:

     tread
=
ts
+
tr
+
tb


     con
ts
=
16
ms;
tr
=
8.3
ms;


     tb=
Lb/t(data
rate)
=
512/3k
sec
=
0.17

     tread
=
24.47
ms

     Se

supponiamo
di
avere
un
archivio
con


     NB
=
100000,
Lb
=
512,





 22
                                        Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Calcolo
del
costo
di
leGura

     con
ricerca
sequenziale
abbiamo
un
numero
di
accessi

      medio
=
NB/2
e
quindi
un
costo
:

          con
blocchi
non
conMgui

          NL
=
NB/2
×
tread
=

50000
×
24.47ms

=

1223.5
s
=
≈20
min

          con
blocchi
conMgui
sullo
stesso
cilindro
e
trascurando
il
tempo
di

           cambio
di
cilindro

          NL
=
NB/2
×
tread

=
50000
×
8.47ms
=
≈7
min
     con
ricerca
binaria
abbiamo
un
numero
di
accessi
medi
=

      log2
NB
‐1=
16
accessi:


           
NL
=
16
×
24.47
=
≈392
ms


cioè
meno
di
un
secondo!





23
                                                      Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Metodi
di
organizzazione

    In
un
file
può
esistere
un
solo
ordinamento
(su

una

     sola
colonna
o
su
un
gruppo)


    l’ordinamento
è
costoso
da
oGenere
e
da

     mantenere(
a
seguito
di
inserimenM
di
nuove
tuple)

    l’ordinamento
su
un
aGributo
favorisce
solo
alcune

     query
e
non
ne
favorisce
altre    


    l’ordinamento
è
un
metodo
di
organizzazione

     ‘primario’,
vedremo
altre
organizzazioni
che
possono

     essere
uMlizzate
sia
come

primarie
che
come

     secondarie





 24
                                         Basi
di
Da)
‐
Metodi
di
Accesso
(File)

Metodi
di
organizzazione

I
Mpi
di
organizzazione
sono
sostanzialmente
due:


    le
organizzazioni
ad
INDICE
che
uMlizzano
file
di
supporto

     che
riportano
per
ogni
valore
della
chiave
l’indirizzo
nel
file

     di
dove
è
localizzata
la
tupla

    le
organizzazioni
HASH
(indirizzo
calcolato)
che
per
allocare

     una
tupla
in
un
file
soGopongono
la
chiave
ad
una

     trasformazione
con
una
funzione
deGa
funzione
hash
che

     trasforma
il
valore
della
chiave
in
un
valore
numerico

che

     corrisponde
all’indirizzo
nel
file





 25
                                           Basi
di
Da)
‐
Metodi
di
Accesso
(File)


More Related Content

Similar to E2 File

Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
MongoDB
 
Sistemi di Build Alternativi
Sistemi di Build AlternativiSistemi di Build Alternativi
Sistemi di Build AlternativiDario Bertini
 
Hadoop
HadoopHadoop
HadoopReply
 
Syntactical errors detection 2
Syntactical errors detection 2Syntactical errors detection 2
Syntactical errors detection 2
LucaPostiglione2
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode LinuxMajong DevJfu
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleMajong DevJfu
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
BioDec
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
Ivan Rossi
 
Deploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web ServicesDeploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web Services
Stefano Dindo
 
Architettura dei Calcolatori 11 Cache
Architettura dei Calcolatori 11 CacheArchitettura dei Calcolatori 11 Cache
Architettura dei Calcolatori 11 CacheMajong DevJfu
 
Laboratorio Programmazione: Memoria dinamica
Laboratorio Programmazione: Memoria dinamicaLaboratorio Programmazione: Memoria dinamica
Laboratorio Programmazione: Memoria dinamicaMajong DevJfu
 
Hadoop in action!
Hadoop in action!Hadoop in action!
Hadoop in action!
Gabriele Lombari
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazione
Fulvio Corno
 
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
MarziaPaschini
 
Lezione 2. presentazione la tex
Lezione 2. presentazione la texLezione 2. presentazione la tex
Lezione 2. presentazione la texGiulia Flower
 
Lezione 2. presentazione la tex
Lezione 2. presentazione la texLezione 2. presentazione la tex
Lezione 2. presentazione la texgiumath
 

Similar to E2 File (19)

E3 Indici
E3 IndiciE3 Indici
E3 Indici
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
 
E5 Transaz
E5 TransazE5 Transaz
E5 Transaz
 
Sistemi di Build Alternativi
Sistemi di Build AlternativiSistemi di Build Alternativi
Sistemi di Build Alternativi
 
Hadoop
HadoopHadoop
Hadoop
 
Syntactical errors detection 2
Syntactical errors detection 2Syntactical errors detection 2
Syntactical errors detection 2
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode Linux
 
Introduzione Alla Uml Mconsole
Introduzione Alla Uml MconsoleIntroduzione Alla Uml Mconsole
Introduzione Alla Uml Mconsole
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Deploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web ServicesDeploy MongoDB su Infrastruttura Amazon Web Services
Deploy MongoDB su Infrastruttura Amazon Web Services
 
Architettura dei Calcolatori 11 Cache
Architettura dei Calcolatori 11 CacheArchitettura dei Calcolatori 11 Cache
Architettura dei Calcolatori 11 Cache
 
Laboratorio Programmazione: Memoria dinamica
Laboratorio Programmazione: Memoria dinamicaLaboratorio Programmazione: Memoria dinamica
Laboratorio Programmazione: Memoria dinamica
 
Pycon
PyconPycon
Pycon
 
Hadoop in action!
Hadoop in action!Hadoop in action!
Hadoop in action!
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazione
 
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
Presentazione di "Summary of NebulOS: A Big Data framework for astrophysics"
 
Lezione 2. presentazione la tex
Lezione 2. presentazione la texLezione 2. presentazione la tex
Lezione 2. presentazione la tex
 
Lezione 2. presentazione la tex
Lezione 2. presentazione la texLezione 2. presentazione la tex
Lezione 2. presentazione la tex
 

More from Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
Majong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
Majong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
Majong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
Majong 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 Architecture
Majong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
Majong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
Majong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
Majong 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 product
Majong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Majong DevJfu
 
Uml3
Uml3Uml3
Uml2
Uml2Uml2
6
66
5
55
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
Majong DevJfu
 
3
33
2
22
1
11
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
Majong DevJfu
 
26 standards
26 standards26 standards
26 standards
Majong 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
 

E2 File

  • 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
Da)
‐
Metodi
di
Accesso
(File)

  • 3. Nelle
lezioni
precedenM
   Avete
visto:
   le
caraGerisMche
delle
principali
unità
di
memoria
 permanente
 In
questa
lezione
   Presenteremo:
   la
struGura
dei
file
   il
loro
ordinamento
 3
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 4. StruGura
di
un
data
server
 CPU
 memorie
 canale
 permanenM
 memoria
 centrale
 buffer
 blocco
 blocco‐min
=
seGore
 4
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 5. File
Directory
   DIRECTORY
(elenco
dei
file)
è
una
tabella
che
viene
 consultata
dal
FILE
SYSTEM
(che
è
parte
del
sistema
 operaMvo)

o
dal
DBMS
e
che
conMene
le
informazioni
sui
 file.
Sta
sul
disco.
   Il
contenuto
è
molto
diverso
da
sistema
a
sistema,
 informazioni
Mpiche
sono:

   nome
del
file,
proprietario,

   locazione
di
inizio,

   numero
di
blocchi
allocaM,
numero
di
blocchi
uMlizzaM
 ecc. 5
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 6. StruGura
del
file
 Un
comune
metodo
di
allocazione
è
l’allocazione

 con
indice 
 
 
 
directory
 file 
blocco
 neGuno



7
 0
 1
 2
 3
 4
 5
 6
 7
 1
 8
 9
 10
 11
 2
 8
 12
 13
 14
 15
 13
 6
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 7. StruGura
del
file
UNIX
 b
1
 dim.
di
b
=
512
 inode
 ptr
1
 b
2
 ptr
2
 b
11
 ptr
10
 b
10
 ptr
11
 b
12
 ptr
12
 ptr
13
 128
ptr
 b
138
 7
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 8. StruGura
del
file
UNIX
 ptr
12
 128
ptr
 128
ptr
 b
139
 ptr
13
 
16522
 128
ptr
 
16523
 128
ptr
 128
ptr
 bfin
 bfin:
2
113
674

tot.:
1
GB
 8
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 9. StruGura
dei
file
   La
dimensione
dei
blocchi
può
essere
 superiore,
fino
ad
oltre
8
÷
16
kB
   Anche
se
ci
sono
più
livelli
di
indirizzamento
e
 i
file
system
ogmizzano
la
gesMone
del
buffer
 e
il
trasferimento,
le
prestazioni
generali
per
 l’accesso
ad
un
file
vengono
valutate
come
 somma
del
numero
di
blocchi
di
daM
che
 vengono
scrig
o
leg
da
un’operazione
 9
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 10. Accesso
sequenziale
al
file
 Select
*
from
ciGadini
where
codice
=
‘cf’
 – ciGadini
è
una
relazione
di
NT
tuple
contenuta

 
in
un
file
di
NB
blocchi
 – la
relazione
non
è
in
ordine
di
codice
 – vengono
visitaM
i
blocchi
fino
a
che
si
trova
‘cf’
 10
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 11. Accesso
sequenziale
al
file
 – Se
il
‘cf’
non
c’è
il
numero
di
accessi
è
=
NB
 – Se
il
‘cf’
c’è,
assumendo
un
uguale
numero
di

 
tuple
per
blocco
e
le
tuple
equiprobabili,
ogni

 
blocco
ha
la
stessa
probailità
1/NB
di
contenere

 

‘cf’
e
il
numero
di
accessi
è
=

 

 
Σ
NB
j/NB
≈
NB/2

 
(
j
è
la
lunghezza
di
ricerca
per
ognuno
degli

 
NB
blocchi)
 
assumendo
NB
=
10000
e
il
tempo
di
accesso
ad

 
un
blocco
su
disco
=
20
ms
(TD
),
si
ha:
 
 
TA
=
NB×TD
/
2
=
100
sec
(
sono
molM)
 11
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 12. Ordinamento
del
file
 • Ordinare
un
file
è
uMle
non
solo
per
la
presentazione
 del
contenuto
(elenchi,
lisMni
anagrafi
ecc.),
ma
anche
 per
velocizzare
la
ricerca
 • L’ordinamento
di
un
file
molto
grande
è
un’operazione
 molto
lenta
che
viene
di
regola
effeGuata
con
il
 metodo
Sort/Merge
(a
M
vie),
 
supponiamo
di
avere
un
file
di
NB
blocchi
che
non
può
 essere
contenuto
in
memoria
di
lavoro
 
 
il
file
viene
ordinato
in
due
fasi:
 • la
fase
di
sort,

 • la
fase
di
merge
 12
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 13. Ordinamento
del
file
 FASE
DI
SORT:
 • vengono
portaM
in
memoria
NM
blocchi
(NM:
disponibilità
 memoria
centrale)
per
volta
e
le
tuple
ordinate
con
un
 algoritmo
di
sort
(es.
Quicksort),
 • ogni
gruppo
di
NM
blocchi
viene
memorizzato
in
un
file
 disMnto
(
NF
=

NB/NM

file)
 1
file

 Sort
di

 NF
file

 di
NB
 NM
blocchi
 ordinaM
 blocchi
 13
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 14. Ordinamento
del
file
 FASE
DI
SORT:
 Il
primo
passo
è
un
SORT,
dove
i
blocchi
cosMtuenM
il
file
 (NB)
vengono
raggruppaM
in
NF
file
(a
gruppi
di
NM)
ed 
 ordinaM,
 e
 successivamente
 dispersi
 su
 M
 disposiMvi
 logici.
 1
 NF
files
in
uscita
 Area
 dispersi
su
 File
in
 M
disposiMvi
logici
 ingresso
 M
 SORT
 14
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 15. Ordinamento
del
file
 FASE
DI
MERGE
 • la
fase
è
cosMtuita
da
più
passi:
 – passo:
vengono
portaM
in
memoria
gradualmente
i
 blocchi

di
M
(parametro
del
merge)
file
,
si
opera
 una
fusione
ordinata
delle
tuple
contenute

 oGenendo
un
file
M
volte
più
grande
(ordinato)
 – l’operazione
si
ripete
fino
ad
esaurire
gli
NF
file
(ad
 ogni
passo
NF
diminuisce)
 • i
passi
si
ripetono
fondendo
file
sempre
più
grandi
fino
 ad
oGenere
un
unico
file
ordinato
 15
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 16. Ordinamento
del
file
 FASE
DI
MERGE
 primo
passo
 1
 1
 NF’=
NF/M
file
ordinaM
 M
volte
più
grandi
 M
 M
 ulMmo
passo
 1
 1
file
ordinato
 M’≤
M
 16
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 17. Ordinamento
del
file
 Esempio
di
fusione
(merge)
con
M
=
2
 5
 
7
 2
 
9
 5
 15
 
6
 7
 9
 2
 
11
 
6
 15
 
11
 24
 24
 17
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 18. Ordinamento
del
file
   Vediamo
i
passi
di
MERGE
per
un
file
di
81
blocchi
con
M
=
3
,
il
sort
 produce
27
file
di
NM
=
3
blocchi:
 
F4
(9
file
di
3
blocchi)
 
F5
(9
file
di
3
blocchi)
 
F6
(9
file
di
3
blocchi)
 passo
1
 F1
(3
file
di
9
blocchi)
 passo
2
 F2
(3
file
di
9
blocchi)
 F3
(3
file
di
9
blocchi)
 F4
(1
file
di
27
blocchi)
 F5
(1
file
di
27
blocchi)
 passo
3
 F6
(1
file
di
27
blocchi)
 F1
(1
file
di
81
blocchi)
 18
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 19. Ordinamento
del
file
   I
passi
di
merge
PM
sono
staM
Log
3
(27)
=
3
 
dove
27
è
il
numero
di
file
che
escono
dal
passo
di
sort
   In
generale

PM
=
LogM
(NB/NM)
 
se
NB/NM
è
una
potenza
di
M
il
merge
è
bilanciato,
 altrimenM:
PM
=
LogM
(NB/NM)
   Ad
ogni
passo
di
fusione
la
lunghezza
di
ogni
file
intermedio
 di
uscita

diventa:

 

 
NM
×
M,
NM
×
M2,
NM
×
M3,...
 
l'algoritmo
termina
alla
k‐esima
fusione
quando:
 
 
NM
×
Mk
≥
NB
 19
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 20. Ordinamento
del
file
   Ogni
 passo
 comporta
 una
 leGura
 e
 una
 scriGura
 per
 ogni
blocco
(NB).
   Considerando
 che
 la
 fase
 di
 sort
 interno
 iniziale
 comporta
un
passo
prevenMvo,
oGeniamo:

 
 
Csort
=
2
×
NB
×
(PM
+
1)
   Quindi:
 
 

Csort
=
2
×
NB
×
(
LogM
(NB/NM)
+
1)
 
(sono
comunque
possibili
ogmizzazioni)
 20
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 21. Ricerca
binaria
 Sul
file
ordinato
si
può
effeGuare
la
ricerca
binaria
 2
 1
 NB=11
 3
 3
 5
 6
 11
 la
ricerca
binaria
ha
un
costo
Cbin
:
 Cbin
=

Log
2
NB
‐
1

(costo
medio
con
successo)
 Cbin
=
Log
2
NB
+
1

(caso
peggiore,
insuccesso)
 con
i
daM
dell’esercizio

e
NM
=
16,
M
=
8

si
ha
 Csort
=
100000
e
Cbin
=
13÷15
<<
NB/2
=
5000
 21
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 22. Calcolo
del
costo
di
leGura
 Esempio
di
calcolo
del
costo
di
leGura
di
un
record,
quando
i
 record
sono
ordinaM
rispeGo
alla
chiave
di
ricerca.

 Consideriamo
 come
 valori
 caraGerisMci
 del
 disposiMvo
 quelli 
 di
 un
 disco
 dove
 il
 costo
 della
 leGura
 di
 un
 blocco
 di 
 dimensioni
512
byte
è
dato
da:
 tread
=
ts
+
tr
+
tb

 con
ts
=
16
ms;
tr
=
8.3
ms;

 tb=
Lb/t(data
rate)
=
512/3k
sec
=
0.17
 tread
=
24.47
ms
 Se

supponiamo
di
avere
un
archivio
con

 NB
=
100000,
Lb
=
512,

 22
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 23. Calcolo
del
costo
di
leGura
   con
ricerca
sequenziale
abbiamo
un
numero
di
accessi
 medio
=
NB/2
e
quindi
un
costo
:
   con
blocchi
non
conMgui
   NL
=
NB/2
×
tread
=

50000
×
24.47ms

=

1223.5
s
=
≈20
min
   con
blocchi
conMgui
sullo
stesso
cilindro
e
trascurando
il
tempo
di
 cambio
di
cilindro
   NL
=
NB/2
×
tread

=
50000
×
8.47ms
=
≈7
min   con
ricerca
binaria
abbiamo
un
numero
di
accessi
medi
=
 log2
NB
‐1=
16
accessi:

 
NL
=
16
×
24.47
=
≈392
ms


cioè
meno
di
un
secondo!
 23
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 24. Metodi
di
organizzazione
   In
un
file
può
esistere
un
solo
ordinamento
(su

una
 sola
colonna
o
su
un
gruppo)

   l’ordinamento
è
costoso
da
oGenere
e
da
 mantenere(
a
seguito
di
inserimenM
di
nuove
tuple)
   l’ordinamento
su
un
aGributo
favorisce
solo
alcune
 query
e
non
ne
favorisce
altre 

   l’ordinamento
è
un
metodo
di
organizzazione
 ‘primario’,
vedremo
altre
organizzazioni
che
possono
 essere
uMlizzate
sia
come

primarie
che
come
 secondarie
 24
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)

  • 25. Metodi
di
organizzazione
 I
Mpi
di
organizzazione
sono
sostanzialmente
due:
   le
organizzazioni
ad
INDICE
che
uMlizzano
file
di
supporto
 che
riportano
per
ogni
valore
della
chiave
l’indirizzo
nel
file
 di
dove
è
localizzata
la
tupla
   le
organizzazioni
HASH
(indirizzo
calcolato)
che
per
allocare
 una
tupla
in
un
file
soGopongono
la
chiave
ad
una
 trasformazione
con
una
funzione
deGa
funzione
hash
che
 trasforma
il
valore
della
chiave
in
un
valore
numerico

che
 corrisponde
all’indirizzo
nel
file
 25
 Basi
di
Da)
‐
Metodi
di
Accesso
(File)