• Aucun résultat trouvé

FormatPowerPoint97

N/A
N/A
Protected

Academic year: 2022

Partager "FormatPowerPoint97"

Copied!
66
0
0

Texte intégral

(1)

2 Gestion des données en mémoire secondaire

Données persistantes en mémoire secondaire

principalement le disque

Organisation physique des données

façon dont les données sont structurées en mémoire secondaire

Méthode d'organisation des données

structure de données particulière utilisée pour

organiser les données en mémoire secondaire

(2)

Critères d'évaluation des méthodes d'organisation

 Temps d'accès aux données par rapport à différentes méthodes d'accès

 Délai d'insertion et de suppression

 Occupation mémoire

(3)

Conception physique

 Choix des méthodes d ’organisation

– organisation sérielle

– organisation séquentielle

– indexage

– hachage

– organisation par grappe

– ...

 Schéma interne de la BD

(4)

2.1 Principales caractéristiques des disques

Unité de disque (disk pack ) ou disque

P is t e

C y lin d r e

S e c t e u r

P la t e a u

T ê t e d e

le c t u r e / é c r it u r e

(5)

Capacité de Superbit

capacitéDisque = nbSurfaces nbCylindres nbSecteursParPiste  tailleSecteur

= 20 surfaces  1000 cylindres  50 secteurs par piste  512 octets

= 512,000,000 octets  500,000 kilooctets(K)  500 mégaoctets (M)

Paramètre Valeur

Nombre de surfaces ( nbSurfaces ) 20

Nombre de pistes par surface ( nbCylindres ) 1000

Nombre de secteurs par piste ( nbSecteursParPiste ) 50

Nombre d'octets de données par secteur ( tailleSecteur ) 512

(6)

Transfert d ’un secteur

Secteur

unité d'adressage et de transfert minimal

Adresse physique de secteur

numéro de surface (noSurface), numéro de cylindre (noCylindre), numéro de secteur dans la piste

(noSecteur)

Adresse relative de secteur (noSecteurRelatif)

dans l'intervalle [0..n-1]

Tampon (buffer )

zone de la mémoire centrale où transitent les données de

la mémoire secondaire

(7)

2.1.1Modèle simple d'estimation du coût d'une entrée/sortie (transfert) sur disque

 Temps de transfert (entrée/sortie) de n octets

TempsESDisque(n) = TempsPosDébut + TempsTrans (n)

TempsPosDébut = TempsDépBras + TempsRotation (10ms)

TempsDépBras :

6-25 ms (6ms)

TempsRotation :

4.18 à 8.35 ms = 60 à 120 tours/sec (4ms)

TempsTrans(n) = n / TauxTransVrac

TauxTransVrac = NombreOctetsPiste / TempsRotationComplète (2M/sec)

ex: TempsTrans(2K) = 2K / 2M/sec = 1ms

ex: TempsESDisque(2K) = 10ms + 1ms = 11ms

Minimiser le nombre d'entrées/sorties en mémoire

secondaire

(8)

Importance de la contiguïté physique

 Ex: transfert de 2000 secteurs de 512 octets (1M)

– Secteurs consécutifs

TempsESDisque(1M) = 10ms + 500ms = 510ms

– Secteurs dispersés aléatoirement

TempsESDisque(un secteur) = 10ms + 0.25ms = 10.25ms

Total = 2000  10.25 = 20500 ms = 20.5 secs

 Effet de grappe (clustering)

regrouper physiquement selon patrons d ’accès

logiques

(9)

2.1.2 Contrôleur de disque

Contrôleur de disque (disk controller )

processeur simple et indépendant de l'unité centrale de traitement

DMA (« Direct Memory Access »)

 Interface du contrôleur :

type de transfert (lecture ou écriture)

adresse du premier secteur

nombre de secteurs à transférer

adresse du tampon

Standards pour PC

IDE/ATA, SCSI

(10)

2.1.3 Autres types d'unité de mémoire secondaire

Type d'unité Temps de positionnement (ms)

Taux de

transfert en vrac (M/ sec)

Capacité

(M) Coût ($/ M) Particularité

Mémoire vive 10

-6

-10

-5

10

2

-10

3

0-10

4

