Systèmes de gestion de données

8.2 Systèmes de gestion de données

Objectifs d'apprentissage

À la fin de cette section, vous serez capable de :

  • Définir les termes et caractéristiques importants des systèmes de gestion de données
  • Expliquer les différents aspects qui caractérisent les systèmes de gestion de bases de données

Rappelez-vous que les données sont des faits bruts que vous pouvez collecter, comme le nombre 48502. Lorsque nous traitons les données, nous obtenons des informations qui ont un sens. Par exemple, le nombre 48502 est un code postal. Lorsque nous avons une collection de données connexes, nous l'appelons une base de données. Pour stocker, récupérer, modifier et maintenir les données connexes dans la base de données, nous avons besoin d'un système appelé un système de gestion de base de données (SGBD) (database management system (DBMS)).

Définition et caractéristiques

Les concepts de données, de modèle de données, de base de données et de SGBD sont liés les uns aux autres. Les données se rapportent à des faits connus qui peuvent être enregistrés et qui ont une signification implicite. Un modèle de données (data model) est un modèle abstrait qui contient un ensemble de concepts pour décrire la structure d'une base de données, les opérations de manipulation de ces structures et certaines contraintes que la base de données doit respecter. Une base de données est une collection d'éléments de données connexes au sein d'un processus d'affaires ou d'un contexte de problème spécifique ; un exemple de grande base de données commerciale est celle maintenue par amazon.com. Un SGBD est le progiciel utilisé pour définir, créer, utiliser et maintenir une base de données tout en tenant compte des mesures de sécurité appropriées. Un mini-monde (miniworld), ou univers du discours (UoD), représente un aspect des données du monde réel qui sont stockées dans une base de données (par exemple, les notes des étudiants dans une université). L'approche des bases de données présente de nombreuses caractéristiques, telles que sa supériorité par rapport à l'approche par fichiers en termes d'efficacité, de cohérence et de maintenance ; elle offre un couplage faible entre les applications et les données, ainsi que des facilités pour l'interrogation et la récupération des données ; elle élimine la redondance et nettoie les données ; elle prend en charge les transactions (transaction) multi-utilisateurs qui permettent à plusieurs utilisateurs d'accéder aux mêmes données et à plusieurs vues des données ; et elle permet le partage des données entre les utilisateurs et les applications.

Réfléchissez

Mini-monde universitaire

Considérons l'université comme un mini-monde. Dans ce mini-monde, nous devons définir un dictionnaire de données (data dictionary) pour décrire les éléments suivants : étudiants, cours, sections, départements et instructeurs.

Suggérez un mini-monde qui ferait partie d'un environnement universitaire. Définissez les principales entrées à inclure, telles que ÉTUDIANTs = ID + Prénom + Nom.

Applications de la technologie des bases de données

Une application de base de données (database application) est un programme ou un logiciel conçu pour collecter, stocker, accéder, récupérer et gérer des informations de manière efficace et sécurisée. Voici quelques exemples d'applications de bases de données : applications multimédias (par exemple, YouTube, Spotify), applications biométriques (par exemple, empreintes digitales, scans rétiniens), applications portables (par exemple, Fitbit, Apple Watch), applications de systèmes d'information géographique (SIG) (Geographic Information Systems (GIS)) (par exemple, Google Maps), applications de capteurs (par exemple, réacteur nucléaire), applications de mégadonnées (par exemple, Walmart) et applications IoT (par exemple, Télématique).

Concepts en pratique

Systèmes de bases de données spécialisés

Les systèmes de bases de données sont fascinants car ils doivent avoir la capacité de modéliser divers types de données à différents niveaux d'abstraction et de détail ; il est donc possible de créer des systèmes spécialisés qui peuvent aider les personnes dans divers domaines de recherche et industries à représenter et utiliser leurs données de la meilleure façon possible. Par exemple, SciDB est un système de gestion de données à code source ouvert destiné principalement aux domaines d'application qui impliquent des données de tableau à très grande échelle. SciDB peut être utilisé pour prendre en charge une grande variété d'applications scientifiques utilisées en astronomie, en télédétection et modélisation climatique, en gestion de l'information bioscience, dans les systèmes de gestion des risques pour les applications financières, et dans l'analyse des données de journaux web.

