Aller au contenu

Le modĂšle relationnel

Un peu d'histoire

Le modĂšle relationnel est une maniĂšre de modĂ©liser les relations existantes entre plusieurs informations, et de les ordonner entre elles. Cette modĂ©lisation qui repose sur des principes mathĂ©matiques mis en avant par E.F. Codd (laboratoire de recherche d’IBM) est souvent implĂ©mentĂ©e dans une base de donnĂ©es.

1970 Edgar Franck Cood pose les bases du modĂšle relationnel
1974 Création du langage SQL
1979 Création du premier systÚme de gestion de base de données Oracle
1980 Le volume mondial de données stockées est estimé à \(10^{18}\) octets
1990 Le volume mondial de données stockées est estimé à \(10^{19}\) octets
1995 PremiĂšre version du langage MySQL
2002 Le volume mondial de données stockées est estimé à \(10^{20}\) octets
2010 Le volume mondial de données stockées est estimé à \(10^{21}\) octets
2014 Le volume mondial de données stockés est estimé à \(10^{22}\) octets
Activité 1 - Les limites des outils traditionnels

Prenons l’exemple d’une mĂ©diathĂšque. Elle souhaite recenser les ouvrages qu’elle possĂšde. Voici le tableau qu’elle a rĂ©alisĂ©.

- IdentiïŹez les redondances dans ce tableau, et les Ă©lĂ©ments qui semblent uniques. - Le livre de Ray Bradbury intitulĂ© « Chroniques martiennes » est rĂ©guliĂšrement indisponible car il est trop souvent empruntĂ©. La mĂ©diathĂšque achĂšte donc un deuxiĂšme exemplaire, paru chez le mĂȘme Ă©diteur. Il portera le numĂ©ro d’inventaire 236984. ComplĂ©tez le tableau avec ce nouvel ouvrage. - Existe-t-il un Ă©lĂ©ment unique qui va rĂ©fĂ©rencer totalement l’ouvrage? - La mĂ©diathĂšque s’ouvre depuis peu Ă  la bande dessinĂ©e. Elle souhaite enregistrer l’album de bande dessinĂ©e en langue française L’incal noir , scĂ©narisĂ© par Alejandro Jodorowsky , dessinĂ© par Moebius et Ă©ditĂ© par Les humanoĂŻdes associĂ©s en 1982 . Quel est (sont) le(s) problĂšme(s) rencontrĂ©(s)?

Correction
  1. Redondances :
    • nom auteur (par ex : Bradbury)
    • prenom auteur (par ex : George)
    • editeur (par ex : Pocket)
    • langue (par ex : anglais)
    • annee publication (par ex : 1968) ElĂ©ments uniques :
    • titre
    • reference
  2. On rajouter la ligne : Chroniques martiennes, Bradbury, Ray, Denoël, anglais, 1950, 236984
  3. La référence est un élément unique qui référencera totalement un ouvrage.
  4. Il n’y a pas qu’un seul auteur, alors qu’il n’y a qu’une colonne pour cela...
La base de données

Une donnĂ©e est une information reprĂ©sentĂ©e sous une forme conventionnelle, aïŹn de pouvoir ĂȘtre traitĂ©e automatiquement. Une base de donnĂ©es (BDD) reprĂ©sente un ensemble ordonnĂ© de donnĂ©es dont l’organisation est rĂ©gie par un modĂšle.

Les données sont généralement regroupées selon leur appartenance à un objet du monde réel.

  • Le regroupement d’objets homogĂšnes constitue une entitĂ© .
  • Une entitĂ© est dĂ©crite par un ensemble d’ attributs .
  • Chacun de ces attributs prend une valeur pour chaque objet.

Exemple

  • EntitĂ© : un ĂȘtre humain
  • Attributs : nom, prĂ©nom, date de naissance, lieu de naissance
  • Valeurs : Young, Neil, 12 novembre 1945, Toronto
Activité 2 - Carte d'identité

