Base de données - Database

Une instruction de sélection SQL et son résultat

En informatique , une base de données est une collection organisée de données stockées et accessibles électroniquement à partir d'un système informatique . Lorsque les bases de données sont plus complexes, elles sont souvent développées à l'aide de techniques de conception et de modélisation formelles .

Le système de gestion de base de données ( SGBD ) est le logiciel qui interagit avec les utilisateurs finaux , les applications et la base de données elle-même pour capturer et analyser les données. Le logiciel SGBD comprend en outre les principales fonctionnalités fournies pour administrer la base de données. La somme totale de la base de données, du SGBD et des applications associées peut être qualifiée de "système de base de données". Souvent, le terme "base de données" est également utilisé de manière vague pour désigner l'un des SGBD, le système de base de données ou une application associée à la base de données.

Les informaticiens peuvent classer les systèmes de gestion de bases de données en fonction des modèles de bases de données qu'ils prennent en charge. Les bases de données relationnelles sont devenues dominantes dans les années 1980. Ces données modélisent sous forme de lignes et de colonnes dans une série de tables , et la grande majorité utilisent SQL pour écrire et interroger des données. Dans les années 2000, les bases de données non relationnelles sont devenues populaires, appelées NoSQL car elles utilisent différents langages de requête .

Terminologie et aperçu

Formellement, une "base de données" fait référence à un ensemble de données connexes et à la façon dont elles sont organisées. L'accès à ces données est généralement fourni par un "système de gestion de base de données" (SGBD) constitué d'un ensemble intégré de logiciels informatiques qui permet aux utilisateurs d'interagir avec une ou plusieurs bases de données et donne accès à toutes les données contenues dans la base de données (bien que des restrictions peuvent exister qui limitent l'accès à des données particulières). Le SGBD fournit diverses fonctions qui permettent la saisie, le stockage et la récupération de grandes quantités d'informations et fournit des moyens de gérer la façon dont ces informations sont organisées.

En raison de la relation étroite entre eux, le terme "base de données" est souvent utilisé avec désinvolture pour désigner à la fois une base de données et le SGBD utilisé pour la manipuler.

En dehors du monde des technologies de l'information professionnelles , le terme base de données est souvent utilisé pour désigner toute collection de données connexes (telles qu'une feuille de calcul ou un index de fiches), car les exigences de taille et d'utilisation nécessitent généralement l'utilisation d'un système de gestion de base de données.

Les SGBD existants offrent diverses fonctions qui permettent de gérer une base de données et ses données qui peuvent être classées en quatre groupes fonctionnels principaux :

  • Définition des données – Création, modification et suppression des définitions qui définissent l'organisation des données.
  • Mise à jour – Insertion, modification et suppression des données réelles.
  • Récupération – Fournir des informations sous une forme directement utilisable ou pour un traitement ultérieur par d'autres applications. Les données récupérées peuvent être rendues disponibles sous une forme fondamentalement la même que celle stockée dans la base de données ou sous une nouvelle forme obtenue en modifiant ou en combinant des données existantes de la base de données.
  • Administration - Enregistrement et surveillance des utilisateurs, application de la sécurité des données, surveillance des performances, maintien de l'intégrité des données, gestion du contrôle de la simultanéité et récupération des informations corrompues par un événement tel qu'une défaillance inattendue du système.

Une base de données et son SGBD sont conformes aux principes d'un modèle de base de données particulier . « Système de base de données » désigne collectivement le modèle de base de données, le système de gestion de base de données et la base de données.

Physiquement, les serveurs de base de données sont des ordinateurs dédiés qui contiennent les bases de données réelles et exécutent uniquement le SGBD et les logiciels associés. Les serveurs de base de données sont généralement des ordinateurs multiprocesseurs , avec une mémoire généreuse et des baies de disques RAID utilisées pour un stockage stable. Les accélérateurs matériels de bases de données, connectés à un ou plusieurs serveurs via un canal haut débit, sont également utilisés dans les environnements de traitement de transactions à grand volume. Les SGBD sont au cœur de la plupart des applications de bases de données . Les SGBD peuvent être construits autour d'un noyau multitâche personnalisé avec prise en charge réseau intégrée , mais les SGBD modernes reposent généralement sur un système d'exploitation standard pour fournir ces fonctions.

Étant donné que les SGBD constituent un marché important , les fournisseurs d'ordinateurs et de stockage prennent souvent en compte les exigences des SGBD dans leurs propres plans de développement.

Les bases de données et les SGBD peuvent être classés selon le(s) modèle(s) de base de données qu'ils prennent en charge (tels que relationnel ou XML), le(s) type(s) d'ordinateur sur lequel ils s'exécutent (d'un cluster de serveurs à un téléphone mobile), le langage de requête ( s) utilisées pour accéder à la base de données (telle que SQL ou XQuery ), et leur ingénierie interne, qui affecte les performances, l' évolutivité , la résilience et la sécurité.

Histoire

La taille, les capacités et les performances des bases de données et de leurs SGBD respectifs ont augmenté en plusieurs ordres de grandeur. Ces augmentations de performances ont été rendues possibles par les progrès technologiques dans les domaines des processeurs , de la mémoire informatique , du stockage informatique et des réseaux informatiques . Le concept de base de données a été rendu possible par l'émergence de supports de stockage à accès direct tels que les disques magnétiques, qui sont devenus largement disponibles au milieu des années 1960 ; les systèmes antérieurs reposaient sur le stockage séquentiel des données sur bande magnétique. Le développement ultérieur de la technologie des bases de données peut être divisé en trois ères basées sur le modèle ou la structure des données : navigationnelle , SQL/ relationnelle et post-relationnelle.

Les deux premiers modèles de données de navigation principaux étaient le modèle hiérarchique et le modèle CODASYL ( modèle de réseau ). Celles-ci étaient caractérisées par l'utilisation de pointeurs (souvent des adresses de disques physiques) pour suivre les relations d'un enregistrement à l'autre.

Le modèle relationnel , proposé pour la première fois en 1970 par Edgar F. Codd , s'écarte de cette tradition en insistant sur le fait que les applications doivent rechercher des données par contenu, plutôt qu'en suivant des liens. Le modèle relationnel utilise des ensembles de tables de style grand livre, chacune utilisée pour un type d'entité différent. Ce n'est qu'au milieu des années 80 que le matériel informatique est devenu suffisamment puissant pour permettre le déploiement à grande échelle de systèmes relationnels (SGBD plus applications). Au début des années 1990, cependant, les systèmes relationnels dominaient dans toutes les applications de traitement de données à grande échelle , et à partir de 2018, ils restent dominants : IBM DB2 , Oracle , MySQL et Microsoft SQL Server sont les SGBD les plus recherchés . Le langage de base de données dominant, le SQL standardisé pour le modèle relationnel, a influencé les langages de base de données pour d'autres modèles de données.

Les bases de données d'objets ont été développées dans les années 1980 pour surmonter l'inconvénient de la non-concordance d'impédance objet-relationnelle , qui a conduit à l'invention du terme « post-relationnel » ainsi qu'au développement de bases de données hybrides objet-relationnelle .

La prochaine génération de bases de données post-relationnelles à la fin des années 2000 est devenue connue sous le nom de bases de données NoSQL , introduisant des magasins de clés-valeurs rapides et des bases de données orientées document . Une « nouvelle génération » concurrente connue sous le nom de bases de données NewSQL a tenté de nouvelles implémentations qui ont conservé le modèle relationnel/SQL tout en visant à égaler les performances élevées de NoSQL par rapport aux SGBD relationnels disponibles dans le commerce.

