Bases de données relationnelles
Dans ce guide essentiel, découvrez comment fonctionnent les bases de données relationnelles et examinez un comparatif avec les autres types de base de données.
Par : IBM Cloud Education
Sur un écran avec un arrière-plan bleu s'affichent des chiffres et des lettres, représentant une très grande base de données
Qu'est-ce qu'une base de données relationnelle ?

Une base de données relationnelle organise les données en tables qui peuvent être reliées ou  associées entre elles en fonction de données communes à chacune d'entre elles. Cette fonctionnalité vous permet d'extraire une table entièrement nouvelle à partir des données d'une ou de plusieurs tables, à l'aide d'une seule requête. Elle vous permet également, à vous comme à votre entreprise, de mieux comprendre les relations entre toutes les données disponibles et d'obtenir de nouvelles informations pour prendre de meilleures décisions ou identifier de nouvelles opportunités.

Par exemple, imaginez que votre entreprise gère une table des clients contenant des données sur chaque compte client, ainsi qu'une ou plusieurs tables de transactions contenant des données décrivant des transactions individuelles.

Les colonnes (ou zones) de la table des clients peuvent être  ID clientNom de la sociétéAdresse de la société, etc. Les colonnes d'une table de transactions peuvent être Date de la transactionID clientMontant de la transactionMode de paiement, etc. Les tables peuvent être associées en fonction de leur zone commune  ID client . Vous pouvez donc interroger la table pour générer des rapports très utiles, tels qu'un relevé consolidé des clients.

Les générateurs de rapports reçoivent ces requêtes et les exécutent à la demande pour créer des rapports officiels. De nombreux documents utilisés par les entreprises pour effectuer le suivi des stocks, des ventes, des finances ou même pour réaliser des prévisions financières proviennent d'une base de données relationnelle qui opère en coulisses.

Produits à la une

Db2 on Cloud

IBM Cloud Databases for PostgreSQL

IBM Cloud Hyper Protect DBaaS


Qu'est-ce que le langage SQL ?

Vous pouvez communiquer avec les bases de données relationnelles à l'aide du langage de requête structuré (SQL), le langage standard d'interaction avec les systèmes de gestion. SQL permet de joindre des tables avec seulement quelques lignes de code, et possède une structure que la plupart des non-techniciens peuvent apprendre rapidement.

Avec le langage SQL, les analystes n'ont pas besoin de savoir où se trouve la table des commandes sur le disque, comment effectuer la recherche pour trouver une commande spécifique, ou comment connecter les tables des commandes et des clients. La base de données compile la requête et détermine les points de données corrects.


Avantages

Le principal avantage d'une base de données relationnelle est qu'elle permet de créer des informations significatives en joignant les tables. La jonction des tables vous permet de comprendre les  relations  entre les données, ou la façon dont les tables sont connectées. Le langage SQL permet de compter, d'ajouter, de grouper et de combiner des requêtes. SQL peut exécuter des fonctions mathématiques et de sous-total de base ainsi que des transformations logiques. Les analystes peuvent ordonner les résultats par date, nom ou toute autre colonne.

Ces caractéristiques font de l'approche relationnelle l'outil de requête le plus populaire du marché.

Les bases de données relationnelles présentent plusieurs avantages par rapport aux autres formats de bases de données :

La flexibilité 

SQL possède un langage intégré de création de tables appelé Data Definition Language (DDL). DDL vous permet d'ajouter de nouvelles colonnes et tables, de renommer des relations et d'apporter d'autres modifications, même lorsque la base de données est en cours d'exécution et que des requêtes sont effectuées. Cela vous permet de modifier instantanément le schéma ou le mode de modélisation des données.

Redondance réduite 

Les bases de données relationnelles éliminent la redondance des données. Les informations relatives à un client donné apparaissent à un seul endroit : il existe une entrée unique lui correspondant dans la table des clients. La table des commandes se contente simplement de stocker un lien d'accès à la table des clients. La pratique consistant à séparer les données pour éviter la redondance est appelée normalisation. Les concepteurs de bases de données se chargent de normaliser les tables au cours du processus de conception.

