Solpdf
Solpdf
modèle relationnel
2 Stéphane Crozat
I Contexte
Durée : 3h
Environnement de travail : Aucun
Pré-requis : Aucun
Le niveau logique est le lien entre le niveau conceptuel et l'implémentation effective de
l'application. Le modèle logique a pour vocation d'être un modèle formel, spécifiant non plus la
réalité existante ou recherchée comme le modèle conceptuel, mais les données telles qu'elles vont
exister dans l'application informatique.
Pour assumer cette fonction, le modèle relationnel s'est imposé en réaction aux insuffisances des
modèles antérieurs, les modèles hiérarchique et réseau, et de part la puissance de ses fondements
mathématiques.
Encore aujourd'hui dominant le modèle relationnel est un fondement indispensable à la conception
de bases de données.
Stéphane Crozat 3
II Définition du modèle relationnel
Objectif
Comprendre les objectifs et la logique du modèle relationnel.
Mise en situation
Comment décrire aux systèmes de gestion de base de données la structure des données ?
Si la réponse immédiate est « grâce au langage SQL », il ne faut pas oublier que SQL doit bien se
baser sur une certaine logique.
Et en effet, cela fait des dizaines d'années que les SGBD relationnels utilisent une structure de
tableau pour stocker les données. Ce n'est pas un hasard, car ils se basent tous sur le modèle
relationnel, qui indique comment formaliser des données et leurs interactions sous forme de
tableau.
Dans ce module, vous découvrirez la philosophie du modèle relationnel. Le modèle relationnel est
indépendant de tout SGBD. Il est fondamental car, bien utilisé, il permet d'assurer la cohérence des
données.
Introduction
Le modèle relationnel a été introduit par CoddCodd70 p.39, en 1970 au laboratoire de recherche
d'IBM de San José. Il s'agit d'un modèle simple et puissant à la base de la majorité des bases de
données, encore aujourd'hui.
Les objectifs du modèle relationnel, formulés par Codd, sont les suivants :
Assurer l'indépendance des applications et de la représentation interne des données.
Gérer les problèmes de cohérence et de redondance des données.
Utiliser des langages de données basés sur des théories solides.
4 Stéphane Crozat
Définition du modèle relationnel
Les clés étrangères : il existe des cases qui doivent prendre une valeur existante dans
les cases d'une autre table.
Stéphane Crozat 5
[solution n°1 p. 31]
Exercice
Enquête Wikipédia : pour réaliser cet exercice, on consultera l'article Wikipédia sur des bases de
données1.
Exercice
Après avoir parcouru la partie Terminologie, parmi les propositions ci-dessous, quels sont les
différents types de modèle de données présentés ?
Exercice
Dans la section « Histoire », on en apprend plus sur les travaux de Edgar F. Codd.
Quels sont les principaux concepts abordés dans sa thèse ?
A Algèbre relationnelle
B Système d'exploitation
C SQL
D Produit cartésien
F Relation
Exercice
À quel modèle de données se rattache les travaux de E. F. Codd ?
1. [Link]
6 Stéphane Crozat
Exercicesolution
Stéphane Crozat 7
IV Domaine
Objectif
Savoir décrire un ensemble de valeurs possibles grâce aux domaines.
Mise en situation
Imaginez que vous souhaitiez modéliser une gamme d'ordinateurs portables, qui ont chacun une
couleur, une masse, une marque, etc.
Les valeurs que peuvent prendre ces différents éléments ne sont pas libres : par exemple, les
ordinateurs de notre gamme ne peuvent être que gris anthracite, noirs, ou blancs. Aussi, la masse
ne peut pas être négative, et la marque ne peut pas dépasser trente caractères.
Comment formaliser ces contraintes sur les valeurs possibles de ces caractéristiques ? C'est
justement l'objectif des domaines, que vous découvrirez dans ce module.
Domaine Définition
Ensemble, caractérisé par un nom, dans lequel des données peuvent prendre leurs valeurs.
Remarque
Un domaine peut-être défini en intension p.37 (c'est à dire en définissant les propriétés
caractéristiques des valeurs du domaine, on parle aussi de compréhension) ou en extension
p.37 (c'est à dire en énumérant toutes les valeurs du domaine)
8 Stéphane Crozat
Domaine
Stéphane Crozat 9
[solution n°2 p. 32]
Exercice
Indiquer quelle définition et quel exemple correspondent respectivement aux mots intension et
extension.
Intension Extension
10 Stéphane Crozat
VI Relation
Objectif
Savoir regrouper des attributs au sein d'une relation.
Mise en situation
Imaginez que vous souhaitiez modéliser des livres. Chaque livre a un nom, un auteur, un nombre de
pages, etc. Et chacune de ses caractéristiques prend ses valeurs dans un domaine, comme le
domaine des nombres entiers positifs ou le domaine des prénoms.
Mais individuellement, chaque caractéristique ne décrit qu'une petite partie du livre. Comment
regrouper ces caractéristiques dans une seule structure, pour former un tout ?
C'est tout l'objet des relations, que vous allez apprendre à construire dans ce module.
Relation Définition
Une relation R sur les domaines D1, ... , Dn est une table comportant une colonne pour chaque
domaine et une ligne pour chaque tuple de la relation.
Tableau 1 Relation R
Synonymes : Table, tableau
Attribut Définition
On appelle attribut d'une relation, une colonne de cette relation. Un attribut est caractérisé par
un nom et un domaine dans lequel il prend ses valeurs.
Synonymes : Champs, Propriété, Colonne
Enregistrement Définition
On appelle enregistrement d'une relation, une ligne de cette relation. Un enregistrement prend
une valeur pour chaque attribut de la relation.
Synonymes : Tuple, N-uplet, Vecteur, Ligne
Stéphane Crozat 11
Relation
Exemple
Tableau 2 Relation R
La relation R comporte les deux attributs A et B et les trois enregistrements <1,1>, <1,2> et
<2,2>.
12 Stéphane Crozat
VII Exercice
On se donne un extrait d'une relation d'une base de données de vols :
Relation Vol
On a de plus des informations supplémentaires sur les vols :
le vol de Air France du 01-08-2002 en provenance de Paris est annoncé à 12:03 ;
le vol KLM234 est annoncée à 06:32 ;
le vol en direction de Toulouse le 30 juillet 2002 est annoncé à 16:04.
Stéphane Crozat 13
VIII Clé
Objectif
Savoir identifier les enregistrements d'une relation de manière unique.
Mise en situation
Tous les enregistrements d'une relation ne sont identifiés que par leur contenu : en d'autres termes,
il n'y a pas de notion de numéro d'enregistrement ou d'ordre.
Supposez maintenant que vous deviez gérer une relation avec des personnes : nom, prénom, date
de naissance, etc. Si on vous demande de pointer du doigt, dans cette relation, la personne du nom
de Saskia Larsen, comment feriez-vous ?
Vous ne pouvez pas répondre « à la ligne 12 », puisque la notion de numéro de ligne n'existe pas. Et
si jamais il y a deux Saskia Larsen, le nom et le prénom ne suffisent pas non plus : il y a ambiguïté.
Et si jamais elles sont nées le même jour..., etc.
Pour résoudre ce genre de situations, on utilise des clés, et vous allez apprendre comment faire
dans ce module.
Clé Définition
Une clé est un groupe d'attributs minimum qui permet d'identifier de façon univoque un tuple
dans une relation.
Fondamental
Toute relation doit comporter au moins une clé, ce qui implique qu'une relation ne peut pas
contenir deux tuples identiques.
14 Stéphane Crozat
Clé
Fondamental
La définition des clés est un acte de modélisation, elle ne renvoie pas donc pas à une vérité
intangible, mais à la réalité telle qu'elle est représentée dans le modèle que l'on élabore.
Exemple
L'attribut numéro de sécurité sociale d'une relation personne peut paraître une bonne clé a
priori car son unicité est assurée. Mais tout le monde n'en dispose pas forcément (les
enfants, des étrangers), donc ce n'est une clé que si l'on considère des personnes affiliées à la
sécurité sociale.
Stéphane Crozat 15
[solution n°4 p. 32]
Exercice
Soit les données d'un aéroport. On sait que le numéro de vol identifie de manière unique un vol
dans le monde.
De même, on sait qu'il n'y a qu'un seul avion d'une compagnie qui part dans un créneau horaire
d'une heure chaque jour.
Une compagnie de vol dispose potentiellement de plusieurs avions du même modèle.
Relation Vol
Parmi les propositions suivantes, lesquelles sont des clés pour cette relation.
A numéro
B (compagnie,avion)
C (compagnie,date,heure)
D (compagnie,départ,arrivée,date)
E (numéro,compagnie,avion,départ,arrivée,date,heure)
16 Stéphane Crozat
X Clé primaire, clés candidates, clé
artificielle
Objectifs
Connaître les différents types de clé ;
Savoir choisir la clé à utiliser dans une relation.
Mise en situation
Chaque enregistrement d'une relation doit être identifié de manière unique par une clé.
Supposez que vous gériez des citoyens qui possèdent tous un numéro de sécurité sociale unique,
ainsi qu'un numéro de passeport unique. Comment choisir la clé à utiliser ?
Autre situation : supposez que vous gériez des morceaux de musique. Des artistes peuvent avoir le
même nom, les albums aussi, les morceaux aussi, avec pourquoi pas la même durée... Quelle
stratégie adopter pour identifier chaque morceau de manière unique ?
Dans ce module, vous allez découvrir les notions de clés primaire, candidate et artificielle pour
répondre à ces questions.
Fondamental
S'il est impossible de trouver une clé primaire, ou que les clés candidates ne conviennent pas
(non immuables, trop complexes...), il est possible de faire appel à une clé artificielle.
Stéphane Crozat 17
Clé primaire, clés candidates, clé artificielle
18 Stéphane Crozat
XI Exercice
On se donne un extrait d'une relation d'une base de données d'une université reprenant les
informations sur les étudiants.
Chaque étudiant est identifié de manière identique par un prénom, un nom et sa date de naissance.
De même, chaque étudiant a une adresse mail qui lui est propre.
Stéphane Crozat 19
XII Clés étrangères
Objectifs
Savoir représenter des liens entre des relations ;
Comprendre le lien entre clé primaire et clé étrangère.
Mise en situation
En relationnel, les seuls éléments que vous avez à votre disposition pour décrire vos données sont
les relations.
Or, si vous modélisez des réserves naturelles, vous aurez probablement une relation décrivant les
lieux de ces réserves, et une relation décrivant les animaux qui s'y trouvent.
On peut se représenter ces deux relations comme deux tableaux : mais comment faire le lien entre
ces tableaux, par exemple pour indiquer qu'un animal est présent dans une réserve particulière ?
Comme il n'est pas possible de « tracer de trait » entre les deux tableaux, il faut trouver une autre
solution, et c'est tout l'objet des clés étrangères, que vous allez découvrir dans ce module.
Le modèle relationnel a pour objectif la structuration de données selon des relations. L'enjeu est de
parvenir à traduire un modèle conceptuel en modèle logique relationnel. Or, il n'y a pas de notion
d'association en relationnel, donc il faudra pouvoir traduire les associations avec les concepts dont
on dispose : relation, clé, clé étrangère.
Afin de représenter des références entre relations dans un modèle relationnel, la seule solution est
de stocker l'information dans une relation, et donc que certains attributs d'une relation servent à
pointer sur d'autres relations.
Attention
Il n'y a pas vraiment de référence ou de lien en relationnel, puisque nous ne disposons que de
tables, de clés, de clés étrangère et de valeurs.
On va donc devoir se servir de ces outils pour matérialiser une notion de référence.
Référence Méthode
La référence entre deux tuples T1 et T2 de deux relations différentes est exprimable par une
valeur identique entre une clé étrangère du tuple T1 et la clé primaire de l'autre tuple T2.
Synonyme : Lien
20 Stéphane Crozat
Clés étrangères
Exemple
Image 1
L'attribut a2 de la relation R1 référence l'attribut b1 de la relation R2 car a2 est une clé
étrangère de R1 vers R2 (b1 est la clé primaire de R2).
Ici on a donc par exemple les tuples identifiés par B et C de R1 qui référencent le tuple
identifié par 1 dans R2.
Attention
Seule une clé primaire peut être référencée par une clé étrangère.
C'est même la seule fonction de la clé primaire : être la clé qui peut être référencée par les
clés étrangères.
Stéphane Crozat 21
XIII Exercice
On dispose des deux relations suivantes concernant des avions et des compagnies aériennes.
De plus on sait que :
l'avion immatriculé FR-1831 appartient à la compagnie AIR France KLM ;
l'avion immatriculé N361AA appartient à la compagnie Fiji Airways ;
l'avion immatriculé DQ-424 appartient à la compagnie American Airlines.
L'immatriculation des avions est unique.
22 Stéphane Crozat
XIV Schéma relationnel
Objectifs
Savoir décrire une relation grâce à un schéma relationnel ;
Savoir représenter les différents types de clé.
Mise en situation
Le modèle relationnel décrit, comme son nom l'indique, des relations : elles font intervenir
plusieurs concepts, comme les attributs, les domaines, les clés primaires, les clés étrangères...
Afin de formaliser les relations, il faut bien écrire quelque part leur “fiche”, qui décrit les différents
attributs ainsi que leur nature.
On pourrait décrire les relations en langage naturel, mais il y aurait alors des risques d’ambiguïté.
Une solution, c'est d'utiliser un schéma relationnel, qui permette de décrire une relation sans
ambiguïté et dans son intégralité : vous allez voir comment dans ce module.
Relation Syntaxe
1 Relation (attribut1:domaine1, attribut2:domaine2, ... , attributN:domaineN)
Stéphane Crozat 23
Schéma relationnel
Complément
Bien sûr il peut exister plusieurs clés étrangères vers plusieurs relations distinctes.
Une clé étrangère et sa clé primaire référencée sont toujours composées du même
nombre d'attributs.
Il n'est pas nécessaire de préciser les domaines des attributs appartenant à la clé
étrangère car ce sont forcément les mêmes que ceux de la clé primaire référencée.
Il n'est pas non plus en général nécessaire de préciser dans le schéma relationnel quels
attributs de la clé étrangère référencent quels attributs de la clé primaire (cela est
généralement évident) mais il est possible de la faire en notant
« Attribut=>[Link] ».
24 Stéphane Crozat
Schéma relationnel
Inscription
Se traduit comme :
1 Inscription(#annee:entier, note:réel, ects:entier) avec note dans [0, 20]
Stéphane Crozat 25
Schéma relationnel
Cela vaut aussi pour certaines contraintes dues aux cardinalités des associations. Par
exemple, le modèle conceptuel suivant :
Medicament
nom: varchar {unique}
description: varchar
description_longue: varchar
conditionnement: integer
1
utilise
1..*
Composant
code: varchar {unique}
intitule: varchar
Se traduit comme :
1 Medicament(#nom:varchar, description:varchar, description_longue:varchar,
conditionnement:entier) avec au moins un Composant référant
2
3 Composant(#code:varchar, intitule:varchar, medicament=>Medicament) avec
medicament non null
26 Stéphane Crozat
XV Exercice
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'identifier. 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’identifie, ainsi qu'une
description. Une contre-indication est toujours associée à un et un seul médicament.
Exemple de données
Afin de matérialiser notre base de données, nous obtenons les descriptions suivantes :
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.
Stéphane Crozat 27
XVI Essentiel
Les bases de données relationnelles ne savent gérer qu'une seule chose : des tableaux.
Et ça tombe bien, car le modèle relationnel permet de décrire des données et leurs interactions
grâce à des relations, assimilables à des tableaux.
Avant de construire une base de données, on construit donc un modèle relationnel.
Chaque relation est constituée de différents attributs, qui puisent leurs valeurs dans un domaine,
comme le nom d'une personne ou son âge.
Toutes les lignes d'une relation, ou enregistrements, doivent être identifiables de façon unique :
c'est le rôle de la clé primaire, qui permet de lever toutes les ambiguïtés, par exemple entre deux
personnes avec le même nom.
Bien entendu, des relations ne seraient rien sans interaction : une personne peut être amie avec
une autre personne, ou louer un vélo. Les clés étrangères permettent de faire référence à des
enregistrements d'une autre table, tout en conservant la structure de tableau.
Enfin, les schémas relationnels permettent de décrire les relations textuellement, sans ambiguïté et
de manière synthétique.
28 Stéphane Crozat
XVII Quiz
[solution n°12 p. 34]
Exercice 1 : Quiz - Culture
Exercice
Quels sont les concepts propres au relationnel ?
A Clé étrangère
B Classe
C Relation
D Association
E Clé primaire
F Requête
Exercice
Pourquoi introduit-on le concept de clé primaire en relationnel ?
A
Indiquant explicitement cela à côté de sa relation si c'est une clef candidate non primaire.
B Indiquant explicitement cela grâce à la clause {unique} pour les attributs concernés.
C
Indiquant explicitement cela en préfixant les attributs de la clé du caractère # si c'est une
clé primaire.
Stéphane Crozat 29
Quiz
Exercice
En relationnel, on indique les références :
A
En ajoutant pour les champs de la clé étrangère ceux de la clé primaire avec le symbole
=>.
Exercice
Pourquoi introduit-on le concept de clé étrangère ?
30 Stéphane Crozat
Solutions des exercices
Solution n°1 [exercice p. 6]
Exercice
Après avoir parcouru la partie Terminologie, parmi les propositions ci-dessous, quels sont les
différents types de modèle de données présentés ?
Exercice
Dans la section « Histoire », on en apprend plus sur les travaux de Edgar F. Codd.
Quels sont les principaux concepts abordés dans sa thèse ?
A Algèbre relationnelle
B Système d'exploitation
C SQL
D Produit cartésien
F Relation
Exercice
Stéphane Crozat 31
Solutions des exercices
Indiquer quelle définition et quel exemple correspondent respectivement aux mots intension et
extension.
Intension Extension
Relation Vol
Les domaines des attributs sont les suivants :
numéro, compagnie, avion, départ, arrivée sont des chaînes de caractères ;
date est une date ;
heure est une heure.
Soit les données d'un aéroport. On sait que le numéro de vol identifie de manière unique un vol
dans le monde.
De même, on sait qu'il n'y a qu'un seul avion d'une compagnie qui part dans un créneau horaire
d'une heure chaque jour.
Une compagnie de vol dispose potentiellement de plusieurs avions du même modèle.
Relation Vol
Parmi les propositions suivantes, lesquelles sont des clés pour cette relation.
A numéro
32 Stéphane Crozat
Solutions des exercices
B
(compagnie,avion) Il est possible qu'une compagnie dispose de plusieurs avions du
même modèle.
C (compagnie,date,heure)
D
(compagnie,départ,arrivée,date) Il peut y avoir plusieurs vols d'une même compagnie
ayant la même provenance, la même destination pour un
jour donné.
E
(numéro,compagnie,avion,départ,arrivée,date,heure) Puisqu'il existe au moins une clé
dans cet ensemble d'attributs, ce
n'est pas ensemble minimal, donc ce
n'est pas une clé. On définit un
ensemble de ce type qui n'est pas
minimal comme une super-clé.
Non, puisqu’il n'existe pas de clef dans cette nouvelle table : il est possible qu'il existe des
homonymes pour les étudiants. Il faudrait ajouter la date de naissance, ou remplacer ces
informations par le mail.
Les clés de la relation Compagnie Aérienne sont : OACI et designation. Deux compagnies
peuvent avoir le même siège social.
On choisit de préférence OACI qui est de domaine plus simple.
Stéphane Crozat 33
Solutions des exercices
1
Medicament(#nom:varchar,description:varchar,description_longue:varchar,conditionnement:number)
2 Contre_indication(#code:varchar,description:varchar,medicament=>Medicament)
Exercice
A Clé étrangère
C Relation
E Clé primaire
34 Stéphane Crozat
Solutions des exercices
Exercice
A
On l'introduit pour Cela évite que chaque clé étrangère ne référence une clé
simplifier l'usage des clés candidate différente ; la clé primaire uniformise le système de
étrangères. référencement.
B
On l'introduit pour pouvoir identifier Un enregistrement est identifiable par n'importe
chaque enregistrement de manière quelle clé candidate, pas seulement la clé
unique. primaire.
Exercice
A
Indiquant explicitement cela à côté de sa relation si c'est une clef candidate non primaire.
B Indiquant explicitement cela grâce à la clause {unique} pour les attributs concernés.
C
Indiquant explicitement cela en préfixant les attributs de la clé du caractère # si c'est une
clé primaire.
Exercice
A
En ajoutant pour les champs de la clé étrangère ceux de la clé primaire avec le symbole
=>.
Stéphane Crozat 35
Solutions des exercices
Exercice
Exercice
La clé primaire est un concept qui permet de choisir une clé parmi celles qui
existent, afin de systématiser le référencement.
La clé étrangère existe pour garantir le référencement : les données d'une clé
étrangère doivent correspondre à des données existantes de la clé primaire de la
table référencée.
36 Stéphane Crozat
Glossaire
Extension
L'extension est l'explicitation d'un domaine par l'énonciation exhaustive de l'ensemble des
objets du domaine.
Elle s'oppose à l'instension qui est une description abstraite des caractéristiques du
domaine.
Exemple : {bleu, rouge, vert}
Contre-exemple : Le domaine des couleurs
Immuable
Un attribut immuable est un attribut dont la valeur ne change plus jamais une fois fixée.
Synonymes : frozen, immutable en anglais (ou parfois en français comme anglicisme)
Intension
L'intension est l'explicitation d'un domaine par la description de ses caractéristiques (en vue
de sa compréhension abstraite, générale).
Elle s'oppose à l'extension qui est l'énonciation exhaustive de l'ensemble des objets du
domaine.
Exemple : Le domaine des couleurs
Contre-exemple : {bleu, rouge, vert}
Stéphane Crozat 37
Abréviations
SGBDR : Système de Gestion de Bases de Données Relationnelles
38 Stéphane Crozat
Bibliographie
[Codd70] Codd EF, A relational model for large shared data banks, Communications de l'ACM, juin
1970.
Stéphane Crozat 39
Index
Association ........................... 20
Attribut................................... 14
Clé .......................................... 14
Clé candidate ........................ 17
Clé primaire ........................... 17
Codd ........................................ 4
Domaine ............................ 8, 11
Lien ........................................ 20
Logique .................................... 4
Modèle ............................... 4, 23
Produit ................................... 11
Référence .............................. 20
Relation................ 11, 14, 20, 23
Relationnel................... 4, 11, 23
Relationnel-objet ..................... 4
Schéma.................................. 23
40 Stéphane Crozat
Index
Stéphane Crozat 41