4. Définition
• Un arbre B (ou B-Tree) est un arbre binaire de
recherche équilibré
• Chaque chemin de la racine à une feuille est
de la même longueur h (hauteur)
• Stocke les données sous une forme triée
• Permet une exécution des opérations
d'insertion et de suppression
4
5. Structure de nœud d'un arbre B
• K clés avec k1 < k2 < ... < kk
• (k+1) pointeurs
5
6. Propriétés
• La racine, si elle n’est pas une feuille, doit
avoir au minimum deux fils
• Chaque nœud contient k clés avec
– 1 ≤ k ≤ 2m (nœud racine)
– m ≤ k ≤ 2m (nœud non racine)
• Toutes les clés d’un nœud sont triées (i.e. k1<
k2 < · · · < kk pour k clés)
6
7. Exemple d’arbre B d’ordre m = 2
• Chaque nœud, sauf la racine, contient k
clés (2 ≤ k ≤ 4)
• La racine contient k clés (1 ≤ k ≤ 4)
7
8. Recherche dans arbre B
• A partir de la racine, pour chaque nœud on
examine :
– La clé est présente succès
– K < k1 recherche dans P0
– K > k recherche dans Pk
– ki < K < ki+1 recherche dans Pi
8
10. • Nombre de clé dans un Arbre B d’ordre m, et
de hauteur h
– Nb clés min = 2*(m+1) h - 1
– Nb clés max = (2*m+1) h+1 - 1
o Par exemple si m = 100, h = 2
– Nb clés min = 20401 et
– Nb clés max =8 120 600
10
11. Insertion dans un arbre B d’ordre m
Principe :
• Recherche de la feuille d’insertion
• Si la feuille n’est pas pleine insérer la clé a sa
place
• Sinon (la feuille est pleine)
– Laisser les m plus petites clés dans le nœud
– Allouer un nouveau nœud et y placer les m plus
grandes clés
– Remonter la clé médiane dans le nœud père
– Application récursive de ce principe jusqu’à la racine
11
12. Insertion d’un élément dans un arbre B
• Exemple 1 : Insertion de la clé 75 dans l’arbre B d’ordre 2
12
13. • Éclatement du nœud en 2
• Les 2 plus petites clés restent dans le nœud
(68 et 69)
• Les 2 plus grandes clés sont insérées dans un
nouveau nœud (75 et 76)
• Remontée de la clé médiane (71) dans le
nœud père
13
14. Insertion d’un élément dans un arbre B
• Exemple 2 : Insertion de la clé 9 dans l’arbre B d’ordre 2
14
15. •
•
•
•
•
Éclatement du nœud par l'arrivée de la clé 9
Remontée de la clé 8 au nœud père
Éclatement du nœud par l'arrivée de la clé 8
Création d'une nouvelle racine avec la clé 11
Augmentation d'une unité de la hauteur
15
16. Suppression d’un élément dans un arbre B
Principe
• Cas 1 : suppression dans un nœud feuille
– Le nombre de clé est m tasser les clés dans le
nœud
– Le nombre de clé devient < m combiner avec un
nœud adjacent ce qui entraine la descente d’une clé
du nœud père avec éventuellement une
réorganisation locale
– La réduction du nœud père avec moins de m clés
entraine la combinaison de ce nœud père avec un
nœud voisin du même niveau remontée éventuelle
jusqu’à la racine
16
17. Suppression d’un élément dans un arbre B
Principe
• Cas 2 : suppression dans un nœud non feuille
– Rechercher une clé adjacente à la clé à
supprimer
– Soit la plus petite du sous arbre droit
– Soit la plus grande du sous arbre gauche
– Remplir la clé à supprimer par la clé adjacente
trouvée
– Supprimer la clé adjacente (Équivalent à la
suppression dans une feuille)
17
18. Suppression d’un élément dans un
arbre B
• Exemple 1 : suppression de la clé 25 de la table B d’ordre 2
18
19. • Suppression dans une feuille le nombre
d’élément devient <2
• Combinaison avec un nœud voisin
• Descente de la clé(15)
• Suppression du nœud (20,25)
19
20. Suppression d’un élément dans un
arbre B
• Exemple 2 : suppression de la clé 4 de la table B d’ordre 2
20
21. • Suppression dans une feuille le nombre
d’élément devient <2
• Combinaison avec un nœud voisin
• Descente de la clé(3)
• Suppression du nœud (4,7)
21
22. • le nombre d’élément devient <2 (8)
• Combinaison avec un nœud voisin(16,21)
• Descente de la clé(11)
• La hauteur de l'arbre est passée de 2 à 1
22
23. Suppression dans un nœud non feuille
• Exemple 1 : suppression de la clé 5 de la table B d’ordre 2
• Recherche d’une clé adjacente de la clé on prend la plus grande clé du
sous arbre gauche de la clé(4)
• Remplacement de la clé par la clé adjacente trouvée
• Suppression de la clé trouvée dans un nœud feuille
23
24. Suppression dans un nœud non feuille
• Exemple 2 : Suppression de la clé 5
24
25. Suppression dans un nœud non feuille
• Exemple 3 : Suppression de la clé 4
25
28. Définition
• Un arbre B + est un arbre B ou les feuilles
contiennent toutes les clés
• C’est un arbre équilibré où chaque chemin de
la racine à une feuille est de même longueur H
(hauteur)
• Chaque nœud (bloc) contient n pointeurs et n1 valeurs (clés), où n est l’ordre de l’arbre
28
29. Structure de nœud d'un arbre B+
P1
C1
Valeurs < C1
P2
C2
…
P n-1 C n-1
Pn
Valeurs >=C1 et < C2
• n-1 clés avec C1 < C2 < ... < Cn-1
• n pointeurs
29
30. Propriétés
• Racine a au moins 2 fils (sauf si elle est feuille)
• Chaque nœud sauf la racine a entre *n/2 + et
[n] pointeurs (ex. pour n=4, on a entre 2 et 4
pointeurs)
• Chaque feuille contient entre [n-1/2 ] et [n-1]
clés (ex. pour n=4, on a entre 2 et 3 clés)
30
34. Insertion dans arbre B+
• Insertion simple
• Débordement et division du bloc
• Division de la racine
• Division de feuille
• Division de feuille et racine
34
39. Suppression dans arbre B+
• Uniquement dans une feuille
Types:
• Suppression simple
• Suppression et redistribution au niveau nœud
racine
• Suppression par violation du minimum
• Cas de fusion de feuilles et de redistribution
au niveau nœud racine
39