Années 1960, SGBD de navigation

Structure de base du modèle de base de données de navigation CODASYL

L'introduction du terme base de données a coïncidé avec la disponibilité du stockage à accès direct (disques et tambours) à partir du milieu des années 1960. Le terme représentait un contraste avec les systèmes à bande du passé, permettant une utilisation interactive partagée plutôt qu'un traitement par lots quotidien . L' Oxford English Dictionary cite un rapport de 1962 de la System Development Corporation of California comme le premier à utiliser le terme « base de données » dans un sens technique spécifique.

Au fur et à mesure que les ordinateurs augmentaient en vitesse et en capacité, un certain nombre de systèmes de bases de données à usage général ont émergé ; au milieu des années 1960, un certain nombre de ces systèmes étaient devenus commerciaux. L'intérêt pour une norme a commencé à grandir et Charles Bachman , auteur d'un de ces produits, l' Integrated Data Store (IDS), a fondé le Database Task Group au sein de CODASYL , le groupe responsable de la création et de la normalisation de COBOL . En 1971, le groupe de travail sur les bases de données a présenté sa norme, qui est généralement connue sous le nom d' approche CODASYL , et bientôt un certain nombre de produits commerciaux basés sur cette approche sont entrés sur le marché.

L'approche CODASYL a offert aux applications la possibilité de naviguer dans un ensemble de données liées qui a été formé en un grand réseau. Les applications peuvent trouver des enregistrements par l'une des trois méthodes suivantes :

  1. Utilisation d'une clé primaire (appelée clé CALC, généralement implémentée par hachage )
  2. Navigation dans les relations (appelées ensembles ) d'un enregistrement à un autre
  3. Analyser tous les enregistrements dans un ordre séquentiel

Les systèmes ultérieurs ont ajouté des arbres B pour fournir des chemins d'accès alternatifs. De nombreuses bases de données CODASYL ont également ajouté un langage de requête déclaratif pour les utilisateurs finaux (par opposition à l'API de navigation). Cependant, les bases de données CODASYL étaient complexes et nécessitaient une formation et des efforts importants pour produire des applications utiles.

IBM avait également son propre SGBD en 1966, connu sous le nom de Système de gestion de l'information (IMS). IMS était un développement de logiciel écrit pour le programme Apollo sur le System/360 . IMS était généralement similaire dans son concept à CODASYL, mais utilisait une hiérarchie stricte pour son modèle de navigation de données au lieu du modèle de réseau de CODASYL. Les deux concepts sont devenus plus tard connus sous le nom de bases de données de navigation en raison de la manière dont les données étaient accessibles : le terme a été popularisé par la présentation du prix Turing de Bachman en 1973, The Programmer as Navigator . IMS est classé par IBM comme une base de données hiérarchique . IDMS et la base de données TOTAL de Cincom Systems sont classées comme bases de données réseau. IMS reste en service à partir de 2014.

Années 1970, SGBD relationnel

Edgar F. Codd a travaillé chez IBM à San Jose, en Californie , dans l'un de leurs bureaux annexes qui était principalement impliqué dans le développement de systèmes de disque dur . Il n'était pas satisfait du modèle de navigation de l'approche CODASYL, notamment l'absence d'un dispositif de « recherche ». En 1970, il a écrit un certain nombre d'articles décrivant une nouvelle approche de la construction de bases de données qui a finalement abouti au révolutionnaire A Relational Model of Data for Large Shared Data Banks .

