title: Dbm
text: # Dbm
  
  dbm a été le premier d'une famille de moteurs de base de données, à l'origine écrit par Ken Thompson et publié par AT&T en 1979. Son nom est le sigle de database manager (gestionnaire de base de données).
  
  dbm stocke des données arbitraires par l'utilisation d'une seule clef (une clé primaire), dans un conteneur en taille fixe et utilise les techniques de hachage pour permettre l'accès rapide aux données via la clé.
  
  Le système de hachage utilisé est une forme de hachage extensible, de sorte que le système de hachage augmente à mesure que de nouvelles données sont ajoutées à la base de données, ce qui signifie que, lorsqu'elle est presque vide, la base de données commence avec un conteneur, qui est ensuite coupé quand il est plein. Les deux conteneurs fils résultant se divisent eux-mêmes quand ils sont pleins, de sorte que la base de données croît quand des clefs sont ajoutées.
  
  dbm et ses dérivés sont des pré-bases de données relationnelles - ils offrent en pratique une fonction de hachage sur le disque qui permet d'accéder rapidement à des données via des clefs. Cette conception simple permet une grande rapidité d'accès.
  
  ## Successeurs
  
  dbm a eu de nombreux successeurs :
  
  * Berkeley DB : une version est disponible sous double licence, libre ou propriétaire. Elle est désormais soutenue et maintenue par la société Oracle depuis février 2006.
  * GDBM : (GNU dbm) bibliothèque logicielle écrite par Philip A. Nelson pour le projet GNU. Il a ajouté le support pour les données de longueur arbitraire. La dernière version a été réalisée le 25 décembre 2013.
  * JDBM : moteur de persistance transactionnelle Java. Il vise à ce que gdbm pour Java est pour d'autres langages (C / C++, Python, Perl, etc.)
  * NDBM : en 1986, Berkeley produit ndbm (pour New Database Manager). Permet d'avoir plusieurs bases de données ouvertes simultanément.
  * QDBM : gestionnaire de bases de données publié sous LGPL par Mikio Hirabayashi en 2000, et maintenu jusqu’en 2006. A prétendu être plus rapide.
  * Sdbm : certaines versions d'Unix excluant ndbm en raison de sa licence, en 1987, Ozan Yigit produit ce clone du domaine public.
  * TDB : par l'équipe Samba, sous licence GPL.
  * Tdbm : fournit le support pour des transactions atomiques.
  * Tokyo Cabinet : ré-implémentation moderne de QDBM, également par Mikio Hirabayashi.
  * VSDB : Une mise en œuvre d'une base de données dbm écrite par John Meacham qui offre toute la sémantique ACID qui la rend plus sûre.
  