Qu’est-ce qu’une base de données relationnelle ?


Il s’agit d’une base de données qui stocke et fournit un point d’accès aux données entre elles. Ces dernières sont ainsi mises en relation les unes aux autres par le biais de tables : on parle donc du modèle relationnel.

relational_databases_hero

Définition d’une base de données relationnelle

Le système de gestion de bases de données relationnelles (SGBDR) constitue un modèle majoritaire sur le marché. De nombreux services web ou applications métier fonctionnent grâce à ce type de bases de données pour pouvoir structurer et tirer les informations essentielles de leurs données. Certaines grandes entreprises du cloud ont développé leurs propres modèles (ex. Db2 qui appartient à IBM, Oracle Database et Microsoft SQL Server). Cependant, beaucoup de projets de SGBDR sont open source :

  • MySQL est le système le plus utilisé au monde. Même s’il a été racheté par Oracle en 2009, il s’agissait à la base d’un projet gratuit et libre d’utilisation. En réaction à cette acquisition, des développeurs ont créé son successeur, toujours en open source : MariaDB ;
  • PostgreSQL est également une solution en accès libre. Son évolution est assurée par une équipe de développeurs indépendants. Son fonctionnement diffère légèrement de MySQL, car c’est un modèle relationnel-objet (SGBDRO) ;
  • SQLite est une bibliothèque publique ayant la particularité d’être hébergée directement dans un programme, et non pas en mode client-serveur.

L’acronyme SQL correspond au langage du même nom : Structured Query Language. Il constitue l’interface standard pour une base de données relationnelle. Ses instructions sont utilisées pour structurer les données et organiser l’information que l’on souhaite en tirer.

Architecture de la base de données relationnelle

L’organisation de ces bases de données s’appuie sur le théorème démontré par Edgar F. Codd en 1971 : le modèle relationnel. Il stipule que toute requête « naturelle » peut se traduire en algèbre relationnelle, et donc en un langage de requête intelligible par un ordinateur (via le SQL). Dans ce modèle, une relation (ou une table) est constituée de plusieurs attributs organisés en plusieurs lignes et colonnes, appelées tuples. La table entière est vue comme un ensemble de tuples. Prenons l’exemple ci-dessous :

schema_relational_databases

Chaque élément de la relation est associé à un type de données (valeur) par un schéma de relation comme suit :

Relation = (Attribut1 : Type1, Attribut2 : Type2 ,… , Attributn : Typen)

On peut ainsi définir un élément précis et lui assigner les données de la valeur d’un tuple pour constituer notre table. On constate ainsi qu’une base de données relationnelle n’est qu’un ensemble de différentes tables mises en relation les unes avec les autres.

Comment fonctionne une base de données relationnelle ?

Pour administrer leur base de données, les utilisateurs communiquent avec l’interface de gestion via un langage : le SQL. Ce dernier s’appuie sur l'algèbre relationnelle. Toutes les commandes sont explicitées en SQL et détaillent chaque étape de développement de la base de données. Ce langage permet de sélectionner les informations ciblées, d’indiquer leur emplacement dans la base de données, de les faire interagir, etc.

Certaines spécificités sont toutefois à retenir.

Les clés

Il s’agit d’un ensemble d'attributs permettant d’identifier un ensemble précis de données. Par exemple, si l’on reprend notre tableau précédent : A1 + A2 peut définir les clients ayant acheté une nouvelle voiture sur le deuxième semestre, avec A1 qui définit l’achat du véhicule et A2 la période d’achat. Cependant, aucun des attributs sélectionnés ne peut avoir de valeur nulle. Sinon, l’ensemble n’a pas d’existence réelle. Chaque table possède une clé primaire pouvant être exportée vers une autre table (en tant que clé étrangère) afin de lier des ensembles de données.

Lorsque deux tables sont liées par des clés étrangères, elles ne peuvent toutefois répondre qu’à une seule requête. Pour pouvoir déterminer des informations impliquant plusieurs tables, il faut utiliser une fonction JOIN.

JOIN

Il s’agit d’une opération permettant d’interroger plusieurs tables simultanément. Les données sélectionnées sont assemblées et filtrées en fonction des conditions définies par l’utilisateur.

La fonction SQL JOIN représente un élément capital dans les bases de données multitables afin de pouvoir générer des informations exploitables et qualitatives.

Il existe trois types de JOIN importants :

  • INNER JOIN ;
  • OUTER JOIN ;
  • SELF JOIN.

On étudie rarement des tables de données séparément. Généralement, c’est un ensemble des données ayant une signification précise, réparti dans différentes tables qui nous intéresse. Pour ce faire, les données doivent être normalisées au préalable.

Normalisation

Interroger plusieurs tables en même temps nécessiterait logiquement d’émettre plusieurs requêtes vers les différentes tables pour en extraire les données. Cependant, une telle opération demande du temps, s’avère peu pratique et peut créer des doublons. Cela peut altérer le traitement des données.

