SGBD (Système de gestion de base de données)

Qu’est-ce qu’un SGBD ?

Un système de gestion de base de données (SGBD) est un logiciel intermédiaire qui permet aux programmeurs, aux administrateurs de base de données (DBA), aux applications logicielles et aux utilisateurs finaux de stocker, d’organiser, d’accéder, d’interroger et de manipuler des données dans une base de données.

Les SGBD sont importants parce qu’ils fournissent des mécanismes efficaces et fiables pour organiser, gérer et utiliser de grandes quantités de données, tout en garantissant l’intégrité des données et en offrant d’autres avantages en matière de gestion des données.

Dans l’entreprise, les systèmes de gestion de base de données fournissent aux administrateurs de base de données (DBA) un cadre structuré qui facilite le partage des données entre les différents services, équipes et applications. Le SGBD offre aux employés un accès contrôlé et organisé aux données qu’ils peuvent utiliser pour stimuler l’innovation et aider leur entreprise à conserver un avantage concurrentiel.

Histoire des systèmes de gestion de base de données

L’histoire des systèmes de gestion de base de données remonte au début des années 1960, lorsque les ordinateurs ont commencé à être utilisés pour le traitement des données. À l’époque, le concept était généralement qualifié de système de gestion de l’information.

Le premier système de gestion de base de données disponible dans le commerce s’appelait Integrated Data Store (IDS). Il a été développé par Charles W. Bachman et son équipe chez General Electric (GE) à la fin des années 1960.

L’IDS était un SGBD hiérarchique qui organisait les données dans une structure arborescente, avec des relations parent-enfant entre les enregistrements. Il permettait aux utilisateurs de stocker, d’extraire et de gérer des données de manière structurée. L’IDS a également introduit le concept de dictionnaire de données, qui définit la structure et les relations des données au sein de la base de données. Avant l’IDS, les données étaient généralement stockées dans des fichiers plats et il n’existait aucune norme sur la manière dont les fichiers devaient être stockés, consultés ou manipulés.

L’IDS de Bachman a finalement été éclipsé par l’émergence des bases de données relationnelles et du langage de requête structuré (SQL) dans les années 1970. Depuis lors, les produits et services de SGBD ont connu des avancées constantes qui ont amélioré le stockage, la récupération et la gestion des données.

Chronologie : Évolution des systèmes de gestion de bases de données

Année Evenement
1964 Développement de la première base de données, un magasin de données intégré (IDS), par Charles Bachman chez General Electric.
1966 IBM introduit le système de gestion de l’information (IMS), développé conjointement avec Rockwell et Caterpillar.
1970 Edgar F. Codd introduit le modèle relationnel dans un document intitulé “A Relational Model of Data for Large Shared Data Banks”.
1974 Le langage de requête structuré (SQL) est créé.
1976 Peter Chen présente le modèle entité-relation dans son article intitulé “The Entity-Relationship Model – Toward a Unified View of Data” (Le modèle entité-relation – vers une vue unifiée des données).
1979 Oracle lance la première base de données relationnelle commerciale qui utilise SQL.
1980 IBM présente System R, le système de gestion de bases de données relationnelles basé sur SQL.
1981 SQL/DS, le premier SGBD complet à fonctionner sur des ordinateurs personnels, est lancé par IBM.
1983 La première version de DB2 d’IBM est publiée pour les ordinateurs centraux.
1986 Le Manifeste sur les systèmes de bases de données orientées objet est publié, donnant une impulsion significative au développement des bases de données orientées objet.
1996 Lancement de PostgreSQL, l’un des premiers systèmes de gestion de bases de données relationnelles à code source ouvert.
1998 MySQL, un autre SGRD à source ouverte important, est publié pour Windows 95 et NT.
1998 Microsoft lance SQL Server 7.0, une réécriture complète de son SGBD.
2000 Les start-ups de l’Internet adoptent les bases de données XML.
2004 Le terme “NoSQL” gagne en popularité et donne naissance à une nouvelle génération de bases de données non relationnelles et distribuées.
2006 Google publie un article sur BigTable, sa base de données NoSQL interne, influençant une nouvelle vague de bases de données NoSQL open-source
2012 Amazon présente DynamoDB, une base de données NoSQL propriétaire.
2013 Publication de FoundationDB, une base de données distribuée conçue pour traiter de grands volumes de données structurées.
2017 Google annonce Spanner, une base de données distribuée à l’échelle mondiale.
2020s Poursuite du développement et de l’innovation dans la technologie des SGBD, en mettant l’accent sur les bases de données cloud-natives, les bases de données edge et les améliorations de l’intégration de l’IA pour la gestion des bases de données. Les bases de données blockchain deviennent également un sujet d’intérêt important.

