Les bases de données hiérarchiques sont un type de base de données organisé sous la forme de plusieurs arbre avec des branches. Avec cette arborescence, chaque élément dépend d’un seul élément mère et peut avoir des éléments sœurs et des éléments filles. On peut dire qu’il s’agit d’une version spécifique des bases de données réseau.
Ce type de classification convient très bien pour organiser certaines informations qui ne bougent pas avec le temps (la classification des espèces vivantes ou la base de registre de Windows ou encore la nomenclature des fusées Saturn V par exemple). Comme on trouve ce type de hiérarchies dans le monde qui nous entoure, c’est un des premiers type de bases de données à avoir été créé. Aujourd’hui, largement désuet, ce type de base se retrouve encore dans d’anciens systèmes dans le monde de la bancassurance.
Lorsque les relations entre éléments évoluent avec le temps ou lorsque des éléments apparaissent/disparaissent ou encore lorsque les relations sont différentes des relations simple 1 -> N, alors les bases de données hiérarchiques montrent leurs limites.
L’accès au données se fait en parcourant obligatoirement l’arbre et chaque élément à une seule adresse. Cela pose, par exemple, problème lorsqu’une même information doit se trouver à plusieurs endroits (au sein du même arbre ou entre arbres) : en plus de problème de cohérence de données (ne pas oublier de tout actualiser partout), il s’agit d’un gaspillage de place qui va à l’encontre de la logique d’efficience des bases de données. Il existe des parades avec des techniques d’enregistrements virtuels qui sont concrètement des pointeurs dirigeant vers l’enregistrement unique
On manipule ces données hiérarchiques, non pas avec du SQL, mais avec DL/1, langage maison peu complexe et peu convivial d’IBM.
Utilisées à l’origine des bases de données, elles ont quasiment toutes été remplacées par les bases de données relationnelles, beaucoup plus souples et évolutives.
IMS de la société IBM est la base de données type d’une base de données hiérarchique. Cette base date de 1966 (un ancêtre !) mais est malgré tout capable de gérer des transactions et c’était ce type de système robuste qui a géré pendant longtemps les retraits dans les distributeurs de billets des banques.