10-10

2

Volatile

Disque 1-10 1-10

2

10-10

4

10

-1

-1 Non amovible

Disque

amovible 10-10

2

1 10-10

3

1-10

Disquette 10

2

10

-1

1 10

-1

Disque

Optique 10

2

10

-1

-1 10

2

-10

3

10

-2

-10

-1

Cédérom non modifiable

Bande

magnétique 10

6

1-10 10

2

-10

6

10

-3

-10

-2

Accès direct prohibitif

Tableau comparatif des types de

mémoire

(11)

2.2 Fichiers et répertoires

Système de gestion de fichier (SGF, file system)

– abstraction des mémoires secondaires sous forme d'un ensemble de fichiers

Hiérarchie des répertoires (directory hierarchy) ou répertoire

– structure d ’arbre

dossier, catalogue

(12)

Cas de UNIX

Chemin du fichier (“ file path ”)

– /usr/degas/travaux/fibonacci.cpp

u s r b in

/

d e v

m o n e t d e g a s

t r a v a u x

c v . t x t

Volume racine

(13)

Descripteur de fichier (file descriptor )

 Ensemble d ’attributs du fichier

– Nom du fichier

– Type de fichier

– Propriétaire

– Date de création

– Date de dernière modification

– Paramètres de protection

– Taille actuelle

– Taille maximale

– Référence à la table d'allocation des fichiers

(14)

Descripteur de répertoire

 Ensemble d ’attributs du répertoire

– Nom du répertoire

– Type de répertoire

– Propriétaire

– Date de création

– Paramètres de protection

– Taille

– Collection de références aux sous-répertoires

– Collection de références aux fichiers sous ce

répertoire

(15)

Unité de mémoire secondaire logique /physique

Partition du disque (“ disk partition ”)

– découper un disque en plusieurs partitions

– unité logique de mémoire secondaire

Descripteur de disque

– partitions, hiérarchie des répertoires et fichiers

– maintenu sur disque

(16)

Services de base

Ouvrir (IN cheminFichier, OUT idInterne,…)

SGF crée une entrée dans la table des fichiers ouverts

idInterne : référence à la table des fichiers ouverts

mode d ’accès : lecture/écriture, accès

direct/séquentiel, création ou fichier existe déjà ,…

allocation d ’espace

exceptions

Fermer (IN idInterne, …)

libère l ’entrée de la table des fichiers ouverts

évacuer tampons

(17)

2.3 Organisation par bloc

 Fichier ~ tableau de blocs (taille variable)

LireBloc(IN idInterne, IN numéroBloc, OUT tamponApplication,…)

ÉcrireBloc(IN idInterne, IN numéroBloc, IN tamponApplication,…) 0

1 2

n-1

#bloc

(18)

Bloc, page ou

enregistrement physique

 Ensemble de bits d'une taille fixe

– habituellement n secteurs (1, 2, 4, 8,…)

– traduction bloc => secteur

 Unité de base de transfert de données

 Unité minimale d'allocation d'espace

(19)

Allocation des secteurs aux blocs de Superbit

Allocation par cylindre pour minimiser déplacement du bras

noBloc noSecteurRelatif noPiste noSurface noSecteur

0 0-4 0 0 0-4

1 5-9 0 0 5-9

2 10-14 0 0 10-14

3 15-19 0 0 15-19

... ... ... ... ...

9 45-49 0 0 45-49

10 50-54 0 1 0-4

11 55-59 0 1 5-9

... ... ... ... ...

20 100-104 0 2 0-4

21 105-109 0 2 5-9

... ... ... ... ...

190 950-954 0 19 0-4

191 955-959 0 19 5-9

... ... ... ... ...

200 1000-1004 1 0 0-4

201 1005-1009 1 0 5-9

... ... ... ... ...

Paramètre Valeur

nbSurfaces 20

nbCylindres 1000

nbSecteursParPiste 50

tailleSecteur 512

nbSecteursParBloc 5

(20)

Calcul d ’adresse relative du premier secteur d ’un bloc

noSecteurRelatif (105)

– = noBloc (21)  nbSecteursParBloc (5)

noBloc noSecteurRelatif noPiste noSurface noSecteur