Base de données vs SGBD

Les termes “base de données” et “système de gestion de base de données” sont souvent utilisés de manière interchangeable dans les conversations informelles. C’est probablement parce que lorsque les utilisateurs finaux interagissent avec une base de données, ils ne sont pas conscients du SGBD sous-jacent et de son rôle distinct dans la gestion des données. Pour ajouter à la confusion, dans certains cas, le SGBD est intégré directement dans le code de l’application. Il est alors encore moins évident qu’il s’agit d’un système distinct.

Pour différencier les deux termes et les utiliser correctement, il est utile de comprendre leurs rôles et fonctionnalités respectifs : Une base de données est un ensemble structuré de données. Le système de gestion de base de données est le logiciel que les développeurs, les utilisateurs finaux et les applications utilisent pour interagir avec une base de données.

Composants du SGBD

Le composant central de chaque SGBD est appelé moteur de base de données. Il s’agit du logiciel qui interagit directement avec le système de stockage ou le système de fichiers sous-jacent et qui orchestre les interactions entre les sous-composants modulaires permettant au moteur de gérer et de manipuler les données dans le système de base de données. Cela inclut des modules pour :

Sauvegarde et récupération : Ces modules gèrent les opérations de sauvegarde et de récupération des données afin de se protéger contre la perte de données ou les défaillances du système. Ils comprennent des mécanismes permettant de créer des sauvegardes de bases de données, de restaurer des données et d’effectuer des opérations de récupération.

Contrôle de la simultanéité et gestion des transactions : Ces modules gèrent l’accès simultané à la base de données par plusieurs utilisateurs ou applications. Ils gèrent les mécanismes de verrouillage et assurent la cohérence des données.

Langage d’accès à la base de données : Ce type de module permet au moteur de base de données de traiter et d’interpréter les requêtes ou les commandes de l’utilisateur écrites dans le langage d’accès par défaut. Il analyse la syntaxe du langage de requête, valide la requête par rapport aux informations du catalogue et génère un plan d’exécution optimisé pour récupérer ou manipuler les données demandées.

Langage de définition des données (DDL) : Le module DDL permet aux utilisateurs de définir la structure et l’organisation des données. Il comprend des commandes permettant de créer, de modifier et de supprimer des objets de base de données tels que des tables, des vues, des index et des contraintes.

Dictionnaire de données : Le dictionnaire de données (également appelé référentiel de métadonnées) stocke des métadonnées sur la base de données, notamment des informations sur la structure, les relations et les propriétés des données. Ce module est utilisé par le moteur du SGBD pour assurer la cohérence des données et appliquer des contraintes uniques.

Langage de manipulation des données (DML) : Le module DML fournit des commandes permettant de manipuler et d’extraire des données au sein de la base de données. Les utilisateurs peuvent utiliser des instructions DML pour insérer, mettre à jour, supprimer et interroger des données.

Entreposage de données et veille stratégique : Ces modules facilitent l’extraction, la transformation et le chargement des données à partir de sources multiples dans un entrepôt de données distinct. Ils prennent également en charge le traitement analytique en ligne (OLAP) et les outils de reporting pour la veille économique.

Indexation : La plupart des SGBD comprennent des modules d’indexation qui accélèrent l’exécution des requêtes en réduisant la quantité de données à analyser.

Verrouillage : Le gestionnaire de verrous d’un SGBD est responsable de la gestion du contrôle de la concurrence. Il prévient les conflits et maintient la cohérence des données en veillant à ce que plusieurs utilisateurs ou transactions ne puissent pas modifier les mêmes données simultanément.

Journalisation et audit : Les SGBD comprennent souvent des modules de journalisation et d’audit de la base de données. Les enregistrements documentent les modifications apportées à la base de données – notamment les insertions, les mises à jour et les suppressions – ainsi que les événements système tels que les sauvegardes et les restaurations. L’audit consiste à surveiller et à examiner ces journaux afin de suivre les actions des utilisateurs, de maintenir l’intégrité des données et d’aider à faire respecter les politiques de sécurité.

Traitement des requêtes : Le processeur de requêtes reçoit et interprète les requêtes des utilisateurs, les convertit en un plan d’exécution optimisé et interagit avec le moteur de base de données pour exécuter les requêtes efficacement. Il comprend des sous-modules d’optimisation des requêtes qui prennent en compte des facteurs tels que les index disponibles, les opérations de jointure et les méthodes d’accès aux données.

