Vous êtes sur la page 1sur 40

LA STRUCTURE D'ARBRE-B

Institut National des Sciences Appliquées – Rouen


Département Architecture des Systèmes d’Information
LA STRUCTURE D'ARBRE-B

• A) RECHERCHE

• B) INSERTION

• C) SUPPRESSION

• D) INDEX PAR ARBRE-B+

• E) MEMOIRE SECONDAIRE
ARBRE-B
• UN ARBRE-B D'ORDRE m EST UN
ARBRE /

1/ CHAQUE NOEUD CONTIENT k CLES


TRIEES AVEC :
m≤ k ≤ 2m (noeud non racine)
1 ≤ k ≤ 2m (noeud racine)

2/ CHAQUE CHEMIN DE LA RACINE A UNE


FEUILLE EST DE MEME LONGUEUR h
(HAUTEUR)

3/ UN NOEUD EST :
- SOIT TERMINAL (FEUILLE)
- SOIT POSSEDE (k+1) FILS /
LES CLES DU ième FILS ONT DES
VALEURS COMPRISES ENTRE LES
VALEURS DES (i-1)ème ET ième CLES DU
PERE
STRUCTURE D'UN NŒUD
(ARBRE-B D'ORDRE m)

P0 K1 P1 K2 P2 Pk-1 Kk Pk

K < K1 K1 < K < K2 K2< K < K3 Kk-1 < K < Kk K > Kk

-> k CLES AVEC k1 < k2 < ... < kn

-> (k+1) POINTEURS /


- TOUS SONT DIFFERENTS DE NIL
SI LE NOEUD N'EST PAS UNE
FEUILLE
- TOUS A NIL SI LE NOEUD EST
UNE FEUILLE
CAPACITE

• NOMBRE DE CLES
ARBRE-B d'ORDRE m , et de hauteur h
-> NbClesMin = 2*(m+1) h - 1
-> NbClesMax = (2*m+1)h+1- 1

m = 100, h = 2
==> NbClesMax = 8 000 000

• STOCKAGE SUR DISQUE


-> UN NOEUD = UNE PAGE
EXEMPLE (n°0)

• ARBRE-B D'ORDRE 2
-> CHAQUE NOEUD, SAUF LA
RACINE CONTIENT k CLES
AVEC 2 ≤ k ≤ 4
-> LA RACINE CONTIENT k CLES
AVEC 1 ≤ k ≤ 4

51

11 30 66 78

2 7 35 41 53 54 63 79 84 93

12 15 22 68 69 71 76
RECHERCHE
(D'UN ELEMENT DE CLE K)

• METHODE
A PARTIR DE LA RACINE, POUR
CHAQUE NOEUD EXAMINE

- LA CLE K EST PRESENTE :


SUCCES
- K < k1
-> RECHERCHE DANS P0^
- K>k
-> RECHERCHE DANS Pk^
- ki < K < ki+1
-> RECHERCHE DANS Pi^

• SI UN DES POINTEURS VAUT NIL


LA RECHERCHE EST UN ECHEC
INSERTION D'UN ELEMENT
DANS UN ARBRE-B
INSERTION DE LA CLE 75
(Dans l'arbre-B de l'exemple 0)

• INSERTION DE 75 DANS UN NŒUD PLEIN


=> 5 CLES
51

11 30 66 78

2 7 35 41 53 54 63 79 84 93

12 15 22 68 69 71 76

• ECLATEMENT DU NOEUD EN 2 :
- LES 2 PLUS PETITES CLES RESTENT
DANS LE NOEUD
- LES 2 PLUS GRANDES CLES SONT
INSEREES DANS UN NOUVEAU NOEUD

• REMONTEE DE LA CLE MEDIANE (71)


DANS LE NOEUD PERE
INSERTION DE LA CLE 75 (2)

• L'ARBRE-B DEVIENT

51

11 30 66 71 78

2 7 35 41 53 54 63 79 84 93

12 15 22
68 69 75 76
EXEMPLE (n°1)

• ARBRE-B D'ORDRE 2

5 11 16 21

1 2 3 4 22 23 24 25

6 7 8 10 17 18 19 20

12 13 14 15
INSERTION DE LA CLE 9

• Eclatement du noeud par l'arrivée de la


clé 9
6 7 8 10

-> Remontée de la clé 8 au noeud père

• Eclatement du noeud par l'arrivée de


la clé 8

5 11 16 21

-> Création d'une nouvelle racine


avec la clé 11
-> Augmentation d'une unité de la
hauteur
ETAPE INTERMEDIAIRE
ZONE MEMOIRE TAMPON

5 8 11 16 21

1 2 3 4 22 23 24 25

6 7 17 18 19 20

9 10 12 13 14 15

11

5 8 16 21

1 2 3 4 9 10 12 13 14 15 22 23 24 25

6 7
17 18 19 20
PRINCIPE DE L'INSERTION DANS
UN ARBRE-B D'ORDRE m
• RECHERCHE DE LA FEUILLE
D'INSERTION

Si LA FEUILLE N'EST PAS PLEINE


Alors
INSERER LA CLE "A SA PLACE"
Sinon
/*La feuille est pleine 2m clés*/
LAISSER LES m PLUS PETITES
CLES DANS LE NOEUD
ALLOUER UN NOUVEAU NOEUD ET Y
PLACER LES m PLUS GRANDES CLES
REMONTER LA CLE MEDIANE DANS
LE NOEUD PERE
APPLICATION RECURSIVE DE CE
PRINCIPEEVENTUELLEMENT
JUSQU'A LA RACINE
Finsi
SUPPRESSION D'UN ELEMENT
DANS UN ARBRE-B
EXEMPLE (n°2)
• ARBRE B D'ORDRE 2
10 15 27

12 14 20 25

• SUPPRESSION DE LA CLE 25

10 27

12 14 15 20

-> SUPPRESSION DANS UNE FEUILLE


-> LE NOMBRE D'ELEMENT DEVIENT < 2
-> COMBINAISON AVEC UN NŒUD
VOISIN
-> DESCENTE DE LA CLE (ICI 15)
-> SUPPRESSION DU NOEUD
20 25
EXEMPLE (n°3)
• D'ARBRE B D'ORDRE 2
4 8

1 2 3 6 7

• SUPPRESSION DE LA CLE 6
(SUPPRESSION DANS UNE FEUILLE)
3 8

1 2 4 7

-> LE NOMBRE D'ELEMENT < 2


-> COMBINAISON AVEC UN NOEUD
VOISIN
-> DESCENTE DE LA CLE (ICI 4)
-> NOMBRE DE CLES > 4
-> REDISTRIBUTION AVEC REMONTEE DE
LA CLE MEDIANE (ICI 3)
EXEMPLE (n°4)
• ARBRE-B D'ORDRE 2 (ETAT INITIAL)
11

3 8 16 21

1 2 4 7 9 10

• SUPPRESSION DE LA CLE 4
11

8 16 21

1 2 3 7 9 10

• FINAL
8 11 16 21

1 2 3 7 9 10

La hauteur de l'arbre est passée de 2 a 1


EXEMPLE (n°5)
• D'ARBRE-B D'ORDRE 2
5 8

1 2 3 4 6 7 9 10

• SUPPRESSION DE LA CLE 5
(SUPPRESSION DANS UN NOEUD NON FEUILLE)

4 8

1 2 3 6 7 9 10

-> RECHERCHE D'UNE CLE ADJACENTE DE


LA CLE : ON PREND LA PLUS GRANDE
CLE DU SOUS-ARBRE GAUCHE DE LA
CLE
-> REMPLACEMENT DE LA CLE PAR LA CLE
ADJACENTE TROUVEE
-> SUPPRESSION DE LA CLE TROUVEE DANS
UN NOEUD FEUILLE
EXEMPLE EN CASCADE

11

5 8 16 21

1 2 3 4 9 10 12 13 14 15 22 23 24 25

6 7
17 18 19 20

• SUPPRESSION DE LA CLE 5

11

4 8 16 21

1 2 3 9 10 12 13 14 15 22 23 24 25

6 7
17 18 19 20
EXEMPLE EN CASCADE (2)
• SUPPRESSION DE LA CLE 6
11

3 8 16 21

1 2 9 10 12 13 14 15 22 23 24 25

4 7
17 18 19 20

• SUPPRESSION DE LA CLE 4
11

8 16 21

1 2 3 7 9 10 12 13 14 15 22 23 24 25

17 18 19 20
EXEMPLE EN CASCADE (3)

• ETAT FINAL

8 11 16 21

1 2 3 7

9 10 12 13 14 15 22 23 24 25

17 18 19 20
PRINCIPE DE LA SUPPRESSION
• CAS n°1
SUPPRESSION DANS UNE FEUILLE

- LE NOMBRE DE CLES EST m


-> TASSER LES CLES DANS LE NOEUD

- LE NOMBRE DE CLE DEVIENT < m


-> COMBINER AVEC UN NOEUD
ADJACENT CE QUI ENTRAINE LA
DESCENTE D'UNE CLE DU NOEUD
PERE AVEC EVENTUELLEMENT UNE
REORGANISATION LOCALE

LA REDUCTION DU NOEUD PERE


AVEC MOINS DE m CLES ENTRAINE
LA COMBINAISON DE CE NOEUD
PERE AVEC UN NOEUD VOISIN DU
MEME NIVEAU REMONTEE
EVENTUELLE JUSQU'A LA RACINE
PRINCIPE DE LA SUPPRESSION (2)
• CAS n°2
SUPPRESSION DANS UN NOEUD NON
FEUILLE

- RECHERCHER une CLE ADJACENTE


à la clé à SUPPRIMER
- SOIT LA PLUS PETITE DU SOUS
ARBRE DROIT
- SOIT LA PLUS GRANDE DU SOUS
ARBRE GAUCHE

-REMPLACER LA CLE A SUPPRIMER


PAR LA CLE ADJACENTE TROUVEE

- SUPPRIMER LA CLE ADJACENTE


(EQUIVALENT A LA SUPPRESSION
DANS UNE FEUILLE)
INDEX PAR ARBRE B+
STRUCTURE D'ARBRE B+

• DEFINITION
UN ARBRE B+ EST UN ARBRE B OU
LES FEUILLES CONTIENNENT
TOUTES LES CLES

• SCHEMA D'UN NOEUD :


P0 K1 P1 K2 P2 Pk-1 Kk Pk

K ≤K1 K1 < K ≤K2 K2< K ≤ K3 Kk-1 < K ≤Kk K > Kk

• SUPPRESSION D'UNE CLE :


UNIQUEMENT DANS UNE FEUILLE

• UTILISATION
SERT EN PRATIQUE A LA PLACE DES
ARBRES B POUR L'ORGANISATION
DES DONNEES SUR DISQUE
CREATION : INDEX ARBRE B+

• RELATION VINS (NV, CRU, MIL, DEG)


-> NON PLACEE

• CREATION D'UN INDEX UNIQUE


SUR NV
-> ARBRE B+ D'ORDRE 2

51

INDEX SUR
NV EN ARBRE B+
11 30 51 66 76

11 66 76 30 51
PAGES DE LA
RELATION VINS

INDEX NON GROUPANT

(NON PLACANT)
PLACEMENT PAR ARBRE B+
• RELATION VINS (NV, CRU, MIL, DEG)
->PLACEE PAR ARBRE B+ D'ORDRE 2
SUR L'ATTRIBUT NV UNIQUE

125 156

INDEX SUR NV

110 125 142 156

106 110 115 125

101 107 111 118


103 109 112 120 PAGES DE LA
104 110 115 121 RELATION VINS
106 125

INDEX GROUPANT

(PLACANT)
ARBRE B+
• INDEX ORGANISE EN ARBRE B
+
ENSEMBLE DE FEUILLES
CONTENANT LES CLES

ACCES DIRECT

INDEX

ACCES SEQUENTIEL

CLES

• CONSEQUENCES
- ECLATEMENT D'UNE FEUILLE : UNE
COPIE DE LA CLE MEDIANE EST
REMONTEE
- SUPPRESSION D'UNE CLE :
UNIQUEMENT DANS UNE FEUILLE
=> RECHERCHE JUSQU'AUX
FEUILLES
CRITIQUE PLACEMENT ARBRE B+

• AVANTAGES
-> ACCES SEQUENTIEL TRIE SUR
CLE
-> ACCES SELECTIF SUR CLE
-> QUESTIONS INTERVALLE
-> ADAPTE AUX RELATIONS
VOLUMINEUSES A FORTE
CROISSANCE

• INCONVENIENTS
-> TRAVERSEE INDEX POUR
ACCES SELECTIF
-> MAJ COUTEUSE SI :
Eclatement page (INSERTION)
Fusion page (SUPPRESSION)
PLACEMENT DES DONNEES SUR
MEMOIRE SECONDAIRE PAR
ARBRE B
PLACEMENT DES RELATIONS
PAR ARBRE B

• HYPOTHESES
1 RELATION = 1 FICHIER
1 TUPLE = 1 ENREGISTREMENT
1 ATTRIBUT = 1 CHAMP

CLE DE PLACEMENT : MONO ATTRIBUT


(CORRESPOND A LA CLE PRIMAIRE DE LA
RELATION DEFINIE LORS DE LA CONCEPTION DU
SCHEMA)

• LA STRUCTURE D'ARBRE B SERT


POUR L'ORGANISATION DES
DONNEES SUR DISQUE
PLACEMENT (2)

• FICHIER ORGANISE SOUS FORME


D'ARBRE B

-> A CHAQUE CLE K, DANS TOUT


NOEUD DE L'ARBRE B, EST
ASSOCIEE LA VALEUR DE
L'ELEMENT DE CLE K

• FICHIER INDEXE PAR ARBRE B

-> A CHAQUE CLE K, DANS


L'INDEX ORGANISE EN ARBRE B,
EST ASSOCIE UN POINTEUR VERS
L'ELEMENT DE CLE K
FICHIER ORGANISE EN ARBRE B

• EXEMPLE : ARBRE B D'ORDRE 1


51 Données

11 Données 30 Données

66 Données 76 Données

• INCONVENIENTS
-> 1 NOEUD = 1 BLOC DISQUE
LIMITATION DE L'ORDRE
AUGMENTATION HAUTEUR
-> RECHERCHE,LECTURE
D'INFORMATIONS INUTILES
-> PARCOURS SEQUENTIEL DU FICHIER
PARCOURS ARBRE B
FICHIER INDEXE PAR ARBRE B
• INDEX = ARBRE B (DENSE)
SEQUENTIEL TRIE PAR PARCOURS
D'ARBRE

• DONNEES : SEQUENTIEL NON TRIE

• EXEMPLE (avec arbre B d'ordre 1)

51

11 30 66 76

51 Données 11 Données 66 Données 76 Données 30 Données


PLACEMENT DES DONNEES SUR
MEMOIRE SECONDAIRE PAR
ARBRE B+
L'ORGANISATION INDEXE IS3
• INDEX = ARBRE B+ : DENSE ET TRIE
• DONNEES = SEQUENTIEL NON TRIE

• EXEMPLE : index = arbre B+ d'ordre 2

51

11 30 66 76

2 12 35 53 68 79

7 15 41 54 69 84

11 22 51 63 71 93

30 66 76

• Pointeurs vers des fichiers de données


séquentiels et non triés
L'ORGANISATION VSAM
• ORGANISATION : SEQUENTIELLE
INDEXEE REGULIERE

• Ensemble index + données organisé sous


la forme d'arbre B+

• Index est un ensemble des nœuds non


feuilles : trié, non dense

• Données est un ensemble de feuilles triées

INDEX

DONNEES

• TOUTES LES CLES SONT DANS LES


FEUILLES
EXEMPLE DE FICHIER VSAM
125 156

INDEX

110 125 142 156

106 110 115 125

101 107 111 118


103 109 112 120
104 110 115 121
106 125

Données

• LE FORMAT DES FEUILLES EST


DIFFERENT DU FORMAT DES NON
FEUILLES

• CREATION INITIALE DU FICHIER :


CLES DONNEES DANS L'ORDRE
ZONE DATA REMPLIE A 75 %
ACCES A UNE RELATION
• CLE DE PLACEMENT : PLACEMENT
PAR METHODE INDEXEE

Valeur de la clé
Adresse du TUPLE
de placement

• INDEX SECONDAIRE

RELATION PLACEE, DEUX FORMES


Valeur de la clé Valeur de la clé
secondaire de placement

ou
Valeur de la clé
Adresse du TUPLE
secondaire

• INDEX SECONDAIRE EST LUI


MEME ORGANISE SOUS LA FORME
PAR EXEMPLE, D'UN ARBRE B

Vous aimerez peut-être aussi