0 0-4 0 0 0-4

1 5-9 0 0 5-9

2 10-14 0 0 10-14

3 15-19 0 0 15-19

... ... ... ... ...

9 45-49 0 0 45-49

10 50-54 0 1 0-4

11 55-59 0 1 5-9

... ... ... ... ...

20 100-104 0 2 0-4

21 105-109 0 2 5-9

... ... ... ... ...

190 950-954 0 19 0-4

191 955-959 0 19 5-9

... ... ... ... ...

200 1000-1004 1 0 0-4

201 1005-1009 1 0 5-9

... ... ... ... ...

Paramètre Valeur

nbSurfaces 20

nbCylindres 1000

nbSecteursParPiste 50

tailleSecteur 512

nbSecteursParBloc 5

(21)

Calcul de l ’adresse physique du premier secteur du bloc

noCylindre (0) = noSecteurRelatif (105) DIV nbSecteursParCylindre (1000)

où nbSecteursParCylindre (1000) = nbSecteursParPiste (50)  nbSurfaces (20)

noSurface (2) = (noSecteurRelatif (105) MOD nbSecteursParCylindre (1000)) DIV nbSecteursParPiste (50)

noSecteur (5) = (noSecteurRelatif (105) MOD nbSecteursParCylindre (1000)) MOD nbSecteursParPiste (50)

noBloc noSecteurRelatif noCylindre noSurface noSecteur

0 0-4 0 0 0-4

1 5-9 0 0 5-9

2 10-14 0 0 10-14

3 15-19 0 0 15-19

... ... ... ... ...

9 45-49 0 0 45-49

10 50-54 0 1 0-4

11 55-59 0 1 5-9

... ... ... ... ...

20 100-104 0 2 0-4

21 105-109 0 2 5-9

... ... ... ... ...

190 950-954 0 19 0-4

191 955-959 0 19 5-9

... ... ... ... ...

200 1000-1004 1 0 0-4

201 1005-1009 1 0 5-9

... ... ... ... ...

Paramètre Valeur

nbSurfaces 20

nbCylindres 1000

nbSecteursParPiste 50

tailleSecteur 512

nbSecteursParBloc 5

(22)

2.3.1 Allocation d'espace contigu au fichier

Allocation en vrac à la création du fichier

Croissance de la taille du fichier ???

Fragmentation externe

F i c h i e r A F i c h i e r B F i c h i e r C F i c h i e r D

Mieuxajusté

F i c h i e r A F i c h i e r B F i c h i e r C F i c h i e r D

Premierajusté

(23)

2.3.2 Allocation dynamique d'espace par granule

Granule d'allocation d'espace (segment, cluster, extent)

unité d'allocation d'espace

ensemble de blocs consécutifs

Fragmentation du fichier (“file fragmentation ”)

A B C

D A B B B C D B

A B C

D D A B B B B C

Défragmentation

(24)

Table d'allocation des

fichiers ( “fille allocation table - FAT ”)

B lo c 0 d u F i c h ie r A B lo c 1 d u F i c h ie r A B lo c 0 d u F i c h ie r B B lo c 1 d u F i c h ie r B

B l o c li b r e B l o c li b r e B lo c 5 d u F i c h ie r A B lo c 0 d u F i c h ie r C B lo c 1 d u F i c h ie r C

B l o c li b r e 1 0

1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 N u m é r o d e b lo c

d u d i s q u e

B lo c 2 d u F i c h ie r A B lo c 3 d u F i c h ie r A B lo c 4 d u F i c h ie r A 2 0

2 1 2 2

1 1

N o m d u f ic h i e r

N u m é r o d u p r e m i e r b l o c

A 1 0

B 1 2

C 1 7 2 0

1 3 2 3

N i l 1 0 N i l

2 1 2 2 1 6

D i s q u e o r g a n i s é p a r b l o c T a b l e d ' a l l o c a t i o n

d e s fic h i e r s

1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2

 Ex: granule = 1 bloc

 Style DOS

 Allocation d ’espace chaînée

 Chargée en mémoire centrale

(25)

Organisations plus

sophistiquées pour la table d ’allocation

 UNIX

– arborescence de I-node