Simplicité de la sauvegarde et de la reprise après incident 

Les bases de données relationnelles sont transactionnelles, c'est-à-dire qu'elles garantissent la cohérence de l'état du système tout entier à tout moment. La plupart des bases de données relationnelles proposent des options d'exportation et d'importation simples à utiliser qui facilitent considérablement la sauvegarde et la restauration. Ces exportations peuvent avoir lieu même lorsque la base de données est en cours d'exécution, ce qui facilite la restauration suite à une défaillance. Les bases de données relationnelles modernes sur le cloud peuvent effectuer une mise en miroir continue, la perte de données lors de la restauration durant quelques secondes, voire moins. La plupart des services gérés sur le cloud vous permettent de créer des répliques en lecture, comme dans   IBM Cloud Databases for PostgreSQL. Ces répliques en lecture vous permettent de stocker une copie en lecture seule de vos données dans un centre de données cloud. Les répliques peuvent également être transformées en instances de lecture/écriture pour la  reprise après incident .


Exemples de bases de données relationnelles

De nombreux produits de base de données mettent en œuvre le modèle de la base de données relationnelle. Ils utilisent une base de données SQL pour le traitement ou peuvent au minimum traiter des instructions SQL pour les demandes et les mises à jour de la base de données. Ces bases de données vont des petits systèmes sur poste de travail aux gigantesques systèmes basés sur le cloud. Il peut s'agir de systèmes open source pris en charge en interne ou par le fabricant, ou de systèmes commerciaux utilisant un code source fermé. Voici quelques-unes des bases de données les plus populaires :

MySQL

MySQL est une base de données couramment répandue et facile à apprendre à utiliser, dotée d'une capacité réduite de mémoire, de disque et de CPU. Elle prend en charge toutes les commandes SQL de base, ainsi que les transactions et les performances ACID (Atomicity, Consistency, Isolation, Durability - atomicité, cohérence, isolation et durabilité). MySQL est la base de données la plus courante intégrée aux sites  WordPress .

PostgreSQL

PostgreSQL  est également open source. Il offre des fonctionnalités d'entreprise telles que la sécurité, l'évolutivité et la prise en charge d'une automatisation plus poussée via une interface de ligne de commande, ainsi qu'un accès direct via le Web. PostgreSQL prend en charge les procédures mémorisées, qui sont un langage de programmation plus complexe construit par dessus SQL. Les équipes peuvent utiliser les procédures mémorisées pour effectuer des opérations ETL d'extraction, de transformation et de chargement de données entre les systèmes. Les exemples de ce cas d'utilisation sont le traitement des demandes de remboursements d'assurances et le traitement de commandes complexes. Postgres fonctionne également avec qSIG (lien externe au site ibm.com) ou Geo Server  (lien externe au site ibm.com) pour stocker et sauvegarder des informations globales.

Pour plus d'informations, voir aussi "Database Deep Dives: PostgreSQL.." (en anglais).

Db2

Db2 est une base de données relationnelle d'IBM du commerce qui est proposée à la fois en  version hébergée dans le cloud et en version sur site


Comparatif des bases de données relationnelles et NoSQL

Les bases de données NoSQL  permettent de stocker, rechercher et récupérer des données autrement que dans des tables avec des relations. Voici quelques-unes des principales distinctions :

Paires clé-valeur

La forme la plus populaire de base de données NoSQL est une simple paire clé-valeur. Les paires clé-valeur placent toutes les données dans une seule table. La clé est un élément unique. Pour les employés ou les clients, la clé peut être une adresse électronique. Pour les commandes, il s'agirait du numéro de commande. Tant que chaque clé est unique, une paire clé-valeur peut stocker toutes les relations dans une seule "table".

Priorité de la disponibilité sur la cohérence 

