Vous êtes sur la page 1sur 24

Cours Bases de donnes

Stockage des donnes, indexation, optimisation des requtes


3 anne (MISI)

Stockage, indexation, optimisation


1. 2.
Stockage des donnes

1.1. 1.2. 2.1. 2.2. 2.3. 2.4. 2.5.

Supports physiques Techniques de stockage Indexation de chiers Larbre-B Hachage Les index bitmap Structures de donnes multidimensionnelles

Structures de donnes

Antoine Cornujols
www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr

3.

valuation des requtes

3.1. 3.2. 3.3.

Algorithmes de base Jointures Compilation dune requte et optimisation

Stockage, indexation, optimisation


1. 2.
Stockage des donnes

Organisation des donnes


Conception physique de la base
Les bases de donnes sont gnralement trop volumineuses pour tenir entirement en mmoire centrale. La conception physique de la base de donnes et le choix des solutions techniques est la charge des concepteurs, des administrateurs et des dveloppeurs du SGBD. Chaque fois quune portion de donnes est ncessaire, elle doit tre localise sur le disque ( lintrieur dun segment), copie en mmoire centrale pour tre traite puis rcrite sur le disque si des modifications ont t apportes. Les donnes stockes sur le disque sont organises en fichiers denregistrements. Il faut pouvoir les localiser rapidement et minimiser le nombre daccs car la mmoire secondaire est lente.
4

1.1. 1.2. 2.1. 2.2. 2.3. 2.4. 2.5.

Supports physiques Techniques de stockage Indexation de chiers Larbre-B Hachage Les index bitmap Structures de donnes multidimensionnelles

Structures de donnes

3.

valuation des requtes

3.1. 3.2. 3.3.

Algorithmes de base Jointures Compilation dune requte et optimisation

Organisation des donnes


Conception physique de la base

Organisation des donnes


Conception physique de la base

Segments et pages
Les fichiers sont dcomposs en pages
Portions de taille fixe dinformations contigus dans le fichier Unit dchange entre le disque et la mmoire principale

Rduction de la latence
Stocker les pages contenant des informations corrles sur des segments proches physiquement sur le disque
Justification : si le SGBD accde x, il est probable quil va accder ensuite des donnes relies x

Le disque est divis en segments [physique] (de la taille dune page [logique])
Une page [logique] peut tre stocke dans nimporte quel bloc [physique]

Les demandes des applications (e.g. SGBD) pour lire un item sont satisfaites par :
la lecture de la page contenant litem dans le buffer du SGBD le transfert de litem du buffer vers lapplication

Compromis sur la taille des pages


Grande taille -> les donnes lies x ont des chances dtre stockes sur la mme page, do rduction des accs aux pages Petite taille -> rduit le temps de transfert et rduit la taille du buffer en mmoire centrale Taille typique : 4096 octets
6

Les demandes du SGBD pour modifier un item sont satisfaites par :


la lecture de la page contenant litem dans le buffer du SGBD (si pas encore l) la modification de litem dans la mmoire du SGBD la copie de la page du buffer sur le disque
5

Organisation des donnes


Conception physique de la base

Organisation des donnes


Conception physique de la base

Rduction du nombre de transferts de pages


Conserver en cache les pages rcemment traites
Justification : les demandes de pages peuvent alors tre satisfaites partir de la mmoire cache plutt qu partir du disque (beaucoup plus rapide) On purge la mmoire cache lorsquelle est pleine

Accs aux donnes par une mmoire cache

DBMS Page transfer Application cache

Item transfer
7 8

block Page frames

Organisation des donnes


Conception physique de la base

Organisation des donnes


Conception physique de la base

Les systmes RAID


Un systme RAID (Redundant Array of Independent Disks) est un ensemble de disques configurs de telle manire quils apparaissent comme un seul disque avec :
Une vitesse de transfert accrue
Des demandes des disques diffrents peuvent tre traites indpendamment Si une requte concerne des donnes stockes sparment sur plusieurs disques, les donnes peuvent tre transfres en parallle

