Un système de gestion de bases de données va donc posséder un certain nombre de composants
logiciels et ce, quelque soit le modèle de données qu'il supporte. On trouve donc des composants
chargés de :
La description des données
Cette partie sera constituée des outils (en gros des langages) permettant de décrire la vision des
données de chaque utilisateur et l'intégration dans une vision globale. On y trouve aussi les
outils permettant de décrire le stockage physique des données.
La récupération des données
Cette partie prend en charge l'interrogation et la modification des données et ce, de façon
optimisée. Elle est composée de langages de manipulation de données spécifiques et
d'extensions de langages ``classiques''. Elle gère aussi les problèmes de sécurité.
La sauvegarde et la récupération après pannes
Cette partie comporte des outils permettant de sauvegarder et de restaurer de façon explicite une
base de données. Elle comporte aussi des mécanismes permettant, tant qu'une modification n'est
pas finie, de pouvoir revenir à l'état de la base avant le début de cette modification.
Les accès concurrents aux données
C'est la partie chargée du contrôle de la concurrence des accès aux données. Elle doit être telle
que chaque utilisateur attende le moins possible ses données tout en étant certain d'obtenir des
données cohérentes en cas de mises à jour simultanées de la base.
Chacun de ces composants est décrit de façon plus détaillée par la suite.