Les termes dictionnaire de données et référentiel de données indiquent une utilité logicielle plus générale qu’un catalogue. Un catalogue est étroitement couplé au logiciel du SGBD. Il fournit les informations qui y sont stockées à l’utilisateur et au DBA, mais il est principalement consulté par les différents modules logiciels du SGBD lui-même, tels que les compilateurs DDL et DML, l’optimiseur de requêtes, le processeur de transactions, les générateurs de rapports et l’exécuteur de contraintes. D’autre part, un dictionnaire de données est une structure de données qui stocke des métadonnées, c’est-à-dire des données (structurées) sur les informations. Le logiciel d’un dictionnaire de données ou d’un référentiel de données autonome peut interagir avec les modules logiciels du SGBD, mais il est principalement utilisé par les concepteurs, les utilisateurs et les administrateurs d’un système informatique de gestion des ressources d’information. Ces systèmes maintiennent des informations sur la configuration matérielle et logicielle du système, la documentation, l’application et les utilisateurs ainsi que d’autres informations pertinentes pour l’administration du système.
Si un système de dictionnaire de données est utilisé uniquement par les concepteurs, les utilisateurs et les administrateurs et non par le logiciel du SGBD, il est appelé dictionnaire de données passif. Dans le cas contraire, il est appelé dictionnaire de données actif ou dictionnaire de données. Lorsqu’un dictionnaire de données passif est mis à jour, il l’est manuellement et indépendamment de toute modification de la structure d’un SGBD (base de données). Avec un dictionnaire de données actif, le dictionnaire est mis à jour en premier et les changements se produisent dans le SGBD automatiquement en conséquence.
Les utilisateurs de bases de données et les développeurs d’applications peuvent bénéficier d’un document de dictionnaire de données faisant autorité qui catalogue l’organisation, le contenu et les conventions d’une ou plusieurs bases de données. Ce document comprend généralement les noms et les descriptions des différentes tables (enregistrements ou Entités) et de leur contenu (champs), ainsi que des détails supplémentaires, comme le type et la longueur de chaque élément de données. Un autre élément d’information important qu’un dictionnaire de données peut fournir est la relation entre les tables. On y fait parfois référence dans les diagrammes Entité-Relation, ou si l’on utilise des descripteurs d’ensembles, en identifiant à quels ensembles les Tables de la base de données participent.
Dans un dictionnaire de données actif, des contraintes peuvent être placées sur les données sous-jacentes. Par exemple, une plage peut être imposée sur la valeur des données numériques dans un élément de données (champ), ou un enregistrement dans une table peut être FORCÉ de participer à une relation d’ensemble avec un autre type d’enregistrement. En outre, un SGBD distribué peut avoir certaines spécificités d’emplacement décrites dans son dictionnaire de données actif (par exemple, où les Tables sont physiquement situées).
Le dictionnaire de données est constitué de types d’enregistrements (tables) créés dans la base de données par des fichiers de commande générés par les systèmes, adaptés à chaque SGBD dorsal pris en charge. Oracle dispose d’une liste de vues spécifiques pour l’utilisateur « sys ». Cela permet aux utilisateurs de rechercher les informations exactes dont ils ont besoin. Les fichiers de commande contiennent des instructions SQL pour CREATE TABLE, CREATE UNIQUE INDEX, ALTER TABLE (pour l’intégrité référentielle), etc. en utilisant l’instruction spécifique requise par ce type de base de données.
Il n’y a pas de norme universelle quant au niveau de détail d’un tel document.