Stratégie des frères jumeaux (“buddy system”)

– granules d'allocation d'espace de taille 2

n

– fusion/division de granules voisins

(jumeaux)

(26)

Couches de base

Niveau 1 Niveau 2 Opérations sur blocs

Niveau 3 Opérations sur hiérarchie de répertoires et fichiers organisés par

blocs

(27)

2.3.3Optimisation du déplacement du bras de lecture/écriture

Algorithme de l'ascenseur (“SCAN”)

Algorithme de balayage circulaire (“ C-SCAN ”)

Temps

Temps

(28)

2.3.4 Taille optimale de bloc

 Grande taille =>

– effet de grappe

– données transférées inutilement

– gaspillage d ’espace pour petits fichiers

 Compromis

– 512 octets à 4K pour applications traditionnelles

– >> pour entrepôt de données, multimédia

(29)

2.3.5 Antémémoire (cache memory )

 Mémoire intermédiaire

 Données fréquemment utilisées

 Réduire le temps moyen

Antémémoire disque (disk cache)

– réalisée en mémoire centrale afin

d'accélérer les entrées/sorties sur un

disque

(30)

Principe de l ’ antémémoire

B l o c 0

B l o c 5 B l o c 1

B l o c 6 B l o c 2

B l o c 7 B l o c 3

B l o c 8 B l o c 4

B l o c 9

T a m p o n s y s t è m e

B l o c 4 1 e r

T a m p o n p r o c e s s u s # 1

B l o c 4 2 e

T a m p o n p r o c e s s u s # 2

B l o c 4

3 e

(31)

Antémémoire

Gestionnaire de l'antémémoire disque (“disk cache manager ”)

D is q u e

2 0 B l o c 4

B l o c 2 0

B l o c 7 0

B l o c 5 0

B l o c 0

B l o c 5 B l o c 1

B l o c 6 B l o c 2

B l o c 7 B l o c 3

B l o c 8 B l o c 4

B l o c 9

n o B l o c

4 5 7

S

R é p e r t o i r e d e

l 'a n t é m é m o ir e A n t é m é m o i r e

M é m o i r e p r im a i r e

T a m p o n

(32)

Écriture en antémémoire

2 0 B l o c 4

B l o c 2 ' 1

B l o c 7 0

B l o c 5 0

B l o c 0

B l o c 5 B l o c 1

B l o c 6 B l o c 2

B l o c 7 B l o c 3

B l o c 8 B l o c 4

B l o c 9

n o B lo c

4 5 7

S

R é p e r t o ir e d e

l 'a n t é m é m o ir e A n t é m é m o i r e

T a m p o n p r o c e s s u s # 1

B l o c 2 '

T a m p o n

(33)

Sélection d ’une victime

Processus #1: lire Bloc 3 et antémémoire pleine !

Choix d ’une victime pour remplacement: Bloc 2 ’ qui est sale (s = 1)

Évacuation de la victime

2 0 B l o c 4

B l o c 2 ' 1

B l o c 7 0

B l o c 5 0

B l o c 0

B l o c 5 B l o c 1

B l o c 6 B l o c 2 '

B l o c 7 B l o c 3

B l o c 8 B l o c 4

B l o c 9

n o B l o c

4 5 7

S

R é p e r t o i r e d e

l'a n t é m é m o i r e A n t é m é m o ir e

T a m p o n p r o c e s s u s # 1

T a m p o n

1er

(34)

Remplacement de la victime

3 0 B l o c 4

B l o c 3 0

B l o c 7 0

B l o c 5 0

B l o c 0

B l o c 5 B l o c 1

B l o c 6 B l o c 2 '

B l o c 7 B l o c 3

B l o c 8 B l o c 4

B l o c 9

n o B lo c

4 5 7

S

R é p e r t o ir e d e

l'a n t é m é m o ir e A n t é m é m o ir e

T a m p o n p r o c e s s u s # 1

B l o c 3

T a m p o n

2 e

3 e

(35)

Stratégie de remplacement

 Maximiser la probabilité d ’accès en antémémoire

 Remplacer le tampon le moins récemment utilisé (Least Recently Used (LRU))

 Remplacer le tampon le moins

fréquemment utilisé (Least Frequently

Used (LFU))

