SlideShare une entreprise Scribd logo
1  sur  46
Arbre B et B+

Présenté par:
Elias Richa
Marwan El Hachem
• Arbre B
–
–
–
–
–
–

PLAN

Définition
Structure
Propriétés
Recherche
Insertion
Suppression

• Arbre B+
–
–
–
–
–
–

Définition
Structure
Propriétés
Recherche
Insertion
Suppression

2
Arbre B

3
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
Structure de nœud d'un arbre B

• K clés avec k1 < k2 < ... < kk
• (k+1) pointeurs
5
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
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
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
Recherche de 15

9
• 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
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
Insertion d’un élément dans un arbre B
• Exemple 1 : Insertion de la clé 75 dans l’arbre B d’ordre 2

12
• É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
Insertion d’un élément dans un arbre B
• Exemple 2 : Insertion de la clé 9 dans l’arbre B d’ordre 2

14
•
•
•
•
•

É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
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
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
Suppression d’un élément dans un
arbre B
• Exemple 1 : suppression de la clé 25 de la table B d’ordre 2

18
• 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
Suppression d’un élément dans un
arbre B
• Exemple 2 : suppression de la clé 4 de la table B d’ordre 2

20
• 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
• 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
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
Suppression dans un nœud non feuille
• Exemple 2 : Suppression de la clé 5

24
Suppression dans un nœud non feuille
• Exemple 3 : Suppression de la clé 4

25
L’arbre devient

26
Arbre B+

27
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
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
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
Exemple d’un arbre B+ pour n=4

31
Recherche dans arbre B+

32
Recherche de 43

Bloc 7
50

Bloc 2
25 40

Bloc 0
10
20

Bloc 3
25
30

Bloc 6
60

45

Bloc 1
40
43

44

Bloc 8
45
48

Bloc 5
50
53

Bloc 4
60
70

33
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
Insertion simple
• Insertion de 25
Bloc 2
40

Bloc 0
20

...

30

Bloc 1
40

...

...

60

...

Bloc 2
40

Bloc 0
20
25

30

Bloc 1
40
60
35
Débordement et division (Racine)
•
•
•
•

Insertion de 30
Débordement et la division du bloc 0
40 est promue
Nouvelle racine
Bloc 0
20
...

40

...

60

...

Bloc 2
40

Bloc 0
20
...

30

...

Bloc 1
40
...

60

...
36
Débordement et division (Feuille)
• Insertion de 10
• Débordement et la division du bloc 0 (Nouvelle feuille)
• 25 est promue
Bloc 2
40

Bloc 0
20
25

Bloc 1
40
60

30
Bloc 2
25

Bloc 0
10
20

40

Bloc 3
25
30

Bloc 1
40
60
37
Débordement et division (Feuille, Racine)
•
•
•
•

Insertion de 45
Débordement et division du bloc 1 (Nouvelle feuille)
50 est promue
Bloc 2
Division de la racine
25
40
60
Bloc 0
10
20

Bloc 3
25
30

Bloc 1
40
50

53

Bloc 4
60
70

Bloc 7
50

Bloc 2
25

Bloc 0
10
20

Bloc 3
25
30

Bloc 6
60

40

Bloc 1
40
45

Bloc 5
50
53

Bloc 4
60
70

38
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
Suppression simple
• Suppression de 70
Bloc 2
25

Bloc 0
10
20

Bloc 3
25
30

Bloc 2
25

Bloc 0
10
20

40

Bloc 1
40
60

70

40

Bloc 3
25
30

Bloc 1
40
60
40
Suppression et redistribution au niveau nœud racine
• Suppression de 50
Bloc 7
50

Bloc 2
25
40

Bloc 0
10
20

Bloc 3
25
30

Bloc 6
60

45

Bloc 1
40
43

44

Bloc 8
45
48

Bloc 5
50
53

55

Bloc 4
60
70

Bloc 7
53

Bloc 2
25
40

Bloc 0
10
20

Bloc 3
25
30

Bloc 6
60

45

Bloc 1
40
43

44

Bloc 8
45
48

Bloc 5
53
55

Bloc 4
60
70

41
Violation du minimum : redistribution si possible
• Suppression de 40
Bloc 2
40

Bloc 0
20
25

Bloc 1
40
60

30

Bloc 2
30

Bloc 0
20
25

Bloc 1
30
60
42
Cas de fusion de feuilles et de redistribution au niveau du parent
Bloc 7
50

• Suppression de 53
Bloc 2
25
40

Bloc 0
10
20

Bloc 3
25
30

Bloc 6
60

Bloc 1
40
45

Bloc 5
50
53