Lorsque des ordinateurs fonctionnent en  réseau, ils doivent invariablement décider s'ils doivent donner la priorité à des résultats cohérents (dans lesquels chaque réponse est toujours la même) ou à un temps de bon fonctionnement élevé, appelé "disponibilité". C'est ce qu'on appelle le "théorème CAP" acronyme de Consistency, Availability, or Partition Tolerance (cohérence, disponibilité et tolérance au partitionnement). Les bases de données relationnelles garantissent que les informations sont toujours synchronisées et cohérentes. Certaines bases de données NoSQL, comme Redis, préfèrent fournir toujours une réponse. Cela signifie que les informations que vous recevez suite à une requête peuvent être incorrectes de quelques secondes, voire d'une demi-minute. Sur les sites de médias sociaux, vous verrez par exemple une ancienne photo de profil alors que la plus récente a été mise à jour quelques instants auparavant. Il peut aussi se produire un délai d'attente ou une erreur. En revanche, dans les transactions bancaires et financières, une erreur et une nouvelle soumission peuvent être préférables à des informations caduques et incorrectes.

Schémas flexibles

Alors que les bases de données relationnelles ont un ensemble prédéfini de lignes et de colonnes, les bases de données NoSQL sont structurées davantage comme un document. Si vous savez où se trouvent les informations dans le document, vous pouvez les récupérer. Si les données se trouvent toujours dans le document, vous pouvez ajouter d'autres informations structurées, sans avoir à modifier les règles. Si cette opération est exécutée correctement, les requêtes d'origine continueront de fonctionner, ce qui facilite l'extension de la base de données sans mise à jour formelle.

Les autres formats de bases de données NoSQL sont les bases de données orientées "document", "graphe" et "objet". Un terme plus général désignant les bases de données NoSQL est "non relationnel".

Pour un récapitulatif complet des différences entre SQL et NoSQL, voir "SQL vs. NoSQL Databases: What's the Difference?"


Comparatif entre les bases de données relationnelles et non relationnelles

Voici quelques exemples de bases de données non relationnelles spécifiques :

Redis

Redis est une base de données NoSQL courante, fréquemment utilisée pour le type de stockage de données dont nous avons parlé précédemment. En effectuant une seule recherche, sans jointures ni relations, puis en déplaçant le traitement vers le navigateur Web,  Redis  fournit une réponse rapide. Le temps de réponse peut être vital pour les sites Web modernes hautement compétitifs.

JanusGraph

JanusGraph  JanusGraph est une base de données orientées graphe conçue pour stocker et traiter des requêtes portant sur des graphes de grande taille. Ces grands graphes contiennent des centaines de milliards de périphéries et de nœuds qui sont stockés dans un cluster multi-machines. JanusGraph peut gérer des milliers de requêtes simultanées et être mis à l'échelle pour prendre en charge de nouveaux matériels. Le type de données stockées par JanusGraph convient par exemple pour l'animation ou la modélisation aérodynamique.

MongoDB

MongoDB  est une base de données orientée document qui stocke les enregistrements sous la forme de documents faiblement structurés. Cette approche peut convenir parfaitement pour le stockage de pages Web sous forme de documents, pour un catalogue de produits d'e-commerce ou des applications des réseaux sociaux. Tout comme Redis, MongoDB diffère des modèles relationnels en ce qu'il ne vise pas la conformité ACID.

Voir également, "Database Deep Dives: MongoDB." (en anglais)

etcd

etcd est un autre stockage de type clé/valeur, généralement utilisé pour les données de configuration des systèmes distribués. Le cas d'utilisation courant d' etcd  Le cas d'utilisation courant d'etcd est celui des serveurs cloud qui évoluent en fonction de la demande et qui nécessitent une base de données unique pour les informations de configuration.

RabbitMQ

