Skip to content
Snippets Groups Projects
Forked from algorithmique / cours
441 commits behind the upstream repository.
title: "B-Arbres"
date: "2022-04-13"
patat:
  eval:
    tai:
      command: fish
      fragment: false
      replace: true
    ccc:
      command: fish
      fragment: false
      replace: true
  images:
    backend: auto

Le cours précédent

  • Questions:

Les B-arbres

Problématique

  • Grands jeux de données (en 1970).
  • Stockage dans un arbre, mais l'arbre tiens pas en mémoire.
  • Regrouper les sous-arbres en pages qui tiennent en mémoire.

Exemple

  • 100 noeuds par page et l'arbre comporte
    10610^6
    noeuds:
    • Recherche B-arbre:
      log100(106)=3\log_{100}(10^6)=3
      ;
    • Recherche ABR:
      log2(106)=20\log_2(10^6)=20
      .

Remarques

  • On sait pas ce que veut dire B: Bayer, Boeing, Balanced?
  • Variante plus récente B+-arbres.

Les B-arbres

Illustration, arbre divisé en pages de 3 noeuds

Arbre divisé en pages de 3 noeuds

. . .

Utilisation

  • Bases de données;
  • Système de fichier.

Les B-arbres

Avantages

  • Arbres moins profonds;
  • Diminue les opération de rééquilibrage;
  • Complexité toujours en
    log(N)\log(N)
    ;

. . .

Définition: B-arbre d'ordre
nn

  • Chaque page d'un arbre contient au plus
    2n2\cdot n
    clés;
  • Chaque page (excepté la racine) contient au moins
    nn
    clés;
  • Chaque page qui contient
    mm
    clés contient soit:
    • 00
      descendants;
    • m+1m+1
      descendants.
  • Toutes les pages terminales apparaissent au même niveau.

Les B-arbres

Est-ce un B-arbre?

B-arbre d'ordre 2.

. . .

Oui!

  • Chaque page contient au plus
    nn
    noeuds: check;
  • Chaque noeud avec
    mm
    clés a
    m+1m+1
    descendants;
  • Toutes les feuilles apparaissent au même niveau.