retenir
Ce sont les temps daccs relatifs aux mmoires primaires et secondaires et les capacits mmoire qui motivent les techniques dindexation dveloppes Disque dur : Temps de recherche ! 45 60 ms Temps de lecture ! 1 2 ms Mmoire centrale : Temps de recherche ! 10-6 s Temps de lecture ! 10-6 s
10

Une plus grande fiabilit


Les donnes sont stockes de manire redondante Si un disque tombe en panne, le systme peut continuer oprer

Organisation des donnes


Oprations sur les chiers
Les oprations sur les fichiers concernent : les extractions les mises--jour

Organisation des donnes


Oprations sur les chiers
Oprations couramment disponibles dans les SGBD : Open. Ouvre le fichier pour lecture ou criture. Reset. Positionne le pointeur de fichier dun fichier ouvert en dbut de fichier. Find (ou Locate). Recherche le premier enregistrement qui satisfait la condition de recherche et le met dans le buffer. Read ou Get. Copie lenregistrement contenu dans le buffer dans la variable de programme du programme utilisateur. FindNext. Recherche le prochain enregistrement qui satisfait la condition de recherche et le met dans le buffer. Delete. Efface lenregistrement courant et met jour le fichier disque. Modify. Modifie la valeur dun ou plusieurs champs de lenregistrement courant et met jour le fichier disque. Insert. Insre un nouvel enregistrement dans le fichier.

Ces oprations impliquent des slections en fonction de conditions de slection ou de filtrage. Il existe des : conditions simples (e.g. slection sur un attribut) conditions complexes (e.g. slection sur plusieurs attributs) Une condition complexe doit tre dcompose en conditions simples.

11

Close. Ferme laccs au fichier en vidant les buffers et en librant les ressources.
12

Organisation des donnes


Oprations sur les chiers

Stockage, indexation, optimisation


1. 2.
Stockage des donnes

Optimisation
Une organisation de fichier russie devrait pouvoir excuter efficacement les oprations que nous pensons appliquer frquemment au fichier. Exemples : Si condition de recherche frquente sur le numro de Scurit Sociale, il faut favoriser la localisation par rapport la valeur de NoSS. ==> Soit trier par rapport NoSS, soit dfinir un index sur NoSS. Si, en plus, recherche demploys par service, il faudrait stocker tous les enregistrements des employs dont la valeur de SERVICE est identique de faon contigu. Mais cet arrangement est en conflit avec les enregistrements classs sur la valeur de NoSS. ==> Il faut trouver un compromis : optimisation
13

1.1. 1.2. 2.1. 2.2. 2.3. 2.4. 2.5.

Supports physiques Techniques de stockage Indexation de chiers Larbre-B Hachage Les index bitmap Structures de donnes multidimensionnelles

Structures de donnes

3.

valuation des requtes

3.1. 3.2. 3.3.

Algorithmes de base Jointures Compilation dune requte et optimisation

Organisation des donnes


Conception logique de la base
Il existe plusieurs organisations primaires de fichiers qui dterminent la faon dont les enregistrements sont placs physiquement sur le disque, et donc la faon dont il est possible daccder ces enregistrements. Dans un fichier plat (ou fichier non ordonn) les enregistrements sont placs sur le disque sans observer dordre particulier et les nouveaux enregistrements sont simplement ajouts en fin de fichier. Dans un fichier tri (ou fichier squentiel), ils sont ordonns en fonction de la valeur dun champ particulier nomm cl de tri. Un fichier hach utilise une fonction de hachage applique un champ particulier (la cl de hachage). Les arbres-B utilisent des structures arborescentes. Les organisations secondaires, ou structures daccs auxiliaire, permettent daccder rapidement aux enregistrements en se basant sur dautres champs que ceux qui ont servi pour lorganisation primaire. La plupart de ceux-ci sont des index.
15

Organisation des donnes


Fichiers non ordonns (heap files)
Type dorganisation le plus simple. Les enregistrements sont placs dans le fichier dans lordre de leur insertion. Insertions/modifications dun tuple : En moyenne F/2 pages sont lues (donc transfres) si la page existe dj F+1 pages transfres si la page nexiste pas Effacement dun tuple : En moyenne F/2 pages sont lues (donc transfres) si la page existe dj F pages transfres si la page nexiste pas