RabbitMQ est une file d'attente de messagerie open source. Un message est généralement constitué d'une certaine quantité de texte, dont la structure est définie par le client. Au lieu d'enregistrements ayant une durée de vie permanente, RabbitMQ  permet à un système de propager des messages dans la file d'attente pour que d'autres applications puissent ensuite les en extraire quand elles le souhaitent. Ce système de propagation/extraction asynchrone permet d'utiliser des applications distribuées transmettant des messages.

Elasticsearch

Elasticsearch est un moteur de recherche documentaire qui s'interface avec des API Web. Son objectif principal est de récupérer des résultats. Un site Web entier peut être stocké dans  Elasticsearch. Vous recherchez la paire clé-valeur pour obtenir le texte du site Web. La véritable puissance d'Elasticsearch est la fonction de recherche qui permet au site Web d'ajouter un bouton de recherche précis et rapide. Elasticsearch peut effectuer une recherche puissante et rapide dans n'importe quelle grande structure de texte.

Pour un récapitulatif des différents types de bases de données, voir "A Brief Overview of the Database Landscape."


Schémas de base de données

Le schéma d'une base de données est la structure définie dans un langage formel. En SQL, il existe deux langages formels : Definition Language (DDL) et Data Manipulation Language (DML).

Pour sélectionner des données dans une table, les mettre à jour ou les supprimer, les programmeurs utilisent DML. Pour travailler sur la base de données et créer et définir les tables et les relations, ils utilisent DDL ou un outil permettant de créer DDL.

DDL comprend des commandes telles que  CREATE, DROP, ALTER, COMMENT et  RENAME. La première commande DDL est  CREATE TABLE. Cette commande définit la clé primaire (qui doit être unique), les zones, la façon dont ces zones stockent les données et toute autre contrainte de la table. Une fois définie, vous pouvez établir une base de données comme une combinaison de son langage de définition et du DML pour insérer les lignes dans les tables avec la commande  INSERT .

Voici un exemple de commande DDL permettant de créer une table d'employés. Comme vous le verrez, un schéma peut inclure les colonnes requises, celles qui doivent être uniques (une clé) et celles qui doivent avoir une référence dans d'autres tables.

Dans cet exemple, la table jobs décrit chaque titre, description et niveau de poste. Une table distincte, la table pay_grades, indique le salaire correspondant à chaque niveau de poste. Les entiers sont des nombres entiers. char(100) réserve jusqu'à cent caractères pour le texte.

 

CREATE TABLE employees (

    employeeID integer UNIQUE NOT NULL,

    first_name char(100) NOT NULL,

    last_name char(100) NOT NULL,

    jobID int,   

    birthdate date NOT NULL,

    governmentID char(9),

    FOREIGN KEY(jobID) REFERENCES jobs(jobID)

);

Que se passe-t-il lorsqu'une ligne est supprimée de la table des postes ? DDL permet au programmeur de spécifier la démarche à suivre dans ce cas. La colonne dans employees peut être automatiquement mise à jour avec la valeur  NULL, ce qui est le cas dans cet exemple, ou être définie sur  casecade delete. Par exemple, si la succursale d'une bibliothèque est supprimée en raison d'une fermeture, les livres qu'elle n'a pas transférés peuvent également être supprimés.

Certaines bases de données relationnelles offrent la possibilité d'utiliser plusieurs schémas, avec des tables différentes, et d'accorder des autorisations de lecture et d'écriture pour celles-ci. Les schémas multiples signifient qu'un utilisateur des ressources humaines peut disposer d'informations spécifiques aux RH sur les employés, mais pas d'informations confidentielles les concernant (et vice versa), le tout dans la même base de données.


Octroi de licence

Du point de vue des licences, les bases de données relationnelles diffèrent sur un point important selon qu'il s'agit de bases de données open source ou de bases de données du commerce :

  • Les bases de données open source peuvent être installées gratuitement, mais ne fournissent aucun support commercial "prêt à l'emploi".
  • Les bases de données du commerce avec prise en charge  incluent un certain niveau de support, mais elles ne peuvent pas résoudre les problèmes dus à des utilisations légitimes de la base de données, tels que les suppressions accidentelles causées par des bogues introduits par les programmeurs.

