arbre b (par el hachem marwan et richa elias)
Post on 20-Jun-2015
539 Views
Preview:
TRANSCRIPT
Présenté par: Elias Richa
Marwan El Hachem
Arbre B et B+
2
PLAN• Arbre B
– Définition– Structure – Propriétés– Recherche– Insertion– Suppression
• Arbre B+– Définition– Structure – Propriétés– Recherche– Insertion– Suppression
3
Arbre B
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
5
Structure de nœud d'un arbre B
• K clés avec k1 < k2 < ... < kk
• (k+1) pointeurs
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)
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)
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
9
Recherche de 15
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
11
Insertion dans un arbre B d’ordre m
• 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
Principe :
12
Insertion d’un élément dans un arbre B• Exemple 1 : Insertion de la clé 75 dans l’arbre B d’ordre 2
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
14
Insertion d’un élément dans un arbre B• Exemple 2 : Insertion de la clé 9 dans l’arbre B d’ordre 2
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
16
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
Suppression d’un élément dans un arbre B
17
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)
Suppression d’un élément dans un arbre B
18
Suppression d’un élément dans un arbre B
• Exemple 1 : suppression de la clé 25 de la table B d’ordre 2
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)
20
Suppression d’un élément dans un arbre B
• Exemple 2 : suppression de la clé 4 de la table B d’ordre 2
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)
22
• La hauteur de l'arbre est passée de 2 à 1
• le nombre d’élément devient <2 (8)• Combinaison avec un nœud voisin(16,21)• Descente de la clé(11)
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
24
Suppression dans un nœud non feuille
• Exemple 2 : Suppression de la clé 5
25
Suppression dans un nœud non feuille
• Exemple 3 : Suppression de la clé 4
26
L’arbre devient
27
Arbre B+
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 n-1 valeurs (clés), où n est l’ordre de l’arbre
29
Structure de nœud d'un arbre B+
Valeurs < C1 Valeurs >=C1 et < C2
• n-1 clés avec C1 < C2 < ... < Cn-1
• n pointeurs
P1 C1 P2 C2 … P n-1 C n-1 Pn
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)
31
Exemple d’un arbre B+ pour n=4
32
Recherche dans arbre B+
33
Recherche de 43
10
Bloc 0
20
25 40 45
Bloc 2
25
Bloc 3
30 40
Bloc 1
43 44 60
Bloc 4
7050
Bloc 5
53
60
Bloc 6
50
Bloc 7
45 48
Bloc 8
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
35
Insertion simple
20 ... 30 ...
B loc 0
40 ... 60 ...
B loc 1
40
Bloc 2
40
Bloc 2
20
Bloc 0
25 30 40
Bloc 1
60
• Insertion de 25
36
Débordement et division (Racine)• Insertion de 30• Débordement et la division du bloc 0• 40 est promue• Nouvelle racine
20 ... 40 ... 60 ...
B loc 0
20 ... 30 ...
B loc 0
40 ... 60 ...
B loc 1
40
Bloc 2
37
Débordement et division (Feuille)• Insertion de 10• Débordement et la division du bloc 0 (Nouvelle feuille)• 25 est promue
40
Bloc 2
20
Bloc 0
25 30 40
Bloc 1
60
10
Bloc 0
20
25 40
Bloc 2
25
Bloc 3
30 40
Bloc 1
60
38
Débordement et division (Feuille, Racine)• Insertion de 45• Débordement et division du bloc 1 (Nouvelle feuille)• 50 est promue• Division de la racine
10
Bloc 0
20
25 40 60
Bloc 2
25
Bloc 3
30 40
Bloc 1
50 53 60
Bloc 4
70
10Bloc 0
20
25 40Bloc 2
25Bloc 3
30 40Bloc 1
45 60Bloc 4
7050Bloc 5
53
60Bloc 6
50Bloc 7
39
Suppression dans arbre B+• Uniquement dans une feuilleTypes:• 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
40
Suppression simple
10
Bloc 0
20
25 40
Bloc 2
25
Bloc 3
30 40
Bloc 1
60 70
10
Bloc 0
20
25 40
Bloc 2
25
Bloc 3
30 40
Bloc 1
60
• Suppression de 70
41
Suppression et redistribution au niveau nœud racine
• Suppression de 50
10
Bloc 0
20
25 40 45
Bloc 2
25
Bloc 3
30 40
Bloc 1
43 44 60
Bloc 4
7050
Bloc 5
53 55
60
Bloc 6
50
Bloc 7
45 48
Bloc 8
10
Bloc 0
20
25 40 45
Bloc 2
25
Bloc 3
30 40
Bloc 1
43 44 60
Bloc 4
7053
Bloc 5
55
60
Bloc 6
53
Bloc 7
45 48
Bloc 8
42
Violation du minimum : redistribution si possible
40Bloc 2
20Bloc 0
25 30 40Bloc 1
60
30Bloc 2
20Bloc 0
25 30Bloc 1
60
• Suppression de 40
43
Cas de fusion de feuilles et de redistribution au niveau du parent
10
Bloc 0
20
25 40
Bloc 2
25
Bloc 3
30 40
Bloc 1
45 60
Bloc 4
7050
Bloc 5
53
60
Bloc 6
50
Bloc 7
Violation de larègle du minimum
10
Bloc 0
20
25 40
Bloc 2
25
Bloc 3
30 40
Bloc 1
45 50
Bloc 5
60 70
60
Bloc 6
50
Bloc 7
Violation de larègle du minimum
Redistribution
Fusion des deux frères
• Suppression de 53
44
Cas de fusion de feuilles et de redistribution au niveau du parent (suite)
10Bloc 0
20
25 40Bloc 2
25Bloc 3
30 40Bloc 1
45 50Bloc 5
60 70
60Bloc 6
50Bloc 7
Violation de la règle du minimum
Redistribution
10Bloc 0
20
25Bloc 2
25Bloc 3
30 40Bloc 1
45 50Bloc 5
60 70
50Bloc 6
40Bloc 7
45
Références• [1] Dr.Mounir GRARI. LA STRUCTURE D'ARBRE-B. Institut
National des Sciences Appliquées– Rouen. 40 diapos. Accédé le 10/12/2013.
• [2] Sofian MAABOUT. Arbre-B+. Laboratoire Bordelais de Recherche en Informatique. 21 diapos. Accédé le 10/12/2013.
www.labri.fr/perso/maabout/L3M/index.ppt
• [3] Pr. Eamonn Keogh. Chapter 9 of DBMS – B-Tree. 37 diapos. Accédé le 9/12/2013.
www.cs.ucr.edu/~eamonn/teaching/cs166materials
46
top related