Éléments des systèmes de bases de données

Les principaux éléments d'un système de gestion de base de données comprennent le matériel, le logiciel, les données, les procédures, le langage et les utilisateurs. Le matériel comprend les dispositifs physiques tels que les ordinateurs et les disques durs. Le logiciel fait référence à l'ensemble des programmes utilisés pour gérer et contrôler une base de données. Les données comprennent les données brutes et les informations organisées et traitées au sein de la base de données. Les procédures sont des instructions utilisées pour gérer la base de données. Un utilisateur de base de données (database user) est une personne qui a les privilèges d'accéder, d'analyser, de mettre à jour et de maintenir les données (par exemple, architecte de l'information (information architect), concepteur de bases de données (database designer), administrateur de base de données, développeur d'applications de base de données et utilisateur métier). Un langage de base de données (database language) est utilisé pour écrire des instructions afin d'accéder et de mettre à jour les données dans la base de données. Le Tableau 8.1 présente différents exemples de langages de base de données, ainsi que leurs définitions et exemples.

Langage Définition SGBD relationnel (SQL)
langage de description de données (DDL) (database description language (DDL)) Utilisé pour créer, mettre à jour et supprimer des structures de stockage dans un système de gestion de base de données
CREATE TABLE
table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
    …
);
langage de manipulation de données (DML) (data manipulation language (DML)) Utilisé pour créer, mettre à jour et supprimer des données dans un système de gestion de base de données
UPDATE table_name
SET column1 = value1, column2 = value2, column3 = value3, …
WHERE condition;
langage d'interrogation de données (DQL) (data query language (DQL)) Utilisé pour interroger la base de données
SELECT expressions
FROM table_name
WHERE conditions;
langage de contrôle de données (DCL) (data control language (DCL)) Utilisé pour contrôler l'utilisation des fonctionnalités disponibles dans le système de gestion de base de données.
GRANT [privilege]
ON [object]
TO [user]
Tableau 8.1 Langages de base de données

Systèmes de bases de données et gestion des bases de données

L'utilisation d'un SGBD présente de nombreux avantages, tels que le contrôle de la redondance dans le stockage des données. Lorsque la même donnée est conservée à deux endroits distincts dans la base de données, une redondance des données (data redundancy) peut se produire. Le SGBD améliore les efforts de développement et de maintenance, le partage des données entre plusieurs utilisateurs et la restriction de l'accès non autorisé aux données. Par exemple, seul le personnel DBA utilise des commandes et des facilités privilégiées, assurant un stockage persistant pour les objets de programme (par exemple, les SGBD orientés objet rendent les objets de programme persistants), et fournissant des structures de stockage (par exemple, des index (index)) pour un traitement efficace des requêtes. De plus, un SGBD offre une indépendance des données, ce qui aide l'utilisateur à apporter facilement des modifications à la base de données.

