gestion de fichiers

19
Gestion de Fichiers Arbres B

Upload: xue

Post on 23-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Gestion de Fichiers. Arbres B. Plan du cours sur les arbres B. Description générale et exemple Recherche dans un arbre B Insertion dans un arbre B Quelques considérations formelles sur les arbres B Effacement dans les arbres B - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Gestion de Fichiers

Gestion de Fichiers

Arbres B

Page 2: Gestion de Fichiers

2

Plan du cours sur les arbres B

Description générale et exemple Recherche dans un arbre B Insertion dans un arbre B Quelques considérations formelles sur les arbres B Effacement dans les arbres B Meilleure utilisation du stockage redistribution

pendant l’insertion et division 2-3 arbres B* Garder les pages en mémoire tampon arbres B

virtuels Arbres B à enregistrements et clés à longueur

variable.

Page 3: Gestion de Fichiers

3

Arbres B: description générale Les arbres B sont construits de bas en haut plutôt que

de haut en bas. De cette manière, ils permettent de résoudre le problème des arbres paginés: avec les arbres B, on permet à la racine d’émerger plutot que d’avoir à la choisir sans avoir vu toutes les données et essayer de la changer si elle n’est pas optimale.

Les arbres B sont aussi des indexes à niveaux multiples, mais ils résolvent le problème de l’insertion et l’effacement à coût linéaire.

Les arbres B sont, maintenant, la manière standard de representer les indexes.

Page 4: Gestion de Fichiers

4

Exemple d’un arbre B

P W

D M P T W

A B C D

G I M

N P U W

R S T

Note: les références à l’enregistrement n’apparaissent que dans les feuilles de l’arbre. Les noeuds internes ne sont que des indexes de niveau supérieur (ce qui explique les répétitions dans l’arbre).

Page 5: Gestion de Fichiers

5

Fonctionnement des arbres B: idées principales

Chacun des noeuds d’un arbre B est un enregistrement d’indexe. Chacun de ces enregistrements a le même nombre maximum de paires de clé/référence. Ce nombre s’appelle l’ordre de l’arbre B. Ces enregistrements ont aussi un nombre minimum de paires de clé/référence qui est, typiquement, la moitié de l’ordre.

Lorsque l’on ajoute une nouvelle clé dans un noeud qui n’est pas plein, on doit simplement mettre ce noeud à jour et, peut-être, mettre à jour les noeuds supérieurs récursivement.

Si, par contre, on ajoute une nouvelle clé dans un noeud déjà plein, ce noeud est divisé en deux nouveaux noeuds, chacun contenant la moitié des clés du noeud originel. La clé à la valeur la plus élevée dans le noeud originel est promue au noeud supérieur. Ceci peut provoquer une nouvelle division (réaction en chaine).

Page 6: Gestion de Fichiers

6

Recherche dans un arbre B

P W

D M P T W

A B C D

G I M

N P U W

R S T

• problème 1: Chercher la clé L• problème 2: Chercher la clé S

Page 7: Gestion de Fichiers

7

Insertion dans un arbre B

Faire une recherche jusqu’au bas de l’arbre afin de trouver l’emplacement où la nouvelle clé doit être inserrée.

Ajouter la clé, détecter s’il y a débordement d’un noeud déjà plein, diviser le noeud présent et tous les noeuds sur le cheminement récursif vers le haut, si nécessaire.

Créer une nouvelle racine si la racine présente a du être divisée.

Page 8: Gestion de Fichiers

8

Insertion dans un arbre B: division

C D TSAprès l’insertion de

C, S, D, T:

Insertion de A

D T

A C D S T

Page 9: Gestion de Fichiers

9

Insertion dans un arbre B: division récursive

P W

D M P T W

A B C D

G I M

N P U W

R S T

D M P W

A B C D G I M N P S T U W

Insertion de R

Page 10: Gestion de Fichiers

10

Definitions formelles des propriétés d’un arbre B

Dans un arbre B d’ordre m, Chaque page a un maximum de m descendants. Chaque page, à part la racine et les feuilles, a au

moins m/2 descendants. La racine a au moins deux descendants (à moins

que ce ne soit une feuille). Toutes les feuilles apparaissent au même niveau. Le niveau des feuilles forme un indexe ordonné

et complet du fichier de données associé.

Page 11: Gestion de Fichiers

11

Profondeur de la recherche au pire des cas I

Etant donne 1,000,000 de clés et un arbre B d’ordre 512, quel est le maximum nombre d’acces au disque necessaire pour localiser une clé dans l’arbre? En d’autres termes quelle profondeur aura l’arbre?