Réplication : Certains SGBD prennent en charge la réplication des données, ce qui implique la création et la maintenance de plusieurs copies de la base de données à différents endroits ou sur différents serveurs. La réplication améliore la disponibilité des données, la tolérance aux pannes et les performances. Elle garantit que si une copie de la base de données devient indisponible, les données peuvent toujours être consultées à partir d’une autre copie.

Sécurité et autorisation : Les modules de sécurité et d’autorisation contrôlent l’accès des utilisateurs à la base de données et garantissent la confidentialité et l’intégrité des données. Ils gèrent l’authentification et la gestion des utilisateurs et mettent en œuvre des mécanismes de contrôle d’accès fondés sur le principe du moindre privilège (PoLP) en fonction des rôles des utilisateurs et des exigences professionnelles.

Stockage : Le moteur de base de données d’un SGBD communique avec un moteur de stockage pour gérer le stockage physique des données. Le moteur de stockage est responsable de la gestion des détails de bas niveau concernant le stockage et l’accès aux données, tandis que le moteur de base de données coordonne et orchestre ces actions afin d’optimiser le fonctionnement global du système de gestion de base de données.

Interfaces utilisateur : Ces modules fournissent des interfaces utilisateur qui permettent aux programmeurs, aux administrateurs de bases de données et aux utilisateurs finaux d’interagir avec la base de données. Il peut s’agir d’interfaces de ligne de commande (CLI), d’interfaces utilisateur graphiques (GUI) ou d’interfaces de programmation d’applications (API) pour l’intégration de logiciels.

Politiques d’utilisation : Les politiques utilisateur définissent et appliquent les contrôles d’accès et les politiques de sécurité interne. Elles spécifient les autorisations, les rôles et les privilèges et régissent la manière dont les utilisateurs peuvent interagir avec une base de données.

SGBDR et SGBD

Un système de gestion de base de données relationnelle (SGBDR) est un type de système de gestion de base de données. Tous les SGBDR sont des SGBD, mais tous les systèmes de gestion de bases de données ne sont pas des systèmes de gestion de bases de données relationnelles.

DBMS RDBMS
Différents types peuvent être utilisés pour gérer différents types de modèles de base de données Ne peut gérer que le modèle de base de données relationnelle
Différents types peuvent stocker des données dans différentes structures Les données sont toujours stockées dans des tableaux avec des lignes et des colonnes.
Les différents types peuvent ou non appliquer automatiquement l’intégrité des données. Renforce automatiquement l’intégrité des données grâce à des contraintes telles que la clé primaire, la clé unique et la clé étrangère.
Différents types peuvent utiliser différents langages ou techniques pour la manipulation des données. Utilise toujours le langage SQL (Structured Query Language)

Types de systèmes de gestion de base de données

Jusqu’au début du siècle, les systèmes de gestion de bases de données étaient classés comme étant relationnels ou non relationnels, en fonction de leur structure et de leur utilisation. Si le SGBD stockait les données dans des tableaux, il était appelé SGBD relationnel (SGBD). S’il ne stocke pas les données dans des tables, il est appelé SGBD NoSQL ou non relationnel.

Aujourd’hui, les systèmes de gestion de base de données sont toujours classés en deux catégories : les SGBD relationnels et les SGBD non relationnels, mais ils sont également classés en fonction des avantages uniques qu’ils offrent. Les types de SGBD sont les suivants :

Les systèmes de gestion de base de données en nuage – Les SGBD en nuage comme Amazon Aurora sont conçus pour gérer des données distribuées stockées dans les centres de données distants d’un fournisseur en nuage.

Systèmes de gestion de bases de données en colonnes – Les SGBD en colonnes comme Apache Cassandra retournent les requêtes plus rapidement en stockant les données en colonnes plutôt qu’en lignes. Ce schéma permet aux applications d’analyse de données et de veille stratégique de travailler plus facilement avec de grands ensembles de données.

Systèmes de gestion de bases de données distribuées – Les fonctionnalités des systèmes de gestion de bases de données distribuées, comme celles de l’écosystème Apache Hadoop, sont conçues pour garantir l’intégrité des données pour les bases de données liées logiquement sur plusieurs sites ou environnements informatiques.

Systèmes de gestion de bases de données graphiques – Ces systèmes sont conçus pour prendre en charge les bases de données graphiques qui stockent les relations au niveau des enregistrements individuels. Les SGBD de graphes tels que Neo4j sont idéaux pour gérer les données avec des relations interconnectées, telles que les données des médias sociaux.

