Provided by: manpages-fr-dev_2.64.1-1_all bug

NOM

       hash - Méthodes d’accès aux bases de données avec tables de hachage.

SYNOPSIS

       #include <sys/types.h>
       #include <db.h>

DESCRIPTION

       La  routine dbopen est l’interface de bibliothèque des fichiers de base
       de données. L’un des formats de  fichier  supportés  est  la  table  de
       hachage.  La  description  générale  des méthodes d’accès à une base de
       données est fournie dans la page de manuel dbopen(3). La page  présente
       ne décrit que les informations spécifiques aux tables de hachage.

       Les  structures  de  hachage  représentent un schéma de base de données
       dynamique et extensible.

       La structure de données spécifique  aux  tables  de  hachage  que  l’on
       transmet à dbopen() est définie dans <db.h> ainsi :

       typedef struct {
              u_int bsize;
              u_int ffactor;
              u_int nelem;
              u_int cachesize;
              u_int32_t (*hash)(const void *, size_t);
              int lorder;
       } HASHINFO;

       Les éléments de cette structure sont les suivants :

       bsize  Bsize  (bucket  size) défini la taille des cases de la table, et
              vaut, par défaut, 256 octets. Il est préférable  d’augmenter  la
              taille  de  page  pour  les  table  situées sur disque ayant des
              éléments avec beaucoup de données.

       ffactor
              Ffactor indique une densité désirée au  sein  de  la  table.  Il
              s’agit d’une approximation du nombre de clés pouvant s’accumuler
              dans une seule case, ce qui détermine le moment où la table doit
              s’agrandir ou se rétrécir. La valeur par défaut est 8.

       nelem  Nelem  est  une  estimation  de  la taille finale de la table de
              hachage. S’il n’est pas configuré, ou s’il  est  configuré  trop
              bas,  la  table  s’agrandira quand même correctement au fur et à
              mesure de l’entrée des clés, bien qu’une légère dégradation  des
              performances puisse être observée. La valeur par défaut est 1.

       cachesize
              Une  taille  maximale suggérée de mémoire cache, en octets. Ceci
              n’a qu’une valeur indicative, et les méthodes d’accès alloueront
              plus de mémoire plutôt que d’échouer.

       hash   Hash  est  une  fonction définie par l’utilisateur. Comme aucune
              fonction de hachage ne se comporte parfaitement  bien  sur  tout
              type  de  données,  il peut arriver que la fonction interne soit
              particulièrement mauvaise sur un jeu particulier de données.  La
              fonction  de hachage fournie par l’utilisateur doit prendre deux
              arguments (un pointeur sur une chaîne d’octets et une  longueur)
              et  renvoyer  une  valeur sur 32 bits utilisable comme valeur de
              hachage.

       lorder L’ordre des octets pour les entiers  stockés  dans  la  base  de
              données. Ce nombre doit représenter l’ordre sous forme d’entier.
              Par exemple l’ordre poids faible-poids  fort  (big  endian)  est
              représenté  par  le  nombre  4321. Si lorder vaut 0 (pas d’ordre
              indiqué), on utilise l’ordre des octets du système hôte.

       Si le  fichier  existe  déjà  (et  si  le  drapeau  O_TRUNC  n’est  pas
       spécifié),  les  valeurs spécifiées dans les paramètres bsize, ffactor,
       lorder et nelemn sont ignorés et les  valeurs  spécifiées  lors  de  la
       création de l’arbre sont utilisées à la place.

       SI  une  fonction  de  hachage  est  indiquée,  hash_open  essayera  de
       déterminer s’il s’agit de la même fonction que celle indiquée  lors  de
       la  création de la base de données, et échouera si ce n’est pas le cas.

       Des interfaces pour les routines décrites dans dbm(3), et ndbm(3)  sont
       fournies  pour la compatibilité ascendante, toutefois ces interfaces ne
       sont pas compatibles avec les anciens formats de fichier.

ERREURS

       Les routines d’accès aux tables de hachage peuvent échouer  et  remplir
       errno avec n’importe quelle erreur indiquée par la routine dbopen(3).

BOGUES

       Seuls  les ordres d’octets gros boutiste (big-endian) et petit boutiste
       (little-endian) fonctionnent.

VOIR AUSSI

       btree(3), dbopen(3), mpool(3), recno(3)

       Dynamic Hash Tables, Per-Ake Larson, Communications of the  ACM,  April
       1988.

       A  New Hash Package for UNIX, Margo Seltzer, USENIX Proceedings, Winter
       1991.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Florentin Duneau <fduneau@gmail.com> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».