(36)

Hiérarchie de mémoire

Hierarchical Storage Management

– migration automatique entre niveaux

– contrôlée par paramètres de configuration

Primaire

Secondaire

Tertiaire

Capacité Vitesse

d'accès Coût

(37)

2.4Organisation par enregistrements

Enregistrement (record ), champ (field )

TYPE PlantCatalogue = ENREGISTREMENT

noCatalogue : ENTIER;

description : CHAINE[30];

prixUnitaire : REEL;

FIN.

noCatalogue description prixUnitaire

10 Cèdre en boule 10.99

20 Sapin 12.99

40 Epinette bleue 25.99

50 Chêne 22.99

60 Erable argenté 15.99

70 Herbe à puce 10.99

80 Poirier 26.99

81 Catalpa 25.99

90 Pommier 25.99

(38)

Niveau 4 : enregistrement

N i v e a u 1 N i v e a u 2 O p é r a t i o n s s u r b l o c s

N i v e a u 3

O p é r a t i o n s s u r h i é r a r c h i e d e r é p e r t o i r e s e t f i c h i e r s o r g a n i s é s p a r

b l o c s N i v e a u 4

O p é r a t i o n s s u r h i é r a r c h i e d e r é p e r t o i r e s e t f i c h i e r s o r g a n i s é s p a r

e n r e g i s t r e m e n t s

(39)

Méthode et chemin d ’accès

Méthode d'accès (“ access method

”) ou mode d'accès

– manière d'accéder d'un point de vue logique

 sériel, séquentiel, sélection par clé, par intervalle

Chemin d'accès (“ access path ”)

– chemin dans les structures de données

(40)

Méthode d'accès sériel

 Patron d ’itérateur

 Ordre => séquentiel

PremierEnregistrement ( TypeEnregistrement , TamponEnregistrement , …) TANT QUE pas la fin de la collection

traitement d'un enregistrement

EnregistrementSuivant ( TypeEnregistrement , TamponEnregistrement ,…)

FIN TANT QUE

(41)

Méthode d'accès par sélection basée sur un identifiant d'enregistrement

 Identifiant d ’enregistrement (IDE)

– accès rapide

SélectionnerEnregistrement ( IDE , TamponEnregistrement ) Entrée : IDE

Sortie : TamponEnregistrement

CréerEnregistrement ( IDE , TamponEnregistrement ) Entrée : TamponEnregistrement

IDE sera une entrée ou une sortie selon le cas ModifierEnregistrement ( IDE , TamponEnregistrement )

Entrée : IDE, TamponEnregistrement

SupprimerEnregistrement ( IDE )

(42)

Méthode d'accès par sélection basée sur une clé d'accès

Clé d'accès (“ access key ”)

– champ ou combinaison de champs utilisés comme critère de sélection

Clé simple/composée

Clé unique (“ unique key ”)

Sélection par intervalle

Méthode d ’accès multidimensionnelle

(43)

2.4.1 Organisation primaire et secondaire

Organisation primaire (primary organization)

placement des enregistrements

sériel, séquentiel, index primaire, hachage, grappe, ...

gestion des IDE

Organisation secondaire (secondary organization )

liste , arbre, index secondaire, etc.

référence aux IDE

(44)

2.4.2 Fichier homogène (homogeneous) ou hétérogène (heterogeneous)

2.4.3 Niveau 4 : SGF ou SGBD

(45)

2.4.4 Alternatives de réalisation de l'IDE

idFichier, NER

l'adressage relatif

(e.g. organisation “relative” de NON STOP SQL)

l'indexage

 (e.g. organisation “key sequenced” sur “SYSKEY” de NON STOP SQL)

idFfichier, #bloc, #séquence (e.g. DBKEY DBMS-32 (CODASYL), ROWID ORACLE).

idFichier, #bloc, #octet (e.g. “entry-sequenced” de NON STOP SQL)

idFichier, clé unique (e.g. “key-sequenced” de NON STOP SQL)

IDE logique

(e.g. OID dans les SGBDO)

(46)

2.4.5 Représentation interne des enregistrements

 Enregistrements => blocs

 Séquence consécutive d ’octets

 Taille fixe ou variable

