Introduction et définitions

L’informatique évolue vers le traitement de masses d’informations de plus en plus grandes dans des environnements répartis géographiquement où doivent cohabiter des matériels hétérogènes.

Dans ce contexte, les bases de données sont utilisées de façon intensive pour de nombreux domaines d’application tels que le domaine médical, les administrations ou les associations.

Les applications concernées par l’utilisation d’un SGBD possèdent des caractéristiques différentes tant au niveau du volume de données concernées qu’au niveau de la complexité de ces données et des traitements informatiques à réaliser. Néanmoins, le regroupement des données dans une base de données gérée par un système de gestion de base de données apporte de nombreux avantages dans la plupart des cas d’utilisation. De manière intuitive, il est possible de définir une base de données de la façon suivante :

Base de données

Une base de données est une collection de données sur un domaine d’application particulier où les propriétés des données ainsi que les relations sémantiques entre ces données sont spécifiées en utilisant les concepts proposés par le modèle de données sous-jacent.

Modèle de données

La notion de modèle de données est essentielle et c’est elle qui souvent motive le choix de l’utilisation d’une base de données. En effet, la résolution d’un problème par un automate nécessite de représenter l’information sur le domaine traité appelé parfois mini-monde ou univers du discours sous une forme digitale qui soit interprétable et manipulable par un ordinateur. Le modèle doit donc être spécifié en utilisant des données codées et stockées en mémoire ainsi que par des opérations (programmes) qui déterminent comment ces données peuvent être utilisées pour résoudre le problème posé . Un modèle peut se définir comme une représentation abstraite de l'information et éventuellement des opérateurs de manipulation de l'information.

Les langages de programmation permettent de définir, stocker et manipuler des données de façon satisfaisante pour des applications qui adressent un problème particulier. Cependant, pour des traitements ensemblistes, ils nécessitent une programmation longue et des tâches répétitives. Ils manquent de souplesse en cas de modification de structures ou pour l’interrogation et l’analyse d’un ensemble de données. Ces faiblesses sont dues à un modèle de données très simple où les traitements sont définis dans leur intégralité par l’utilisateur.

Le modèle de données offre un niveau d’abstraction supérieur pour la représentation des données et leurs traitements. La sémantique additionnelle proposée par le modèle permet de s’abstraire en fonction du modèle de certains détails liés au stockage et à la représentation physique des données. Les premiers modèles utilisés en bases de données, le modèle hiérarchique et le modèle réseau ont introduit des concepts de liens entre les données. Ces liens possédaient une sémantique plus riche que les simples pointeurs utilisés en programmation et étaient gérés pas le système de gestion de base de données. Ils permettaient de naviguer dans des structures de type graphe et d’accéder à des groupes de données. Dans les années 70, le modèle relationnel a permis d’offrir aux utilisateurs une vue plus simple et plus homogène données grâce à une vision tabulaire très intuitive et indépendante de la gestion physique. De plus, des langages assertionnels basés sur la logique permettaient d’énoncer des requêtes basées sur le contenu et non l’emplacement de stockage. Les années 90 ont vu l’approche des systèmes de gestion de bases de données à objets. L’objectif de ces nouveaux systèmes était de pallier certains manques des SGBD relationnels notamment pour traiter des données complexes en adoptant une technologie largement utilisée dans de nombreux domaines de l’informatique. Aujourd’hui chaque technologie trouve sa place dans le monde industriel en fonction des besoins des applications.

Idéalement une base de données représente un aspect du monde réel et le modèle doit donc permettre de spécifier les propriétés de cohérence, d’évolution des données et des structures, de représentation des exceptions aux règles générales, des différents profils des utilisateurs. Dans la pratique, une base de données fournit un niveau intermédiaire de représentation entre les fichiers et le monde extérieur qui permet entre autre d’adresser certains de ces problèmes. La spécification du schéma de données se fait en passant par une étape de modélisation où un modèle d’un niveau d’abstraction supplémentaire est utilisé. Il existe différentes méthodes telles que Merise, OMT ou UML pour atteindre cet objectif. Certaines sont supportées par un atelier tel que AMC Designor pour Merise ou Rational ROSE pour UML qui facilite notamment le passage d’une représentation à l’autre.

