Une base de données relationnelle est un type de base de données qui stocke et fournit un accès à des points de données liés les uns aux autres. Les bases de données relationnelles sont basées sur le modèle relationnel, un moyen intuitif et simple de représenter des données dans des tables. Dans une base de données relationnelle, chaque ligne de la table est un enregistrement avec un identifiant unique appelé clé. Les colonnes de la table contiennent les attributs des données, et chaque enregistrement a généralement une valeur pour chaque attribut, ce qui facilite l’établissement des relations entre les points de données.
Voici un exemple simple de deux tables utilisées par une petite entreprise pour traiter les commandes qu’elle reçoit. La première table contient les informations client. Chaque enregistrement comprend donc le nom d’un client, son adresse, ses informations de livraison et de facturation, son numéro de téléphone et d’autres coordonnées. Chaque information (chaque attribut) est dans sa propre colonne, et la base de données attribue un ID unique (une clé) à chaque ligne. Dans la deuxième table - une table de commandes client - chaque enregistrement comprend l'ID du client qui a passé la commande, le produit commandé, la quantité, la taille et la couleur sélectionnées, etc. mais pas le nom ni les coordonnées du client.
Ces deux tables possèdent un seul point commun : la colonne ID (la clé). Mais grâce à cette colonne commune, la base de données relationnelle est en mesure de créer une relation entre les deux tables. Puis, quand l’application de traitement des commandes de l’entreprise envoie une commande à la base de données, celle-ci peut accéder à la table des commandes client, extraire les informations concernant la commande et utiliser l’ID client de cette table pour rechercher les informations de facturation et de livraison du client dans la table Informations client. L’entrepôt peut alors extraire le produit approprié, le client peut recevoir la commande en temps voulu, et l’entreprise peut être payée.
Le modèle relationnel signifie que les structures de données logiques (tables de données, vues et index) sont distinctes des structures de stockage physiques. Cette séparation signifie que les administrateurs de base de données peuvent gérer le stockage de données physique sans affecter l’accès à ces données en tant que structure logique. Par exemple, renommer un fichier de base de données ne renomme pas les tables qu’il contient.
La distinction entre logique et physique s’applique également aux opérations de base de données, qui sont des actions clairement définies permettant aux applications de manipuler les données et les structures de la base de données. Les opérations logiques permettent à une application de spécifier le contenu dont elle a besoin, et les opérations physiques déterminent comment accéder aux données, puis exécutent la tâche.
Pour que les données soient toujours précises et accessibles, les bases de données relationnelles respectent certaines règles d’intégrité. Par exemple, une règle d’intégrité peut spécifier que les lignes en double ne sont pas autorisées dans une table afin d’éliminer le risque d’entrée d’informations erronées dans la base de données.
Au début des bases de données, chaque application stockait des données au sein de sa propre structure unique. Lorsque les développeurs voulaient créer des applications pour utiliser ces données, ils devaient en savoir beaucoup sur la structure spécifique des données pour trouver les données dont ils avaient besoin. Ces structures de données étaient inefficaces, difficiles à gérer et à optimiser pour obtenir de bonnes performances des applications. Le modèle de base de données relationnelle a été conçu pour résoudre le problème que présentent plusieurs structures de données arbitraires.
Le modèle relationnel fournissait un moyen standard de représenter et d’interroger des données qui pouvait être utilisé par n’importe quelle application. Dès le début, les développeurs ont reconnu que la force principale du modèle de base de données relationnelle résidait dans l’utilisation de tables, qui constituaient un moyen intuitif, efficace et flexible de stocker des informations structurées et d’y accéder.
Au fil du temps, un autre atout du modèle relationnel est apparu lorsque les développeurs ont commencé à utiliser le langage SQL pour écrire et interroger des données dans une base de données. Depuis de nombreuses années, SQL est largement utilisé comme langage pour les requêtes de base de données. Basé sur l’algèbre relationnelle, SQL fournit un langage mathématique cohérent en interne qui permet d’améliorer plus facilement les performances de toutes les requêtes de base de données. Par comparaison, d’autres approches doivent définir des requêtes individuelles.
Le modèle relationnel, simple mais puissant, est utilisé par les organisations de tous types et de toutes tailles pour répondre à un large éventail de besoins en informations. Les bases de données relationnelles permettent d’effectuer le suivi des inventaires, de traiter des transactions d’e-commerce, de gérer d’énormes quantités d’informations client stratégiques, et bien plus encore. Une base de données relationnelle peut être prise en compte pour tout besoin d’informations dans lequel les points de données sont liés, et doit être gérée de manière cohérente, sécurisée et basée sur des règles.
Les bases de données relationnelles existent depuis les années 1970. Aujourd’hui, les avantages du modèle relationnel continuent d’en faire le modèle le plus largement accepté pour les bases de données.
Le modèle relationnel est le plus adapté pour maintenir la cohérence des données entre les applications et les copies de base de données (appelées instances). Par exemple, lorsqu’un client dépose de l’argent à un guichet automatique, puis examine le solde du compte sur un téléphone portable, il s’attend à ce que ce dépôt soit immédiatement reflété dans le solde du compte mis à jour. Les bases de données relationnelles excellent à garantir ce type de cohérence des données, en s’assurant que plusieurs instances d’une base de données contiennent les mêmes données à tout moment.
Il est difficile pour les autres types de bases de données de maintenir ce niveau de cohérence et d’immédiateté avec de grands volumes de données. Certaines bases de données récentes, comme les bases NoSQL, ne peuvent fournir qu’une « cohérence éventuelle ». Selon ce principe, lorsque la base de données est mise à l'échelle ou lorsque plusieurs utilisateurs accèdent aux mêmes données en même temps, les données ont besoin d'un certain temps pour « se rattraper «. La cohérence éventuelle est acceptable pour certaines utilisations, telles que la gestion des listes dans un catalogue de produits, mais pour les opérations commerciales stratégiques telles que les transactions de paniers d’achat, la base de données relationnelle est toujours la référence absolue.
Les bases de données relationnelles gèrent les règles et les politiques de l’entreprise à un niveau très fin, avec des politiques strictes concernant la validation (enregistrement effectif d’une modification apportée à la base de données). Par exemple, considérons une base de données d’inventaire qui effectue le suivi de trois pièces détachées qui sont toujours utilisées ensemble. Lorsqu’une pièce est extraite de l’inventaire, les deux autres doivent également l’être. Si l'un des trois éléments n'est pas disponible, aucun des éléments ne doit être retiré - les trois éléments doivent être disponibles avant que la base de données ne prenne un quelconque engagement. Une base de données relationnelle ne s'engage pas pour une partie tant qu'elle ne sait pas qu'elle peut s'engager pour les trois parties. Cette capacité de validation à plusieurs facettes est appelée atomicité. L’atomicité est la clé pour que les données restent exactes dans la base de données et pour garantir la conformité aux règles, réglementations et politiques de l’entreprise.
Quatre propriétés essentielles définissent les transactions des bases de données relationnelles : atomicité, cohérence, isolement et durabilité, généralement appelées ACID.
L’accès aux données implique de nombreuses actions répétitives. Par exemple, il peut être nécessaire de répéter des centaines ou des milliers de fois une requête simple pour obtenir des informations à partir d’une table de données de sorte à produire le résultat souhaité. Ces fonctions d’accès aux données nécessitent un type de code pour accéder à la base de données. Les développeurs d’applications ne veulent pas créer un nouveau code pour ces fonctions dans chaque nouvelle application. Fort heureusement, les bases de données relationnelles permettent d’utiliser des procédures stockées, qui sont des blocs de code accessibles via un simple appel d’application. Par exemple, une seule procédure stockée peut fournir un marquage d’enregistrement cohérent aux utilisateurs de plusieurs applications. Les procédures stockées peuvent également aider les développeurs à s’assurer que certaines fonctions de données de l’application sont mises en œuvre d’une manière spécifique.
Des conflits peuvent survenir dans une base de données lorsque plusieurs utilisateurs ou applications tentent de modifier les mêmes données en même temps. Les techniques de verrouillage et de simultanéité réduisent les risques de conflits tout en maintenant l’intégrité des données.
Le verrouillage empêche les autres utilisateurs et applications d’accéder aux données lors de leur mise à jour. Dans certaines bases de données, le verrouillage s’applique à l’ensemble de la table, ce qui a un impact négatif sur les performances des applications. D’autres bases de données, telles que les bases de données relationnelles Oracle, appliquent des verrous au niveau des enregistrements, laissant ainsi les autres enregistrements de la table disponibles, ce qui contribue à améliorer les performances des applications.
Les accès simultanés permettent de gérer l’activité lorsque plusieurs utilisateurs ou applications appellent des requêtes en même temps sur la même base de données. Cette fonctionnalité offre un accès correct aux utilisateurs et aux applications conformément aux politiques définies pour le contrôle des données.
Le logiciel utilisé pour stocker, gérer, interroger et récupérer les données stockées dans une base de données relationnelle est appelé un système de gestion de base de données relationnelle (SGBDR). Le SGBDR fournit une interface entre les utilisateurs et les applications et la base de données, ainsi que des fonctions administratives pour la gestion du stockage et des performances des données, ainsi que de l’accès à celles-ci.
Plusieurs facteurs peuvent guider votre décision lorsque vous effectuez votre choix entre les types de base de données et les produits de base de données relationnelle. Le SGBDR que vous choisirez dépendra des besoins de votre entreprise. Posez-vous les questions suivantes :
Au fil des ans, les bases de données relationnelles se sont améliorées, sont devenues plus rapides, plus robustes et plus faciles à utiliser. Mais elles sont également devenues plus complexes et l’administration des bases de données a toujours été un travail à plein temps. Au lieu d’utiliser leur expertise pour se concentrer sur le développement d’applications innovantes apportant de la valeur à l’entreprise, les développeurs ont dû consacrer la majeure partie de leur temps à l’activité de gestion nécessaire à l’optimisation des performances de la base de données.
Aujourd’hui, la technologie autonome s’appuie sur les atouts du modèle relationnel, la technologie de base de données cloud, et le machine learning pour offrir un nouveau type de base de données relationnelle. La base de données à pilotage automatique (également connue sous le nom de base de données autonome) conserve la puissance et les avantages du modèle relationnel, mais utilise l’intelligence artificielle, le Machine Learning et l’automatisation pour surveiller et améliorer les performances des requêtes et les tâches de gestion. Par exemple, pour améliorer les performances des requêtes, la base de données autopilotée peut émettre des hypothèses et tester des index pour accélérer les requêtes, puis mettre les meilleurs en production, le tout de manière autonome. La base de données à pilotage automatique apporte ces améliorations de façon continue, sans implication humaine.
La technologie autonome libère les développeurs des tâches répétitives de gestion de base de données. Par exemple, ils n’ont plus besoin de déterminer les besoins en infrastructure à l’avance. Au lieu de cela, avec une base de données à pilotage automatique, ils peuvent ajouter des ressources de stockage et de calcul selon les besoins pour prendre en charge la croissance de la base de données. En quelques étapes seulement, les développeurs peuvent facilement créer une base de données relationnelle autonome, ce qui libère du temps pour le développement d’applications.