Le Modèle Relationnel

Temps de lecture20 min

Résumé

Cet article présente le modèle de données relationnel, expliquant les concepts clés comme les relations, les schémas et l’intégrité des données. Il couvre la façon dont le modèle relationnel structure les données et les différents types de contraintes d’intégrité utilisés pour préserver la qualité des données.

Points essentiels

  • Le modèle relationnel représente les données sous forme de tables (relations) avec des lignes et des colonnes
  • Les concepts clés incluent les domaines, les relations et les schémas de relation
  • L’intégrité des données couvre l’intégrité d’entité, de domaine, référentielle et définie par l’utilisateur
  • Les contraintes d’intégrité aident à maintenir la cohérence et la qualité des données
  • Le modèle relationnel vise à résoudre des problèmes spécifiques de structuration des données mais présente des limitations pour certains types de données

Introduction

Le sujet des données persistantes est un thème technique du domaine de l’informatique. Historiquement, en abordant le problème de la préservation et de la gestion des données, il a significativement impacté la mise en œuvre des Systèmes d’Information, qui sont clairement ancrés dans des problématiques métier.

Données, Information et Connaissance

Schématiquement, l’information est une donnée que l’on sait interpréter. Le nombre 13,25 est une donnée, mais si l’on sait qu’il s’agit du prix d’un paquet de nouilles exprimé en euros, alors cela devient une information.

Dans la société dans laquelle nous vivons, un enjeu majeur est d’extraire de la connaissance à partir des données. La connaissance est la capacité à déterminer si le prix de 13,25 est cher ou pas. L’objectif de cette acquisition de connaissance est évidemment la prise de décision : acheter ou non ce paquet de nouilles.

On comprend mieux, dès lors, l’importance de la préservation et de la gestion des données pour les Systèmes d’Information d’entreprise.

Notion de persistance

Les données sont persistantes lorsqu’elles “survivent” au programme qui les a créées. La fonctionnalité de sauvegarde proposée par la plupart des logiciels (tableurs, traitements de texte, etc.) permet de rendre les données persistantes, en s’appuyant sur les facilités fournies par le Système de Gestion de Fichiers (SGF) du système d’exploitation (OS).

Parmi les outils associés à la persistance, il existe des systèmes plus complexes que les SGF, mais aussi plus riches : les Systèmes de Gestion de Bases de Données (SGBD). Dans ce matériel, nous nous concentrerons sur une famille de SGBD très répandue sur le marché et qui implémente le même modèle, c’est-à-dire la même façon de représenter les données : le modèle relationnel.

Problèmes liés à une mauvaise structuration des données

Une structuration inadéquate des données peut, selon les cas :

  • Être source de redondance, c’est-à-dire de répétition inutile d’information. Cette redondance peut à son tour entraîner des incohérences lors des mises à jour si l’information redondante n’est pas modifiée partout où elle est présente ;
  • Être contradictoire avec des hypothèses, et ne pas permettre de représenter correctement l’information ;
  • Avoir un impact sur le nombre d’opérations nécessaires pour rechercher une information ou pour la mettre à jour.

Le modèle de données relationnel

Le terme modèle de données relationnel désigne une façon de structurer l’information sous forme de matrices que l’on appelle tables ou relations. Ce modèle très simple est de loin le plus répandu dans les Systèmes de Gestion de Bases de Données (SGBD), que l’on qualifie alors de SGBD relationnels.

Une base de données relationnelle est donc constituée d’un ensemble de données structurées sous forme de relations.

Domaine

Un domaine est l'ensemble des valeurs qu'un attribut peut prendre.

Exemple : Le domaine de l’attribut Ville est l’ensemble des villes où se trouvent ses clients. Le domaine n’est pas limité aux valeurs actuellement présentes dans la table.

Relation

Une relation est un sous-ensemble du produit cartésien de n domaines d'attributs (n > 0).

Une relation est un ensemble au sens mathématique ; il n’y a pas de notion d’ordre ni de doublons (répétitions).

Schéma de Relation

Le schéma d'une relation $R$ est caractérisé par un nom et une liste d'attributs $A_1, ..., A_n$ et se note $R(A_1, ..., A_n)$.