Certaines propriétés définies dans les modèles proposés par ces méthodes sont difficilement traduisibles dans un modèle de base de données tel que le modèle relationnel. Néanmoins, certains modèles de bases de données, les modèles sémantiques, réduisent l’écart entre les niveaux d’abstraction. Le principal écueil à leur développement est la difficulté de trouver un compromis entre richesse sémantique et simplicité d’expression en tenant compte des performances.

Système de Gestion de Bases de données

Un système de gestion de bases de données (SGBD) est une collection de logiciels permettant de créer, de gérer et d’interroger efficacement une base de données indépendamment du domaine d’application.

D’un point de vue fonctionnel, les apports escomptés d’un SGBD sont les suivants :

Il existe des SGBD de complexité variable qui possèdent tout ou partie des propriétés ci-dessus. Prenons en exemple deux produits assez caractéristiques : le SGBD relationnel Oracle 7 et le SGBD relationnel Access. Le SGBD Oracle 7 est un SGBD relationnel utilisé pour des applications critiques et qui offre un maximum des caractéristiques présentées ici. Le SGBD Access est un SGBD dans le monde de l’informatique individuelle qui présente l’avantage d’une grande facilité d’utilisation et qui peut convenir à des application de taille réduite ou moyenne. L’aspect convivial de ce dernier étant évident. En revanche, les niveaux de performance et de sécurité ne sont pas comparables.

Architecture de SGBD

Les SGBD reposent sur trois niveaux d’abstraction qui assurent l’indépendance logique et physique des données, autorisent la manipulation de données, garantissent l’intégrité des données et optimisent l’accès aux données. L’architecture ANSI/SPARC spécifie cette architecture à trois niveaux pour un SGBD :

Cette architecture vise à identifier différents niveaux de structuration dans un SGBD comme cela est illustré sur la figure 1. L’objectif visé par cette structuration est l’obtention d’une indépendance maximale entre les niveaux.

Figure 1 : architecture d’un SGBD

Notions d'indépendance

Cette architecture logique permet donc d’identifier la logique de structuration d’un système de gestion de bases de données. D’un point de vue fonctionnelle, il est possible d’identifier plusieurs composants que l’on retrouve dans la plupart des SGBD. La figure 2 illustre cette composition.

Figure 2 : composants d’un SGBD


Le catalogue système ou dictionnaire de données est un composant au coeur de la communication entre les autres composants. Il contient toutes les méta-données utiles au système. Ces méta-données correspondent à la description des données (type, taille, valeurs autorisées, etc.), aux autorisations d’accès, aux vues et autres éléments systèmes. Le catalogue correspond à la réalisation de l’architecture à trois niveaux décrite précédemment. Le catalogue contient la description des différents schémas (physique, conceptuel et externes) ainsi que les règles de passage d’un schéma vers l’autre.

Le gestionnaire de requêtes est responsable du traitement des commandes des utilisateurs visant à stocker, rechercher et mettre à jour des données dans la base de données. En utilisant les informations stockées dans le catalogue, il interprète ces requêtes et les traduit en des requêtes d’accès physique aux données susceptibles d’être traitées par le système de gestion de fichiers.

Le gestionnaire de transactions est responsable de traiter les transactions. Une transaction est un ensemble d’opérations d’accès et de mise à jour de données émises par un utilisateur. Ces opérations doivent être traitées comme un tout et le gestionnaire de transaction doit assurer d’une part l’indivisibilité des opérations soumises, la cohérence du système après l’exécution de l’ensemble des opérations, l’isolation des traitements par rapports aux autres traitements qui peuvent être soumis de façon concurrente et enfin la persistance des résultats une fois l’ensemble des opérations achevées.

Le gestionnaire de reprise est un élément essentiel d’un SGBD qui doit remplacer le système de gestion de fichier traditionnel afin de minimiser les effets d’une panne sur la base de données. Un tel système ne peut évidemment pas être sûr ou sécurisé à 100 %. Néanmoins, il est indispensable que le gestionnaire de reprise puisse pallier à certaines pannes qui peuvent avoir différentes causes telle qu’une division par zéro dans un programme, à un problème de disque défectueux ou à une panne d’alimentation. L’objectif essentiel du gestionnaire de reprise est de restaurer la base de données dans un état cohérent. Vue les causes très différentes de panne et les difficultés liées à cette gestion, cet élément est un élément central qui concerne environ 10 % ou plus du code d’un SGBD.