(47)

2.4.5.1Enregistrements de taille fixe

 Chaque champ => nombre fixe d ’octets

 Remplissage par caractère neutre

T o t a l : 4 2 o c t e t s d e s c r ip t io n

C H A I N E [ 3 0 ]

u n o c t e t ( A S C I I 8 b it s ) p a r c a r a c t è r e ( r e m p lis s a g e a v e c e s p a c e s ) ( 3 0 o c t e t s )

p r ix U n it a ir e R E E L

p o in t - f lo t t a n t 6 4 b it s ( 8 o c t e t s ) n o C a t a lo g u e

E N T I E R b in a ir e 3 2 b it s

( 4 o c t e t s )

(48)

2.4.5.2Enregistrements de taille variable

 Frontières de champs et d ’enregistrements

indicateur de taille en entête de chaque champ (descripteur de champ)

délimiteur (code réservé)

index en entête de l'enregistrement (descripteur d'enregistrement)

d e s c r ip t io n p r ix U n it a ir e

n o C a t a lo g u e

t a ille N o C a t a lo g u e t a ille D e s c r ip t io n t a ille P r ix U n it a ir e

d e s c r ip t io n p r ix U n it a ir e

n o C a t a lo g u e

(49)

2.5 Allocation sérielle d'espace pour les enregistrements de taille fixe et

l'adressage relatif

Allocation d'espace sérielle (serial space allocation)

avec/sans chevauchement de bloc

Facteur de blocage (FB, blocking factor)

nombre d'enregistrements par bloc

Numéro de bloc = NER / FB

Position relative dans le bloc =

NER MOD FB  taille d'un enregistrement

NER = champ ?

IDE = idFichier, NER

Gros enregistrement : chevauchement

N u m é r o d e b l o c

N u m é r o d 'e n r e g i s t r e m e n t

r e l a t i f

0

1

2

0 1 2 3 4

5 6 7 8 9

1 0 1 1 1 2 1 3

E s p a c e p e r d u

(50)

Liste des espaces libres (free list)

P o i n t e u r s u r

p r e m i e r e s p a c e l i b r e

E s p a c e l i b r e

E s p a c e l i b r e

E s p a c e l i b r e E s p a c e l i b r e

E s p a c e l i b r e

0 1 2 3 4

5 6 7 8 9

1 0 1 1 1 2 1 3

B l o c r é s e r v é à

l ' e n t ê t e d e f i c h i e r

(51)

2.6 Allocation d'espace pour les enregistrements de taille variable

 Analogue à l ’allocation d ’espace pour les fichiers

 Granularité plus fine

(52)

2.6.1 Allocation sérielle pour enregistrements de taille variable

 Gestion d ’espace libre

– ne pas récupérer

– liste libre

mieux ajusté

premier ajusté

Fragmentation interne au fichier

 IDE = idFichier, #bloc, #octet

– enregistrement cloué

0 N u m é r o

d e b l o c

1

2

(53)

2.6.2 Récupération d'espace et adressage structuré par bloc

 IDE = idFichier, #bloc, #séquence ( clouage partiel)

Suppression de #2

3 Espace libre Enr. #3 Enr. #2 Enr. #1

Taille de l'index des positions

1 2 3

Index des positions des enregistrements

3 Espace libre Enr. #3 Enr. #1

(54)

2.6.3Gestion des débordements

 Même IDE

 Oracle : PCTFREE

B l o c d 'a n c r a g e

B l o c d e d é b o r d e m e n t

B lo c v i r t u e l d e t a i ll e v a r i a b le

0 N u m é r o

d e b l o c

1

2

(55)

Découpage de l ’enregistrement

2 e m o r c e a u B lo c

d 'a n c r a g e

B l o c d e d é b o r d e m e n t

0 N u m é r o

d e b l o c

1

2

1 e r m o r c e a u

Cas particulier :

(56)

2.6.4 Adressage logique

 IDE découplé de sa position physique

 Souplesse d ’allocation d ’espace

Ex: OID dans les BD objet

M é c a n i s m e d e t r a d u c t i o n ( e . g . i n d e x ) I D E

l o g i q u e

a d r e s s e p h y s i q u e