Dans cet article, il a décrit un nouveau système de stockage et de travail avec de grandes bases de données. Au lieu d'enregistrer les enregistrements dans une sorte de liste chaînée d'enregistrements de forme libre comme dans CODASYL, l'idée de Codd était d'organiser les données sous la forme d'un certain nombre de « tables », chaque table étant utilisée pour un type d'entité différent. Chaque table contiendrait un nombre fixe de colonnes contenant les attributs de l'entité. Une ou plusieurs colonnes de chaque table ont été désignées comme clé primaire par laquelle les lignes de la table pouvaient être identifiées de manière unique ; les références croisées entre les tables utilisaient toujours ces clés primaires, plutôt que les adresses de disque, et les requêtes joignaient les tables en fonction de ces relations de clé, en utilisant un ensemble d'opérations basées sur le système mathématique du calcul relationnel (d'où le modèle tire son nom). Le fractionnement des données en un ensemble de tables normalisées (ou relations ) visait à garantir que chaque "fait" n'était stocké qu'une seule fois, simplifiant ainsi les opérations de mise à jour. Les tables virtuelles appelées vues pouvaient présenter les données de différentes manières pour différents utilisateurs, mais les vues ne pouvaient pas être directement mises à jour.

Codd a utilisé des termes mathématiques pour définir le modèle : des relations, des tuples et des domaines plutôt que des tables, des lignes et des colonnes. La terminologie qui est maintenant familière provient des premières implémentations. Codd critiquera plus tard la tendance des implémentations pratiques à s'écarter des fondements mathématiques sur lesquels le modèle était basé.

Dans le modèle relationnel , les enregistrements sont "liés" à l'aide de clés virtuelles non stockées dans la base de données mais définies selon les besoins entre les données contenues dans les enregistrements.

L'utilisation de clés primaires (identifiants orientés utilisateur) pour représenter les relations entre les tables, plutôt que les adresses de disque, avait deux motivations principales. Du point de vue de l'ingénierie, il a permis de déplacer et de redimensionner les tables sans réorganisation coûteuse de la base de données. Mais Codd s'intéressait davantage à la différence de sémantique : l'utilisation d'identifiants explicites facilitait la définition des opérations de mise à jour avec des définitions mathématiques propres, et permettait également de définir les opérations de requête en fonction de la discipline établie du calcul des prédicats du premier ordre ; parce que ces opérations ont des propriétés mathématiques propres, il devient possible de réécrire les requêtes de manière prouvée correcte, ce qui est la base de l'optimisation des requêtes. Il n'y a pas de perte d'expressivité par rapport aux modèles hiérarchiques ou en réseau, bien que les connexions entre les tables ne soient plus aussi explicites.

Dans les modèles hiérarchiques et en réseau, les enregistrements pouvaient avoir une structure interne complexe. Par exemple, l'historique des salaires d'un employé peut être représenté sous la forme d'un « groupe répétitif » dans l'enregistrement de l'employé. Dans le modèle relationnel, le processus de normalisation a conduit à ce que ces structures internes soient remplacées par des données contenues dans plusieurs tables, connectées uniquement par des clés logiques.

Par exemple, une utilisation courante d'un système de base de données consiste à suivre les informations sur les utilisateurs, leur nom, leurs informations de connexion, diverses adresses et numéros de téléphone. Dans l'approche de navigation, toutes ces données seraient placées dans un seul enregistrement de longueur variable. Dans l'approche relationnelle, les données seraient normalisées en une table d'utilisateurs, une table d'adresses et une table de numéros de téléphone (par exemple). Les enregistrements ne seraient créés dans ces tables facultatives que si l'adresse ou les numéros de téléphone étaient effectivement fournis.

En plus d'identifier les lignes/enregistrements à l'aide d'identifiants logiques plutôt que d'adresses de disque, Codd a changé la façon dont les applications assemblaient les données à partir de plusieurs enregistrements. Plutôt que d'exiger des applications qu'elles collectent les données un enregistrement à la fois en parcourant les liens, elles utiliseraient un langage de requête déclaratif qui exprimait les données requises, plutôt que le chemin d'accès par lequel elles devraient être trouvées. Trouver un chemin d'accès efficace aux données est devenu la responsabilité du système de gestion de base de données, plutôt que le programmeur de l'application. Ce processus, appelé optimisation des requêtes, reposait sur le fait que les requêtes étaient exprimées en termes de logique mathématique.

Le papier de Codd a été récupéré par deux personnes à Berkeley, Eugene Wong et Michael Stonebraker . Ils ont lancé un projet connu sous le nom d' INGRES en utilisant des fonds qui avaient déjà été alloués pour un projet de base de données géographique et des étudiants programmeurs pour produire du code. À partir de 1973, INGRES a livré ses premiers produits de test qui étaient généralement prêts pour une utilisation généralisée en 1979. INGRES était similaire au Système R à plusieurs égards, y compris l'utilisation d'un "langage" pour l'accès aux données , connu sous le nom de QUEL . Au fil du temps, INGRES est passé au nouveau standard SQL.

IBM lui-même a fait une implémentation de test du modèle relationnel, PRTV , et une implémentation de production, Business System 12 , tous deux désormais abandonnés. Honeywell a écrit MRDS pour Multics , et il y a maintenant deux nouvelles implémentations : Alphora Dataphor et Rel . La plupart des autres implémentations de SGBD généralement appelées relationnelles sont en fait des SGBD SQL.

En 1970, l'Université du Michigan a commencé le développement du système de gestion de l'information MICRO basé sur le modèle de données théoriques ensemblistes de DL Childs . MICRO a été utilisé pour gérer de très grands ensembles de données par le département américain du Travail , l' agence de protection de l'environnement des États-Unis et des chercheurs de l' Université de l'Alberta , de l' Université du Michigan et de la Wayne State University . Il fonctionnait sur des ordinateurs centraux IBM utilisant le Michigan Terminal System . Le système est resté en production jusqu'en 1998.

Approche intégrée

Dans les années 1970 et 1980, des tentatives ont été faites pour créer des systèmes de bases de données avec du matériel et des logiciels intégrés. La philosophie sous-jacente était qu'une telle intégration offrirait des performances supérieures à un coût inférieur. Les exemples étaient IBM System/38 , la première offre de Teradata , et la machine de base de données Britton Lee, Inc ..

Une autre approche du support matériel pour la gestion des bases de données était l' accélérateur CAFS d' ICL , un contrôleur de disque matériel doté de capacités de recherche programmables. À long terme, ces efforts ont généralement échoué car les machines spécialisées dans les bases de données ne pouvaient pas suivre le développement et les progrès rapides des ordinateurs à usage général. Ainsi, la plupart des systèmes de bases de données sont aujourd'hui des systèmes logiciels fonctionnant sur du matériel à usage général, utilisant le stockage de données informatiques à usage général. Cependant, cette idée est toujours poursuivie pour certaines applications par certaines sociétés comme Netezza et Oracle ( Exadata ).

Fin des années 1970, SGBD SQL

IBM a commencé à travailler sur un système prototype vaguement basé sur les concepts de Codd sous le nom de System R au début des années 1970. La première version était prête en 1974/5, et les travaux ont alors commencé sur des systèmes multi-tables dans lesquels les données pouvaient être fractionnées de sorte que toutes les données d'un enregistrement (dont certaines sont facultatives) n'aient pas à être stockées dans un seul gros "morceau". Des versions multi-utilisateurs ultérieures ont été testées par des clients en 1978 et 1979, date à laquelle un langage de requête standardisé – SQL – avait été ajouté. Les idées de Codd s'affirmaient comme réalisables et supérieures à CODASYL, poussant IBM à développer une véritable version de production du System R, connue sous le nom de SQL/DS , et, plus tard, Database 2 ( DB2 ).

La base de données Oracle de Larry Ellison (ou plus simplement Oracle ) a commencé à partir d'une chaîne différente, basée sur les documents d'IBM sur System R. Bien que les implémentations d'Oracle V1 aient été achevées en 1978, ce n'est qu'avec la version 2 d'Oracle qu'Ellison a battu IBM sur le marché. en 1979.

Stonebraker a ensuite appliqué les leçons d'INGRES pour développer une nouvelle base de données, Postgres, qui est maintenant connue sous le nom de PostgreSQL . PostgreSQL est souvent utilisé pour les applications stratégiques mondiales (les registres de noms de domaine .org et .info l'utilisent comme magasin de données principal , comme le font de nombreuses grandes entreprises et institutions financières).

En Suède, l'article de Codd a également été lu et Mimer SQL a été développé à partir du milieu des années 1970 à l'Université d'Uppsala . En 1984, ce projet a été consolidé en une entreprise indépendante.

Un autre modèle de données, le modèle entité-relation , a émergé en 1976 et a gagné en popularité pour la conception de bases de données car il mettait l'accent sur une description plus familière que le modèle relationnel précédent. Plus tard, les constructions entité-relation ont été réaménagées en tant que construction de modélisation de données pour le modèle relationnel, et la différence entre les deux est devenue non pertinente.

années 1980, sur le bureau

Les années 1980 ont inauguré l'ère de l'informatique de bureau . Les nouveaux ordinateurs ont permis à leurs utilisateurs de disposer de feuilles de calcul comme Lotus 1-2-3 et de logiciels de base de données comme dBASE . Le produit dBASE était léger et facile à comprendre pour tout utilisateur d'ordinateur. C. Wayne Ratliff , le créateur de dBASE, a déclaré : « dBASE était différent des programmes comme BASIC, C, FORTRAN et COBOL en ce sens qu'une grande partie du sale boulot avait déjà été effectuée. La manipulation des données est effectuée par dBASE au lieu de par l'utilisateur, afin que l'utilisateur puisse se concentrer sur ce qu'il fait, plutôt que d'avoir à s'occuper des détails sales de l'ouverture, de la lecture et de la fermeture des fichiers, et de la gestion de l'allocation d'espace." dBASE était l'un des logiciels les plus vendus dans les années 1980 et au début des années 1990.

années 90, orienté objet

Les années 1990, parallèlement à l'essor de la programmation orientée objet , ont vu une augmentation de la manière dont les données dans diverses bases de données étaient gérées. Les programmeurs et les concepteurs ont commencé à traiter les données de leurs bases de données comme des objets . C'est-à-dire que si les données d'une personne se trouvaient dans une base de données, les attributs de cette personne, tels que son adresse, son numéro de téléphone et son âge, étaient désormais considérés comme appartenant à cette personne au lieu d'être des données étrangères. Cela permet aux relations entre les données d'être des relations avec des objets et leurs attributs et non avec des champs individuels. Le terme « désadaptation d'impédance objet-relationnelle » décrit l'inconvénient de la traduction entre les objets programmés et les tables de la base de données. Les bases de données objet et les bases de données objet-relationnelles tentent de résoudre ce problème en fournissant un langage orienté objet (parfois en tant qu'extensions de SQL) que les programmeurs peuvent utiliser comme alternative au SQL purement relationnel. Du côté de la programmation, des bibliothèques connues sous le nom de mappages objet-relationnel (ORM) tentent de résoudre le même problème.

Années 2000, NoSQL et NewSQL

