Les bases de données structurées

BDD et SGBD

Aujourd’hui les données sont considérées comme de véritables trésors. Il faut donc en prendre soin ! Elles doivent être stockées en sécurité, accessibles rapidement, modifiables selon des règles définies…

Le point essentiel à retenir est la distinction entre les données elles-mêmes et leur traitement.

 

Bases de données

Une base de données (BDD) est un ensemble de données accessible avec un matériel informatique susceptible de répondre à une ou plusieurs demandes simultanées. Ces données peuvent être des nombres, du texte, des images, des vidéos, etc. Nous n’évoquerons que les données structurées, pouvant être représentées sous forme de tables.

Physiquement, une BDD est composée de fichiers qui stockent les données sous forme binaire, de fichiers de reprise en cas de panne, éventuellement de fichiers d’archives, de fichiers de trace (actions effectuées) et d’un fichier de contrôle (chemins d’accès aux données). Sur quels supports ? Voir le stockage des données.

entrepôt

On utilise parfois le terme de banque de données pour désigner un ensemble de fichiers qui constituent chacun une BDD. Mais la distinction entre les deux n’a jamais été très claire.

Un jeu de données (dataset) est une extraction de BDD structurée utilisée dans un contexte particulier.

 

SGBD

Un système de gestion de base de données (SGBD) permet aux utilisateurs autorisés d’interagir avec la BDD (mises à jour, requêtes…). Ils ne manipulent pas directement le SGBD mais des logiciels applicatifs qui, eux, communiquent avec lui.

Les SGBD ont remplacé les systèmes de fichiers à partir du milieu des années 60. Ils utilisent principalement le langage SQL.

Il faut donc distinguer la BDD, en d’autres termes le stockage des données, qui se trouve sur des disques et le SGBD qui est la partie logicielle. Les deux sont complémentaires mais bien distincts.

Et pourquoi pas des fichiers distincts pour chaque application métier ? Les points suivants indiquent quelques problèmes que cette solution entraînerait.

  • Partage des données : si deux utilisateurs modifient en même temps un fichier, seul celui qui l’a sauvegardé en dernier voit sa modification enregistrée.

  • Redondance des données : si une même donnée est stockée en plusieurs endroits, le risque existe que des mises à jour ne soient pas réalisées partout. Par exemple, une référence d’un produit change mais la modification n’est pas simultanée au service approvisionnement et à la gestion des stocks.

  • Accès : l’organisation en fichiers suppose que l’utilisateur sait où se trouvent les données et qu’il connaît leur description.

  • Sécurité : si une panne intervient en cours de traitement, il est moins compliqué de revenir à l’état antérieur d’une base unique que de dizaines de fichiers. Par ailleurs, la confidentialité est incertaine si les données ne sont pas centralisées.

  • Maintenance : pour une raison ou une autre la structure des données peut changer et les programmes doivent le prendre en compte.

 

Niveaux de description

Un SGBD comporte trois niveaux de description :

  1. Le niveau physique ou interne : c’est le niveau du stockage et des accès, domaine de l’administrateur de BDD (matériel, fichiers, champs, chemins d’accès…).

  2. Le niveau conceptuel ou logique : c’est le modèle unique qui décrit. Le MCD (modèle conceptuel de données) en est une représentation schématique.

  3. Le niveau externe ou vue : construit à partir du précédent, il en existe autant que de groupes d’utilisateurs.

 

Avantages d'un SGBD

  • L’indépendance des niveaux : reprenons les niveaux ci-dessus. Il y a indépendance physique entre les niveaux physique et contextuel (l’utilisateur du niveau conceptuel peut ignorer la structure physique) et indépendance logique entre les niveaux conceptuel et externe (l’utilisateur final n’a pas besoin de connaître le MCD).

  • La redondance des données est maîtrisée. Théoriquement, chaque donnée ne figure qu’une seule fois dans la BDD mais il arrive pour diverses raisons qu’elle soit dupliquée.

  • La manipulation des données par des utilisateurs aussi différents que l’administrateur de la base, les développeurs d’application et les utilisateurs finaux.

  • La cohérence ou intégrité des données est assurée au niveau conceptuel. Ainsi il n’est pas possible d’avoir plusieurs versions d’une même donnée.

  • Le partage des données est un avantage essentiel des SGBD. Ceux-ci gèrent les conflits et aucun utilisateur n’a à se soucier des autres.

  • La sécurité des données est prise en charge : gestion des droits d’accès, reprises après pannes, blocage des malwares

  • La rapidité des accès. Une requête doit avoir un temps de réponse le plus bref possible.

  • La centralisation de l’administration (définition et suivi des structures de stockage).

 

Types de SGBD

Les SGBD structurés les plus courants sont les SGBD relationnels (SGBDR). Les données sont organisées en tables liées par certains éléments. Les plus connus sont ceux de Microsoft (Access et SQL Server), MySQL, Oracle Database et IBM Db2.

Mentionnons quelques autres types pour mémoire.

  • Les SGBD orientés objet (gestion d’objets complexes plutôt que de tables).

  • Les SGBD hiérarchiques, où les données sont structurées en arborescence.

  • Les SGBD en réseau, où elles sont structurées en graphes.

  • Les SGBD orientés colonnes, pour les données en colonnes. Solution intéressante pour l’analyse de données. Exemple : Google BigQuery.

 

Composition d’un SGBD

Les principaux composants sont les suivants :

  • Le moteur, qui exécute les demandes et gère le stockage des données y compris leur protection.

  • Le programme qui utilise le catalogue système (structure de la base, contrôles d’accès, contraintes).

  • Le processeur de requête qui exécute les demandes de l’utilisateur (par le biais d’une interface ou directement en SQL).

  • Un langage de commande, le plus souvent SQL.

 

BDD d'erreurs