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 :
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.