Les bases de données XML sont un type de base de données structurée orientée document qui permet des requêtes basées sur des attributs de document XML . Les bases de données XML sont principalement utilisées dans des applications où les données sont commodément considérées comme une collection de documents, avec une structure qui peut varier du très flexible au très rigide : les exemples incluent les articles scientifiques, les brevets, les déclarations fiscales et les dossiers du personnel.

Les bases de données NoSQL sont souvent très rapides, ne nécessitent pas de schémas de table fixes, évitent les opérations de jointure en stockant des données dénormalisées et sont conçues pour évoluer horizontalement .

Ces dernières années, il y a eu une forte demande pour des bases de données massivement distribuées avec une tolérance de partition élevée, mais selon le théorème CAP, il est impossible pour un système distribué de fournir simultanément des garanties de cohérence , de disponibilité et de tolérance de partition. Un système distribué peut satisfaire deux de ces garanties en même temps, mais pas les trois. Pour cette raison, de nombreuses bases de données NoSQL utilisent ce qu'on appelle la cohérence à terme pour fournir à la fois des garanties de disponibilité et de tolérance de partition avec un niveau réduit de cohérence des données.

NewSQL est une classe de bases de données relationnelles modernes qui vise à fournir les mêmes performances évolutives que les systèmes NoSQL pour les charges de travail de traitement des transactions en ligne (lecture-écriture) tout en utilisant SQL et en maintenant les garanties ACID d'un système de base de données traditionnel.

Cas d'utilisation