C’est là qu’intervient la normalisation. Traiter les données par relations en interrogeant les ensembles de données liées par les clés étrangères vues précédemment permet d’effectuer une seule requête.

Différenciation par rapport aux autres modèles de bases de données

Toutes les bases de données ne s’appuient pas sur ce modèle de tables. Elles peuvent s’en inspirer, mais possèdent des spécificités particulières. Dans les années 1980, le modèle « orienté objet » apparaît et réinvente la façon dont sont stockées les informations. Dans les années 2000 apparaît le modèle « NoSQL » qui remet en cause le modèle relationnel des bases de données. Le but était de développer des bases de données plus pratiques pour les analyses poussées comme le big data. Tous ces modèles possèdent leurs caractéristiques et leurs avantages.

Base de données orientée objet

Elle permet le stockage des données sous forme d’objets. Par « objet », on entend un groupe de données dans lequel l’interface est définie pour accéder à ces informations.

Le système SGBDO attribue automatiquement un identifiant (ID) à chaque objet, permettant d’y accéder via différentes méthodes. La principale différence avec la base de données relationnelle réside dans la possibilité d’attribuer un ID différent à deux objets distincts possédant les mêmes valeurs. Et ce, contrairement à un tuple, qui ne peut être identifié que par une valeur.

Elles possèdent également leur propre langage : l’OQL (Object Query Language).

Base de données orientée documents

Le stockage dans ces bases de données diffère totalement du modèle relationnel. En effet, il s’appuie sur des données hétérogènes de documents traités individuellement (et non plus en tables). Cela peut aller du document texte en JSON, YAML ou XML, à des données non structurées comme des fichiers image, vidéo ou audio.

Ces documents sont enregistrés en combinaisons clé/valeur. Veuillez noter qu’ici le terme de clé est identique à celui d’un attribut. Il n’a donc rien à voir avec les clés de la base de données relationnelle.

Plusieurs documents peuvent être regroupés pour former des collections, permettant ainsi de les classifier. Les requêtes pour manipuler la base de données orientée documents se présentent sous forme de fonctions, en JavaScript par exemple. Cette base de données est donc particulièrement adaptée à la gestion de grandes quantités d’informations.

Avantages et inconvénients des bases de données relationnelles

Même si les bases de données relationnelles se sont imposées largement, elles ont aussi leurs limites. Ce qui fait leur force peut aussi constituer leur faiblesse avec certains types de données (ex. gros volumes, multimédia, objets).

Les avantages

  • Le modèle en tables : il est assez simple à mettre en place. Il permet de mettre en évidence des données client ou de stocks sans difficulté et rapidement.
     
  • Faible redondance des données : grâce à la normalisation, vous évitez de fausser les informations que vous exploitez grâce à votre base de données et gagnez en cohérence.
     
  • Traitement des données quantitatives : qui permet d’associer des valeurs aux attributs.
     
  • Langage de requête standardisé (SQL) : les applications peuvent être développées et exécutées au sein de divers projets web avec une meilleure compatibilité.

Les inconvénients

  • Toutes les données ne peuvent être affichées en tables : les données abstraites et les données non structurées ne peuvent fonctionner avec une base de données relationnelle.
     
  • Les données ne peuvent être hiérarchisées : contrairement aux bases de données orientées objet. Vous ne pouvez donc pas préciser vos analyses avec des sous-tuples ou des classes de tuples par exemple.
     
  • La segmentation des données : résultant de la normalisation, elle éparpille les espaces de stockage des données. Cela entraîne des requêtes complexes sur plusieurs tables au niveau de l’application. Ce grand nombre de requêtes simultanées sur plusieurs tables diminue la performance lors des analyses et augmente le temps de calcul.

Globalement, il s’agit des bases de données les plus populaires au monde. Elles ne sont toutefois pas adaptées aux données hétérogènes ou à certains cas d’usage, comme le big data.

Les bases de données relationnelles chez OVHcloud

Nous proposons un large éventail de base de données. Parmis elles, deux modèles relationnels sont à votre disposition :

  • MySQL : le leader de la base de données relationnelle. Vous pouvez l’acquérir en mode « managé », ce qui vous épargne la gestion de votre base de données et son monitoring ;
  • PostgreSQL : qui est un modèle de base de données relationnelle capable de traiter d’importantes charges de travail. Il est également disponible en mode « managé » ;
  • Nous proposons également des bases de données SQL et noSQL privées comme MariaDB pour vos hébergements web.

Vous pouvez consulter l’ensemble de nos bases de données managées, pensées pour faciliter la gestion de vos données en toute sécurité. Toutes ces bases sont hébergées dans nos datacenters et bénéficient de normes de sécurité strictes. Nous garantissons ainsi la souveraineté et la confidentialité de vos données.