Vous pouvez héberger des bases de données relationnelles dans le cloud, sur des serveurs locaux, sur des ordinateurs de bureau, sur des clouds privés, ou même sur des appareils IoT à condition de respecter la licence.


Comment créer une base de données relationnelle

Une base de données relationnelle a besoin de deux choses pour pouvoir fonctionner : le logiciel de base de données lui-même et le code DDL (Data Definition Language) permettant de la créer.

Pour prendre en charge une installation locale, les administrateurs doivent évaluer toutes les possibilités. Par exemple, si le système d'exploitation sous-jacent sur lequel s'exécute la base de données a besoin d'une mise à jour, cela peut entraîner un arrêt de plusieurs heures du serveur. Si la haute disponibilité est nécessaire, la base de données devra être répliquée, une copie restant en service lorsque la base de données parent est hors service. Pour les bases de données locales, se posent les questions telles que la mise à l'échelle pour gérer de multiples utilisateurs, ainsi que le mode d'exécution des sauvegardes et de restauration.

Une solution consiste à exécuter les bases de données dans le cloud. Avec les bases de données dans le cloud, la base de données est automatiquement configurée pour la haute disponibilité, ce qui signifie que vos données sont répliquées sur plusieurs membres, et que chaque membre réside dans des zones de disponibilité distinctes.

Si un centre de données tout entier tombe en panne, la base de données reste opérationnelle. Les données sont répliquées dans toutes les zones, ce qui vous permet de conserver toutes les données et de poursuivre les opérations en cas de défaillance. En outre, le fournisseur gère les améliorations de la sécurité et les mises à niveau du système d'exploitation et des versions de la base de données. Les utilisateurs plébiscitent les bases de données gérées dans le cloud en raison de leur sécurité prête à l'emploi adaptée aux besoins des entreprises, de leur haute disponibilité, de leur capacité de mise à l'échelle en ligne et de leurs sauvegardes automatiques.


Bases de données relationnelles et IBM Cloud

IBM prend en charge différentes versions de bases de données relationnelles hébergées dans le cloud.

  • IBM Db2 sur le cloud  est une base de données relationnelle commerciale de premier ordre, offrant des performances robustes et proposant une option de haute disponibilité avec un SLA de 99,99 %.
  • IBM Cloud Databases for PostgreSQL fournit une base de données PostgreSQL prête à l'emploi et entièrement gérée, construite avec une intégration native à IBM Cloud.
  • IBM Cloud Hyper Protect DBaaS pour PostgreSQL  est une solution encore plus performante pour le stockage des données dans un service de cloud d'entreprise hautement sécurisé, idéalement adapté aux charges de travail comportant des données sensibles.
  • IBM Data Management Platform for EDB Postgres Enterprise and Standard  est une plateforme PostgreSQL intégrée et open source, proposée sous la forme d'une expérience centralisée comprenant l'approvisionnement, le déploiement, l'utilisation, la gestion et le support.

En savoir plus sur le point de vue d'IBM sur les bases de données relationnelles.

Commencez gratuitement avec un compte IBM Cloud.


Solutions connexes

IBM Db2 on Cloud

Découvrez Db2 on Cloud, une base de données cloud SQL entièrement gérée, configurée et optimisée pour des performances robustes.


IBM Cloud Databases for PostgreSQL

Découvrez une base de données PostgreSQL sous forme de service, conçue pour l'entreprise avec une intégration native dans IBM Cloud.


IBM Cloud Hyper Protect DBaaS

IBM Cloud Hyper Protect DBaaS est un environnement de base de données cloud hautement sécurisé qui vous permet de gérer de nombreux types de base de données via des API standardisées.


Editions Enterprise et Standard d'EDB Postgres avec IBM

Développez et exécutez des applications sur une base de données d'entreprise sécurisée, basée sur PostgreSQL open source.