- Base de données
-
En informatique, une base de données (Abr. : « BD » ou « BdD ») est un lot d'informations stockées dans un dispositif informatique. Les technologies existantes permettent d'organiser et de structurer la base de données de manière à pouvoir facilement manipuler le contenu et stocker efficacement de très grandes quantités d'informations[1].
La base de données est organisée selon un modèle de données pré-déterminé en fonction de la nature des informations qui y seront stockées. La structure physique des fichiers comporte des index destinés à accélérer les opérations de recherche et de tri. Conformément à l'architecture Ansi/Sparc, l'organisation logique est indépendante de la structure physique. Une modification de l'organisation logique ne provoque pas de modification de la structure physique et vice-versa.
La motivation fondamentale de l'organisation des données est de permettre d'effectuer des inférences (requêtes) sur celles-ci. Le modèle de données relationnel est aujourd'hui le plus utilisé parce qu'il est formellement démontré que ce type de représentation permet de résoudre toutes requêtes, contrairement aux modèles hiérarchique et réseau.
Dans le langage courant, le terme base de données est utilisé pour désigner toute source importante de données telle qu'une encyclopédie[2]. Les bases de données sont classées en fonction de leur contenu : bibliographique, texte, numérique, et images.
Le logiciel qui manipule les bases de données est appelé système de gestion de base de données (SGBD). Il permet d'organiser, de contrôler, de consulter et de modifier la base de données. Les opérations sont parfois formulées dans un langage de requête tel que SQL – le plus connu et employé pour les modèles relationnels.
Sommaire
Le modèle de données
Les informations sont généralement classées par nature connexes (exemple : dossier médical ; patient ; médecin ; consultations ; médicaments). Les données sont réunies en petits groupes appelés enregistrements. Chaque type d'enregistrement correspond à une entité, c'est-à-dire un ensemble d'informations relative à un objet d'une certaine nature ainsi que les associations avec les objets connexes.
Le modèle de données est l'organisation sémantique des différentes entités stockées dans une base de données (voir aussi schéma conceptuel) :
- dans un modèle de données hiérarchique, les différentes entités sont reliées entre elles par des associations
père-fils
selon un diagramme en arbre ; - dans un modèle réseau, les différentes entités sont reliées entre elles par des associations
de-à
, selon une organisation arbitraire.
Modèle de données relationnel
En 1970, Edgar F. Codd (1923-2003), chercheur chez IBM, propose dans une thèse mathématique d'utiliser les informations présentes dans les enregistrements – en lieu et place des pointeurs – pour assurer les liens entre les informations et de regrouper les enregistrements dans des tables. Ce regroupement est motivé par le fait que le résultat de chaque recherche dans une base de données est une table[3]. Mais IBM – qui travaillait alors sur un autre type de base de données – ne s'y intéresse qu'en 1978, lorsque le concept est repris par Lawrence Ellison qui fonde une startup devenue Oracle Corporation[4],[5].
Cette proposition est la base des modèles de données relationnels, modèles utilisés par la quasi-totalité des systèmes de gestion de base de données au début du XXIe siècle[6].
Dans ces modèles, tout comme dans les modèles réseaux, les entités sont reliées par des associations
de-à
selon une organisation arbitraire. Cependant contrairement à ce dernier, les informations d'associations ne sont pas des pointeurs mais des informations contenues dans les enregistrements que le système de gestion de base de données utilise pour effectuer des produits cartésiens.Le modèle entité-association est utilisé pour schématiser l'organisation logique (les entités et les associations) dans les bases de données relationnelles[7].
Histoire
Les disque durs, mémoire de masse de grande capacité, ont été inventés en 1956. L'invention du disque dur a permis d'utiliser les ordinateurs pour collecter, classer et stocker de grandes quantités d'informations.
Le terme database (base de données) est apparu en 1964 pour désigner une collection d'informations partagées par différents utilisateurs d'un système d'informations militaire[8].
Les premières bases de données hiérarchiques sont apparues au début des années 1960. Les informations étaient découpées en deux niveaux de hiérarchie : un niveau contenait les informations qui sont identiques sur plusieurs enregistrements de la base de données. Le découpage a ensuite été étendu pour prendre la forme d'un diagramme en arbre[8].
En 1965, Charles Bachman conçoit l'architecture Ansi/Sparc encore utilisée de nos jours. En 1969, il créa le modèle de données réseau au sein du consortium CODASYL pour des applications informatiques pour lesquelles le modèle hiérarchique ne convient pas[8]. Charles Bachman a reçu le prix Turing en 1973 pour ses « contributions exceptionnelles à la technologie des bases de données. ».
En 1968 Dick Pick crée Pick, un système d'exploitation contenant un système de gestion de base de données « multivaluée » (SGBDR MV).
En 1970, Edgar F. Codd note dans sa thèse mathématique sur l'algèbre relationnelle qu'un ensemble d'entités est comparable à une famille définissant une relation en mathématique et que les jointures sont des produits cartésiens. Cette thèse est à l'origine des bases de données relationnelles[8]. Edgar F. Codd a reçu le prix Turing en 1981.
Le modèle entité-association a été inventé par Peter Chen en 1975 ; il est destiné à clarifier l'organisation des données dans les bases de données relationnelles[7],[9].
Dans le modèle relationnel, la relation désigne l'ensemble des informations d'une table, tandis que l'association, du modèle entité-association, désigne le lien logique qui existe entre deux tables contenant des informations connexes.
Les premières bases de données étaient calquées sur la présentation des cartes perforées : répartis en lignes et colonnes de largeur fixe. Une telle répartition permet difficilement de stocker des objets de programmation ; en particulier, elle ne permettent pas l'héritage entre les entités, caractéristique de la programmation orientée objet.
Apparues dans les années 1990, les base de données objet-relationnel utilisent un modèle de données relationnel tout en permettant le stockage des objets. Dans ces bases de données les associations d'héritage des objets s'ajoutent aux associations entre les entités du modèle relationnel[10].
Contenu
Dans les fichiers de la base de données sont stockés les informations, ainsi que les index, le détail du modèle de données, des listes de contrôle d'accès et un journal des opérations.
Les informations sont placées dans les champs des enregistrements de la base de données. Les enregistrements sont reliés pour former des collections. Dans les bases de données relationnelles, les collections sont des tables avec lignes et colonnes.
Les index sont des structures qui accélèrent la recherche, le tri et le regroupement des informations d'une collection par diminution de la complexité algorithmique. Ce sont typiquement des structures en arbre B ou en table de hachage. Les index contiennent les différentes valeurs d'un ou de plusieurs champs des enregistrements d'une collection.
Une clé primaire est un champ ou une combinaison de champs dont les valeurs sont différentes pour chaque enregistrement de la collection. La clé primaire permet de retrouver un et un seul enregistrement de la collection.
Dans une base de données relationnelle, une clé étrangère est un champ ou une combinaison de champs d'une table A qui sont en relation avec une clé primaire dans une table B.
Le détail du modèle de données et les listes de contrôle d'accès sont utilisés par le moteur de base de données pour contrôler et effectuer les opérations de manipulation des données.
Un journal contient la liste des dernières opérations effectuées sur la base de données. Ce journal est utilisé par le moteur de base de données pour annuler les opérations, par exemple en cas de crash informatique, ou si les opérations comportent une erreur. voir aussi Transaction informatique.
Dans les bases de données relationnelles l'organisation logique des données est indépendante de leur organisation physique. Ce qui signifie que la position des données dans les fichiers peut être entièrement modifiée sans que leur organisation sous forme d'enregistrements dans des tables ne soit touchée.
L'organisation physique d'une base de données diffère selon le matériel et le système d'exploitation pour lequel le système de gestion de base de données est conçu. Les enregistrements sont typiquement regroupés en grappes (anglais cluster), dont la taille est alignée sur une taille optimale pour le matériel (disque durs)[11].
Technologie
Dans la technique ISAM (de Indexed Sequential Access Method), la base de données est composée de fichiers qui contiennent des enregistrements de taille fixe d'une part et de fichiers contenant les index d'autre part. Cette technique utilise les mécanismes de verrouillage du système d'exploitation, elle est aujourd'hui un cas d'école de nombreuses études d'informatique[12].
Online Transaction Processing (abrégé OLTP) ou traitement de transactions en direct, désigne de manière générale un type d'utilisation des bases de données qui donne lieu à de nombreuses modifications simultanées d'une base de données et des opérations de recherche simple, comme c'est le cas dans les systèmes d'information[13].
À l'opposé de l' OLTP, l' Online Analytical Processing (abrégé OLAP) ou traitement analytique en direct, est un type d'utilisation des bases de données qui donne lieu à de nombreuses et complexes opérations de recherche basées sur des combinaisons de critères multiples et de rares modifications. Comme c'est le cas dans l'aide à la décision, l'exploration de données et les moteur de recherche[13].
Un index permet typiquement de retrouver un enregistrement sur la base de la valeur d'un champ entier de dimension réduite (quelques octets, par exemple : numéro de dossier, date). Un index plein texte (anglais fulltext) permet de retrouver un enregistrement sur la base d'une partie du contenu d'un champ — un mot contenu dans le champ, le champ est souvent un BLOB (de Binary Large Object) — un champ de dimension illimitée. Les index plein texte et les BLOB sont utilisés dans les moteur de recherche ainsi que les bases de données multimédia.
Pick (du nom de son inventeur, Dick Pick) est un système d'exploitation multiutilisateur, en temps partagé et à mémoire virtuelle basé sur un système de base de données « multivaluée » (SGBDR MV). Il est utilisé principalement pour les applications de gestion. Initialement un système d'exploitation avec SGBDR MV destiné aux mini-ordinateurs, il s'est diffusé sur les micro-ordinateurs et les grands systèmes, et reste encore en usage actuellement. La partie système d'exploitation ayant disparu de presque toutes les implémentations, seul le SGBDR MV persiste
SQL est un langage informatique créé en 1974 par IBM. Il est destiné à formuler des ordres de manipulation des bases de données. Il se compose d'une part d'un Data Definition Language (abrégé DDL), un langage destiné à manipuler le modèle de données, et d'autre part d'un Data Management Language (abrégé DML), un langage destiné à manipuler les informations contenues dans la base de données. Le langage permet également de manipuler les listes de contrôle d'accès et autoriser ou interdire certaines données à certains utilisateurs – partie appelée Data Control Language (abrégé DCL).
PL/SQL est un langage de programmation procédural créé par Oracle Corporation en 1991[14]. Les programmes écrits dans ce langage peuvent contenir des ordres de manipulation de bases de données en langage SQL, ils sont exécutés par le système de gestion de base de données Oracle Database. D'autres langages du même type sont PL/pgSQL et Transact-SQL.
XML est un langage informatique créé en 1995 par le consortium W3C. Il sert à permettre des échanges de données agrégées telles que par exemple les entités contenues dans les bases de données.
Le système de gestion de bases de données
Article détaillé : Système de gestion de base de données.Un système de gestion de base de données est un ensemble de logiciels qui manipulent le contenu des bases de données. Il sert à effectuer les opérations ordinaires telles que rechercher, ajouter ou supprimer des enregistrements (Create, Read, Update, Delete abrégé CRUD), manipuler les index, créer ou copier des bases de données.
Les mécanismes du système de gestion de base de données visent à assurer la cohérence, la confidentialité et la pérennité du contenu des bases de données. Le logiciel refusera qu'un usager modifie ou supprime une information s'il n'y a pas été préalablement autorisé ; il refusera qu'un usager ajoute une information si celle-ci existe dans la base de données et fait l'objet d'une règle d'unicité; il refusera également de stocker une information qui n'est pas conforme aux règles de cohérence telles que les règles d'intégrité référentielle dans les bases de données relationnelles.
Le système de gestion de base de données adapte automatiquement les index lors de chaque changement effectué sur une base de données et chaque opération est inscrite dans un journal contenu dans la base de données, ce qui permet d'annuler ou de terminer l'opération même en cas de crash informatique et ainsi garantir la cohérence du contenu de la base de données.
En 2009, IBM DB2, Oracle Database, MySQL, PostgreSQL et Microsoft SQL Server sont les principaux systèmes de gestion de base de données sur le marché.
Utilisations
Les bases de données sont utilisées dans de très nombreuses applications informatiques, en particulier en informatique de gestion, en informatique décisionnelle, en gestion des connaissances ainsi que pour la publication de sites Internet à travers des systèmes de gestion de contenu.
Quelques exemples
Les applications informatiques de collecte de renseignements administratifs tels que dossiers médicaux, fiscaux, ou des permis de port d'arme font usage des bases de données.
Dans une application informatique de billetterie informatisée, les billets de voyage ou de concert sont enregistrés dans une base de données.
Dans un logiciel de comptabilité ou de trésorerie, les écritures ainsi que le plan comptable sont enregistrés dans une base de données; le bilan est un rapport obtenu par synthèse automatique du contenu de la base de données. De même dans une application informatique de gestion de la production assistée par ordinateur (abr. GPAO), l'état des stocks, les disponibilité du personnel et les délais sont enregistrés dans une base de données, et servent de base pour un rapport de planification.
Dans un logiciel d'aide au diagnostic médical, un ensemble de pathologies et de diagnostics est enregistré dans une base de données. Un moteur de recherche extrait les diagnostics qui correspondent le mieux aux pathologies choisies par l'utilisateur.
Le Système d'information Schengen est une application de base de données utilisée par les services de police et des douanes de l'Espace Schengen, en Europe pour collecter et s'échanger des renseignements judiciaires (mandat d'arrêts, empreintes digitales, interdictions de séjour, ...)
ITIS est une application informatique qui contient un catalogue de taxinomie des espèces vivantes (végétaux, animaux, champignons, microorganismes,...).
La CIA, agence de renseignements aux États-Unis possède une des plus grandes banque de données au monde.
Le catalogue de la librairie en ligne amazon.com est une des plus grandes bases de données au monde avec plus de 250 millions d'ouvrages catalogués. La société Amazon.com est également propriétaire de la banque de données filmographique IMDb.
Dans les système d'information géographique les informations de cartographie sont enregistrées dans une base de données. Des informations de cartographie du ciel sont disponibles dans les catalogues d'étoiles.
Dans les logiciels de forums ou de messagerie électronique, les messages sont souvent enregistrés dans une base de données.
Les logiciels antivirus utilisent souvent une base de données dans laquelle sont enregistrées les empreintes laissées par les virus informatique.
La base de registre est une base de données qui contient les paramètres de configuration des systèmes d'exploitation Windows. Le Object Data Manager est une base de données similaire des systèmes d'exploitation AIX.
Dans un logiciel de gestion électronique de documents, des documents électroniques sont enregistrés dans une base de données. Dans un système de gestion de contenu ce sont des morceaux de page web qui sont enregistrés dans une base de données et dans un logiciel de e-commerce se sont les annonces, ainsi que les annonceurs.
Dans une plate-forme d'apprentissage en ligne, les exercices, les examens, les cursus, ainsi que l'annuaire des enseignants et des apprenants sont enregistrés dans une base de données.
Un progiciel de gestion intégrée tel que SAP ERP (de la société SAP AG) comporte un ensemble de logiciels qui utilisent tous la même base de données. Les différents logiciels de ce type de produit concernent des activités ordinaires des entreprises telles que la facturation, la comptabilité, les salaires, le suivi des commandes et des stocks.
Types d'utilisations
- Un moteur de recherche est un logiciel qui permet de retrouver des ressources (fichiers, documents, pages web) associées à des mots quelconques. La liste des mots et des ressources associées sont stockés dans une base de données.
- Une banque de données est une application informatique qui sert à collecter et permettre la publication d'un ensemble d'informations librement consultables et relatives à un domaine de connaissances. Par exemple des renseignements de bibliographie, de linguistique de justice, de chimie, d'architecture, de cinématographie, de biologie, d'astronomie, de géographie, de médecine ou de jeu. Les renseignements sont souvent stockées dans des bases de données et la banque de données équipée d'un moteur de recherche.
- Un système d'informations est une application informatique qui sert à collecter, classer, regrouper et modifier un ensemble d'informations relatifs à une activité. Les systèmes d'informations sont d'usage courant dans les entreprises et les institutions telles que les douanes, les hôpitaux, la marine, les transports ou l'armée.
- Un enterprise resource planning (ERP) est système d'informations qui sert à la collecte et la maintenance des informations concernant l'activité d'une entreprise (ventes, achats, salaires...)
- Un système d'information géographique est un système d'informations qui permet de collecter, manipuler des renseignements de cartographie (coordonnées de routes, de forêts, de plans d'eau). Ces informations sont utilisées par le système d'informations géographique pour créer des cartes géographiques.
- Un entrepôt de données est une base de données qui est utilisée pour collecter et stocker définitivement des informations historiques qui seront utilisées pour des statistiques et des analyses. Les informations sont souvent collectées à intervalle régulier depuis un système d'informations.
- L'informatique de gestion est un domaine d'activité et de connaissances orienté vers la manipulation de masse de grandes quantités d'informations (gestion de données), un secteur qui utilise des bases de données. Les L4G sont des environnement de développement des applications de base de données souvent utilisés en informatique de gestion. Ils sont composés d'un système de gestion de base de données et d'un langage de programmation.
Notes et références
- (en) Business Intelligence Lowdown: Top 10 Largest Databases in the World : la base de données de YouTube contient plus de 100 millions de vidéos
- Définition de base de données
- (en) DBMS Architecture - an open problem
- (en) Edgar Codd, Key Theorist of Databases died
- (en)Edgar Codd, database theorist, died
- (en)Edgar F. Codd - IBM archive
- (en)Entity-relationship logical design of database systems
- (en)Data base technology, IBM
- (en) [PDF] Entity relationship modeling
- (en)Objet-relational database system
- (en)Google books - Fundamentals of DBMS
- (en)Explore the difference between ISAM and relational databases
- Technet, Microsoft SQL Server
- (en)PL/SQL - Oracle wiki
Bibliographie
Articles connexes
- Notions techniques
- Notions juridiques
Liens externes
- dans un modèle de données hiérarchique, les différentes entités sont reliées entre elles par des associations
Wikimedia Foundation. 2010.