Le modèle relationnel

Temps estimé de lecture : 20 min

Objectifs

Question à laquelle cette activité va permettre de répondre :
- Comment le modèle relationnel permet-il de structurer les données afin de préserver leur intégrité ?

Objectifs pédagogiques visés :
- Distinguer les notions de données, informations et connaissances
- Connaître la notion de relation (au sens du schéma relationnel)

Introduction

La thématique des données persistantes est une thématique technique du domaine informatique. Historiquement, en adressant le problème de la conservation et de la gestion des données, elle a toutefois fortement impacté la mise en œuvre des Systèmes d’Information, qui sont pour leur part clairement ancrés dans les problématiques entreprises.

Données, informations et connaissances

Schématiquement, une information est une donnée que l’on sait interpréter. Le nombre 13,25 est une donnée, mais si vous savez que c’est le 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 des connaissances à partir de données. Une connaissance est la capacité de dire si le prix de 13,25 est cher ou non. L’objectif de cette acquisition de connaissance est évidemment la prise de décision : j’achète ou non ce paquet de nouilles.

On comprend mieux, dès lors, l’intérêt de la conservation et de la gestion des données pour les SI des entreprises.

Notion de persistance

Une donnée est persistante quand elle « survit » au programme qui l’a créée. La fonctionnalité de sauvegarde offerte par la plupart des logiciels (tableurs, traitements de texte, etc.) permet de rendre des données persistantes, en se basant sur les facilités offertes par le Système de Gestion de Fichiers (SGF) du système d’exploitation (OS pour Operating System).

Dans les outils associés à la persistance, il existe toutefois 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 support, nous nous consacrerons à une famille de SGBD très répandus sur le marché et qui implantent un même modèle, c’est-à-dire une même façon de représenter les données, le modèle relationnel.

Les problèmes liés à la mauvaise structuration des données

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

  • être source de redondance, c’est-à-dire de répétition inutile d’information. Cette redondance pouvant à son tour entraîner des incohérences lors de mises à jour, si on ne modifie pas l’information redondante partout où elle est présente ;
  • être contradictoire avec les hypothèses, et ne pas permettre de représenter une information correcte ;
  • avoir une incidence sur le nombre d’opérations nécessaires pour chercher une information ou pour les mettre à jour.

Le modèle de données relationnel

Le terme de modèle de données relationnel désigne une manière de structurer les informations sous la 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), qui sont ainsi dénommés SGBD relationnels.

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

Définition

Domaine

On appelle domaine l’ensemble des valeurs que peut prendre un attribut.

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

Définition

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).

Définition

Schéma d’une 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 connait leur numéro, leur nom, leur ville et leur numéro de téléphone. Nous pouvons exprimer cela par la relation Client (Numéro, Nom, Ville, Téléphone) qui peut se représenter sous forme d’une table.

Numéro Nom Ville Téléphone
2 DURANT BREST 02 12 34 56 78
6 MARTIN PARIS
 22 BERNARD NICE 04 98 76 54 32
54 FONTAINE RENNES

Les attributs d’une relation correspondent aux colonnes de la table. Les lignes d’une relation sont également 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 par la suite 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 regroupe 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.

Définition

Intégrité d’entité

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

Le maintient de cette intégrité peut se faire par le biais de contraintes PRIMARY KEY ou de contraintes UNIQUE (abordées dans l’activité Requêtes pour la création et la mise à jour ).

Définition

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, type et nombre de données saisies.

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

Microsoft, Intégrité des données, consulté le 2 mars 2021

Définition

Intégrité référentielle

L’intégrité référentielle garantit la cohérence des valeurs de clés entre les tables. Ce type de cohérence impose qu’il n’y ait aucune référence à des valeurs inexistantes.

De manière concrète les bases de données vont interdire :

  • d’ajouter ou modifier des lignes dans une table connexe lorsqu’il n’y a aucune ligne associée dans la table primaire ;
  • de changer des valeurs dans une table primaire qui engendreraient des lignes orphelines dans une table connexe ;
  • de supprimer des lignes dans une table primaire si des lignes connexes correspondantes existent.

Microsoft, Intégrité des données, consulté le 2 mars 2021

Définition

Intégrité définie par l’utilisateur

L’intégrité définie par l’utilisateur implique les règles et les contraintes créées par l’utilisateur pour satisfaire ses besoins particuliers.

Il arrive que l’intégrité de l’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 d’entreprise spécifiques doivent être prises en compte et incorporées aux mesures d’intégrité des données.

Prise de recul par rapport au modèle de données

De la même manière qu’on n’utilise pas un tableur pour écrire un rapport ni un traitement de texte pour stocker des données tabulaires, la structure des données que l’on veut traiter a une influence majeure sur les fonctionnalités que doit offrir l’outil qui permet de les gérer et de les manipuler. L’apparition, avec le web, des langages HTML et plus globalement des données semi-structurées (voir grammaire XML) a posé le problème de l’outil adapté au stockage et à la gestion de ce nouveau type de données. Des problèmes de même nature vont se poser pour les 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 a l’ambition de résoudre, et ceux qu’il ne prétend pas résoudre, mais pour lesquels des démarches similaires peuvent être développées.