Violation de la
règle du minimum

Bloc 4
60
70
Fusion des deux frères

Bloc 7
50

Bloc 2
25
40

Bloc 0
10
20

Bloc 3
25
30

Redistribution

Bloc 1
40
45

Violation de la
règle du minimum

Bloc 6
60

Bloc 5
50
60

70

43
Cas de fusion de feuilles et de redistribution au niveau du parent (suite)
Bloc 7
50

Bloc 2
25

Bloc 0
10
20

Bloc 3
25
30

Redistribution
40

Bloc 1
40
45

Violation de la
règle du minimum

Bloc 6
60

Bloc 5
50
60

70

Bloc 7
40

Bloc 2
25

Bloc 0
10
20

Bloc 3
25
30

Bloc 6
50

Bloc 1
40
45

Bloc 5
50
60

70

44
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
45
46

Contenu connexe

Tendances

Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxanisanima1
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 
Présentation python
Présentation pythonPrésentation python
Présentation pythonSarah
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptwafawafa52
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireLilia Sfaxi
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 
Rapport thèse ilef ben slima
Rapport thèse ilef ben slimaRapport thèse ilef ben slima
Rapport thèse ilef ben slimaIlef Ben Slima
 
La gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaireLa gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaireWalid Aitisha
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Kristen Le Liboux
 

Tendances (20)

Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptxChapitre II. METHODE D'ANALYSE P2 MCD .pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
TP C++ : enoncé
TP C++ : enoncéTP C++ : enoncé
TP C++ : enoncé
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Présentation python
Présentation pythonPrésentation python
Présentation python
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
 
Mémoire de Master 2
Mémoire de Master 2Mémoire de Master 2
Mémoire de Master 2
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 
Cours access
Cours accessCours access
Cours access
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
UML
UMLUML
UML
 
Rapport thèse ilef ben slima
Rapport thèse ilef ben slimaRapport thèse ilef ben slima
Rapport thèse ilef ben slima
 
La gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaireLa gestion des comptes d’une agence bancaire
La gestion des comptes d’une agence bancaire
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 

En vedette

Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheSana Aroussi
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminSana Aroussi
 
Presentación "SEO is Dead?" por Daniel Falcón
Presentación "SEO is Dead?" por Daniel FalcónPresentación "SEO is Dead?" por Daniel Falcón
Presentación "SEO is Dead?" por Daniel FalcónNeo Consulting
 
Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)
Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)
Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)Agence Hopscotch
 
Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...
Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...
Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...Salon e-tourisme #VeM
 
Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!
Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!
Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!Salon e-tourisme #VeM
 
Escuela de comunicadores ciudadanos juveniles
Escuela de comunicadores ciudadanos juvenilesEscuela de comunicadores ciudadanos juveniles
Escuela de comunicadores ciudadanos juvenilesEspacio Público
 
Mensuel actions juin 2010
Mensuel actions juin 2010Mensuel actions juin 2010
Mensuel actions juin 2010Cherradi -
 
#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014Xavier Carpentier
 
Barrio de la villa de priego.doc
Barrio de la villa de priego.docBarrio de la villa de priego.doc
Barrio de la villa de priego.doccosasdeandalucia
 
Catalogue des talents Inno Pegasi (extrait)
Catalogue des talents Inno Pegasi (extrait)Catalogue des talents Inno Pegasi (extrait)
Catalogue des talents Inno Pegasi (extrait)Frederic BERNIER
 
L’accés obert a la ciència: un nou model de comunicació científica
L’accés obert a la ciència: un nou model de comunicació científica L’accés obert a la ciència: un nou model de comunicació científica
L’accés obert a la ciència: un nou model de comunicació científica Ernest Abadal
 
Plantilla pwp presentacions ii jornada de recerca de residents ud gironines
Plantilla pwp presentacions ii jornada de recerca de residents ud gironinesPlantilla pwp presentacions ii jornada de recerca de residents ud gironines
Plantilla pwp presentacions ii jornada de recerca de residents ud gironinesMaria Martinez
 

En vedette (20)

Chapitre 1 arbres de recherche
Chapitre 1 arbres de rechercheChapitre 1 arbres de recherche
Chapitre 1 arbres de recherche
 
B-Tree
B-TreeB-Tree
B-Tree
 
B tree
B treeB tree
B tree
 
Chapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court cheminChapitre 2 problème de plus court chemin
Chapitre 2 problème de plus court chemin
 
Presentación "SEO is Dead?" por Daniel Falcón
Presentación "SEO is Dead?" por Daniel FalcónPresentación "SEO is Dead?" por Daniel Falcón
Presentación "SEO is Dead?" por Daniel Falcón
 
