La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Gestion de Fichiers Arbres B. 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.

Présentations similaires


Présentation au sujet: "Gestion de Fichiers Arbres B. 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."— Transcription de la présentation:

1 Gestion de Fichiers Arbres B

2 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 linsertion et division 2-3 arbres B* Garder les pages en mémoire tampon arbres B virtuels Arbres B à enregistrements et clés à longueur variable.

3 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 davoir à la choisir sans avoir vu toutes les données et essayer de la changer si elle nest pas optimale. Les arbres B sont aussi des indexes à niveaux multiples, mais ils résolvent le problème de linsertion et leffacement à coût linéaire. Les arbres B sont, maintenant, la manière standard de representer les indexes.

4 4 Exemple dun arbre B PW DMP TW A BCD G IM NP U W RST Note: les références à lenregistrement napparaissent que dans les feuilles de larbre. Les noeuds internes ne sont que des indexes de niveau supérieur (ce qui explique les répétitions dans larbre).

5 5 Fonctionnement des arbres B: idées principales Chacun des noeuds dun arbre B est un enregistrement dindexe. Chacun de ces enregistrements a le même nombre maximum de paires de clé/référence. Ce nombre sappelle lordre de larbre B. Ces enregistrements ont aussi un nombre minimum de paires de clé/référence qui est, typiquement, la moitié de lordre. Lorsque lon ajoute une nouvelle clé dans un noeud qui nest 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).

6 6 Recherche dans un arbre B P W D M P TW ABCD GIM NP U W RST problème 1: Chercher la clé L problème 2: Chercher la clé S

7 7 Insertion dans un arbre B Faire une recherche jusquau bas de larbre afin de trouver lemplacement où la nouvelle clé doit être inserrée. Ajouter la clé, détecter sil y a débordement dun 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.

8 8 Insertion dans un arbre B: division CD TS Après linsertion de C, S, D, T: Insertion de A D T ACDS T

9 9 Insertion dans un arbre B: division récursive P W D M P T W ABCD GIM NPUW RST D M P W A B C DG I MN PS T U W Insertion de R

10 10 Definitions formelles des propriétés dun arbre B Dans un arbre B dordre 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é.

11 11 Profondeur de la recherche au pire des cas I Etant donne 1,000,000 de clés et un arbre B dordre 512, quel est le maximum nombre dacces au disque necessaire pour localiser une clé dans larbre? En dautres termes quelle profondeur aura larbre? Chaque clé apparait dans une feuille Quelle est la hauteur maximale dun arbre de 1,000,000 de feuilles? La hauteur maximale sera atteinte si toutes les pages (ou noeuds) de larbre a le nombre minimum de descendant permis. Pour un arbre B dordre m, le nombre minimum de descendants de la page racine est de 2. Il est de m/2 pour toutes les autres pages.

12 12 Profondeur de la recherche au pire des cas Pour chaque niveau d dun 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

13 13 Effacement dun arbre B: règles pour leffacement dune clé k dun noeud n Si n a plus du nombre minimum de clés dans un noeud et k nest pas la clé à valeur la plus élevée dans n, il suffit deffacer 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.

14 14 Effacement dun arbre B: règles pour leffacement dune clé k dun noeud n Si n a exactement le nombre minimum de clés et lun 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 lun 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 !

15 15 Effacement dun arbre B: exemple I P Z D G IM PT X Z A B C D J K L M Q R S T Y Z E F GH IN O P U V W X problème 1: Effacer C problème 2: Effacer P problème 3: Effacer H

16 16 Redistribution pendant linsertion La redistribution pendant linsertion est un moyen déviterou, tout du moins, reporterla création de pages nouvelles. La redistribution nous permet de mettre certaines des clés débordant dune page dans une autre page (moins pleine), plutôt que de diviser un page débordante. Les arbres B* formalisent cette idée

17 17 Arbres B*: propriétés Les propriétés dun 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.

18 18 Arbres B virtuels Le fait quun arbre B a trois niveaux ne veut pas nécessairement dire quil faut faire trois accès au disque afin de récuperer une clé On peut faire mieux que cela en gardant certaines parties de larbre B en mémoire. On peut créer une mémoire tampon pour pages (noeuds) de larbre B qui peut garder plusieurs pages en mémoire (5, 10 ou, peut-être, encore plus). Si la page desirée nest pas en mémoire, on va la chercher sur stockage secondaire et lamener 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.

19 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 na plus dordre m clairement défini comme avant. Il faut donc de nouvelles conventions pour cet arbre plus flexible. Ceci démontre que la structure de larbre B discuté dans cette partie du cours na pas besoin dêtre aussi rigide que notre présentation la suggéré. Notre discussion était seulement un point de départ.


Télécharger ppt "Gestion de Fichiers Arbres B. 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."

Présentations similaires


Annonces Google