Les bases de données sont utilisées pour soutenir les opérations internes des organisations et pour étayer les interactions en ligne avec les clients et les fournisseurs (voir Logiciels d'entreprise ).

Les bases de données sont utilisées pour contenir des informations administratives et des données plus spécialisées, telles que des données d'ingénierie ou des modèles économiques. Les exemples incluent les systèmes de bibliothèque informatisés, les systèmes de réservation de vols , les systèmes informatisés d' inventaire de pièces et de nombreux systèmes de gestion de contenu qui stockent les sites Web sous forme de collections de pages Web dans une base de données.

Classification

Une façon de classer les bases de données implique le type de leur contenu, par exemple : objets bibliographiques , document-texte, statistiques ou multimédias. Une autre façon est par leur domaine d'application, par exemple : comptabilité, compositions musicales, films, banque, fabrication ou assurance. Une troisième voie consiste en un aspect technique, tel que la structure de la base de données ou le type d'interface. Cette section répertorie quelques-uns des adjectifs utilisés pour caractériser différents types de bases de données.

  • Une base de données en mémoire est une base de données qui réside principalement dans la mémoire principale , mais qui est généralement sauvegardée par un stockage de données informatiques non volatile. Les bases de données de la mémoire principale sont plus rapides que les bases de données sur disque et sont donc souvent utilisées lorsque le temps de réponse est critique, comme dans les équipements de réseau de télécommunications.
  • Une base de données active comprend une architecture événementielle qui peut répondre aux conditions à la fois à l'intérieur et à l'extérieur de la base de données. Les utilisations possibles incluent la surveillance de la sécurité, les alertes, la collecte de statistiques et l'autorisation. De nombreuses bases de données fournissent des fonctionnalités de base de données actives sous la forme de déclencheurs de base de données .
  • Une base de données cloud repose sur la technologie cloud . La base de données et la plupart de ses SGBD résident à distance, "dans le cloud", tandis que ses applications sont à la fois développées par des programmeurs et ensuite maintenues et utilisées par les utilisateurs finaux via un navigateur Web et des API ouvertes .
  • Les entrepôts de données archivent les données des bases de données opérationnelles et souvent de sources externes telles que les sociétés d'études de marché. L'entrepôt devient la source centrale de données à l'usage des gestionnaires et autres utilisateurs finaux qui peuvent ne pas avoir accès aux données opérationnelles. Par exemple, les données de vente peuvent être agrégées en totaux hebdomadaires et converties à partir des codes produits internes pour utiliser les codes UPC afin qu'elles puissent être comparées aux données ACNielsen . Certains composants de base et essentiels de l'entreposage de données incluent l'extraction, l'analyse et l' exploration de données, la transformation, le chargement et la gestion des données afin de les rendre disponibles pour une utilisation ultérieure.
  • Une base de données déductive combine une programmation logique avec une base de données relationnelle.
  • Une base de données distribuée est une base de données dans laquelle les données et le SGBD s'étendent sur plusieurs ordinateurs.
  • Une base de données orientée document est conçue pour stocker, récupérer et gérer des informations orientées document ou semi-structurées. Les bases de données orientées document sont l'une des principales catégories de bases de données NoSQL.
  • Un système de base de données intégré est un SGBD étroitement intégré à un logiciel d'application qui nécessite l'accès aux données stockées de manière à ce que le SGBD soit caché aux utilisateurs finaux de l'application et nécessite peu ou pas de maintenance continue.
  • Les bases de données d'utilisateurs finaux sont constituées de données développées par des utilisateurs finaux individuels. Des exemples en sont des collections de documents, de feuilles de calcul, de présentations, de fichiers multimédias et d'autres fichiers. Plusieurs produits existent pour prendre en charge de telles bases de données. Certains d'entre eux sont beaucoup plus simples que les SGBD à part entière, avec des fonctionnalités de SGBD plus élémentaires.
  • Un système de base de données fédéré comprend plusieurs bases de données distinctes, chacune avec son propre SGBD. Il est géré comme une base de données unique par un système de gestion de base de données fédéré (FDBMS), qui intègre de manière transparente plusieurs SGBD autonomes, éventuellement de types différents (auquel cas il s'agirait également d'un système de base de données hétérogène ), et leur fournit une vue conceptuelle intégrée .
  • Parfois, le terme multi-base de données est utilisé comme synonyme de base de données fédérée, bien qu'il puisse faire référence à un groupe de bases de données moins intégré (par exemple, sans FDBMS et sans schéma intégré géré) qui coopèrent dans une seule application. Dans ce cas, un middleware est généralement utilisé pour la distribution, qui inclut généralement un protocole de validation atomique (ACP), par exemple, le protocole de validation en deux phases , pour permettre des transactions distribuées (globales) entre les bases de données participantes.
  • Une base de données de graphes est une sorte de base de données NoSQL qui utilise des structures de graphes avec des nœuds, des arêtes et des propriétés pour représenter et stocker des informations. Les bases de données de graphes générales qui peuvent stocker n'importe quel graphe sont distinctes des bases de données de graphes spécialisées telles que les triplestores et les bases de données de réseau .
  • Un SGBD de type tableau est une sorte de SGBD NoSQL qui permet la modélisation, le stockage et la récupération de tableaux multidimensionnels (généralement volumineux) tels que des images satellites et des sorties de simulation climatique.
  • Dans une base de données hypertexte ou hypermédia , tout mot ou morceau de texte représentant un objet, par exemple un autre morceau de texte, un article, une image ou un film, peut être lié à cet objet. Les bases de données hypertextes sont particulièrement utiles pour organiser de grandes quantités d'informations disparates. Par exemple, ils sont utiles pour organiser des encyclopédies en ligne , où les utilisateurs peuvent facilement parcourir le texte. Le World Wide Web est donc une grande base de données hypertexte distribuée.
  • Une base de connaissances (en abrégé KB , kb ou Δ) est un type spécial de base de données pour la gestion des connaissances , fournissant les moyens pour la collecte, l'organisation et la récupération informatisées des connaissances . Également une collection de données représentant les problèmes avec leurs solutions et les expériences associées.
  • Une base de données mobile peut être transportée ou synchronisée à partir d'un dispositif informatique mobile.
  • Les bases de données opérationnelles stockent des données détaillées sur les opérations d'une organisation. Ils traitent généralement des volumes relativement élevés de mises à jour à l'aide de transactions . Les exemples incluent les bases de données clients qui enregistrent les informations de contact, de crédit et démographiques sur les clients d'une entreprise, les bases de données du personnel qui contiennent des informations telles que le salaire, les avantages, les données de compétences sur les employés, les systèmes de planification des ressources d'entreprise qui enregistrent les détails sur les composants du produit, l'inventaire des pièces et les données financières. bases de données qui gardent une trace de l'argent, de la comptabilité et des transactions financières de l'organisation.
  • Une base de données parallèle cherche à améliorer les performances grâce à la parallélisation pour des tâches telles que le chargement de données, la création d'index et l'évaluation de requêtes.
Les principales architectures de SGBD parallèles induites par l' architecture matérielle sous-jacente sont :
  • Architecture de mémoire partagée , où plusieurs processeurs partagent l'espace mémoire principal, ainsi que d'autres stockages de données.
  • Architecture de disque partagé , où chaque unité de traitement (généralement composée de plusieurs processeurs) possède sa propre mémoire principale, mais toutes les unités partagent l'autre stockage.
  • Architecture sans partage , où chaque unité de traitement a sa propre mémoire principale et d'autres stockages.
  • Les bases de données probabilistes utilisent la logique floue pour tirer des inférences à partir de données imprécises.
  • Les bases de données en temps réel traitent les transactions suffisamment rapidement pour que le résultat revienne et soit immédiatement traité.
  • Une base de données spatiale peut stocker les données avec des caractéristiques multidimensionnelles. Les requêtes sur ces données incluent des requêtes basées sur la localisation, telles que "Où se trouve l'hôtel le plus proche dans ma région ?".
  • Une base de données temporelle a des aspects temporels intégrés, par exemple un modèle de données temporel et une version temporelle de SQL . Plus spécifiquement, les aspects temporels incluent généralement le temps de validité et le temps de transaction.
  • Une base de données orientée vers la terminologie s'appuie sur une base de données orientée objet , souvent personnalisée pour un domaine spécifique.
  • Une base de données de données non structurées est destinée à stocker de manière gérable et protégée divers objets qui ne s'intègrent pas naturellement et commodément dans des bases de données communes. Il peut s'agir de messages électroniques, de documents, de journaux, d'objets multimédias, etc. Le nom peut être trompeur car certains objets peuvent être très structurés. Cependant, toute la collection d'objets possible ne rentre pas dans un cadre structuré prédéfini. La plupart des SGBD établis prennent désormais en charge les données non structurées de diverses manières, et de nouveaux SGBD dédiés font leur apparition.

Système de gestion de base de données

Connolly et Begg définissent le système de gestion de base de données (SGBD) comme un « système logiciel qui permet aux utilisateurs de définir, créer, maintenir et contrôler l'accès à la base de données ». Des exemples de SGBD incluent MySQL , PostgreSQL , Microsoft SQL Server , Oracle Database et Microsoft Access .

L'acronyme SGBD est parfois étendu pour indiquer le modèle de base de données sous-jacent , avec RDBMS pour le relationnel , OODBMS pour l' objet (orienté) et ORDBMS pour le modèle objet-relationnel . D'autres extensions peuvent indiquer d'autres caractéristiques, telles que le SGBD pour un système de gestion de base de données distribué.

Les fonctionnalités fournies par un SGBD peuvent varier énormément. La fonctionnalité principale est le stockage, la récupération et la mise à jour des données. Codd a proposé les fonctions et services suivants qu'un SGBD à usage général à part entière devrait fournir :

  • Stockage, récupération et mise à jour des données
  • Catalogue ou dictionnaire de données accessible par l'utilisateur décrivant les métadonnées
  • Prise en charge des transactions et de la simultanéité
  • Facilités pour récupérer la base de données en cas d'endommagement
  • Prise en charge de l'autorisation d'accès et de la mise à jour des données
  • Accéder à l'assistance depuis des sites distants
  • Appliquer des contraintes pour garantir que les données de la base de données respectent certaines règles

On peut également généralement s'attendre à ce que le SGBD fournisse un ensemble d'utilitaires à des fins qui peuvent être nécessaires pour administrer efficacement la base de données, y compris des utilitaires d'importation, d'exportation, de surveillance, de défragmentation et d'analyse. La partie centrale du SGBD interagissant entre la base de données et l'interface d'application parfois appelée moteur de base de données .

Souvent, les SGBD ont des paramètres de configuration qui peuvent être réglés de manière statique et dynamique, par exemple la quantité maximale de mémoire principale sur un serveur que la base de données peut utiliser. La tendance est de minimiser la quantité de configuration manuelle, et pour les cas tels que les bases de données intégrées, la nécessité de cibler l'administration zéro est primordiale.

Les grands SGBD des grandes entreprises ont eu tendance à augmenter en taille et en fonctionnalités et peuvent avoir nécessité des milliers d'années humaines d'efforts de développement tout au long de leur durée de vie.

Les premiers SGBD multi-utilisateurs n'autorisaient généralement que l'application à résider sur le même ordinateur avec un accès via des terminaux ou un logiciel d'émulation de terminal. L' architecture client-serveur était un développement où l'application résidait sur un poste client et la base de données sur un serveur permettant de répartir le traitement. Cela a évolué vers une architecture multiniveau incorporant des serveurs d'applications et des serveurs Web avec l'interface utilisateur final via un navigateur Web avec la base de données directement connectée au niveau adjacent.

Un SGBD à usage général fournira des interfaces de programmation d'applications publiques (API) et éventuellement un processeur pour les langages de base de données tels que SQL pour permettre aux applications d'être écrites pour interagir avec la base de données. Un SGBD à usage spécial peut utiliser une API privée et être spécifiquement personnalisé et lié à une seule application. Par exemple, un système de messagerie exécutant de nombreuses fonctions d'un SGBD à usage général telles que l'insertion de messages, la suppression de messages, la gestion des pièces jointes, la recherche de listes de blocage, l'association de messages à une adresse e-mail, etc., mais ces fonctions sont limitées à ce qui est nécessaire pour gérer e-mail.

Application

L'interaction externe avec la base de données se fera via un programme d'application qui s'interface avec le SGBD. Cela peut aller d'un outil de base de données qui permet aux utilisateurs d'exécuter des requêtes SQL de manière textuelle ou graphique, à un site Web qui utilise une base de données pour stocker et rechercher des informations.

Interface du programme d'application

Un programmateur va coder les interactions à la base de données (parfois désigné comme un point d' émission ) par l' intermédiaire d' une interface de programme d'application (API) ou par l' intermédiaire d' un langage de base de données . L'API ou le langage particulier choisi devra être pris en charge par le SGBD, possible indirectement via un préprocesseur ou une API de pontage. Certaines API visent à être indépendantes des bases de données, ODBC étant un exemple bien connu. D'autres API courantes incluent JDBC et ADO.NET .

Langues de la base de données

Les langages de base de données sont des langages spécialisés, qui permettent une ou plusieurs des tâches suivantes, parfois distinguées comme sous- langages :

Les langages de base de données sont spécifiques à un modèle de données particulier. Les exemples notables incluent :

  • SQL combine les rôles de définition de données, de manipulation de données et de requête dans un seul langage. Ce fut l'un des premiers langages commerciaux pour le modèle relationnel, bien qu'il s'écarte à certains égards du modèle relationnel tel que décrit par Codd (par exemple, les lignes et les colonnes d'un tableau peuvent être ordonnées). SQL est devenu une norme de l' American National Standards Institute (ANSI) en 1986 et de l' Organisation internationale de normalisation (ISO) en 1987. Les normes ont été régulièrement améliorées depuis et sont prises en charge (avec divers degrés de conformité) par tous les principaux éditeurs commerciaux. SGBD relationnel.
  • OQL est une norme de langage de modèle objet (de l' Object Data Management Group ). Il a influencé la conception de certains des langages de requête les plus récents tels que JDOQL et EJB QL .
  • XQuery est un langage de requête XML standard implémenté par des systèmes de base de données XML tels que MarkLogic et eXist , par des bases de données relationnelles avec des capacités XML telles qu'Oracle et DB2, ainsi que par des processeurs XML en mémoire tels que Saxon .
  • SQL/XML combine XQuery avec SQL.

Un langage de base de données peut également intégrer des fonctionnalités telles que :

  • Configuration spécifique au SGBD et gestion du moteur de stockage
  • Calculs pour modifier les résultats des requêtes, comme le comptage, la sommation, la moyenne, le tri, le regroupement et les références croisées
  • Application des contraintes (par exemple dans une base de données automobile, n'autorisant qu'un seul type de moteur par voiture)
  • Version d'interface de programmation d'application du langage de requête, pour la commodité du programmeur

Espace de rangement

Le stockage de base de données est le conteneur de la matérialisation physique d'une base de données. Il comprend l' interne (physique) niveau dans l'architecture de base de données. Il contient également toutes les informations nécessaires (par exemple, les métadonnées , les "données sur les données" et les structures de données internes ) pour reconstruire le niveau conceptuel et le niveau externe à partir du niveau interne lorsque cela est nécessaire. La mise en stockage permanent des données est généralement de la responsabilité du moteur de base de données alias « moteur de stockage ». Bien que généralement accessibles par un SGBD via le système d'exploitation sous-jacent (et en utilisant souvent les systèmes de fichiers des systèmes d' exploitation comme intermédiaires pour l'agencement du stockage), les propriétés de stockage et les paramètres de configuration sont extrêmement importants pour le fonctionnement efficace du SGBD, et sont donc étroitement gérés par administrateurs de bases de données. Un SGBD, lorsqu'il est en fonctionnement, a toujours sa base de données résidant dans plusieurs types de stockage (par exemple, mémoire et stockage externe). Les données de la base de données et les informations supplémentaires nécessaires, éventuellement en très grandes quantités, sont codées en bits. Les données résident généralement dans le stockage dans des structures qui semblent complètement différentes de l'apparence des données aux niveaux conceptuel et externe, mais de manière à tenter d'optimiser (le mieux possible) la reconstruction de ces niveaux lorsque les utilisateurs et les programmes en ont besoin. quant au calcul d'autres types d'informations nécessaires à partir des données (par exemple, lors de l'interrogation de la base de données).

Certains SGBD prennent en charge la spécification du codage de caractères utilisé pour stocker les données, de sorte que plusieurs encodages peuvent être utilisés dans la même base de données.

Diverses structures de stockage de base de données de bas niveau sont utilisées par le moteur de stockage pour sérialiser le modèle de données afin qu'il puisse être écrit sur le support de votre choix. Des techniques telles que l'indexation peuvent être utilisées pour améliorer les performances. Le stockage conventionnel est orienté lignes, mais il existe également des bases de données orientées colonnes et de corrélation .

Vues matérialisées

La redondance du stockage est souvent utilisée pour augmenter les performances. Un exemple courant est le stockage de vues matérialisées , qui consistent en des vues externes ou des résultats de requête fréquemment nécessaires . Le stockage de telles vues permet d'économiser leur calcul coûteux à chaque fois qu'elles sont nécessaires. Les inconvénients des vues matérialisées sont les frais généraux encourus lors de leur mise à jour pour les maintenir synchronisées avec leurs données de base de données mises à jour d'origine, et le coût de la redondance du stockage.

Réplication

Parfois, une base de données utilise la redondance du stockage par réplication d'objets de base de données (avec une ou plusieurs copies) pour augmenter la disponibilité des données (à la fois pour améliorer les performances des accès simultanés de plusieurs utilisateurs finaux à un même objet de base de données, et pour fournir une résilience en cas de défaillance partielle de une base de données distribuée). Les mises à jour d'un objet répliqué doivent être synchronisées sur les copies d'objet. Dans de nombreux cas, l'intégralité de la base de données est répliquée.

Sécurité

La sécurité de la base de données traite de tous les aspects de la protection du contenu de la base de données, de ses propriétaires et de ses utilisateurs. Cela va de la protection contre les utilisations intentionnelles non autorisées des bases de données aux accès non intentionnels aux bases de données par des entités non autorisées (par exemple, une personne ou un programme informatique).

Le contrôle d'accès à la base de données consiste à contrôler qui (une personne ou un certain programme informatique) est autorisé à accéder à quelles informations dans la base de données. Les informations peuvent comprendre des objets de base de données spécifiques (par exemple, des types d'enregistrements, des enregistrements spécifiques, des structures de données), certains calculs sur certains objets (par exemple, des types de requêtes ou des requêtes spécifiques), ou en utilisant des chemins d'accès spécifiques aux premiers (par exemple, en utilisant des index spécifiques ou d'autres structures de données pour accéder aux informations). Les contrôles d'accès à la base de données sont définis par un personnel spécialement autorisé (par le propriétaire de la base de données) qui utilise des interfaces SGBD de sécurité protégées dédiées.