Volc2
Volc2Volc2
Volc2
 
Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)
Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)
Etudes les Français et le tactile (Ipsos pour Hopscotch et Microsoft)
 
Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...
Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...
Atelier IE4 Monitoring 360 : quand l’évaluation de ses actions devient incont...
 
Plsql2
Plsql2Plsql2
Plsql2
 
Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!
Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!
Atelier IE13 Le changement et la compétence c'est maintenant et tout le temps!
 
Escuela de comunicadores ciudadanos juveniles
Escuela de comunicadores ciudadanos juvenilesEscuela de comunicadores ciudadanos juveniles
Escuela de comunicadores ciudadanos juveniles
 
Mensuel actions juin 2010
Mensuel actions juin 2010Mensuel actions juin 2010
Mensuel actions juin 2010
 
#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014
 
Mon impress2
Mon impress2Mon impress2
Mon impress2
 
Barrio de la villa de priego.doc
Barrio de la villa de priego.docBarrio de la villa de priego.doc
Barrio de la villa de priego.doc
 
Jeans crokante uuy
Jeans crokante uuyJeans crokante uuy
Jeans crokante uuy
 
Pampanitogrupo2
Pampanitogrupo2Pampanitogrupo2
Pampanitogrupo2
 
Catalogue des talents Inno Pegasi (extrait)
Catalogue des talents Inno Pegasi (extrait)Catalogue des talents Inno Pegasi (extrait)
Catalogue des talents Inno Pegasi (extrait)
 
L’accés obert a la ciència: un nou model de comunicació científica
L’accés obert a la ciència: un nou model de comunicació científica L’accés obert a la ciència: un nou model de comunicació científica
L’accés obert a la ciència: un nou model de comunicació científica
 
Plantilla pwp presentacions ii jornada de recerca de residents ud gironines
Plantilla pwp presentacions ii jornada de recerca de residents ud gironinesPlantilla pwp presentacions ii jornada de recerca de residents ud gironines
Plantilla pwp presentacions ii jornada de recerca de residents ud gironines
 

Plus de rchbeir

Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)rchbeir
 
SS tree (par SYLLA Demba et TALBI Rachid)
SS tree (par SYLLA Demba et TALBI Rachid)SS tree (par SYLLA Demba et TALBI Rachid)
SS tree (par SYLLA Demba et TALBI Rachid)rchbeir
 
Ranking (par IBRAHIM Sirine et TANIOS Dany)
Ranking (par IBRAHIM Sirine et TANIOS	 Dany)Ranking (par IBRAHIM Sirine et TANIOS	 Dany)
Ranking (par IBRAHIM Sirine et TANIOS Dany)rchbeir
 
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)Crawlers (par DE COURCHELLE Inès et JACOB Sophie)
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)rchbeir
 
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)rchbeir
 
NoSQL (par HEGUY Xabier)
NoSQL (par HEGUY Xabier)NoSQL (par HEGUY Xabier)
NoSQL (par HEGUY Xabier)rchbeir
 
Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)
Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)
Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)rchbeir
 
LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)
LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)
LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)rchbeir
 
Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)
Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)
Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)rchbeir
 
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrievalrchbeir
 

Plus de rchbeir (12)

Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
Web ontologie language (par RAFEH Aya et VAILLEUX Arnaud)
 
SS tree (par SYLLA Demba et TALBI Rachid)
SS tree (par SYLLA Demba et TALBI Rachid)SS tree (par SYLLA Demba et TALBI Rachid)
SS tree (par SYLLA Demba et TALBI Rachid)
 
Ranking (par IBRAHIM Sirine et TANIOS Dany)
Ranking (par IBRAHIM Sirine et TANIOS	 Dany)Ranking (par IBRAHIM Sirine et TANIOS	 Dany)
Ranking (par IBRAHIM Sirine et TANIOS Dany)
 
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)Crawlers (par DE COURCHELLE Inès et JACOB Sophie)
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)
 
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
Quad-Tree et Kd-Tree (par MARQUES Patricia et OLIVIER Aymeric)
 
NoSQL (par HEGUY Xabier)
NoSQL (par HEGUY Xabier)NoSQL (par HEGUY Xabier)
NoSQL (par HEGUY Xabier)
 
Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)
Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)
Mpeg7 et comm ontology (par MOHIBE Amine et BENSLIMANE Mohamed-Amine)
 
LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)
LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)
LSI latent (par HATOUM Saria et DONGO ESCALANTE Irvin Franco)
 
Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)
Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)
Adaptative hypermedia (par MALKI Sara et MAKSIMOVICH Aleksandra)
 
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
 
Plsql
PlsqlPlsql
Plsql
 