On souhaite reprĂ©senter les donnĂ©es issues de la carte nationale d’identitĂ©. À partir de votre carte personnelle, donnez le nom de l’entitĂ© correspondante, les attributs qui lui sont associĂ©s et les valeurs qui vous sont propres.

Correction

Entité : Français

Attributs : nom, prénom, sexe, date de naissance, lieu de naissance, taille, adresse, date de validité, date de livraison, prefecture

Valeurs : ...

Vidéo : Le modÚle relationnel

Le modĂšle relationnel

Un des modÚles de données le plus courant est le modÚle relationnel. Les principes de base de ce modÚle sont les suivants :

  • sĂ©parer les donnĂ©es dans plusieurs tables
  • chaque table contient des donnĂ©es relatives Ă  un mĂȘme sujet
  • on Ă©vite la redondance des donnĂ©es
  • on ne stocke pas des donnĂ©es qui peuvent ĂȘtre calculĂ©es (exemple : une ligne Total)
  • mettre les tables en relation par l’utilisation de clĂ©s
  • clĂ©s primaires : leurs valeurs (souvent des entiers) permettent d’identiïŹer une donnĂ©e de maniĂšre unique
  • clĂ©s Ă©trangĂšres : elles rĂ©fĂ©rencent une clĂ© primaire d’une autre table
Activité 3 - Bon de commande

La société Le Coin, située à Caen, a commandé des produits chimiques à la société BonPrixChim.

Le bon de commande est indiqué ci-dessous :

À partir de ce bon de commande, on peut sĂ©parer les informations en 3 entitĂ©s :

  • une entitĂ© commande qui va regrouper les donnĂ©es de la commande;
  • une entitĂ© client qui va regrouper les donnĂ©es du client;
  • une entitĂ© produits qui va regrouper les donnĂ©es d’un dĂ©tail.

  1. Établissez, pour chaque entitĂ©, la liste des attributs.
  2. Représentez chaque entité par une table contenant les attributs et la liste de leurs valeurs.
  3. Pensez-vous qu’il y ait des redondances? S’il y en a, modiïŹez les tables pour les supprimer.
  4. En rĂ©alitĂ©, la table Produits n’est pas pertinente. Elle ne devrait contenir que les informations associĂ©es Ă  un produit. Quels seraient ses attributs?
  5. Construisez une quatriÚme table intitulé Details reprenant les attributs manquants.
  6. Comment Ă©ditera-t-on le bon de commande?
Correction

1) Entité : Commande
Attributs : numéro de commande, date

Entité : Client
Attributs : numéro de client, nom, adresse, ville

Entité : Produits
Attributs : référence, libellé, prix, quantité

2) Commandes

Numéro de commande Date
14010 24/09/2014

Clients

Numéro de client Nom Adresse Ville
BD2014 LECOIN 24 RUE SAINT-JEAN CAEN

Produits

Référence Libellé Prix Quantité
190464K Calcium chlorure 1 mol/l 77 10
31535.292 Sodium chlorure 1 mol/l 105 15
30024.290 Acide chlorhydrique 1 mol/l (1 N) 41 3
30917.320 Iode 0,05 mol/l (0,1 N) 117 8

3) Non
4) Référence, Libellé, et Pris
5) Détails : Référence et Quantités
6) Il faudra faire des liens entre les tables.
Il y aura un problùme du fait de l’absence de l’attribut numero commande dans la table Details et de l’absence de l’attribut numero client dans la table Commande)

La relation

Une relation (on parle aussi de table) est composĂ©e d’un en-tĂȘte (le libellĂ© des attributs ) et d’un corps composĂ© d’un ou plusieurs t-uplets (on parle aussi d’enregistrement).

Domaine de valeurs d'un attribut

Chaque valeur possĂšde un type et un ensemble ïŹni ou non des valeurs possibles. Cela constitue le domaine de valeurs d’un attribut.

