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) -> 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) - 1 -> NbClesMax = (2*m+1) - 1 m = 100, h = 2 ==> NbClesMax = 8 000 000 STOCKAGE SUR DISQUE -> UN NOEUD = UNE PAGE h h+1
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
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 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
EXEMPLE (n°1) ARBRE-B D'ORDRE 2
INSERTION DE LA CLE 9 Eclatement du noeud par l'arrivée de la clé 9 -> Remontée de la clé 8 au noeud père Eclatement du noeud 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
ETAPE INTERMEDIAIRE
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 SUPPRESSION DE LA CLE 25 -> 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
EXEMPLE (n°3) D'ARBRE B D'ORDRE 2 SUPPRESSION DE LA CLE 6 SUPPRESSION DE LA CLE 6 (SUPPRESSION DANS UNE FEUILLE) -> 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)
La hauteur de l'arbre est passée de 2 a 1 EXEMPLE (n°4) ARBRE-B D'ORDRE 2 (ETAT INITIAL) SUPPRESSION DE LA CLE 4 FINAL La hauteur de l'arbre est passée de 2 a 1
(SUPPRESSION DANS UN NOEUD NON FEUILLE) EXEMPLE (n°5) D'ARBRE-B D'ORDRE 2 SUPPRESSION DE LA CLE 5 (SUPPRESSION DANS UN NOEUD NON FEUILLE) -> 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 SUPPRESSION DE LA CLE 5
EXEMPLE EN CASCADE (2) SUPPRESSION DE LA CLE 6 SUPPRESSION DE LA CLE 4
EXEMPLE EN CASCADE (3) ETAT FINAL
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+
UN ARBRE B+ EST UN ARBRE B OU LES FEUILLES CONTIENNENT TOUTES LES CLES STRUCTURE D'ARBRE B+ DEFINITION UN ARBRE B+ EST UN ARBRE B OU LES FEUILLES CONTIENNENT TOUTES LES CLES SCHEMA D'UN NOEUD : 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 (NON PLACANT)
PLACEMENT PAR ARBRE B+ RELATION VINS (NV, CRU, MIL, DEG) -> PLACEE PAR ARBRE B+ D'ORDRE 2 SUR L'ATTRIBUT NV UNIQUE (PLACANT)
ARBRE B+ INDEX ORGANISE EN ARBRE B + ENSEMBLE DE FEUILLES CONTENANT LES 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 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)
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 Pointeurs vers des fichiers de données séquentiels et non triés
TOUTES LES CLES SONT DANS LES FEUILLES 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 TOUTES LES CLES SONT DANS LES FEUILLES
EXEMPLE DE FICHIER VSAM 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 %
CLE DE PLACEMENT : PLACEMENT PAR METHODE INDEXEE ACCES A UNE RELATION CLE DE PLACEMENT : PLACEMENT PAR METHODE INDEXEE INDEX SECONDAIRE RELATION PLACEE, DEUX FORMES INDEX SECONDAIRE EST LUI MEME ORGANISE SOUS LA FORME PAR EXEMPLE, D'UN ARBRE B