Systèmes de gestion de bases de données hiérarchiques – Les systèmes de gestion hiérarchiques sont conçus pour prendre en charge les bases de données organisées en relations parent-enfant. Ce type de SGBD trouve son origine dans les ordinateurs centraux et son utilisation est aujourd’hui limitée.

Systèmes de gestion de bases de données HTAP – Les SGBD hybrides de traitement transactionnel/analytique sont conçus pour prendre en charge des charges de travail mixtes pour les données transactionnelles et analytiques. Les systèmes de base de données traditionnels comportent souvent des systèmes distincts pour les charges de travail de traitement transactionnel en ligne (OLTP) et de traitement analytique en ligne (OLAP). Les systèmes de gestion HTAP tels que SAP HANA et CockroachDB fournissent une plateforme unifiée capable de gérer les deux types de tâches simultanément.

Systèmes de gestion de bases de données en mémoire – Les systèmes de gestion en mémoire sont conçus pour réduire le temps de latence en utilisant la mémoire principale pour la gestion et le stockage des données. Volt Active Data et d’autres systèmes de gestion de bases de données en mémoire accélèrent considérablement la recherche de données et améliorent les performances globales du système.

Système de gestion de base de données orienté objet (SGBDO) – db4o est un exemple de ce type de SGBDO. Les SGBDO sont conçus pour gérer des structures de données complexes en tant qu’objets de stockage.

Systèmes de gestion de bases de données NewSQL – Les nouveaux SGBD SQL, comme PostgreSQL, offrent les avantages des bases de données NoSQL en termes d’évolutivité et de performances, tout en conservant les propriétés ACID des bases de données relationnelles traditionnelles. Ce type de SGBD est conçu pour les environnements distribués à grande échelle et peut gérer des charges de travail transactionnelles à haut débit.

Systèmes de gestion de bases de données chronologiques — Les SGBD chronologiques tels qu’InfluxDB optimisent le stockage, la récupération et l’analyse de données horodatées. Ils sont souvent utilisés pour soutenir l’analyse financière et les systèmes de surveillance de l’Internet des objets (IoT).

Systèmes de gestion de base de données connus

Voici quelques exemples de SGBD bien connus :

Microsoft Access logo Access – un système de gestion de base de données relationnelle (SGBDR) léger inclus dans Microsoft Office et Office 365.
Amazon RDS logo Amazon RDS – un SGBD cloud natif qui offre des moteurs pour gérer les bases de données MySQL, Oracle, SQL Server, PostgreSQL et Amazon Aurora.
Apache Cassandra logo Apache Cassandra – un système de gestion de bases de données distribuées à code source ouvert, connu pour sa capacité à gérer des quantités massives de données.
Filemaker logo Filemaker – un SGBD relationnel à code faible et sans code (LCNC).
Google Cloud Spanner logo Google Cloud Spanner — un service de base de données relationnelle distribué à l’échelle mondiale, extensible horizontalement et fortement cohérent, proposé par Google Cloud.
IBM DB2 logo IBM Db2 — une famille de systèmes de gestion de bases de données relationnelles développée par IBM, qui propose plusieurs éditions pour différents environnements et charges de travail.
MariaDB logo MariaDB – une base de données relationnelle open-source dérivée de MySQL.
Microsoft Azure SQL Database logo Microsoft Azure SQL Database — un service de base de données relationnelles basé sur le cloud et fourni par Microsoft Azure qui offre des bases de données SQL entièrement gérées.
MongoDB logo MongoDB — Système de gestion de base de données NoSQL populaire qui utilise un schéma orienté document pour offrir une grande évolutivité et une grande flexibilité.
MySQL logo MySQL – un système de gestion de base de données relationnelle (SGBDR) open-source appartenant à Oracle.
Oracle RDMS logo Oracle – un SGBD propriétaire optimisé pour les architectures cloud hybrides.
PostgreSQL logo PostgreSQL — un système de gestion de base de données relationnelle open-source connu pour sa robustesse, son évolutivité et ses nombreuses fonctionnalités.
SAP HANA logo SAP HANA — un SGBDR en mémoire, orienté colonnes, optimisé pour l’ingestion de données en temps réel et l’analyse haute performance.
SQL Server logo SQL Server – un système de gestion de base de données relationnelle de niveau entreprise de Microsoft, capable de traiter des volumes de données et des requêtes de base de données extrêmement importants.
SQLite logo SQLite — un moteur de base de données relationnelle léger, basé sur des fichiers, largement utilisé dans les systèmes embarqués et les applications mobiles.
Teradata logo Teradata – un puissant moteur SQL qui fournit des solutions évolutives pour la gestion et l’analyse de grands volumes de données.