Exemple

  • L’attribut idAuteur de la relation Auteurs est un entier positif. Son type est entier. Le domaine de valeur correspond Ă  tous les entiers de 0 Ă  \(+\infty\) .
  • L’attribut titre de la relation Livres est une chaĂźne de caractĂšres. Son type est chaĂźne de caractĂšres . Le domaine de valeur correspond Ă  toutes les chaĂźnes de caractĂšres.
Activité 4 - Domaine de valeurs

DĂ©terminez le domaine de valeurs des attributs de la relation Produits .

reference libelle prix
1900464K Calcium chlorure 1 mol/L 77
31535.292 Sodium chlorure 1 mol/L (1N) 105
30024.290 Acide chlorhydrique 1 mol/L (1N) 41
30917.320 Iode 0,05 mol/L (0,1 N) 936
Correction
  1. Domaine de valeur de :
    • reference : toutes les chaĂźnes de caractĂšres
    • libelle : toutes les chaĂźnes de caractĂšres
    • prix : tout rĂ©el supĂ©rieur strict Ă  0
Clé primaire d'une relation

À l’intĂ©rieur d’une relation, deux t-uplets identiques ne sont pas autorisĂ©s. Il faut pouvoir identiïŹer de façon unique un t-uplet.

Une clĂ© primaire permet d’identiïŹer un t-uplet de maniĂšre unique.

Il faut dĂ©terminer, parmi les attributs, lequel permet d’identiïŹer de maniĂšre unique un t-uplet.

Cet attribut sera considéré comme la clé primaire de la relation.

Dans la ïŹgure prĂ©cĂ©dente :

  • L’attribut auteur ne peut pas jouer le rĂŽle de clĂ© primaire (deux ouvrages pouvant avoir le mĂȘme auteur).
  • De mĂȘme pour les attributs titre et annPubli .
  • Il reste donc l’attribut idLivre (pour identiïŹant), qui a Ă©tĂ© ajoutĂ© ici pour jouer le rĂŽle de clĂ© primaire.

Remarque

Ici, nous avons crĂ©Ă© artiïŹciellement une clĂ© primaire, car aucun des autres attributs ne pouvait convenir (ce n’est pas toujours le cas).

Clé étrangÚre d'une relation

Dans la relation Auteurs , chaque auteur est identiïŹĂ© par l’attribut idAuteur (clĂ© primaire de la relation).

Dans la relation Livres , on a rajouté un attribut idAuteur qui est la clé primaire de la relation Auteurs .

Une clĂ© Ă©trangĂšre rĂ©fĂ©rence une clĂ© primaire d’une autre table.

L’attribut idAuteur est ce que l’on nomme une clĂ© Ă©trangĂšre de la relation Livres , elle permet de faire le lien entre les deux relations.

Remarque

Il peut y avoir plusieurs clés étrangÚres dans une relation.

Activité 5 - Clés primaires et étrangÚres
  1. Reprenez les relations des bons de commande, en identiïŹant une clĂ© primaire pour chacune des tables, ou en en introduisant une si elle n’existe pas.
  2. JustiïŹez que dans la relation Details , les attributs reference et numero commande ne peuvent pas constituer individuellement une clĂ© primaire.
  3. JustiïŹez que dans la relation Details , le couple (reference, numero commande) constitue une clĂ© primaire.
  4. IdentiïŹez les clĂ©s Ă©trangĂšres.
Correction
  1. Commande : Numéro de commande
    Client : Numéro de client
    Produit : Référence
    Détail : Référence, numero de commande
  2. Pour une mĂȘme quantitĂ©, il peut y avoir diffĂ©rentes rĂ©fĂ©rences et diffĂ©rents numĂ©ros de commande
  3. Pour avoir l’unicitĂ© du dĂ©tail d’un produit, il faut connaĂźtre la rĂ©fĂ©rence ET le numĂ©ro de commande .
  4. Clé étrangÚre : numéro client, référence et numéro de commande
Représentations du modÚle relationnel

