LES B-ARBRES

Comment une base de donnees retrouve-t-elle une ligne parmi cent millions, en quelques millisecondes ? La reponse tient en une structure inventee en 1970 et jamais detronee depuis : le B-arbre. Ce cours l'explique de la definition formelle jusqu'aux index SQL, schemas a l'appui.

Ce que vous saurez faire a la fin

  • Enoncer la definition d'un B-arbre et verifier qu'un arbre donne en est un.
  • Passer d'une convention a l'autre : degre minimal t et ordre m : sans vous tromper en examen.
  • Demontrer la borne sur la hauteur, h ≤ logt((n+1)/2).
  • Derouler a la main une recherche, une insertion avec eclatement, une suppression avec fusion ou rotation.
  • Calculer le degre optimal a partir de la taille d'une page disque.
  • Comprendre pourquoi un index accelere certaines requetes SQL et pas d'autres.

A qui s'adresse ce cours

A tout etudiant qui connait deja les arbres binaires de recherche. Les prerequis sont rappeles au passage, et chaque notion nouvelle est introduite par un exemple avant d'etre formalisee.

Le cours s'adresse aussi a ceux qui preparent un examen de structures de donnees : les demonstrations sont detaillees pas a pas, et les deux conventions de notation sont traitees cote a cote.

Le point de depart

Un B-arbre de degre minimal 2 : la racine contient les cles J et M, ses trois fils sont les feuilles A B D, K, puis S T W.

Un noeud porte plusieurs cles triees, un noeud a k cles possede k+1 fils, et toutes les feuilles sont exactement au meme niveau. Ces trois observations contiennent deja l'essentiel ; le reste du cours en tire les consequences.

Les huit chapitres

Chapitre 1Pourquoi le disque change toutLes B-arbres n'existent pas pour aller vite en mémoire, mais pour éviter le disque. Comprendre ce rapport de un à un million explique toute la structure.Chapitre 2La définition, et ses deux conventionsCe qu'est exactement un B-arbre : les quatre propriétés qui le définissent, et la réconciliation des deux notations, degré minimal t et ordre m, qu'on rencontre selon les cours.Chapitre 3Anatomie d'un nœudComment un nœud est réellement organisé en mémoire et sur le disque : clés, pointeurs, intervalles, et le choix du degré en fonction de la taille d'une page.Chapitre 4La hauteur, et pourquoi elle reste minusculeLe théorème central des B-arbres : h ≤ log_t((n+1)/2), avec sa démonstration détaillée pas à pas, et ce qu'il garantit en pratique.Chapitre 5Rechercher une cléL'algorithme de recherche dans un B-arbre, sa traduction en code, et la distinction entre le coût en accès disque et le coût processeur.Chapitre 6Insérer : l'éclatement des nœuds pleinsComment ajouter une clé sans jamais déséquilibrer l'arbre : le partage d'un nœud plein, l'astuce de l'éclatement préventif, et la croissance par le haut.Chapitre 7Supprimer : emprunter ou fusionnerLa suppression, opération la plus délicate du B-arbre : remplacement par un voisin, emprunt au frère par rotation, fusion quand personne ne peut prêter, et rétrécissement par le haut.Chapitre 8B+ arbres, bases de données et systèmes de fichiersLa variante qui équipe réellement les bases de données : feuilles chaînées, nœuds internes allégés, et pourquoi tous les index sérieux sont des B+ arbres.

Pour aller plus loin

Pour prolonger ce cours : Algorithmes de graphes : parcours, chemins, arbres couvrants et flots, avec dix chapitres et des exercices corrigés.

Questions / Réponses

Aucune question. Soyez le premier à poser une question.
★ ★ ★ ★ ★
2 votes. Moyenne 5 sur 5.

Ajouter un commentaire

Anti-spam