Avantages de l’utilisation d’un SGBD

Les systèmes de gestion de base de données (SGBD) sont particulièrement importants dans les situations où plusieurs utilisateurs ou applications interagissent simultanément avec les mêmes bases de données. Le SGBD protège contre les conflits et les erreurs grâce à des mécanismes de contrôle de la concurrence qui garantissent que l’intégrité des données reste intacte, même dans les scénarios à fort trafic.

Un autre avantage est que les systèmes de gestion de bases de données offrent un large éventail de caractéristiques, de mécanismes et de fonctionnalités de sécurité. Les administrateurs peuvent définir des règles de contrôle d’accès, attribuer des rôles aux utilisateurs et spécifier des permissions pour s’assurer que seules les personnes autorisées peuvent entrer, accéder et manipuler des données.

Les SGBD étant dotés de capacités d’audit et de journalisation permettant de suivre et de contrôler l’utilisation et les modifications de l’accès aux données, ils constituent des outils utiles pour la mise en conformité.

Par exemple, un SGBD peut aider les administrateurs à gérer le cycle de vie des données en mettant en œuvre des politiques de conservation, d’archivage et d’élimination des données. Un SGBD peut également contribuer à l’application des contrôles de confidentialité en fournissant des mécanismes d’anonymisation ou de cryptage des données sensibles,

Les défis des systèmes de gestion de bases de données

Bien que les systèmes de gestion de bases de données aient révolutionné la façon dont les petites et grandes entreprises traitent et gèrent les données, la courbe d’apprentissage pour la mise en œuvre et la gestion d’un SGBD d’entreprise peut s’avérer difficile. Cela est particulièrement vrai si le SGBD doit être intégré à des systèmes de planification des ressources de l’entreprise (ERP) ou à des plates-formes de gestion de la relation client (CRM).

Le déploiement d’un nouveau SGBD peut également s’avérer coûteux. Même les entreprises de taille moyenne devront très probablement engager un administrateur de base de données qualifié ou passer un contrat avec lui pour s’assurer que leur SGBD est correctement configuré, entretenu et optimisé. Les frais de licence, l’infrastructure matérielle, les mises à jour logicielles et les dépenses de maintenance courante peuvent également grever les budgets, en particulier pour les petites entreprises.

L’avenir du SGBD

Les SGBD d’aujourd’hui intègrent des technologies de pointe telles que l’intelligence artificielle (IA), l’apprentissage automatique (ML) et la blockchain pour relever les défis du big data et aider les organisations à rester conformes aux réglementations et normes pertinentes en matière de gestion des données.

  • Les SGBD dotés de capacités d’IA et de ML peuvent automatiser des tâches telles que l’optimisation des requêtes, l’indexation des données et la détection des anomalies. Les systèmes de gestion de base de données intelligents peuvent apprendre des modèles de données, s’adapter à l’évolution des charges de travail et optimiser les performances de manière autonome.
  • Les bases de données basées sur la blockchain peuvent fournir un stockage de données immuable et transparent et permettre des transactions sécurisées et vérifiables. Ce type de système de gestion de base de données élimine le besoin d’autorités centrales tout en améliorant l’intégrité des données. Il est donc idéal pour des secteurs comme la finance, la chaîne d’approvisionnement et les soins de santé, où les risques et les impacts de la falsification des données sont importants.
  • Les SGBD dotés de capacités intégrées de traitement des flux deviennent essentiels pour des cas d’utilisation tels que l’analyse en temps réel, la détection des fraudes et la personnalisation de l’expérience client. Avec l’essor de l’internet des objets (IoT) et des sources de données en continu, les SGBD devront gérer le traitement des données en temps réel de manière encore plus efficace.

Termes connexes

Margaret Rouse

Margaret Rouse est une écrivaine technique primée et enseignante reconnue pour sa capacité à expliquer des sujets techniques complexes à un public non technique et commercial. Au cours des vingt dernières années, ses explications ont été publiées sur les sites Web de TechTarget et elle a été citée comme une autorité dans des articles du New York Times, du Time Magazine, de USA Today, de ZDNet, de PC Magazine et de Discovery Magazine. L'idée que Margaret se fait d'une journée amusante est d'aider les professionnels de l'informatique et des affaires à apprendre à parler leurs langages hautement spécialisés respectifs. Si…