Le schĂ©ma d’une relation dĂ©ïŹnit cette relation. Il est composĂ© :

  • du nom de la relation (on la place en tĂȘte, et en gras),
  • de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs (cette liste est placĂ©e entre parenthĂšses),
  • de la clĂ© primaire (elle est soulignĂ©e),
  • des clĂ©s Ă©trangĂšres (on place un # entre la clĂ© Ă©trangĂšre et la rĂ©fĂ©rence),
  • des autres valeurs.

L’ensemble des relations peut ĂȘtre reprĂ©sentĂ© soit par un schĂ©ma, soit par une notation textuelle.

Exemple : notation textuelle

Livres (idLivre, titre, idAuteur # Auteurs(idAuteur), annPubli)
Auteurs (idAuteur, nom, prenom, langueEcriture)

Exemple : schéma relationnel

Activité 6 - Notation textuelle et schéma relationnel

Les relations de l'activité "Bon de commande" sont représentées ci-dessous :

Les clĂ©s primaires et Ă©trangĂšres ont Ă©tĂ© dĂ©ïŹnies prĂ©cĂ©demment.

  1. Écrivez la notation textuelle du modùle relationnel.
  2. Réalisez le schéma relationnel.
Correction

  1. Commande : (Numéro de commande, # numéro client, date)
    Client : (Numéro de client, nom, adresse, ville)
    Produit : (Référence, libelle, prix)
    Détail : (# Référence, # numero de commande, quantite)

Les contraintes d'intégrité

Il est important d’assurer la cohĂ©rence et donc l’intĂ©gritĂ© des donnĂ©es prĂ©sentes dans une base de donnĂ©es. Cela consiste Ă  s’assurer que les donnĂ©es stockĂ©es sont cohĂ©rentes entre elles, c’est Ă  dire qu’elles respectent toutes les rĂšgles exigĂ©es par le concepteur de la base de donnĂ©es. C’est une assertion vĂ©riïŹĂ©e par les donnĂ©es de la base, Ă  tout moment.

Une contrainte d’intĂ©gritĂ© est une rĂšgle appliquĂ©e Ă  un attribut ou une relation et qui doit toujours ĂȘtre vĂ©riïŹĂ©.

Les contraintes d’intĂ©gritĂ© sont vĂ©riïŹĂ©es par le systĂšme de gestion des bases de donnĂ©es (SGBD).

Si l’une des rĂšgle n’est pas respectĂ©e, le SGBD signalera cette erreur et n’autorisera pas l’écriture de cette nouvelle donnĂ©e.

Chaque attribut doit prendre une valeur dans son domaine de valeurs.

Exemple

  • La note obtenue dans une matiĂšre doit ĂȘtre comprise entre 0 et 20;
  • la quantitĂ© commandĂ©e est obligatoire ET doit ĂȘtre strictement supĂ©rieure Ă  0.

Chaque relation dans le modĂšle relationnel est identiïŹĂ©e par une clĂ© primaire qui doit ĂȘtre unique et non nulle . Donc, chaque t-uplet est Ă©galement identiïŹĂ© par une clĂ© primaire.

Une clĂ© Ă©trangĂšre dans une relation doit ĂȘtre une clĂ© primaire dans une autre. De plus, le domaine de valeurs de ces deux clĂ©s doit ĂȘtre identique. EnïŹn, la valeur d’une clĂ© Ă©trangĂšre doit exister dans la clĂ© primaire qui y fait rĂ©fĂ©rence.

Exemple

Dans la ïŹgure ci-dessous, la valeur de la clĂ© Ă©trangĂšre idAuteur ne peut pas ĂȘtre supĂ©rieure Ă  8.

Activité 7 - MédiathÚque

Dans l’exemple de la MĂ©diathĂšque, on souhaite crĂ©er 3 relations :

  • Auteur , contenant toutes les informations sur un auteur
  • Livre , contenant toutes les informations sur un livre
  • Ouvrage , contenant toutes les informations sur un ouvrage disponible Ă  l’emprunt.

  • Pour chacune des relations, indiquez les attributs avec leur type et leur domaine de valeurs.

  • Pour chacune des relations, indiquez la clĂ© primaire et Ă©ventuellement la ou les clĂ©(s) Ă©trangĂšre(s).
  • ReprĂ©sentez le schĂ©ma relationnel correspondant, ainsi que la notation textuelle qui lui est associĂ©e.
Correction

1) 2) 3)
Auteur(idAuteur, nomAuteur, prenomAuteur,langue) Livre(idLivre,titre,#idAuteur,annee) Ouvrage(#idLivre,quantité)

Domaine de valeur : - idAuteur, idLivre : nombre entier strictement positif - nomAuteur, prenomAuteur, langue, titre, annee : toute chaßne de caractÚres - quantité : nombre entier positif ou nul

3) ...

Activité 8 - Laboratoire médical

Un laboratoire souhaite gĂ©rer les mĂ©dicaments qu’il conçoit :

  • Un mĂ©dicament est dĂ©crit par un nom, qui permet de l’identiïŹer. En effet il n’existe pas deux mĂ©dicaments avec le mĂȘme nom.
  • Un mĂ©dicament comporte une description courte en français, ainsi qu’une description longue en latin.
  • On gĂšre aussi le conditionnement du mĂ©dicament, c’est Ă  dire le nombre de pilules par boĂźte (qui est un nombre entier).
  • À chaque mĂ©dicament on associe une liste de contre-indications, gĂ©nĂ©ralement plusieurs, parfois aucune.
  • Une contre-indication comporte un code unique qui l’identiïŹe, ainsi qu’une description.
  • Une contre-indication est toujours associĂ©e Ă  un et un seul mĂ©dicament.

Voici deux exemples de données :

  • Le Chourix a pour description courte « MĂ©dicament contre la chute des choux » et pour description longue « Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper ultricies. Curabitur ornare. ». Il est conditionnĂ© en boĂźte de 13.
    Ses contre-indications sont :

  • CI1 : Ne jamais prendre aprĂšs minuit.

  • CI2 : Ne jamais mettre en contact avec de l’eau.

  • Le Tropas a pour description courte « MĂ©dicament contre les dysfonctionnements intellectuels » et pour description longue « Suspendisse lectus leo, consectetur in tempor sit amet, placerat quis neque. Etiam luctus porttitor lorem, sed suscipit est rutrum non. ». Il est conditionnĂ© en boĂźte de 42.
    Ses contre-indications sont :

  • CI3 : Garder Ă  l’abri de la lumiĂšre du soleil.


  1. Donnez la représentation sous forme de tables des relations Medicament et ContreIndication .
  2. Écrivez le schĂ©ma relationnel permettant de reprĂ©senter une base de donnĂ©es pour ce laboratoire.
Correction

1)
MĂ©dicament

nomMedicament descriptionCourte descriptionLongue quantite
Chourix MĂ©dicament contre la chute des choux Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio. Maecenas convallis ullamcorper ultricies. Curabitur ornare. 13
Tropas MĂ©dicament contre les dysfonctionnements intellectuels Suspendisse lectus leo, consectetur in tempor sit amet, placerat quis neque. Etiam luctus porttitor lorem, sed suscipit est rutrum non 42

ContreIndication :

idCi nomMedicament descriptionCI
CI1 Chourix Ne jamais prendre aprĂšs minuit
CI2 Chourix Ne jamais mettre en contact avec de l’eau
CI3 Tropas Garder à l’abri de la lumiùre du soleil

2)
Medicament(nomMedicament, descriptionCourte, descriptionLongue, quantite)

ContreIndication(idCI, # nomMedicament, descriptionCI)

  • Domaine de valeur :
    • nomMedicament, descriptionsCI,descriptionCourte : chaine de caractĂšre en français
    • descriptionLongue : chaine de caractĂšre en latin
    • idCI , quantite : entier strictement positif