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)
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.
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.
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.
Une structuration inadéquate des données peut suivant les cas :
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 !
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 contraintesFOREIGN KEY
etCHECK
, des définitionsDEFAULT
etNOT 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.
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.