Cela peut être géré directement sur une base individuelle, ou par l'attribution d'individus et de privilèges à des groupes, ou (dans les modèles les plus élaborés) par l'attribution d'individus et de groupes à des rôles qui se voient ensuite accorder des droits. La sécurité des données empêche les utilisateurs non autorisés de consulter ou de mettre à jour la base de données. À l'aide de mots de passe, les utilisateurs sont autorisés à accéder à l'intégralité de la base de données ou à des sous-ensembles de celle-ci appelés "sous-schémas". Par exemple, une base de données d'employés peut contenir toutes les données sur un employé individuel, mais un groupe d'utilisateurs peut être autorisé à afficher uniquement les données de paie, tandis que d'autres sont autorisés à accéder uniquement à l'historique de travail et aux données médicales. Si le SGBD fournit un moyen de saisir et de mettre à jour de manière interactive la base de données, ainsi que de l'interroger, cette capacité permet de gérer les bases de données personnelles.

La sécurité des données en général concerne la protection de morceaux spécifiques de données, à la fois physiquement (c'est-à-dire contre la corruption, la destruction ou la suppression ; par exemple, voir la sécurité physique ), ou leur interprétation, ou des parties d'entre elles, en informations significatives (par exemple, par en regardant les chaînes de bits qu'ils comprennent, en concluant des numéros de carte de crédit valides spécifiques ; par exemple, voir cryptage des données ).

La journalisation des modifications et des accès enregistre qui a accédé à quels attributs, ce qui a été modifié et quand cela a été modifié. Les services de journalisation permettent un audit de la base de données médico-légale plus tard en conservant un enregistrement des occurrences d'accès et des modifications. Parfois, le code au niveau de l'application est utilisé pour enregistrer les modifications plutôt que de laisser cela à la base de données. La surveillance peut être configurée pour tenter de détecter les failles de sécurité.

Transactions et concurrence

Les transactions de base de données peuvent être utilisées pour introduire un certain niveau de tolérance aux pannes et d' intégrité des données après une récupération après une panne . Une transaction de base de données est une unité de travail, encapsulant généralement un certain nombre d'opérations sur une base de données (par exemple, lire un objet de base de données, écrire, acquérir un verrou , etc.), une abstraction prise en charge dans la base de données et d'autres systèmes. Chaque transaction a des limites bien définies en termes d'exécutions de programme/code qui sont incluses dans cette transaction (déterminées par le programmeur de la transaction via des commandes de transaction spéciales).

L'acronyme ACID décrit certaines propriétés idéales d'une transaction de base de données : atomicité , cohérence , isolation et durabilité .

Migration

Une base de données construite avec un SGBD n'est pas portable vers un autre SGBD (c'est-à-dire que l'autre SGBD ne peut pas l'exécuter). Cependant, dans certaines situations, il est souhaitable de migrer une base de données d'un SGBD vers un autre. Les raisons sont principalement économiques (différents SGBD peuvent avoir des coûts totaux de possession ou TCO différents), fonctionnelles et opérationnelles (différents SGBD peuvent avoir des capacités différentes). La migration implique la transformation de la base de données d'un type de SGBD à un autre. La transformation doit conserver (si possible) l'application liée à la base de données (c'est-à-dire tous les programmes d'application liés) intacte. Ainsi, les niveaux conceptuels et architecturaux externes de la base de données doivent être maintenus dans la transformation. Il peut être souhaitable que certains aspects du niveau interne de l'architecture soient également conservés. Une migration de base de données complexe ou volumineuse peut être un projet compliqué et coûteux (unique) en soi, qui doit être pris en compte dans la décision de migrer. Ceci malgré le fait que des outils peuvent exister pour aider à la migration entre des SGBD spécifiques. En règle générale, un fournisseur de SGBD fournit des outils pour aider à importer des bases de données à partir d'autres SGBD populaires.

Construction, maintenance et réglage

Après avoir conçu une base de données pour une application, l'étape suivante consiste à créer la base de données. En règle générale, un SGBD à usage général approprié peut être sélectionné pour être utilisé à cette fin. Un SGBD fournit les interfaces utilisateur nécessaires à utiliser par les administrateurs de base de données pour définir les structures de données de l'application nécessaires dans le modèle de données respectif du SGBD. D'autres interfaces utilisateur sont utilisées pour sélectionner les paramètres de SGBD nécessaires (comme les paramètres de sécurité, d'allocation de stockage, etc.).