(57)

2.6.5 Découpage en morceaux de taille fixe

 Découper un enregistrement de taille variable en morceaux de taille fixe

 Allocation des morceaux par

adressage relatif

(58)

2.6.6Allocation d'espace pour gros enregistrements de taille variable

 Allocation chevauchante

– blocs consécutifs

– diminuer le nombre de positionnements

 Réalisation de l ’IDE

– adressage logique

– adresse de suivi

(59)

2.6.7Allocation hybride pour les enregistrements de taille variable

 Organisations spécialisées selon la taille des champs

– un mécanisme pour petits champs

– un autre pour les gros champs

référence externe (e.g. chemin, URL)

(60)

2.7Allocation sérielle par grappe homogène

Grappe (cluster)

ensemble d ’enregistrements regroupés physiquement

Clé de la grappe (cluster key)

critère de regroupement

ensemble de champs

Identifiant de grappe (IDG, cluster identifier)

IDG = #bloc, valeur de la clé de grappe

(61)

Exemple : insertion avec idMembre = 2

idMembre datePrêt idExemplaire

2 15/ 08/ 2000 75

3 16/ 08/ 2000 200

1 17/ 08/ 2000 100

4 18/ 08/ 2000 400

2 19/ 08/ 2000 50

1 20/ 08/ 2000 300

3 21/ 08/ 2000 150

2 1 5 / 0 8 / 2 0 0 0 7 5

0

3 1 6 / 0 8 / 2 0 0 0 2 0 0

1 1 7 / 0 8 / 2 0 0 0 1 0 0

4 1 8 / 0 8 / 2 0 0 0 4 0 0

N u m é r o

d e b l o c I D G = # b l o c , c l é d e g r a p p e 0 , 2

0 , 3 0 , 1 0 , 4

0

3 1 6 / 0 8 / 2 0 0 0 2 0 0 1 1 7 / 0 8 / 2 0 0 0 1 0 0 4 1 8 / 0 8 / 2 0 0 0 4 0 0 N u m é r o

d e b l o c I D G

0 , 3 0 , 1 0 , 4

2 1 5 / 0 8 / 2 0 0 0 7 5

2 1 9 / 0 8 / 2 0 0 0 5 0

0 , 2

(62)

Exemple : insertion avec idMembre = 1

0

3 1 6 / 0 8 / 2 0 0 0 2 0 0 1 1 7 / 0 8 / 2 0 0 0 1 0 0 4 1 8 / 0 8 / 2 0 0 0 4 0 0 N u m é r o

d e b l o c I D G

0 , 3 0 , 1 0 , 4

2 1 5 / 0 8 / 2 0 0 0 7 5

2 1 9 / 0 8 / 2 0 0 0 5 0

0 , 2

0

3 1 6 / 0 8 / 2 0 0 0 2 0 0

1 1 7 / 0 8 / 2 0 0 0 1 0 0

N u m é r o

d e b l o c I D G

0 , 3

0 , 1

2 1 5 / 0 8 / 2 0 0 0 7 5

2 1 9 / 0 8 / 2 0 0 0 5 0

0 , 2

1 2 0 / 0 8 / 2 0 0 0 3 0 0

(63)

Exemple : insertion avec idMembre = 3

0

3 1 6 / 0 8 / 2 0 0 0 2 0 0

1 1 7 / 0 8 / 2 0 0 0 1 0 0

N u m é r o

d e b l o c I D G

0 , 3

0 , 4 0 , 1

2 1 5 / 0 8 / 2 0 0 0 7 5

2 1 9 / 0 8 / 2 0 0 0 5 0

0 , 2

4 1 8 / 0 8 / 2 0 0 0 4 0 0

1 2 0 / 0 8 / 2 0 0 0 3 0 0

0

N u m é r o

d e b l o c I D G

0 , 1

0 , 4

2 1 5 / 0 8 / 2 0 0 0 7 5

2 1 9 / 0 8 / 2 0 0 0 5 0

0 , 2

4 1 8 / 0 8 / 2 0 0 0 4 0 0 3 1 6 / 0 8 / 2 0 0 0 2 0 0

1 1 7 / 0 8 / 2 0 0 0 1 0 0