Exemple : Considérons les données des clients d’une entreprise. On connaît leur numéro, leur nom, leur ville et leur numéro de téléphone. On peut exprimer cela par la relation Client (Numero, Nom, Ville, Telephone) qui peut être représentée sous forme de table.

Numero Nom Ville Telephone
2 SMITH LONDRES 020 1234 5678
6 JOHNSON PARIS
22 WILLIAMS NEW YORK 212 987 6543
54 BROWN SYDNEY

Les attributs d’une relation correspondent aux colonnes de la table. Les lignes d’une relation sont aussi appelées tuples.

D’un point de vue formel, il est donc impossible d’avoir, dans une même table, deux lignes identiques, ni même de connaître l’ordre dans lequel ces lignes sont stockées sur le disque. Nous verrons plus tard comment cette règle s’adapte aux SGBD réels !

Intégrité des données

Dans le domaine des bases de données, l’intégrité des données comprend l’intégrité d’entité, l’intégrité de domaine, l’intégrité référentielle et l’intégrité définie par l’utilisateur.

Intégrité d’Entité

L'intégrité d'entité définit une ligne comme étant une entité unique pour une table particulière. Elle assure l'intégrité des colonnes d'identification ou de la clé primaire d'une table.

Le maintien de cette intégrité peut se faire via des contraintes PRIMARY KEY ou des contraintes UNIQUE (abordées dans l’activité Requêtes de Création et de Mise à Jour).

Intégrité de Domaine

L'intégrité de domaine définit un ensemble de valeurs acceptables qu'une colonne est autorisée à contenir. Cette intégrité peut inclure des contraintes et d'autres mesures limitant le format, le type et le nombre de données saisies.

Vous pouvez implémenter l’intégrité de domaine pour restreindre le type, en utilisant des types de données, le format, en utilisant des contraintes CHECK et des règles, ou la plage des valeurs possibles, en utilisant des contraintes FOREIGN KEY et CHECK, des définitions DEFAULT et NOT NULL, et des règles.

Microsoft, Data Integrity, consulté le 2 mars 2021

Intégrité Référentielle

L'intégrité référentielle assure la cohérence des valeurs de clés entre les tables. Ce type de cohérence exige qu'il n'y ait pas de références à des valeurs inexistantes.

Concrètement, les bases de données vont interdire :

  • L’ajout ou la modification de lignes dans une table liée quand il n’existe pas de ligne associée dans la table primaire ;
  • La modification de valeurs dans une table primaire qui créerait des lignes orphelines dans une table liée ;
  • La suppression de lignes dans une table primaire si des lignes liées correspondantes existent.

Microsoft, Data Integrity, consulté le 2 mars 2021

Intégrité Définie par l’Utilisateur

L'intégrité définie par l'utilisateur implique des règles et contraintes créées par l'utilisateur pour répondre à ses besoins spécifiques.

Parfois, l’intégrité d’entité, l’intégrité référentielle et l’intégrité de domaine ne suffisent pas à préserver les données. Souvent, des règles métier spécifiques doivent être prises en compte et intégrées dans les mesures d’intégrité des données.

Conclusion

De même qu’on n’utilise pas un tableur pour écrire un rapport ou un traitement de texte pour stocker des données tabulaires, la structure des données que l’on souhaite traiter a une influence majeure sur les fonctionnalités que doit offrir l’outil utilisé pour les gérer et les manipuler. L’apparition, avec le web, des langages HTML et plus généralement des données semi-structurées (voir grammaire XML) a posé le problème de l’outil approprié pour stocker et gérer ce nouveau type de données. Des problèmes similaires se poseront pour différents types de données, qu’il s’agisse de plans, d’images, etc.

Il est donc important, au-delà de la présentation du modèle relationnel faite dans ce cours, de comprendre les problèmes que ce modèle vise à résoudre, et ceux qu’il ne prétend pas résoudre, mais pour lesquels des approches similaires peuvent être développées.

Références bibliographiques

Elmasri, R., & Navathe, S. B. (2016). Fundamentals of Database Systems (7e éd.). Pearson. Emprunter

Date, C. J. (2004). An Introduction to Database Systems (8e éd.). Pearson. Emprunter