Il existe deux types d'indépendance des données. La première, l'indépendance physique des données (physical data independence), sépare le niveau conceptuel du niveau physique (par exemple, en utilisant un nouveau dispositif de stockage tel qu'un disque dur) ; la seconde, l'indépendance logique des données (logical data independence), sépare toute modification des données du format des données. Le SGBD fournit des règles d'intégrité en ajoutant une clé primaire (primary key) pour garantir que chaque enregistrement est unique. Le SGBD vous permet de gérer des données structurées, semi-structurées et non structurées.

Les données qui ont été organisées dans une base de données formatée et qui possèdent des clés relationnelles (par exemple, des données relationnelles) sont appelées données structurées (structured data). Les données qui ne sont pas organisées dans une base de données formatée mais qui possèdent certaines propriétés organisées (par exemple, les données XML) sont appelées données semi-structurées (semistructured data). Les données qui ne sont pas organisées dans une base de données formatée et qui ne possèdent pas de propriétés organisées (par exemple, PDF) sont appelées données non structurées (unstructured data). Le SGBD fournit une copie de sauvegarde de l'intégralité de la base de données, qui est sauvegardée selon les décisions prises, peut-être une fois par jour. La copie de sauvegarde doit être stockée dans un endroit sécurisé et est utilisée pour restaurer la base de données en cas de défaillance, de perte ou de dommage aux données originales.

La technologie au quotidien

Les bases de données impactent toutes les industries

Les bases de données, la technologie des bases de données et les « mégadonnées » (ensembles de données complexes) ont un impact considérable dans des industries telles que la banque, l'assurance, le commerce de détail, les soins de santé, l'immobilier, le commerce électronique, le droit, l'éducation et, plus récemment, les réseaux sociaux. La collecte de données a également un impact sur les avancées dans les domaines de la médecine, des études environnementales, de la science et de la technologie mobile.

Pouvez-vous penser à d'autres industries dans lesquelles l'utilisation des mégadonnées est surprenante ? Les mégadonnées profitent-elles aux utilisateurs ou aux collecteurs ? Les mégadonnées permettront-elles davantage de recherches scientifiques et/ou de découvertes ? Pourquoi ou pourquoi pas ?

Facettes des SGBD

Le SGBD comprend divers composants, comme le montre la Figure 8.6. L'interface DBMS (DBMS interface) est la principale ligne de communication entre la base de données et l'utilisateur. Il existe de nombreux types d'interfaces, telles que les interfaces web, les langages de requête autonomes, les lignes de commande, les interfaces basées sur des formulaires, les interfaces utilisateur graphiques (GUI), les langages naturels, les interfaces d'administration et les interfaces réseau.

Diagramme des composants d'un SGBD : DDL, Requêtes, Applications, Base de données, avec une double flèche vers les interfaces SGBD. Le SGBD se compose de : SGBD, Processeur de requêtes, Gestionnaire de stockage. Stockage sur disque et fichiers de base de données et dictionnaire de données en bas.
Figure 8.6 Le SGBD comprend plusieurs composants : interface SGBD, processeur de requêtes, gestionnaire de stockage, gestionnaire de connexion, gestionnaire de sécurité, compilateur DDL et utilitaires de base de données. (source : Copyright Rice University, OpenStax, sous licence CC BY 4.0)

Un gestionnaire de connexion (connection manager) gère les rapports, les livres, les objets et les lots. Pour chaque base de données, le gestionnaire de connexion fournit le nom de la connexion, le type de source de données et la valeur. Un gestionnaire de sécurité (security manager) est un ensemble de processus utilisés pour protéger la base de données contre les menaces. Le compilateur de langage de description de données (DDL) (data description language (DDL) compiler) traduit les instructions d'un langage de haut niveau en instructions de bas niveau que le moteur d'évaluation des requêtes comprend. Un processeur de requêtes (query processor) agit comme un intermédiaire entre les utilisateurs et le moteur de données du SGBD pour communiquer les requêtes, y compris le compilateur DML, l'analyseur de requêtes, le réécrivain de requêtes, l'optimiseur (optimizer) de requêtes et l'exécuteur de requêtes. Un gestionnaire de stockage (storage manager) est un programme responsable de l'édition, du stockage, de la mise à jour, de la suppression et de la récupération des données dans la base de données, tel que le gestionnaire de transactions, le gestionnaire de tampons, le gestionnaire de verrous et le gestionnaire de récupération. Les utilitaires DBMS (DBMS utilities) sont un ensemble d'utilitaires pour gérer et contrôler les activités de la base de données, tels que l'utilitaire de chargement, l'utilitaire de réorganisation, les utilitaires de surveillance des performances, les utilitaires de gestion des utilisateurs et l'utilitaire de sauvegarde et de récupération. La Figure 8.7 illustre la fenêtre de navigation, la fenêtre de résultats, la fenêtre de journal et la fenêtre de requête.

Capture d'écran illustrant une fenêtre de navigation, une fenêtre de résultats, une fenêtre de journal et une fenêtre de requête.
Figure 8.7 Cette interface utilisateur graphique MySQL Workbench montre la fenêtre de navigation, la fenêtre de requête et la fenêtre de résultats. (source : utilisée avec l'autorisation d'Oracle)

Catégories de modèles de données

Les modèles de données peuvent être conceptuels (représentés à l'aide des notations EER ou UML), logiques, physiques ou auto-descriptifs. Les différents modèles de données logiques peuvent être classés comme suit :

  • Un SGBD hiérarchique (hierarchical DBMS) est un modèle de données dans lequel les données sont organisées en un modèle arborescent, le DML est procédural et orienté enregistrement, le processeur de requêtes est logique, et les modèles de données internes sont entrelacés (par exemple, IMS d'IBM).
  • Un SGBD réseau (network DBMS) est un modèle de données dans lequel les données sont organisées en un modèle de réseau, le DML est procédural et orienté enregistrement, le processeur de requêtes est logique, et les modèles de données internes sont entrelacés (par exemple, CA-IDMS de Computer Associates).
  • Un SGBD relationnel (relational DBMS) est un modèle de données dans lequel les données sont organisées en un modèle de données relationnel, utilise SQL comme base de données déclarative et orientée ensemble, le processeur de requêtes a une séparation stricte entre le modèle de données logique et interne. Les SGBD relationnels sont les plus populaires dans l'industrie (par exemple, la base de données à code source ouvert MySQL d'Oracle, Oracle DBMS, DB2 d'IBM et Microsoft SQL).
  • Un SGBD orienté objet (object-oriented DBMS) est un modèle de données dans lequel les données sont organisées en un modèle de données OO, évitant les problèmes d'inadéquation d'impédance lorsqu'il est utilisé avec un langage hôte OO. Il est également appelé OODBMS ou ODB (par exemple, la base de données à code source ouvert db4o de Versant, Caché d'Intersystems, GemStone/S de GemTalk Systems, qui ne réussissent que sur des marchés de niche, en raison de leur complexité).
  • Un SGBD XML (XML DBMS) est un modèle de données dans lequel les données utilisent le modèle de données XML pour stocker les données. Les SGBD XML peuvent être natifs (par exemple, BaseX et eXist), qui mappent la structure arborescente d'un document XML à une structure de stockage physique, ou des SGBD compatibles XML (par exemple, Oracle et IBM Db2) sont des SGBD existants qui sont étendus avec des facilités pour stocker des données XML.
  • Un SGBD non seulement SQL, ou SGBD NoSQL (NoSQL DBMS), se présente sous une variété de mégadonnées non structurées classées comme un document, un graphe, des magasins clé-valeur (key-value store) et des bases de données orientées colonne (column-oriented database). Les SGBD NoSQL se concentrent sur l'extensibilité et la capacité à gérer des structures de données irrégulières ou très volatiles (par exemple, Apache Hadoop, MongoDB, Neo4j). Les structures de données irrégulières apparaissent lorsque les données ne suivent pas un ordre ou une nature spécifique. Les données volatiles sont généralement stockées en mémoire cache et sont faciles à perdre.

SGBD mono-utilisateur vs. multi-utilisateur

Avec un SGBD mono-utilisateur (single-user DBMS), un seul utilisateur à la fois peut utiliser la base de données. Un SGBD multiutilisateur (multiuser DBMS) permet à de nombreux utilisateurs d'utiliser la base de données simultanément. Un SGBD multiutilisateur est illustré dans la Figure 8.8.

Illustration de plusieurs ordinateurs portables connectés à un serveur, avec une flèche entrante menant au répartiteur, menant aux instances de serveur 1, 2 et 3, se reconnectant à la base de données.
Figure 8.8 Plusieurs utilisateurs accèdent au même système simultanément dans ce SGBD multiutilisateur. (source : Copyright Rice University, OpenStax, sous licence CC BY 4.0)

Utilisateurs de SGBD

Les utilisateurs de SGBD peuvent être divisés en acteurs sur scène qui utilisent et contrôlent le contenu de la base de données ; conçoivent, développent et maintiennent des applications de base de données telles que les administrateurs de bases de données et les concepteurs de bases de données ; et travailleurs en coulisses qui conçoivent et développent le logiciel SGBD et les outils associés ainsi que les opérateurs de systèmes informatiques, y compris les concepteurs et développeurs de systèmes.

Architectures de SGBD

Il existe différents types d'architectures de bases de données : architecture DBMS centralisé, architecture DBMS à n niveaux, architecture DBMS infonuagique, SGBD fédéré et SGBD en mémoire. Dans une architecture DBMS centralisé (centralized DBMS architecture), les données sont maintenues sur un serveur centralisé à un seul emplacement, tandis qu'une architecture SGBD client-serveur a un ou plusieurs ordinateurs clients connectés à un serveur central via un réseau. Les clients actifs demandent des services aux serveurs passifs. Une architecture DBMS à n niveaux (n-tier DBMS architecture) divise généralement une application en trois niveaux/couches : le niveau de présentation, le niveau logique et le niveau de données (par exemple, un client avec une fonctionnalité GUI, un serveur d'applications avec des applications, un serveur de base de données avec un SGBD et une base de données, et un serveur web pour l'accès web). Dans une architecture DBMS infonuagique (cloud DBMS architecture), le SGBD et la base de données sont hébergés par un fournisseur de services infonuagiques tiers (par exemple, le projet Apache Cassandra et BigTable de Google). Un SGBD fédéré (federated DBMS) fournit une interface uniforme à plusieurs sources de données sous-jacentes qui masquent les détails de stockage sous-jacents pour faciliter l'accès aux données. Un SGBD en mémoire (in-memory DBMS) stocke toutes les données en mémoire interne au lieu d'un stockage externe plus lent (par exemple, un disque ; souvent utilisé à des fins en temps réel comme HANA de SAP).

Domaines d'utilisation des SGBD

Les applications des SGBD comprennent les éléments suivants : traitement transactionnel en ligne, traitement analytique en ligne, mégadonnées et analyses, SGBD multimédia et SGBD à code source ouvert. Dans le traitement transactionnel en ligne (OLTP) (online transaction processing (OLTP)), l'accent est mis sur la gestion des données opérationnelles ou transactionnelles. Le serveur de base de données doit être capable de traiter de nombreuses transactions (transaction) simples par unité de temps. Un SGBD doit bien prendre en charge le traitement d'un volume élevé de requêtes courtes et simples (par exemple, RDBMS). Dans le traitement analytique en ligne (OLAP) (online analytical processing (OLAP)), l'accent est mis sur l'utilisation des données opérationnelles pour la prise de décision tactique ou stratégique. Un nombre limité d'utilisateurs formulent des requêtes complexes pour analyser les données. Par conséquent, le SGBD doit prendre en charge le traitement efficace des requêtes complexes, qui sont souvent en plus petits volumes (par exemple, les entrepôts de données (data warehouse)). Par exemple, les requêtes SQL complexes impliquent l'utilisation de requêtes au-delà des simples commandes SELECT et WHERE. OLAP utilise le cube comme une structure de données qui représente plusieurs dimensions pour faciliter l'analyse des données. Dans les mégadonnées et l'analyse, l'accent est mis sur une structure de base de données plus flexible, voire sans schéma, stockant des informations non structurées telles que des courriels, des documents texte, des publications X (anciennement Twitter), des publications Facebook (par exemple, les bases de données NoSQL). Un SGBD multimédia (multimedia DBMS) assure le stockage de données multimédias telles que du texte, des images, de l'audio, de la vidéo et des jeux 3D ; il doit également fournir des facilités de requête basées sur le contenu. Un SGBD à code source ouvert (open-source DBMS) est publiquement disponible et peut être étendu par n'importe qui (par exemple, MySQL d'Oracle).