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 client, Nom de la société, Adresse de la société, etc. Les colonnes d'une table de transactions peuvent être Date de la transaction, ID client, Montant de la transaction, Mode 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.
Db2 on Cloud
IBM Cloud Databases for PostgreSQL
IBM Cloud Hyper Protect DBaaS
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.
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 :
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.
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.
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 .
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 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 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 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.
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 :
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".
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.
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?"
Voici quelques exemples de bases de données non relationnelles spécifiques :
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 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 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 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 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 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."
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.
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 :
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.
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.
IBM prend en charge différentes versions de bases de données relationnelles hébergées dans le cloud.
En savoir plus sur le point de vue d'IBM sur les bases de données relationnelles.
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.
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 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.
Développez et exécutez des applications sur une base de données d'entreprise sécurisée, basée sur PostgreSQL open source.