Sql3
Sql3Sql3
Sql3
 

Arbre b (par EL HACHEM Marwan et RICHA Elias)

  • 1. Arbre B et B+ Présenté par: Elias Richa Marwan El Hachem
  • 2. • Arbre B – – – – – – PLAN Définition Structure Propriétés Recherche Insertion Suppression • Arbre B+ – – – – – – Définition Structure Propriétés Recherche Insertion Suppression 2
  • 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
  • 31. Exemple d’un arbre B+ pour n=4 31
  • 33. Recherche de 43 Bloc 7 50 Bloc 2 25 40 Bloc 0 10 20 Bloc 3 25 30 Bloc 6 60 45 Bloc 1 40 43 44 Bloc 8 45 48 Bloc 5 50 53 Bloc 4 60 70 33
  • 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
  • 35. Insertion simple • Insertion de 25 Bloc 2 40 Bloc 0 20 ... 30 Bloc 1 40 ... ... 60 ... Bloc 2 40 Bloc 0 20 25 30 Bloc 1 40 60 35
  • 36. Débordement et division (Racine) • • • • Insertion de 30 Débordement et la division du bloc 0 40 est promue Nouvelle racine Bloc 0 20 ... 40 ... 60 ... Bloc 2 40 Bloc 0 20 ... 30 ... Bloc 1 40 ... 60 ... 36
  • 37. Débordement et division (Feuille) • Insertion de 10 • Débordement et la division du bloc 0 (Nouvelle feuille) • 25 est promue Bloc 2 40 Bloc 0 20 25 Bloc 1 40 60 30 Bloc 2 25 Bloc 0 10 20 40 Bloc 3 25 30 Bloc 1 40 60 37
  • 38. Débordement et division (Feuille, Racine) • • • • Insertion de 45 Débordement et division du bloc 1 (Nouvelle feuille) 50 est promue Bloc 2 Division de la racine 25 40 60 Bloc 0 10 20 Bloc 3 25 30 Bloc 1 40 50 53 Bloc 4 60 70 Bloc 7 50 Bloc 2 25 Bloc 0 10 20 Bloc 3 25 30 Bloc 6 60 40 Bloc 1 40 45 Bloc 5 50 53 Bloc 4 60 70 38
  • 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
  • 40. Suppression simple • Suppression de 70 Bloc 2 25 Bloc 0 10 20 Bloc 3 25 30 Bloc 2 25 Bloc 0 10 20 40 Bloc 1 40 60 70 40 Bloc 3 25 30 Bloc 1 40 60 40
  • 41. Suppression et redistribution au niveau nœud racine • Suppression de 50 Bloc 7 50 Bloc 2 25 40 Bloc 0 10 20 Bloc 3 25 30 Bloc 6 60 45 Bloc 1 40 43 44 Bloc 8 45 48 Bloc 5 50 53 55 Bloc 4 60 70 Bloc 7 53 Bloc 2 25 40 Bloc 0 10 20 Bloc 3 25 30 Bloc 6 60 45 Bloc 1 40 43 44 Bloc 8 45 48 Bloc 5 53 55 Bloc 4 60 70 41
  • 42. Violation du minimum : redistribution si possible • Suppression de 40 Bloc 2 40 Bloc 0 20 25 Bloc 1 40 60 30 Bloc 2 30 Bloc 0 20 25 Bloc 1 30 60 42
  • 43. Cas de fusion de feuilles et de redistribution au niveau du parent Bloc 7 50 • Suppression de 53 Bloc 2 25 40 Bloc 0 10 20 Bloc 3 25 30 Bloc 6 60 Bloc 1 40 45 Bloc 5 50 53 Violation de la règle du minimum Bloc 4 60 70 Fusion des deux frères Bloc 7 50 Bloc 2 25 40 Bloc 0 10 20 Bloc 3 25 30 Redistribution Bloc 1 40 45 Violation de la règle du minimum Bloc 6 60 Bloc 5 50 60 70 43
  • 44. Cas de fusion de feuilles et de redistribution au niveau du parent (suite) Bloc 7 50 Bloc 2 25 Bloc 0 10 20 Bloc 3 25 30 Redistribution 40 Bloc 1 40 45 Violation de la règle du minimum Bloc 6 60 Bloc 5 50 60 70 Bloc 7 40 Bloc 2 25 Bloc 0 10 20 Bloc 3 25 30 Bloc 6 50 Bloc 1 40 45 Bloc 5 50 60 70 44
  • 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 45
  • 46. 46

Notes de l'éditeur

  1. Equilibré =&gt; chaquechemin de la racine a un noeudfeuilleest le meme