1 2 0 / 0 8 / 2 0 0 0 3 0 0

3 2 1 / 0 8 / 2 0 0 0 1 5 0

0 , 3

(64)

2.7.1 Réservation d'espace pour les grappes

 Limiter débordements

– ex: SIZE (Cluster Oracle)

2 1 5 / 0 8 / 2 0 0 0 7 5

0

3 1 6 / 0 8 / 2 0 0 0 2 0 0

1 1 7 / 0 8 / 2 0 0 0 1 0 0

4 1 8 / 0 8 / 2 0 0 0 4 0 0

N u m é r o

d e b l o c I D G = # b l o c , c l é d e g r a p p e 0 , 2

0 , 3 0 , 1

0 , 4

1

0

N u m é r o

d e b l o c I D G

0 , 2

0 , 3

1 , 1

4 1 8 / 0 8 / 2 0 0 0 4 0 0 1 1 7 / 0 8 / 2 0 0 0 1 0 0

2 1 5 / 0 8 / 2 0 0 0 7 5

3 1 6 / 0 8 / 2 0 0 0 2 0 0

1 , 4

(65)

Résultat final

1 0

Numéro

de bloc IDG

0, 2

0, 3

1, 1

1 20/08/2000 300

4 18/08/2000 400

1 17/08/2000 100

2 15/08/2000 75

2 19/08/2000 50

3 16/08/2000 200

3 21/08/2000 150

4, 1

Sans réservation d ’espace

0 N u m é r o

d e b l o c I D G

0 , 1

0 , 4

2 1 5 / 0 8 / 2 0 0 0 7 5

2 1 9 / 0 8 / 2 0 0 0 5 0

0 , 2

4 1 8 / 0 8 / 2 0 0 0 4 0 0 3 1 6 / 0 8 / 2 0 0 0 2 0 0

1 1 7 / 0 8 / 2 0 0 0 1 0 0 1 2 0 / 0 8 / 2 0 0 0 3 0 0

3 2 1 / 0 8 / 2 0 0 0 1 5 0 0 , 3

(66)

2.8 Fichiers séquentiels

 Enregistrements ordonnés (clé de tri)

 Mise à jour difficile

N u m é r o d e b l o c

N u m é r o d 'e n r e g i s t r e m e n t

r e l a t i f

0

1

0 1 2 3 4

5 6 7 8 9

1 0 C è d r e e n b o u l e 1 0 . 9 9

2 0 4 0 5 0 6 0

S a p i n E p i n e t t e b l e u e

C h ê n e E r a b l e a r g e n t é

1 2 . 9 9 2 5 . 9 9 2 2 . 9 9 1 5 . 9 9

1 5 . 9 9 2 5 . 0 0 2 5 . 9 9 2 6 . 9 9

G é n é v r i e r P o m m i e r

C a t a l p a P o i r i e r

9 5 9 0 8 1 8 0

1 0 . 9 9 H e r b e à p u c e

7 0

Références

Documents relatifs

Client.noClient nomClient noTéléphone noCommande dateCommande Commande..

CREATE VIEW Article (noArticle, description, prixUnitaire, quantitéEnStock)AS SELECT C.noArticle, description, prixUnitaire, quantitéEnStock FROM Catalogue AS C, Inventaire AS

(noCLIENT INTEGER NOT NULL, nomClient VARCHAR(15) NOT NULL, noTéléphone VARCHAR(15) NOT NULL, PRIMARY KEY (noCLIENT)... Clé

– Deux opérations de lecture ou d'écriture dans deux transactions différentes sont non permutables si elles portent sur la même donnée et au moins une des deux est

titre nomProducteur nomActeur La vie est belle Elda Ferri Roberto Benigni La vie est belle Elda Ferri Nicoletta Braschi La vie est belle Elda Ferri Giorgio Cantarini La vie est

Schémas (LDD), modules codés et

 Exigence de performance : Le temps d'attente de la validation de l'identificateur de l'utilisateur et de la vérification des conditions requises pour un

Lors d'un prêt ou d'un retour , l' identificateur d'utilisateur et l' identificateur de l'exemplaire peuvent être saisis en utilisant un lecteur optique ou manuellement...