Lorsque la base de données est prête (toutes ses structures de données et autres composants nécessaires sont définis), elle est généralement remplie avec les données de l'application initiale (initialisation de la base de données, qui est généralement un projet distinct ; dans de nombreux cas, en utilisant des interfaces de SGBD spécialisées qui prennent en charge l'insertion en bloc) avant le rendre opérationnel. Dans certains cas, la base de données devient opérationnelle alors qu'elle est vide de données d'application, et des données sont accumulées pendant son fonctionnement.

Une fois la base de données créée, initialisée et remplie, elle doit être maintenue. Divers paramètres de base de données peuvent avoir besoin d'être modifiés et la base de données peut avoir besoin d'être ajustée ( réglage ) pour de meilleures performances ; les structures de données de l'application peuvent être modifiées ou ajoutées, de nouveaux programmes d'application connexes peuvent être écrits pour ajouter aux fonctionnalités de l'application, etc.

Sauvegarde et restauration

Parfois, il est souhaité de ramener une base de données à un état antérieur (pour de nombreuses raisons, par exemple, les cas où la base de données est trouvée corrompue en raison d'une erreur logicielle, ou si elle a été mise à jour avec des données erronées). Pour y parvenir, une opération de sauvegarde est effectuée occasionnellement ou en continu, où chaque état souhaité de la base de données (c'est-à-dire les valeurs de ses données et leur intégration dans les structures de données de la base de données) est conservé dans des fichiers de sauvegarde dédiés (de nombreuses techniques existent pour le faire efficacement). Lorsqu'il est décidé par un administrateur de base de données de ramener la base de données à cet état (par exemple, en spécifiant cet état à un moment souhaité dans le temps où la base de données était dans cet état), ces fichiers sont utilisés pour restaurer cet état.

Analyse statique

Les techniques d'analyse statique pour la vérification logicielle peuvent également être appliquées dans le scénario des langages de requête. En particulier, le * cadre d' interprétation abstraite a été étendu au domaine des langages de requête pour les bases de données relationnelles comme un moyen de prendre en charge des techniques d'approximation solides. La sémantique des langages de requête peut être ajustée selon des abstractions appropriées du domaine concret des données. L'abstraction du système de base de données relationnelle a de nombreuses applications intéressantes, en particulier, à des fins de sécurité, telles que le contrôle d'accès à grain fin, le tatouage, etc.

Caractéristiques diverses

Les autres fonctionnalités du SGBD peuvent inclure :

  • Journaux de la base de données – Cela aide à conserver un historique des fonctions exécutées.
  • Composant graphique pour produire des graphiques et des diagrammes, en particulier dans un système d'entrepôt de données.
  • Optimiseur de requête - Effectue une optimisation de requête sur chaque requête pour choisir un plan de requête efficace (un ordre partiel (arbre) d'opérations) à exécuter pour calculer le résultat de la requête. Peut être spécifique à un moteur de stockage particulier.
  • Outils ou crochets pour la conception de bases de données, la programmation d'applications, la maintenance des programmes d'application, l'analyse et la surveillance des performances de la base de données, la surveillance de la configuration de la base de données, la configuration matérielle du SGBD (un SGBD et la base de données associée peuvent couvrir des ordinateurs, des réseaux et des unités de stockage) et le mappage de base de données associé (en particulier pour un SGBD distribué), l'allocation de stockage et la surveillance de l'agencement de la base de données, la migration du stockage, etc.

De plus en plus, il y a des appels pour un système unique qui intègre toutes ces fonctionnalités de base dans le même cadre de construction, de test et de déploiement pour la gestion des bases de données et le contrôle des sources. Empruntant à d'autres développements dans l'industrie du logiciel, certains commercialisent des offres telles que « DevOps for database ».

Conception et modélisation

Processus de conception de base de données v2.png

La première tâche d'un concepteur de base de données est de produire un modèle de données conceptuel qui reflète la structure des informations à conserver dans la base de données. Une approche courante consiste à développer un modèle entité-relation , souvent à l'aide d'outils de dessin. Une autre approche populaire est le langage de modélisation unifié . Un modèle de données réussi reflétera avec précision l'état possible du monde extérieur modélisé : par exemple, si les gens peuvent avoir plus d'un numéro de téléphone, cela permettra de capturer ces informations. Concevoir un bon modèle de données conceptuel nécessite une bonne compréhension du domaine d'application ; cela implique généralement de poser des questions approfondies sur les choses qui intéressent une organisation, comme « un client peut-il aussi être un fournisseur ? » ou « si un produit est vendu avec deux formes d'emballage différentes, s'agit-il du même produit ou de produits différents ? ", ou "si un avion vole de New York à Dubaï via Francfort, est-ce un vol ou deux (ou peut-être même trois)?". Les réponses à ces questions établissent des définitions de la terminologie utilisée pour les entités (clients, produits, vols, segments de vol) et leurs relations et attributs.

La production du modèle de données conceptuel implique parfois l'entrée des processus métier ou l'analyse du flux de travail dans l'organisation. Cela peut aider à déterminer quelles informations sont nécessaires dans la base de données et celles qui peuvent être omises. Par exemple, cela peut aider à décider si la base de données doit contenir des données historiques ainsi que des données actuelles.

Après avoir produit un modèle de données conceptuel dont les utilisateurs sont satisfaits, l'étape suivante consiste à le traduire en un schéma qui implémente les structures de données pertinentes au sein de la base de données. Ce processus est souvent appelé conception de base de données logique et le résultat est un modèle de données logique exprimé sous la forme d'un schéma. Alors que le modèle de données conceptuel est (en théorie du moins) indépendant du choix de la technologie de base de données, le modèle de données logique sera exprimé en termes d'un modèle de base de données particulier pris en charge par le SGBD choisi. (Les termes modèle de données et modèle de base de données sont souvent utilisés de manière interchangeable, mais dans cet article, nous utilisons modèle de données pour la conception d'une base de données spécifique et modèle de base de données pour la notation de modélisation utilisée pour exprimer cette conception).

