Loading AI tools
logiciel de gestion de données De Wikipédia, l'encyclopédie libre
Un système de gestion de base de données (abr. SGBD) est un logiciel système servant à stocker, à manipuler ou gérer, et à partager des données dans une base de données, en garantissant la qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des opérations.
Un SGBD (en anglais DBMS pour database management system) permet d'inscrire, de retrouver, de modifier, de trier, de transformer ou d'imprimer les informations de la base de données. Il permet d'effectuer des comptes rendus des informations enregistrées et comporte des mécanismes pour assurer la cohérence des informations, éviter des pertes d'informations dues à des pannes, assurer la confidentialité et permettre son utilisation par d'autres logiciels[1]. Selon le modèle, le SGBD peut comporter une simple interface graphique jusqu'à des langages de programmation sophistiqués[1].
Les systèmes de gestion de base de données sont des logiciels universels, indépendants de l'usage qui est fait des bases de données[2]. Ils sont utilisés pour de nombreuses applications informatiques, notamment les guichets automatiques bancaires, les logiciels de réservation, les bibliothèques numériques, les logiciels d'inventaire, les progiciels de gestion intégrés ou la plupart des blogs et sites web. Il existe de nombreux systèmes de gestion de base de données. En 2008, Oracle détenait près de la moitié du marché des SGBD avec MySQL et Oracle Database. Vient ensuite IBM avec près de 20 %, laissant peu de place pour les autres acteurs[3].
Les SGBD sont souvent utilisés par d'autres logiciels ainsi que les administrateurs ou les développeurs. Ils peuvent être sous forme de composant logiciel, de serveur, de logiciel applicatif ou d'environnement de programmation.
En 2011, la majorité des SGBD du marché manipulent des bases de données relationnelles.
Les SGBD sont les logiciels intermédiaires entre les utilisateurs et les bases de données. Une base de données est un magasin de données composé de plusieurs fichiers manipulés exclusivement par le SGBD. Ce dernier cache la complexité de manipulation des structures de la base de données en mettant à disposition une vue synthétique du contenu[4].
L'ensemble SGBD et base de données est destiné à permettre le stockage de données d'une manière offrant de nombreux avantages par rapport à un enregistrement conventionnel dans des fichiers. Il permet d'obtenir et de modifier rapidement des données, de les partager entre plusieurs usagers. Il garantit l'absence de redondance, l'intégrité, la confidentialité et la pérennité des données tout en donnant des moyens d'éviter les éventuels conflits de modification et en cachant les détails du format de fichier des bases de données[1].
Les données sont enregistrées sous forme de suites de bits représentant des lettres, des nombres, des couleurs, des formes… Le SGBD comporte différents mécanismes destinés à retrouver rapidement les données et de les convertir en vue d'obtenir des informations qui aient un sens[1].
Les SGBD contemporains sont des logiciels sophistiqués nécessitant du personnel hautement qualifié, et leur utilisation entraîne souvent une augmentation substantielle des coûts liés aux licences et à la formation[4].
Un SGBD permet d'enregistrer des données, puis de les rechercher, de les modifier et de créer automatiquement des comptes rendus (anglais report) du contenu de la base de données. Il permet de spécifier les types de données, la structure des données contenues dans la base de données, ainsi que des règles de cohérence telles que l'absence de redondance[5].
Les caractéristiques des données enregistrées dans la base de données, ainsi que les relations, les règles de cohérence et les listes de contrôle d'accès sont enregistrées dans un catalogue qui se trouve à l'intérieur de la base de données et manipulé par le SGBD[5].
Les opérations de recherche et de manipulation des données, ainsi que la définition de leurs caractéristiques, des règles de cohérence et des autorisations d'accès peuvent être exprimées sous forme de requêtes (anglais query) dans un langage informatique reconnu par le SGBD[5]. SQL est le langage informatique le plus populaire[6],[7], c'est un langage normalisé de manipulation des bases de données[8]. Il existe de nombreux autres langages comme le Databasic de Charles Bachman[9], Dataflex, dBase ou xBaseScript, etc.
Les bases de données peuvent être d'une taille de plusieurs téraoctets ; une taille supérieure à la place disponible dans la mémoire centrale de l'ordinateur. Les bases de données sont enregistrées sur disque dur, ces derniers ont une capacité supérieure, mais sont moins rapides, et le SGBD est équipé de mécanismes visant à accélérer les opérations[5]. Les SGBD contemporains enregistrent non seulement les données, mais également leur description, des formulaires, la définition des comptes rendus, les règles de cohérence, des procédures; ils permettent le stockage de vidéos et d'images. Le SGBD manipule les structures complexes nécessaire à la conservation de ces informations[4].
Les SGBD sont équipés de mécanismes qui effectuent des vérifications à l'insu de l'utilisateur, en vue d'assurer la réussite des transactions, éviter des problèmes dus aux accès concurrents et assurer la sécurité des données[4] :
Selon leur construction et les possibilités qu'ils offrent, les SGBD peuvent être dits hiérarchiques, en réseau, relationnels, orientés objet, objet-relationnels, XML/RDF ou mixtes :
De plus, les SGBD peuvent être distribués, centralisés ou embarqués et peuvent être spatiaux :
Les SGBD se différencient également par la taille des bases de données qu'ils peuvent manipuler[16].
Les différents SGBD sur le marché se différencient par le périmètre d'utilisation des bases de données : le périmètre influence le nombre d'utilisateurs simultanés, la taille des bases de données, le ou les emplacements, et la puissance de calcul nécessaire. Certains SGBD supportent de très grandes bases de données, et nécessitent des ordinateurs puissants et très coûteux. D'autres SGBD fonctionnent sur des ordinateurs personnels bon marché, avec des limites quant à la taille des bases de données et la puissance de calcul[16],[4]. On peut les classer en :
Jusqu'en 1960 les informations étaient enregistrées dans des fichiers manipulées par les logiciels applicatifs[2]. L'idée des bases de données a été lancée en 1960 dans le cadre du programme Apollo. Le but était de créer un dispositif informatique destiné à enregistrer les nombreuses informations en rapport avec le programme spatial, en vue de se poser sur la Lune avant la fin de la décennie[10]. C'est dans ce but que IBM, conjointement avec Rockwell met sur le marché le logiciel Information Management System (IMS). Avec ce SGBD, les informations sont enregistrées dans des bases de données organisées de manière hiérarchique[2].
À la même époque, General Electric, avec l'aide de Charles Bachman met sur le marché le logiciel Integrated Data Store. Avec ce SGBD les informations sont enregistrées dans des bases de données organisées selon un modèle réseau, ce qui permet d'enregistrer des informations ayant une organisation plus complexe que le modèle hiérarchique[2].
En 1965, Dick PICK développe le système d'exploitation Pick, qui comporte un SGBD et le langage Databasic de Charles Bachman[19]. En 2002 la technologie de Pick est utilisée dans des produits contemporains tels que JBase[20],[21].
En 1967, le consortium CODASYL forme un groupe de travail, le database task group abr. DBTG, qui travaille à la normalisation de deux langages informatique en rapport avec les bases de données: le DML et le DDL[2].
Les organisations hiérarchiques et réseau des années 1960 manquaient d'indépendance vis-à-vis du format des fichiers, ils rendaient complexe la manipulation des données et il leur manquait une base théorique. En 1970 Edgar Frank Codd, employé de IBM publie le livre A relational model of data for large shared data banks, un ouvrage qui présente les fondations théoriques de l'organisation relationnelle[2]. Sur la base des travaux de E.F Codd, IBM développe le SGBD System R, qui sera mis sur le marché à la fin des années 1970. Il est destiné à démontrer la faisabilité d'un SGBD relationnel. Le langage informatique propre à ce SGBD est le Structured Query Language (abr. SQL), défini par IBM et destiné à la manipulation des bases de données relationnelles[10].
Charles Bachman reçoit le prix Turing en 1973 pour ces contributions à la technologie des bases de données et Edgar Frank Codd reçoit le prix Turing en 1981 pour les mêmes raisons[22].
En 1978, ANSI publie la description de l'architecture Ansi/Sparc qui sert de modèle de référence en rapport avec l'indépendance des données des SGBD[2].
Les deux SGBD ténors du marché de 2010 que sont IBM DB2 et Oracle Database ont été mis sur le marché en 1979 et sont tous deux basés sur le modèle relationnel. La même année le langage SQL est normalisé par ISO[2].
Les moteurs de recherche et les datawarehouse sont des applications informatiques apparues dans les années 1990, qui ont influencé le marché des SGBD. Les moteurs de recherche ont nécessité le traitement d'informations non structurées et écrites en langage naturel. Et les datawarehouse ont nécessité la collecte et la consolidation de très grandes quantités d'informations en vue de réaliser des tableaux de synthèse[22].
Les modèles d'organisation orienté objet et objet-relationnel sont apparus dans les années 1990[2]. Les premiers SGBD objet-relationnel ont été Postgres, Informix et Oracle Database en 1995. Le standard relatif au langage SQL a été modifié en 1999 pour pouvoir s'appliquer à ce type de SGBD[23].
Un SGBD est composé de nombreux programmes, parmi lesquels le moteur, le catalogue, le processeur de requêtes, le langage de commande et des outils[24] :
Les outils du SGBD servent à créer des comptes rendus (reports), des écrans pour la saisie des informations, importer et exporter les données de et vers la base de données, et manipuler le catalogue[24]. Ces outils sont utilisés par l'administrateur de bases de données pour effectuer des sauvegardes, des restaurations de données, autoriser ou interdire l'accès à certaines informations, et effectuer des modifications du contenu de la base de données - création, lecture, modification et suppression d'informations, abrégé CRUD (anglais create, read, update, delete). Ces outils servent également à surveiller l'activité du moteur et effectuer des opérations de tuning[26].
Les SGBD contemporains de haut de gamme comportent de nombreuses extensions qui offrent des fonctionnalités auxiliaires, leur construction reste cependant similaire à la plupart des SGBD[27].
Dans un SGBD relationnel, les demandes formulées au SGBD sont typiquement traitées en cinq étapes :
Partie centrale du SGBD, le moteur de base de données effectue les opérations d'enregistrement et de récupération des données. Selon le SGBD, la base de données peut être composées d'un ou de plusieurs fichiers. Le rôle du moteur est de manipuler ces fichiers[25].
Les index sont des structures destinées à accélérer les opérations de recherche, elles sont entretenues par le moteur de base de données. Les vues sont des tables virtuelles créées à partir d'autres tables, et leur contenu est entretenu par le moteur de base de données. Celui-ci manipule également le catalogue, contrôle les transactions, vérifie la cohérence des informations et vérifie que les utilisateurs accèdent uniquement à des informations autorisées[25] :
Le moteur utilise des mémoires tampon : C'est un emplacement de mémoire centrale utilisé pour stocker temporairement des informations en transit. Les informations sont récupérées en bloc depuis les fichiers, puis placées dans des mémoires tampon. Lors des lectures suivantes l'information est récupérée depuis la mémoire tampon existante - opération beaucoup plus rapide que la lecture d'un fichier. Les opérations de lecture des fichiers sont ainsi diminuées, et les opérations d'écriture sont décalées, ce qui accélère le SGBD[2].
Les opérations effectuées par le moteur sont souvent inscrites dans un fichier journal, ce qui permet de les annuler en cas d'incident - panne ou annulation d'une transaction[27].
Dans un dispositif de base de données - qui comporte un logiciel applicatif, un SGBD et une base de données - la manière dont les informations sont présentées aux utilisateurs diffère de la manière dont sont organisées les informations, et celle-ci diffère de la manière dont les informations sont enregistrées dans des fichiers. Cette construction à 3 points de vue est basée sur le modèle de référence ANSI/SPARC[1],[5].
Chacune des 3 vues peut être modifiée par exemple en formulant des requêtes dans le langage du SGBD. L'indépendance des données est la capacité d'un SGBD de permettre la modification de n'importe laquelle des trois vues sans que cela nécessite de modification des autres vues[1],[5] :
Il y a indépendance des données si le schéma conceptuel peut être modifié sans nécessiter de modification du point de vue de l'utilisateur ni de la structure physique, et si la structure physique peut être modifiée sans que cela nécessite de modifications du schéma conceptuel ou du point de vue de l'utilisateur[1],[5].
Il existe plusieurs catégories d'usagers des SGBD, parmi lesquelles il y a l'administrateur de bases de données, le concepteur de base de données, le développeur, ainsi que les utilisateurs - plus ou moins avisés - des systèmes informatiques.
L'administrateur de bases de données (anglais database administrator abr. DBA) est un expert en SGBD, il s'occupe d'installer et de maintenir le SGBD ainsi que les outils annexes qui l'accompagnent. Il est la personne responsable de l'intégrité, de la sécurité, de la disponibilité des informations contenues dans les bases de données ainsi que de la performance du SGBD. Il protège les informations contre les accidents dus à des mauvaises manipulations, des erreurs de programmation, des utilisations malveillantes ou des pannes qui entraîneraient des détériorations du contenu des bases de données. Pour ce faire, l'administrateur de base de données autorise ou interdit l'accès aux informations et surveille l'activité du SGBD. Il effectue régulièrement des copies de sauvegarde en vue de permettre la récupération de données qui ont été perdues ou détériorées et effectue des réglages de tuning en vue d'améliorer la performance du SGBD. L'administrateur utilise les outils d'administration de base de données ou le langage de commande du SGBD[2],[28].
Le concepteur de base de données (anglais database designer) est la personne qui identifie les informations qui seront enregistrées dans la base de données, les relations entre ces informations et les contraintes telles que la présence ou non de redondance. Le concepteur de base de données a une connaissance approfondie de l'usage qui est fait de ces informations et des règles qui en découlent. Il est chargé d'organiser la base de données de manière appropriée en mettant en place les structures nécessaires au stockage des informations[2].
Les développeurs créent des logiciels applicatifs et des batch dans un langage de programmation de haut niveau. Chaque logiciel cible une activité en particulier - par exemple retrouver des livres dans une bibliothèque - et est destiné aux autres usagers du SGBD. Le développeur travaille avec une personne exerçant l'activité en question, en vue de déterminer les besoins caractéristiques de cette activité puis il détermine l'architecture du produit, et le met en œuvre en rédigeant le code source. Le logiciel comporte des instructions qui font appel au SGBD pour rechercher ou modifier les informations. Certains utilisateurs expérimentés, qui connaissent un langage de programmation, créent des programmes pour leur propre usage[2],[28],[29].
Les utilisateurs avisés ont les connaissances nécessaires pour utiliser le langage de commande du SGBD et accèdent aux données à partir de leur ordinateur personnel. Ils ont été autorisés par l'administrateur à voir certaines informations et à les modifier. Les utilisateurs avisés peuvent rechercher, ajouter, modifier ou supprimer des données en utilisant le langage de commande du SGBD, alors que les utilisateurs profanes n'utilisent jamais le langage de commande mais accèdent aux informations à travers des logiciels applicatifs prévus à cet effet[29].
Les utilisateurs profanes accèdent aux informations à travers un logiciel applicatif. Ils exécutent des commandes ou choisissent des menus et n'ont pas connaissance du langage de commande ni de l'organisation de la base de données. Les opérations effectuées par ces utilisateurs sont moins sophistiquées et limitées aux possibilités offertes par le logiciel applicatif[29].
Les SGBD sont des logiciels complexes et stratégiques, utilisés dans de très nombreuses applications informatiques, parmi lesquelles le commerce électronique, les dossiers médicaux, les paiements, les ressources humaines, la gestion de la relation client et la logistique ainsi que les blogs et les wikis, ils sont le résultat de dizaines d'années de recherche scientifique et industrielle. Les premiers SGBD de l'histoire ont fortement influencé ce secteur de marché, et les idées de ces pionniers sont encore largement copiées et réutilisées par les SGBD contemporains. Le marché des SGBD est très ténu, dominé par une poignée de produits concurrents de haut de gamme[27].
Le volume des ventes de SGBD relationnels est estimé entre 6 et 10 milliards de dollars par année en 2005[10]. En 2008 les trois tenors du marché que sont IBM DB2, Oracle Database et Microsoft SQL Server occupent 80 % du marché des SGBD relationnels[3].
En 2002 le marché des SGBD est réparti en 3 segments[30] :
Marché de niche en 2002, le marché des SGBD Open Source est estimé à 850 millions de dollars en 2008, et selon prévisions à 1,2 milliard de dollars en 2010, ce coût comprend les licences, les contrats de garantie et d'assistance technique. Alors que les SGBD de grande marque sont appréciés pour les applications stratégiques en raison de leur robustesse, leur richesse et leur durabilité, les SGBD open source sont plus simples, n'offrant pas toutes les fioritures des produits de grande marque, ils sont appréciés pour leur facilité d'utilisation et recherchés par les petites et moyennes institutions. Divers clients espèrent pouvoir remplacer des coûteux SGBD de grande marque par des SGBD open source moins coûteux, mais de tels remplacement sont rares, et les SGBD, MySQL et PostgreSQL sont utilisés pour de nouvelles applications, ceci en raison des difficultés de migration[31],[32]
Le choix du SGBD est souvent une décision stratégique pour une institution. Le coût d'acquisition d'un SGBD qui supporte plusieurs milliers d'utilisateurs et une base de données de grande dimension peut approcher les 1 million de dollars. En 1993 il existait différents SGBD relationnels, et ceux-ci étaient considérés comme suffisamment matures pour être utilisés dans des applications stratégiques. Les produits sont complexes, les différences sont parfois subtiles, ce qui rend le choix difficile pour l'acheteur[33]. Dix ans plus tard le choix n'est plus aussi difficile qu'il ne l'était avant; le nombre d'éditeurs de SGBD a diminué du fait de fusions et le marché est dominé par un petit nombre d'acteurs majeurs[30].
D'après un sondage réalisé en 1993 par le magazine Network World, il ressort que les critères de choix du SGBD les plus importants aux yeux des acheteurs sont la fiabilité, la performance, la conformité aux normes, la palette d'ordinateurs supportés, et la facilité d'utilisation. Le prix n'apparaît qu'en dixième position. Toujours d'après ce sondage, 70 % des acheteurs se disent prêts à débourser entre 2 000 et 25 000 dollars pour l'acquisition d'un SGBD[33].
Les questions fréquentes des acheteurs concernent la performance, les caractéristiques du langage de commande, du contrôle des accès concurrents ainsi que les types de données disponibles. La question de la performance apparaît souvent en haut de la liste des acheteurs et en bas de la liste des vendeurs; raison pour laquelle les essais et les benchmarks sont une pratique courante. Les caractéristiques du langage de commande SQL renseignent sur la syntaxe à laquelle devront se conformer les requêtes envoyées au SGBD. Le standard SQL a été modifié à plusieurs reprises, il existe 3 niveaux de conformité, et le langage SQL reconnu par chaque SGBD du marché se rapproche d'un ou l'autre de ces différents standards[33].
Une entreprise de taille moyenne utilise couramment plusieurs SGBD simultanément, le choix du SGBD étant rarement anticipé, souvent imposé par l'arrivée d'un logiciel applicatif, et difficilement réversible. Il arrive que la société acquière un logiciel applicatif qui ne fonctionne sur aucun des SGBD qu'elle possède déjà. Il arrive également qu'une société motive l'achat d'un nouveau SGBD par la volonté d'utiliser les technologies les plus récentes et les plus éminentes. Le remplacement d'un ancien SGBD par un nouveau est difficile en raison du manque de compatibilité entre les différents produits - ce qui rend nécessaire d'adapter les logiciels applicatifs au nouveau venu. Le résultat est que souvent les logiciels applicatifs ne sont pas adaptés, et le vieux SGBD continue d'être utilisé en même temps que les nouveaux produits[30].
Nom SGBD | Année | Éditeur | Caractéristiques | type de logiciel | SQL | Multivalué | Licence |
---|---|---|---|---|---|---|---|
Apache Derby | 1996 | Apache Software Foundation | embarqué[15], relationnel, centralisé[34] | Composant logiciel | Apache | ||
DB2 | 1983 | IBM | pour entreprises, groupes de travail, particuliers[35] | serveur | propriétaire | ||
dBase | 1978 | Ashton-Tate | relationnel, pour particuliers[36] | L4G | propriétaire | ||
FileMaker Pro | 1985 | FileMaker | relationnel, pour groupes de travail[37] | logiciel applicatif | propriétaire | ||
4D | 1985 | 4D | relationnel, pour groupes de travail et entreprises[38] | logiciel applicatif | propriétaire | ||
Firebird | 1981 | Firebird Foundation | relationnel, centralisé, embarqué, pour groupes de travail et entreprises[15],[39] | serveur | Interbase | ||
HSQLDB | 2000 | Thomas Mueller | relationnel, embarqué, centralisé, pour groupes de travail et particuliers[15],[40] | Composant logiciel | BSD | ||
HFSQL | 1993 | PC Soft | composant logiciel[41] | propriétaire | |||
Informix | 1981 | IBM | pour entreprises, groupes de travail, distribué[35] | serveur | propriétaire | ||
Ingres | 1974 | Ingres Corporation | relationnel, spatial, centralisé, distribué[42] | serveur | GPL | ||
Caché | 1997 | InterSystems | objet, pour entreprises, distribué[43] | serveur | propriétaire | ||
MariaDB | 2009 | Monty Program Ab | serveur | GPL | |||
MaxDB[44],[45] | 1977 | SAP AG et MySQL AB | objet-relationnel, pour entreprises et groupes de travail, centralisé[46] | composant logiciel | GPL | ||
Microsoft Access | 1992 | Microsoft | relationnel, pour particuliers et groupes de travail[37],[47] | L4G | propriétaire | ||
Microsoft SQL Server | 1989 | Microsoft[48] | entreprises, groupes de travail, particuliers, relationnel, distribué[49] | serveur | propriétaire | ||
MySQL | 1995 | Oracle Corporation[50] et MySQL AB | centralisé, embarqué[15], distribué, pour entreprises[51], groupes de travail et particuliers[45] | serveur | GPL | ||
OpenOffice.org Base | 2002 | Oracle Corporation[50] | Logiciel applicatif | LGPL | |||
Oracle Database | 1979 | Oracle Corporation | entreprises, groupes de travail, particuliers, relationnel, spatial, distribué[52] | serveur | propriétaire | ||
Paradox | 1987[53] | Corel[54] | logiciel applicatif | propriétaire | |||
Pick | 1968 | Pick System | serveur | propriétaire | |||
PostgreSQL | 1985 | Michael Stonebraker, PostgreSQL Global Development Group | serveur | BSD | |||
SQLite | 2000 | D. Richard Hipp | embarqué[15] | bibliothèque/composant logiciel | Domaine public | ||
MongoDB[55],[56] | 2007 | MongoDB | NoSQL orientée documents | serveur | SSPL | ||
Cassandra[55] | 2008 | Fondation Apache | NoSQL orientée colonnes | Licence Apache 2 | |||
Couchbase[55] | 2010 | Couchbase | NoSQL orientée documents | ||||
Elasticsearch[55] | 2004 | Elasticsearch | NoSQL index inversé | ||||
HBase[55] | 2006 | Hortonworks | NoSQL orientée colonnes | ||||
Redis[55] | 2009 | Redis Labs | NoSQL orientée clé-valeur | ||||
Riak[55] | 2009 | Basho Technologies | NoSQL orientée clé-valeur | ||||
DynamoDB | 2012 | Amazon | NoSQL orientée clé-valeur et documents | ||||
Voldemort | 2009 | NoSQL orientée clé-valeur | |||||
Big Table | 2005 | NoSQL orienté colonnes | propriétaire | ||||
MemcacheDB (en) | NoSQL, en mémoire | BSD | |||||
Vertica (en)[56],[57] | 2005 | NoSQL orientée colonnes | propriétaire | ||||
Neo4j | 2010 | Neo technology | NoSQL orientée graphe | GNUv3 et AGPL-3.0 | |||
Oracle NoSQL Database | Oracle Corporation | NoSQL |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.