16

Organisation des donnes


Fichiers ordonns (sorted files)
Les enregistrements sont ordonns physiquement sur disque en fonction des valeurs dun de leurs champs (champ dordonnancement). Si le champ dordonnancement est la cl primaire, le champ est appel cl dordonnancement. Avantages : Les requtes bases sur le champ dordonnancement ont un cot moyen de log!F par recherche binaire Si les requtes concernent des tuples successifs, lutilisation de cache est trs efficace Aucun avantage si laccs se fait par dautres attributs que le champ dordonnancement.
17

Organisation des donnes


Fichiers ordonns (sorted files)
Problme (maintien de lordre): Cot moyen : F/2 lectures (pour trouver lendroit) + F/2 critures (afin de pousser les enregistrements suivants

Solution partielle 1 : Laisser des espaces libres

Solution partielle 2 : Utilisation de pages doverflow (et tri de temps en temps) Dsavantages
Les pages successives ne sont plus ncessairement stockes la suite Les pages overflow ne sont pas dans lordre
18

Organisation des donnes


Fichiers ordonns (sorted files)

Organisation des donnes


Utilisation dindex
Mcanisme permettant de localiser efficacement les tuples (ou pages) sans avoir scanner lensemble de la table (ou du fichier). Bas sur une ou plusieurs cls de recherche. Les entres dindex peuvent contenir : les donnes elles-mmes (lindex et le fichier sont dits intgrs) la valeur de la cl de recherche et le pointeur vers un enregistrement ayant cette valeur (lindex est dit non intgr).
page 2

Overflow
Pointer to overflow chain
These pages are Not overflown

3 111111 111111 111111 122222 123456 123456 232323 234567 234567 313131

MGT123 F1994 4.0 CS305 S1996 4.0 ECO101 F2000 3.0 REL211 F2000 2.0 CS315 S1997 4.0 EE101 S1998 3.0 MAT123 S1996 2.0 EE101 F1995 3.0 CS305 S1999 4.0

page 0

page 1

Les entres dindex sont stocke suivant les valeurs de la cl de recherche : des entres avec la mme cl de recherche sont stockes ensemble (hachage, Barbres)

MGT123 S1996 3.0 CS305 PSY 220 F1995 2.0 S2001 3.0

Pointer to next block in chain

7 111654 111233

page 3

les entres peuvent tre tries suivant la valeur de la cl (B-arbres)

Organisation des donnes


Utilisation dindex

Organisation des donnes


Structures de stockage

Search key value

S Location Mechanism

Index intgr
Fichiers non tris (heap files) Fichiers tris (sorted files) Fichiers intgrs contenant lindex et les enregistrements ISAM (Index Sequential Access Method) B+ arbres

Location mechanism facilitates finding index entry for S

S
Once index entry is found, the row can be directly accessed

Index entries

Hachage

S, .

Organisation des donnes


Structures de stockage

Organisation des donnes


Structures de stockage

Index intgr

Index avec une structure de stockage spare

Index file

Contient la table et lindex (principal)

Location mechanism Index entries

Dans ce cas, la structure de stockage peut tre un fichier ordonn ou non, mais souvent il sagit dun fichier intgr avec un autre index (sur une cl de recherche diffrente typiquement la cl primaire)

Storage structure for table

Organisation des donnes


Structures de stockage

Organisation des donnes


Structures de stockage

Les index de regroupement (clusters index)

Les index denses et les index clairsems


Index dense : Contient une entre dindex pour chacune des valeurs de la cl de recherche, et donc pour chacun des enregistrements, du fichier de donnes.

Index clairsem : Ne contient dentres dindex que pour certaines des valeurs sur lesquelles il y a des recherches effectuer.

Organisation des donnes


Structures de stockage

Les index denses et les index clairsems

8 Organisations unidimentionnelles : indexage et hachage


!

Id

Nom

Dept

Slection base sur une cl d'accs

recherche associative

Ex: Chercher le plant dont le noCatalogue = 10 Sriel

lire tout le fichier en pire cas O(N) O(log(N)) slection par intervalle ~O(1)

Indexage

Index clairsem et cluster tri sur Id

Hachage

Fichier de donnes tri sur les Id

Index dense et non cluster tri sur Nom


10/24/2006 Robert Godin. Tous droits rservs. 28

8.1
!

Indexage

Fichier squentiel index

Index et cl d'index (index key)


valeur de la cl =>adresse de(s) l'enregistrement

! ! ! !

Non dense Index plus petit Accs squentiel rapide Primaire

secondaire 10/24/2006

Index dense
Robert Godin. Tous droits rservs. 29 10/24/2006 Robert Godin. Tous droits rservs. 30

Index squentiel hirarchique

Organisation des donnes


Structures de stockage

Les index multi-niveau

!
! !

Ex: ISAM de IBM


Zone de dbordement Rorganisations chroniques

10/24/2006

Robert Godin. Tous droits rservs.

31

Cot de la recherche = nombre de niveaux Si facteur de branchement = b, cot = logbF + 1 E.g. : F= 10000 et b = 100, cot = 3

Organisation des donnes


Structures de stockage

Organisation des donnes


Structures de stockage

Index Sequential Access Method (ISAM)


Valeur de cl de recherche

Index Sequential Access Method (ISAM)


Index statique : Les niveaux de sparation ne changent pas Le nombre et la position des feuilles restent fixes Performant pour : les recherches dgalit les recherches dintervalles

Pointeur

Location mechanism

Organisation des donnes


Structures de stockage

Organisation des donnes


Structures de stockage

Les arbres B+
Soutiennent : les recherches dgalit et dintervalle les cls attributs multiples les recherches cl partielle

Les arbres B+

Dynamiques Le niveau feuille est une liste (trie) chane des entres dindex Les pointeurs entre frres permettent la recherche par intervalle, mme si allocation et d-allocation de feuilles (les feuilles nayant pas tre physiquement contigus)

8.1.1 Indexage par Arbre-B et variantes


!

8.1.2 Arbre-B+
! !

Arbre-B (B-arbre, B-tree)


forme d!index hirarchique quilibr O(log(N)) en pire cas division/fusion des blocs taux d!occupation minimum de 50%
Robert Godin. Tous droits rservs. 37

Hypothse initiale : cl simple et unique Nud = bloc

Roganisation dynamique

10/24/2006

10/24/2006

Robert Godin. Tous droits rservs.

38

Structure d!une feuille


!

Structure dun bloc interne


!

1. Remplie moiti au minimum FBMf 2. Cls tries : i < j Ci < Cj

FBMf/2

" n = nombre de cls "

1. Remplie moiti au minimum:

OrdreI /2

" n = nombre de pointeurs " OrdreI

! ! !

! !

2. Cls tries : i < j

Ci < Cj

3. Cls d'une feuille < cls de la suivante 4. Au mme niveau (quilibr)

3. Ci-1 <= Cls sous Pi-1 < Ci

! ! !

Ci : Cl Ri : reste de l'enregistrement ou rfrence S : Pointeur sur le bloc suivant dans la liste des feuilles Robert Godin. Tous droits rservs. 39 10/24/2006 Robert Godin. Tous droits rservs. 40

10/24/2006

8.1.2.1 Recherche dans un arbre-B+

Rechercher 43

10/24/2006

Robert Godin. Tous droits rservs.

41

10/24/2006

Robert Godin. Tous droits rservs.

42

8.1.2.2 Complexit de la recherche et hauteur de l'arbre


! FBMf
! ! ! ! ! !

Hauteur moyenne
!

= 20 et OrdreI = 200

H~1+

log

OrdreMoyenI

(N / FBf)

Hauteur = nombre de niveaux Hauteur 2 N ! 2 * 10 = 20 cls (pire cas) Hauteur 3 N ! 2 * 100 * 10 = 2 000 cls Hauteur 4 N ! 2 * 100 * 100 * 10 = 200 000 cls Hauteur 5 N ! 2 * 100 * 100 * 100 * 10 = 20 000 000 cls Hauteur H N ! 2* OrdreI /2 H-2 * FBMf/2 pour H !2 H " 2 + log

OrdreI /2

OrdreMoyenI = FBf =

2/3 OrdreI

2/3 FBMf

Index secondaire

(N /(2* FBMf/2 ))

FBf ~ OrdreMoyenI H= log


OrdreMoyenI

O(log N)
Robert Godin. Tous droits rservs. 43

(N)
44

10/24/2006

10/24/2006

Robert Godin. Tous droits rservs.

8.1.2.3
!

Insertion dans un arbre-B+

Dbordement et division
! ! ! !

FBM = 3, OrdreI = 4

Insertion de 30 Dbordement et la division du bloc 0 40 est promue Nouvelle racine

10/24/2006

Robert Godin. Tous droits rservs.

45

10/24/2006

Robert Godin. Tous droits rservs.

46

Insertion de 25

Insertion de 10
! !

Dbordement et la division du bloc 0 25 est promue

10/24/2006

Robert Godin. Tous droits rservs.

47

10/24/2006

Robert Godin. Tous droits rservs.

48

Insertion de 70

Insertion de 50
! !

Dbordement et la division du bloc 1 60 est promue

10/24/2006

Robert Godin. Tous droits rservs.

49

10/24/2006

Robert Godin. Tous droits rservs.

50

Insertion de 53

Insertion de 45
! ! !

Division du bloc 1 50 est promue Division de la racine

10/24/2006

Robert Godin. Tous droits rservs.

51

10/24/2006

Robert Godin. Tous droits rservs.

52

8.1.2.4 Suppression dans un arbre-B+


!

Premire cl du bloc et pas la premire feuille


!

Cas simple

minimum prserv pas la premire

Remplacer dans le parent (si pas an )

10/24/2006

Robert Godin. Tous droits rservs.

53

10/24/2006

Robert Godin. Tous droits rservs.

54

Premire cl du bloc et pas la premire feuille


!

Violation du minimum : redistribution si possible


!

Remonter tant que l'enfant est l! an

Ajuster sparateur

10/24/2006

Robert Godin. Tous droits rservs.

55

10/24/2006

Robert Godin. Tous droits rservs.

56

Violation du minimum : fusion

Cas de fusion de feuilles et de redistribution au niveau du parent

10/24/2006

Robert Godin. Tous droits rservs.

57

10/24/2006

Robert Godin. Tous droits rservs.

58

Cas de fusion de feuilles et de redistribution au niveau du parent (suite)

Cas de fusion en cascade

10/24/2006

Robert Godin. Tous droits rservs.

59

10/24/2006

Robert Godin. Tous droits rservs.

60

Cas de fusion en cascade (suite) : rduction de la hauteur

8.1.3 Arbre-B
! ! !

Cls non dupliques Ordre < Hauteur >

Arbre-B

Arbre-B+

10/24/2006

Robert Godin. Tous droits rservs.

61

10/24/2006

Robert Godin. Tous droits rservs.

62

8.1.4 Autres variantes du concept d'arbre-B


! ! ! ! !

Cas d'une cl non unique


!

Redistribuer plutt que diviser

Arbre-B+ primaire sur une cl non unique

occupation moyenne 67% => 86%


!

IDE difficile cl d!accs + pointeur (unique) listes inverses dans les feuilles
Index groupant ( clustering index ) ! organisation primaire par grappe et index secondaire sur mme cl

Diviser deux en trois

Arbre B+ secondaire avec cls rptes

Arbre-B* cls de taille variable comprimer les cls diminue la hauteur

Ordre variable

Arbre B+ secondaire avec collection de rfrences

Arbre B prfixe

Arbre B+ secondaire avec rfrence une collection d'enregistrements

Algorithme de chargement en lot


Arbre B+ secondaire avec rfrence collection de rfrences

feuilles conscutives taux de remplissage prdtermin


Robert Godin. Tous droits rservs. 63

listes inverses part index bitmap


Robert Godin. Tous droits rservs. 64

Arbre B+ avec vecteurs boolens

10/24/2006

10/24/2006

8.1.5 Ralisation de l'accs par IDE l'aide d'une organisation par index !

8.1.6 Slection par intervalle ou prfixe


!

Index primaire

Arbre B+

IDE = id_fichier, valeur de la cl unique ncessite le passage par l!index index secondaire cl d!index = IDE

recherche de la valeur minimale parcours des feuilles jusqu! la valeur maximale

IDE logique

10/24/2006

Robert Godin. Tous droits rservs.

65

10/24/2006

Robert Godin. Tous droits rservs.

66

8.1.7 Index sur une cl compose


Cl compose ~ cl simple forme de la concatnation des champs ! Slection par prfixe de la cl compose
!

8.1.8 Index bitmap

couleurYeux = brun et sexe = M

10111001 ET 11010100 = 10010000

10/24/2006

Robert Godin. Tous droits rservs.

67

10/24/2006

Robert Godin. Tous droits rservs.

68

8.2
!

Arbre digital (trie)

8.3 Hachage
! ! !

Chaque niveau : position d'un symbole de la cl vue comme une squence de symboles s1s2sn

Hachage ou adressage dispers (hashing) Fonction h(cl de hachage) => l'adresse d'un paquet Fichier = tableau de paquets (bucket)

~ARRAY paquet [0..TH-1] TH : taille de l'espace d'adressage primaire

! ! !

Habituellement paquet = bloc Pas d!index traverser : O(1) en meilleur cas Slection par galit (pas intervalle)

10/24/2006

Robert Godin. Tous droits rservs.

69

10/24/2006

Robert Godin. Tous droits rservs.

70

8.3.1 Hachage statique

8.3.1.1 Problme de dbordement d aux collisions


!

Mthode de rsolution des collisions

Adressage ouvert
!

AC+1, AC+2,....., n-1, 0, 1, ....AC-1

Chanage

10/24/2006

Robert Godin. Tous droits rservs.

71

10/24/2006

Robert Godin. Tous droits rservs.

72

Fonction de hachage
!

Hachage vs indexage
! ! ! ! !

Rpartition uniforme des cls dans [0..TH-1]


h(cl) = cl MOD TH
! TH ! TH

est premier et p sont relativement premiers

h(cl) = cl p MOD TH h(cl) = (# si) MOD TH


! si

O(1) en meilleur cas vs O(log(N)) Pas d!espace supplmentaire d!index Gaspillage d!espace si TH trop > Performance dgrade si TH trop < Gestion plus dlicate

est une sous-squence des bits de la cl


!

dterminer h et TH maintenance : rorganisations reprsentation binaire vue comme un entier


Robert Godin. Tous droits rservs. 74

Cl non numrique

Cl non numrique ?

reprsentation binaire vue comme un entier


Robert Godin. Tous droits rservs. 73

10/24/2006

10/24/2006

Calcul d!espace
!

8.3.1.2 Fonction de hachage prservant la relation d'ordre


0.8

Heuristique : Taux d!occupation moyen ~ 80%

TauxOccupation = N/(TH # FB)

(tidy functions) h(cl1) < h(cl2) ! cl1 < cl2


! !

Taux de dbordement moyen sous distribution uniforme

[Merrett, 1984 #217] :


FB = 1 FB = 10 FB = 100

~ 30% ~ 5% ~1%

Connaissances pralables au sujet de la distribution des cls

10/24/2006

Robert Godin. Tous droits rservs.

75

10/24/2006

Robert Godin. Tous droits rservs.

76

8.3.2 Hachage dynamique


Adaptation de TH et h aux variations du volume des donnes ! ~ arbre-B
!

8.3.2.1
! !

Hachage linaire

Adaptation de TH
suite d!expansions

Dbut de dime expansion, d


{0, 1, }

division et fusion de paquets (blocs) linaire extensible

Deux variantes de base


TH passera de 2d 2d+1 adresse du paquet : hd(cl) = bd-1, bd-2,, b1, b0

d= 2

10/24/2006

Robert Godin. Tous droits rservs.

77

10/24/2006

Robert Godin. Tous droits rservs.

78

Insertion de h(cl) = 101012


! ! !

Insertion de h(cl) = 101112


!

Bloc #012 dborde Division du bloc p = #002 (pas #012) p := p+1

Bloc #112 dborde

10/24/2006

Robert Godin. Tous droits rservs.

79

10/24/2006

Robert Godin. Tous droits rservs.

80

Insertion de 110002, 110012 et 101102

Insertion de 100102
!

Bloc #102 dborde et est divis

10/24/2006

Robert Godin. Tous droits rservs.

81

10/24/2006

Robert Godin. Tous droits rservs.

82

Insertion de 011012
!

Bloc #1012 dborde

8.3.2.1.1 Variantes du hachage linaire


!

zone d!expansion !

Variante du contrle de la division

algorithme de base
!

! ! !

Fin de l!expansion p := 0 d := d+1 = 3

dbordement => division : taux d!occupation ~ 60%

division/fusion contrle par taux d!occupation hachage linaire au niveau suivant biais dans les chanages ( droite de p) expansions partielles
!

Variante de gestion des dbordements

Variante de division

d= 3
!

diviser n blocs en n+1

fonction de hachage exponentielle prserver la contigut de l!espace malgr expansions ?


Robert Godin. Tous droits rservs. 84

Gestion de l!espace d!adressage primaire

10/24/2006

Robert Godin. Tous droits rservs.

83

10/24/2006

8.3.2.2 Hachage extensible


! !

Analogie avec arbre digital


Rpertoire vu comme arbre digital ! Chemin = suffixe
!

Ajoute un niveau d!indirection Rpertoire d'adresses de paquets


espace supplmentaire accs disque supplmentaire pour rpertoire


! antmmoire

Bloc qui dborde est divis


pas de dgradation due au chanage pire cas : 2 transferts


!
Robert Godin. Tous droits rservs. 85

Pas de lien direct entre suffixe et #bloc


Robert Godin. Tous droits rservs. 86

10/24/2006

10/24/2006

Insertion de h(cl) = 100112


! !

Remplacer l'arbre digital par un rpertoire


!

Dbordement et division du bloc #1 Utilisation d!un bit de plus

Complter l!arbre

10/24/2006

Robert Godin. Tous droits rservs.

87

10/24/2006

Robert Godin. Tous droits rservs.

88

Arbre digital => un rpertoire


!

Insertion de h(cl) = 100112 avec rpertoire

Bijection chemin <-> indice

Sens de lectur e des indic es

10/24/2006

Robert Godin. Tous droits rservs.

89

10/24/2006

Robert Godin. Tous droits rservs.

90

Cas de ddoublement de rpertoire : insertion de h(cl) = 101102

Hachage extensible (suite)


! Occupation

! entre

d!espace

comportement oscillatoire assez prononc


.53 et .94 ! moyenne : ln 2 = .69

Profondeur locale dpasse profondeur globale

! Variation

contrle de la division par taux d!occupation gestion des dbordements


Robert Godin. Tous droits rservs. 92

10/24/2006

Robert Godin. Tous droits rservs.

91

10/24/2006

8.3.3 Ralisation de l'accs par IDE avec le hachage


!

8.3.4 Hachage sur une cl non unique et effet de grappe


!

Hachage statique

Regroupement des mmes valeurs de cl

bloc d!ancrage fixe IDE = idFichier, #blocAncrage, #squence


! HASH

v1 = v2

h(v1) = h(v2)

CLUSTER d!Oracle

applicable dans le cas non unique IDE = id_fichier, valeur de la cl unique ncessaire avec hachage dynamique
Robert Godin. Tous droits rservs. 93 10/24/2006 Robert Godin. Tous droits rservs. 94

Cas d!une cl de hachage unique


10/24/2006

8.3.5 Hachage secondaire


!

8.4 Tableau comparatif des organisations

Hachage sur

(cl de hachage, IDE)

10/24/2006

Robert Godin. Tous droits rservs.

95

10/24/2006

Robert Godin. Tous droits rservs.

96

Vous aimerez peut-être aussi