Le modèle de base de données le plus populaire pour les bases de données à usage général est le modèle relationnel, ou plus précisément, le modèle relationnel tel que représenté par le langage SQL. Le processus de création d'une conception de base de données logique à l'aide de ce modèle utilise une approche méthodique connue sous le nom de normalisation . Le but de la normalisation est de s'assurer que chaque "fait" élémentaire n'est enregistré qu'à un seul endroit, de sorte que les insertions, les mises à jour et les suppressions maintiennent automatiquement la cohérence.

La dernière étape de la conception de la base de données consiste à prendre les décisions qui affectent les performances, l'évolutivité, la récupération, la sécurité, etc., qui dépendent du SGBD particulier. C'est ce qu'on appelle souvent la conception physique de la base de données , et le résultat est le modèle de données physique . Un objectif clé au cours de cette étape est l'indépendance des données , ce qui signifie que les décisions prises à des fins d'optimisation des performances doivent être invisibles pour les utilisateurs finaux et les applications. Il existe deux types d'indépendance des données : l'indépendance des données physiques et l'indépendance des données logiques. La conception physique est principalement motivée par les exigences de performances et nécessite une bonne connaissance de la charge de travail et des modèles d'accès attendus, ainsi qu'une compréhension approfondie des fonctionnalités offertes par le SGBD choisi.

Un autre aspect de la conception d'une base de données physique est la sécurité. Cela implique à la fois de définir le contrôle d'accès aux objets de la base de données et de définir des niveaux et des méthodes de sécurité pour les données elles-mêmes.

Des modèles

Collage de cinq types de modèles de base de données

Un modèle de base de données est un type de modèle de données qui détermine la structure logique d'une base de données et détermine fondamentalement de quelle manière les données peuvent être stockées, organisées et manipulées. L'exemple le plus populaire d'un modèle de base de données est le modèle relationnel (ou l'approximation SQL du relationnel), qui utilise un format basé sur une table.

Les modèles de données logiques courants pour les bases de données incluent :

Une base de données objet-relationnelle combine les deux structures liées.

Les modèles de données physiques comprennent :

Les autres modèles incluent :

Les modèles spécialisés sont optimisés pour des types de données particuliers :

Vues externes, conceptuelles et internes

Vue traditionnelle des données

Un système de gestion de base de données fournit trois vues des données de la base de données :

  • Le niveau externe définit comment chaque groupe d'utilisateurs finaux voit l'organisation des données dans la base de données. Une seule base de données peut avoir n'importe quel nombre de vues au niveau externe.
  • Le niveau conceptuel unifie les différentes vues externes en une vue globale compatible. Il fournit la synthèse de toutes les vues externes. Il est hors de portée des divers utilisateurs finaux de bases de données et intéresse plutôt les développeurs d'applications de bases de données et les administrateurs de bases de données.
  • Le niveau interne (ou niveau physique ) est l'organisation interne des données à l'intérieur d'un SGBD. Il concerne les coûts, les performances, l'évolutivité et d'autres questions opérationnelles. Il traite de la disposition du stockage des données, en utilisant des structures de stockage telles que des index pour améliorer les performances. Parfois, il stocke des données de vues individuelles (vues matérialisées ), calculées à partir de données génériques, s'il existe une justification de performance pour une telle redondance. Il équilibre toutes les exigences de performances des vues externes, éventuellement conflictuelles, dans le but d'optimiser les performances globales de toutes les activités.

Bien qu'il n'y ait généralement qu'une seule vue conceptuelle (ou logique) et physique (ou interne) des données, il peut y avoir un certain nombre de vues externes différentes. Cela permet aux utilisateurs de voir les informations de la base de données d'une manière plus liée à l'entreprise plutôt que d'un point de vue technique et de traitement. Par exemple, un service financier d'une entreprise a besoin des détails de paiement de tous les employés dans le cadre des dépenses de l'entreprise, mais n'a pas besoin de détails sur les employés qui sont dans l'intérêt du service des ressources humaines . Ainsi, différents départements ont besoin de différentes vues de la base de données de l'entreprise.

L'architecture de base de données à trois niveaux se rapporte au concept d' indépendance des données qui était l'un des principaux moteurs initiaux du modèle relationnel. L'idée est que les modifications apportées à un certain niveau n'affectent pas la vue à un niveau supérieur. Par exemple, les modifications au niveau interne n'affectent pas les programmes d'application écrits à l'aide d'interfaces de niveau conceptuel, ce qui réduit l'impact des modifications physiques pour améliorer les performances.

La vue conceptuelle fournit un niveau d'indirection entre l'interne et l'externe. D'une part, il fournit une vue commune de la base de données, indépendante des différentes structures de vue externes, et d'autre part, il fait abstraction des détails de la manière dont les données sont stockées ou gérées (niveau interne). En principe, chaque niveau, et même chaque vue externe, peut être présenté par un modèle de données différent. En pratique, un SGBD donné utilise généralement le même modèle de données pour les niveaux externe et conceptuel (par exemple, modèle relationnel). Le niveau interne, qui est caché à l'intérieur du SGBD et dépend de sa mise en œuvre, nécessite un niveau de détail différent et utilise ses propres types de types de structure de données.

Séparer les niveaux externe , conceptuel et interne était une caractéristique majeure des implémentations de modèles de bases de données relationnelles qui dominent les bases de données du 21e siècle.

Recherche

La technologie des bases de données est un sujet de recherche actif depuis les années 1960, à la fois dans les universités et dans les groupes de recherche et développement des entreprises (par exemple IBM Research ). L'activité de recherche comprend la théorie et le développement de prototypes . Les sujets de recherche notables ont inclus les modèles , le concept de transaction atomique et les techniques de contrôle de simultanéité associées , les langages de requête et les méthodes d' optimisation des requêtes , le RAID , etc.

Le domaine de recherche sur les bases de données compte plusieurs revues universitaires dédiées (par exemple, ACM Transactions on Database Systems -TODS, Data and Knowledge Engineering -DKE) et des conférences annuelles (par exemple, ACM SIGMOD , ACM PODS , VLDB , IEEE ICDE).

Voir également

Remarques

Les références

Sources

Lectures complémentaires

Liens externes