Chaque clé apparait dans une feuille Quelle est la hauteur maximale d’un arbre de 1,000,000 de feuilles?

La hauteur maximale sera atteinte si toutes les pages (ou noeuds) de l’arbre a le nombre minimum de descendant permis.

Pour un arbre B d’ordre m, le nombre minimum de descendants de la page racine est de 2. Il est de m/2 pour toutes les autres pages.

Page 12: Gestion de Fichiers

12

Profondeur de la recherche au pire des cas

Pour chaque niveau d d’un arbre B, le nombre minimum de descendants partant de ce niveau est

Niveau 1(racine): 2 Niveau 2 : 2 * m/2

Niveau 3 : 2 * m/2 * m/2 = 2 * m/2 2

4 : 2 * m/2 * m/2 * m/2 = 2 * m/2 3

…. d : 2 m/2 d-1

Pour un arbre de N clés dans ses feuilles, nous avons N 2 m/2 d-1

d 1 + log m/2 (N/2) Pour m = 512 et N = 1,000,000, nous obtenons donc:

d 3.37

Page 13: Gestion de Fichiers

13

Effacement d’un arbre B: règles pour l’effacement d’une clé k d’un noeud n

Si n a plus du nombre minimum de clés dans un noeud et k n’est pas la clé à valeur la plus élevée dans n, il suffit d’effacer k de n.

Si n a plus que le minimum nombre de clés et k est la clé à la valeur la plus élevée dans n, il faut effacer k et modifier les indexes de plus haut niveau afin de refletter le fait que n a une nouvelle clé à valeur la plus elevee.

Page 14: Gestion de Fichiers

14

Effacement d’un arbre B: règles pour l’effacement d’une clé k d’un noeud n

Si n a exactement le nombre minimum de clés et l’un des noeuds fraternels, f, de n a peu de clés, fusionner n avec f et effacer une clé du noeud parent.

Si n a exactement le nombre minimum de clés et l’un des noeuds fraternels, f, de n a des clés de plus, redistribuer en mettant certaines des clés de f dans n, et modifier les noeuds de niveaux supérieurs afin de refletter cette redistribution.

Note: ces deux règles ne disent pas quand on doit fusionner, et quand on doit redistribuer !

Page 15: Gestion de Fichiers

15

Effacement d’un arbre B: exemple

I P Z

D G I M P T X Z

A B C D J K L M Q R S T Y Z

E F G H I N O P U V W X

problème 1: Effacer C problème 2: Effacer P problème 3: Effacer H

Page 16: Gestion de Fichiers

16

Redistribution pendant l’insertion

La redistribution pendant l’insertion est un moyen d’éviter—ou, tout du moins, reporter—la création de pages nouvelles.

La redistribution nous permet de mettre certaines des clés débordant d’une page dans une autre page (moins pleine), plutôt que de diviser un page débordante.

Les arbres B* formalisent cette idée

Page 17: Gestion de Fichiers

17

Arbres B*: propriétés

Les propriétés d’un arbre B* sont les suivantes: Chaque page a un maximum de m descendants. Chaque page, à part la racine, a au moins

(2m-1)/3 descendants. La racine a au moins deux descendants (à moins

que ce ne soit une feuille). La différence principale entre un arbre B et un

arbre B* est donc la deuxieme règle.

Page 18: Gestion de Fichiers

18

Arbres B virtuels Le fait qu’un arbre B a trois niveaux ne veut pas

nécessairement dire qu’il faut faire trois accès au disque afin de récuperer une clé On peut faire mieux que cela en gardant certaines parties de l’arbre B en mémoire.

On peut créer une mémoire tampon pour pages (noeuds) de l’arbre B qui peut garder plusieurs pages en mémoire (5, 10 ou, peut-être, encore plus).

Si la page desirée n’est pas en mémoire, on va la chercher sur stockage secondaire et l’amener en mémoire, remplaçant ainsi une autre page. On peut utiliser une des stratégies de remplacement connue telle que LRU ou une stratégie basée sur la hauteur de la page à cette fin.

Page 19: Gestion de Fichiers

19

Arbres B: enregistrements et clés à longueur variable

Les arbres B peuvent être étendus de manière à permettre à la longueur des clés et des enregistrements de varier.

Dans ce cas, un arbre B doit être modifié et n’a plus d’ordre m clairement défini comme avant.

Il faut donc de nouvelles conventions pour cet arbre plus flexible.

Ceci démontre que la structure de l’arbre B discuté dans cette partie du cours n’a pas besoin d’être aussi rigide que notre présentation l’a suggéré. Notre discussion était seulement un point de départ.