Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

rel1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 27

La modélisation logique

relationnelle

stph.scenari-community.org/bdd
rel1.pdf

Stéphane Crozat

Paternité - Partage des Conditions Initiales à l'Identique : http://creativecommons.org 12 janvier 2018


/licenses/by-sa/4.0/fr/
Table des
matières
I - Cours 4

1. Introduction au modèle relationnel ................................................................................................................. 4


1.1. Niveau logique ............................................................................................................................................................................. 4
1.2. Définition du modèle relationnel .................................................................................................................................................. 5

2. Les concepts fondamentaux du modèle relationnel : attributs, enregistrement, domaine ............................... 5


2.1. Domaine ...................................................................................................................................................................................... 6
2.2. Exercice ....................................................................................................................................................................................... 6
2.3. Attribut et enregistrement .............................................................................................................................................................. 6
2.4. Exemple : La relation "Vol" .......................................................................................................................................................... 7

3. Clés et clés étrangères dans le modèle relationnel : ........................................................................................ 7


3.1. Clé ............................................................................................................................................................................................... 8
3.2. Déterminer les clés ....................................................................................................................................................................... 8
3.3. Clé primaire et clés candidates ..................................................................................................................................................... 9
3.4. Clé artificielle .............................................................................................................................................................................. 9
3.5. Clé étrangère .............................................................................................................................................................................. 10
3.6. Référence entre relations ............................................................................................................................................................ 11
3.7. Schéma relationnel ..................................................................................................................................................................... 11
3.8. Exemple de schéma relationnel pour la géographie .................................................................................................................... 13

4. Synthèse ........................................................................................................................................................ 15
4.1. Synthèse : Schéma relationnel ..................................................................................................................................................... 15
4.2. Bibliographie commentée sur le modèle relationnel .................................................................................................................... 15

5. Définition formelle d'une relation ................................................................................................................ 15


5.1. Produit cartésien ........................................................................................................................................................................ 15
5.2. Relation ..................................................................................................................................................................................... 15

II - Exercices 17

1. Exercice : Lab I- ........................................................................................................................................... 17

III - Devoir 18

1. Exercice : Salle de sports .............................................................................................................................. 18

Contenus annexes 19

Questions de synthèse 21

Solutions des exercices 23

Glossaire 24

Abréviations 25
Bibliographie 26

Webographie 27
Cours

Cours
I

Le modèle relationnel est aux fondements des SGBDR*. Il a été, et continue d'être, le modèle théorique
dominant pour la représentation logique des base de données, même si le mouvement NoSQL propose des
alternatives.

Le modèle relationnel permet de reformuler le modèle conceptuel dans un formalisme - le tableau - beaucoup
plus proche de l'implémentation informatique, bien qu'encore indépendant d'une solution technologique
particulière.

1. Introduction au modèle relationnel


Objectifs
Connaître les fondements théoriques du modèle relationnel.

1.1. Niveau logique


Le niveau logique est le lien entre le niveau conceptuel et l'implémentation effective de l'application. Le modèle
conceptuel étant un modèle formel, le modèle logique a pour vocation d'être également un modèle formel, mais
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.

Rappel
Méthodologie générale de conception d'une base de données (cf. p.19)
*

4
Les concepts fondamentaux du modèle relationnel : attributs, enregistrement, domaine

1.2. Définition du modèle relationnel

Introduction

Le modèle relationnel a été introduit par Codd*, 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

Définition : Modèle relationnel


On appelle modèle relationnel un ensemble de concepts permettant de formaliser logiquement la description
d'articles de fichiers plats, indépendamment de la façon dont ils sont physiquement stockés dans une mémoire
numérique.

Le modèle relationnel inclut des concepts pour la description de données, ainsi que des concepts pour la
manipulation de données.

Fondamental : Représenter le monde en tables


Le modèle relationnel permet de représenter les données que l'on va gérer à l'aide d'un très petit nombre de
concepts très simples :

- Les relations ou tables : des lignes et des colonnes


- Les domaines de valeurs : chaque case d'une table prend une unique valeur dans un domaine pré-défini
- Les clés : il existe des cases dont les valeurs doivent être uniques et non nulles
- Les clés étrangères : il existe des cases qui doivent prendre une valeur existante dans les cases d'une autre
table

Complément : Extension du modèle relationnel


Le modèle relationnel est un standard, normalisé par l'ISO à travers son langage, le SQL. Il se veut néanmoins
dès l'origine extensible, pour permettre de gérer des données plus complexes que les données tabulaires. Le
modèle relationnel-objet est né de cette extension.

2. Les concepts fondamentaux du modèle relationnel : attributs,


enregistrement, domaine
Objectifs
Connaître les fondements théoriques du modèle relationnel.

5
Exercice

2.1. Domaine

Définition : Domaine
Ensemble, caractérisé par un nom, dans lequel des données peuvent prendre leurs valeurs.

Remarque

Un domaine peut-être défini en intension* (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* (c'est à dire en énumérant toutes les valeurs du
domaine)

Exemple : Domaines définis en intension


- Tous les entiers
- Les réels inférieur à 5
- Les booléen (vrai ou faux)
- Toutes les chaînes de 1 à 255 caractères
- Les valeurs monétaires, définie comme des décimaux avec deux chiffres après la virgule
- Les dates, définies comme des chaînes de 10 caractères comprenant des chiffres et des tirets selon le
patron "00-00-0000"
- Les salaires, définis comme des valeurs monétaires compris entre 15.000 et 100.000

Exemple : Domaines définis en extension


- Couleur : {Bleu, Vert, Rouge, Jaune, Blanc, Noir}
- SGBD : {Hiérarchique, Réseau, Relationnel, Objet, Relationnel-Objet}

2.2. Exercice [solution n°1 p.23]


[* ]

Indiquez quelle définition et quel exemple correspondent respectivement aux mots intension et extension.

{bleu, rouge, vert} Le domaine des couleurs

Explicitation d'un domaine par la description de ses caractéristiques (en vue de sa compréhension abstraite,
générale).

Énonciation exhaustive de l'ensemble des objets du domaine

Intension Extension

6
Exemple : La relation "Vol"

2.3. Attribut et enregistrement

Définition : Attribut
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

Définition : Enregistrement
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

Exemple

Relation R

La relation R comporte les deux attributs A et B et les trois enregistrements <1,1>, <1,2> et <2,2>

Remarque : Attribut, domaine, ordre


Un attribut se distingue d'un domaine car il peut ne comporter que certaines valeurs de ce domaine.

Les colonnes de la relation ne sont pas ordonnées et elles ne sont donc repérées que par le nom de l'attribut.

Remarque : Valeur nulle


Un enregistrement peut ne pas avoir de valeur pour certains attributs de la relation, parce que cette valeur est
inconnue ou inapplicable, sa valeur est alors "null".

2.4. Exemple : La relation "Vol"

Exemple

Relation Vol

3. Clés et clés étrangères dans le modèle relationnel :


Objectifs
Connaître les notions de clés candidates, naturelles, artificielles, primaire, étrangère

7
Clé

Aborder le principe d'éclatement des relations et de non-redondance.

3.1. Clé

Définition : Clé
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.

Attention : Attributs de clés unique et non null


Afin d'être déterminants pour l'identification d'un enregistrement, tous les attributs d'une clé doivent être
valués, c'est-à-dire qu'aucun ne peut avoir de valeur null.

Dire qu'un groupe d'attribut est une clé équivaut à dire qu'il est unique et non null.

Exemple : Numéro d'étudiant


- Le numéro d'étudiant d'une relation Etudiant est une bonne clé car il y aura systématiquement une valeur
non nulle.
- Le groupe d'attributs (nom, prénom) d'une relation Etudiant est en général une mauvaise clé, car les
homonymes existent.

3.2. Déterminer les clés

Détermination d'une clé

Définir un groupe d'attributs comme étant une clé nécessite une réflexion sémantique sur les données
composant ces attributs, afin de s'assurer de leur unicité.

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.

8
Clé artificielle

3.3. Clé primaire et clés candidates

Définition : Clé primaire


Si plusieurs clés existent dans une relation, on en choisit une parmi celles-ci. Cette clé est appelée clé primaire.

La clé primaire est généralement choisie de façon à ce qu'elle soit la plus simple, c'est à dire portant sur le
moins d'attributs et sur les attributs de domaine les plus basiques (entiers ou chaînes courtes typiquement).

Définition : Clés candidates


On appelle clés candidates l'ensemble des clés d'une relation qui n'ont pas été choisies comme clé primaire (elles
étaient candidates à cette fonction).

3.4. Clé artificielle

Définition : Clé artificielle


S'il est impossible de trouver une clé primaire, ou que les clés candidates sont trop complexes, il est possible de
faire appel à une clé artificielle. Une clé artificielle est un attribut supplémentaire ajouté au schéma de la
relation, qui n'est lié à aucune signification, et qui sert uniquement à identifier de façon unique les
enregistrements et/ou à simplifier les références de clés étrangères.

Définition : Clé signifiante


Une clé est signifiante si elle n'est pas artificielle.

Synonyme : Clé naturelle

Attention : Clé artificielle et niveau logique


Au niveau du modèle logique, il faut éviter la simplicité consistant à identifier toutes les relations avec des clés
artificielles, et ne réserver cet usage qu'aux cas particuliers.

Conseil
1. Si au moins une clé naturelle composée d'un seul attribut existe en choisir une parmi celles-ci comme
clé primaire
2. Sinon, choisir une clé naturelle composée de plusieurs attributs si elle ne pose pas de problème identifié
3. Toujours justifier l'emploi d'une clé artificielle (au niveau logique uniquement pour des raisons de
complexité du modèle, les questions de performance sont étudiées au niveau physique)

Remarque : Clé artificielle et niveau physique, évolutivité, maintenance et performance


Au niveau de l'implémentation physique par contre, il est courant que des clés artificielles soient utilisées de
façon systématique.

- Du point de vue de l'évolutivité de la BD, il existe toujours un risque qu'une clé non-artificielle perde sa
propriété d'unicité ou de non-nullité.

9
Clé étrangère

- Du point de vue de la maintenance de la BD, il existe toujours un risque qu'une clé non-artificielle voit sa
valeur modifiée et dans ce cas, la répercution de ce changement pour mettre à jour toutes les références
peut poser problème.
- Du point de vue de la performance de la BD, les clés non-artificielles ne sont pas en général optimisées en
terme de type et de taille, et donc peuvent limiter les performances dans le cadre des jointures.
Précisons néanmoins qu'inversement les clés artificielles ont pour conséquence de systématiser des
jointures qui auraient pu être évitées avec des clés primaires signifiantes.

Exemple : Problème d'évolutivité posé par une clé signifiante


Soit le numéro de sécurité sociale la clé primaire d'une table d'une BD française, elle ne permettra pas d'entrer
un individu non-français issu d'un pays ne disposant pas d'un tel numéro.

Exemple : Problème de maintenance posé par une clé signifiante


Soit le numéro de sécurité sociale la clé primaire d'une table d'une BD centrale dont les données sont exploitées
par d'autres tables d'autres BD qui viennent "piocher" dans cette BD pour leurs propres usages, sans que la BD
centrale ne connaisse ses "clients". Soit une erreur dans la saisie d'un numéro de sécurité sociale dans la BD
centrale, si ce numéro est corrigé, il faudrait (ce qui n'est pas possible dans notre cas) impérativement en avertir
toutes les bases utilisatrices pour qu'elles mettent à jour leurs références.

Exemple : Problème de performance posé par une clé signifiante


Soit le numéro de sécurité sociale la clé primaire d'une table comptant un million d'enregistrements, ce numéro
est généralement un nombre à 13 chiffres ou une chaîne à 13 caractères, ce qui dans les deux cas est supérieur
au nombre à 7 chiffres suffisant pour identifier tous les individus de la BD. Les performances seront donc
toujours moins bonnes, lors des jointures, si une clé prend deux fois plus de place en mémoire que son
optimum. Mais ajoutons que cette perte de performance n'a pas toujours de conséquence sur la réalité
perceptible par les utilisateurs de la BD.

Inversement, soit une clé artificielle la clé primaire d'une table T1, par ailleurs référencée par une autre table
T2. Soit le numéro de sécurité sociale un attribut clé de T1. Si l'on veut par requête disposer des informations
de T2 ainsi que du numéro de sécurité sociale de T1, alors il faudra faire une jointure, tandis que si ce numéro
signifiant avait été choisi comme clé primaire, cela n'aurait pas été nécessaire.

3.5. Clé étrangère

Définition : Clé étrangère


Une clé étrangère est un attribut ou un groupe d'attributs d'une relation R1 devant apparaître comme clé
primaire dans une relation R2 afin de matérialiser une référence entre les tuples de R1 et les tuples de R2.

Une clé étrangère d'un tuple référence une clé primaire d'un autre tuple.

Attention
Seule une clé primaire peut être référencée par une clé étrangère, c'est même le seule fonction de la clé
primaire : être la clé qui peut être référencée par les clés étrangères.

10
Référence entre relations

Définition : Contrainte d'intégrité référentielle


Une clé étrangère respecte la contrainte d'intégrité référentielle si sa valeur est effectivement existante dans la
clé primaire d'un tuple de la relation référencée, ou si sa valeur est null.

Une clé étrangère qui ne respecte pas la contrainte d'intégrité référentielle exprime un lien vers un tuple qui
n'existe pas et donc n'est pas cohérente.

3.6. Référence entre relations


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.

Méthode : Référence
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

Exemple

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.

3.7. Schéma relationnel

Définition : Schéma d'une relation


Le schéma d'une relation définit cette relation en intension. Il est composé :

11
Schéma relationnel

- du nom de la relation,
- de la liste de ses attributs avec les domaines respectifs dans lesquels ils prennent leurs valeurs,
- de la clé primaire,
- des clés étrangères,
- des clés candidates.

Définition : Schéma relationnel d'une base de donnée

Le schéma relationnel d'une BD* est la définition en intension de cette BD (par opposition à l'instance de la BD
qui est une extension de la BD). Il est composé de l'ensemble des schémas de chaque relation de la BD.

Syntaxe : Relation

1 Relation (Attribut1:Domaine1, Attribut2:Domaine2, ... , AttributN:DomaineN)

La relation "Relation" contient N attributs chacun défini sur son domaine.

Syntaxe : Clé primaire

1 Relation (#Attribut1:Domaine1, ... , #AttributM:DomaineM, ... , AttributN:


DomaineN)
La clé de la relation "Relation" est composée des attributs "Attribut1" à "AttributM" (attribut précédés de # ou
bien soulignés)

En général on note la clé primaire en premier dans la relation.

Syntaxe : Clé étrangère

1 Relation1 (..., AttributM=>Relation2, ... , AttributN=>Relation2)

La relation "Relation1" comporte une clé étrangère (composée des attributs "AttributM" à "AttributN")
référençant la clé primaire de "Relation2". 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 on notant "Attribut=>Relation.Attribut".

En général on note les clés étrangères en dernier dans la relation, sauf pour les clés étrangères qui font partie de
la clé primaire (clés identifiantes).

Syntaxe : Clé candidates

1 Relation1 (...AttributM:DomaineM, ......) avec AttributM clé

Les clés candidates doivent être notées sur le schéma relationnel :

- S'il n'y a qu'une ou deux clés candidates, les noter directement après la définition de la relation
- S'il y a beaucoup de clés, pour ne pas trop alourdir la notation, renvoyer à un tableau à part

12
Exemple de schéma relationnel pour la géographie

Attention : Clés candidates et clé primaire


La notation R(#a,#b) signifie toujours que R a comme clé primaire (a,b), et non que R aurait deux clés a
et b (dont on ne saurait pas laquelle est primaire).

La notation R(#a,b) avec b clé signifie bien que a et b sont deux clés de R, et que a est primaire.

Il ne faut pas confondre une clé composée de deux attributs avec deux clés.

3.8. Exemple de schéma relationnel pour la géographie

Exemple

1 Personne (#Numero:Entier, Nom:Chaîne, Prénom:Chaîne, LieuNaissance=>Ville)


2 Pays (#Nom:Chaîne, Population:Entier, Superficie:Réel, Dirigeant=>Personne)
3 Région (#Pays=>Pays, #Nom:Chaîne, Superficie, Dirigeant=>Personne)
4 Ville (#CodePostal:CP, Nom:Chaîne, Pays=>Région.Pays, Région=>Région.Nom,
Dirigeant=>Personne)

Exemple : Exemple d'instance de la base de données

Le schéma relationnel précédent décrit :

- Des personnes
Elles sont identifiées par un numéro qui est en fait une clé artificielle. En effet, même une clé composée
de tous les attributs (Nom, Prénom, LieuNaissance) laisse une possibilité de doublons (homonymes nés
dans la même ville).
La clé étrangère LieuNaissance fait référence à la relation Ville, et plus précisément à sa clé primaire
CodePostal, ce qui est est laissé implicite car évident.

13
Synthèse

- Des pays
Ils sont identifiés par leur nom, puisque deux pays ne peuvent avoir le même nom.
Les pays sont dirigés par des personnes, et ce lien est matérialisé par la clé étrangère Dirigeant.
- Des régions
Elles font partie d'un pays et ont un nom. Deux régions de pays différents pouvant avoir le même nom,
il faut utiliser une clé primaire composée à la fois du nom de la région et du nom du pays, qui est une
clé étrangère (le nom est appelé clé locale car il n'est pas suffisant pour identifier un tuple de la relation
Région, et la clé étrangère vers la relation Pays est appelée clé identifiante).
- Des villes
Elles sont identifié par un code postal qui est unique dans le monde (en utilisant le préfixe de pays de
type "F-60200"). Ce code postal a pour domaine CP qui est une chaîne composée d'une ou deux lettres,
d'un tiret, puis d'une série de chiffres.
Le lien d'appartenance entre une ville et une région est matérialisé par la clé étrangère composée des
deux attributs Pays et Région. Cette clé référence la clé primaire de la relation Région, également
composée de deux attributs. Pour clairement expliciter les références (bien que sémantiquement la
dénomination des attributs ne laisse pas de place au doute) on utilise la syntaxe Région.Pays et Région.
Nom.

14
Synthèse : Schéma relationnel

4. Synthèse
4.1. Synthèse : Schéma relationnel

Schéma relationnel

Un schéma relationnel permet une formalisation d'un modèle logique.

- Relation ou table
Sous-ensemble d'un produit cartésien

- Attribut ou colonne
Prend ses valeurs dans un domaine
- Enregistrement ou ligne
Pose une valeur (y compris la valeur "null") pour chaque attribut

- Clé
Groupe d'attributs ayant un rôle d'identification au sein d'un enregistrement

- Clé candidate
Identifie de façon unique un enregistrement
- Clé primaire
Clé candidate choisie pour représenter un enregistrement pour sa facilité d'usage
- Clé étrangère
Référence la clé primaire d'un tuple d'une autre relation pour exprimer un lien

4.2. Bibliographie commentée sur le modèle relationnel

Complément : Synthèses
SQL2 SQL3, applications à
Oracle *

Une définition synthétique et efficace du domaine relationnel : relation, domaine, attribut, clé, intégrité,
opérateurs (Premier chapitre).

5. Définition formelle d'une relation


5.1. Produit cartésien

Définition : Produit cartésien


Le produit cartésien, noté "X", des domaines D1, D2, ... , Dn, noté "D1 X D2 X ... X Dn" est l'ensemble des
tuples (ou n-uplets ou vecteurs) <V1,V2,...,Vn> tel que Vi est une valeur de Di et tel que toutes les
combinaisons de valeurs possibles sont exprimées.

Exemple

1 D1 = {A, B, C}
2 D2 = {1, 2, 3}
3 D1 X D2 = {<A,1>, <A,2>, <A,3>, <B,1>, <B,2>, <B,3>, <C,1>, <C,2>, <C,3>,}

15
Relation

5.2. Relation

Définition : Relation
Une relation sur les domaines D1, D2, ... , Dn est un sous-ensemble du produit cartésien "D1 X D2 X ... X Dn".
Une relation est caractérisée par un nom.

Synonymes : Table, tableau

Syntaxe
On peut représenter la relation R sur les domaine D1, ... , Dn par une table comportant une colonne pour
chaque domaine et une ligne pour chaque tuple de la relation.

Relation R

Remarque
Une relation est définie en extension, par l'énumération des tuples la composant.

16
Exercices

Exercices
II
1. Exercice : Lab I-
Description du problème
[20 min]

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

Question 1 [solution n°2 p.23]


[*]

Dessiner des relations instanciées (en extension donc) remplies avec les données fournies en exemple.

Question 2 [solution n°3 p.23]


[*]

Écrivez le schéma relationnel (définition en intension donc) permettant de représenter une base de données
relationnelle pour le laboratoire.

17
Devoir

Devoir
III
1. Exercice : Salle de sports
Une salle de sports souhaite réaliser une base de données pour gérer ses adhérents.

Question 1

Proposer une relation Adhérent définie en extension* permettant de représenter trois adhérents, avec pour
chacun son nom, son prénom, son âge, son adresse, sa taille, son poids, ainsi que deux booléens permettant de
savoir si le cotisation et si le certificat médical sont à jour.

Question 2

Proposer un schéma relationnel définissant en intension* la relation Adhérent, en spécifiant les domaines de
chaque attribut.

Question 3

Chaque adhérent possède un numéro unique fourni lors de l'inscription. Ajouter une colonne à la relation
Adhérent et à au schéma correspondant.

Indice :
Le numéro d'adhérent est une clé.

Question 4

Ajouter une seconde relation permettant de gérer les sports pratiqués dans la salle. Chaque nom de sport est
unique ; on gère pour chaque sport le nombre d'heures de pratique hebdomadaire et l'âge minimum.

Définir la relation en intension et l'instancier avec deux sports.

Question 5

Proposer une solution pour indiquer le sport que pratique chaque adhérent, sachant qu'il ne peut en pratiquer
qu'un seul, mais qu'un même sport peut être pratiqué par plusieurs adhérents.

Mettre à jouer le tableau de données.

Question 6

Proposer un diagramme de classe UML qui aurait permis de représenter ce problème d'emblée.

18
Contenus annexes

Contenus annexes

> Méthodologie générale de conception d'une base de données

Méthode : Étapes de la conception d'une base de données


1. Analyse de la situation existante et des besoins (clarification)
2. Création d'un modèle conceptuel qui permet de représenter tous les aspects importants du
problème
3. Traduction du modèle conceptuel en modèle logique (et normalisation de ce modèle logique)
4. Implémentation d'une base de données dans un SGBD, à partir du modèle logique (et
optimisation)

Processus de conception d'une base de données

On distingue quatre étapes dans la conception d'une base de données :

- L'analyse
Elle consiste à étudier le problème et à consigner dans un document, la note de clarification, les
besoins, les choix, les contraintes.
- La modélisation conceptuelle
Elle permet de décrire le problème posé, de façon non-formelle (en générale graphique), en
prenant des hypothèses de simplification. Ce n'est pas une description du réel, mais une
représentation simplifiée d'une réalité.
- La modélisation logique
Ele permet de décrire une solution, en prenant une orientation informatique générale (type de
SGBD typiquement), formelle, mais indépendamment de choix d'implémentation spécifiques.
- L'implémentation

19
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Contenus annexes

Elle correspond aux choix techniques, en terme de SGBD choisi et à leur mise en œuvre
(programmation, optimisation...).

Fondamental
- Bien analyser le problème posé en amont
- Bien modéliser le problème au niveau conceptuel avant de passer au niveau logique et à
l'implémentation

Conseil : L'importance de l'étape d'analyse


La première étape de la conception repose sur l'analyse de l'existant et des besoins. De la qualité de la
réalisation de cette première étape dépendra ensuite la pertinence de la base de données par rapports aux
usages. Cette première étape est donc essentielle et doit être menée avec soins.

Si la première étape est fondamentale dans le processus de conception, elle est aussi la plus délicate. En
effet, tandis que des formalismes puissants existent pour la modélisation conceptuelle puis pour la
modélisation logique, la perception de l'existant et des besoins reste une étape qui repose essentiellement
sur l'expertise d'analyse de l'ingénieur.

Conseil : L'importance de l'étape de modélisation conceptuelle


Étant donnée une analyse des besoins correctement réalisée, la seconde étape consiste à la traduire selon
un modèle conceptuel. Le modèle conceptuel étant formel, il va permettre de passer d'une spécification
en langage naturel, et donc soumise à interprétation, à une spécification non ambigüe. Le recours aux
formalismes de modélisation tels que E-A* ou UML* est donc une aide fondamentale pour parvenir à
une représentation qui ne sera plus liée à l'interprétation du lecteur.

La traduction d'un cahier des charges spécifiant l'existant et les besoins en modèle conceptuel reste
néanmoins une étape délicate, qui va conditionner ensuite l'ensemble de l'implémentation informatique.
En effet les étape suivantes sont plus mécaniques, dans la mesure où un modèle logique est déduit de
façon systématique du modèle conceptuel et que l'implémentation logicielle est également réalisée par
traduction directe du modèle logique.

Remarque : Les étapes de traduction logique et d'implémentation

Des logiciels spécialisés (par exemple Objecteering*) sont capables à partir d'un modèle conceptuel
d'appliquer des algorithmes de traduction qui permettent d'obtenir directement le modèle logique, puis
les instructions pour la création de la base de données dans un langage orienté données tel que SQL.
L'existence de tels algorithmes de traduction montre que les étapes de traduction logique et
d'implémentation sont moins complexes que les précédentes, car plus systématiques.

Néanmoins ces étapes exigent tout de même des compétences techniques pour optimiser les modèles
logiques (normalisation), puis les implémentations en fonction d'un contexte de mise en œuvre matériel,
logiciel et humain.

20
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Questions de synthèse

Questions de synthèse

Quel rapport y-a-t il entre une relation et une table ?

.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................

Qu'est ce qu'un domaine ?

.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................

Comment identifie-t-on un attribut d'une relation ?

.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................

Comment identifie-t-on un enregistrement d'une relation ?

.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................
.................................................................................................................................................................................................

21
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Questions de synthèse

..................................................................................................................................................................................................................
..................................................................................................................................................................................................................

Quand doit-on ajouter des clés artificielles ?

..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................

Quelle problème pose la redondance et comment le résoudre ?

..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................
..................................................................................................................................................................................................................

22
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Solutions des exercices

Solutions des exercices

> Solution n°1 Exercice p. 6

Indiquez quelle définition et quel exemple correspondent respectivement aux mots intension et extension.

Intension Extension

Explicitation d'un domaine par la description de ses caractéristiques Énonciation exhaustive de


(en vue de sa compréhension abstraite, générale). l'ensemble des objets du domaine

Le domaine des couleurs {bleu, rouge, vert}

> Solution n°2 Exercice p. 17

> Solution n°3 Exercice p. 17

1 Medicament (#nom:varchar, description:varchar, description_longue:varchar,


conditionnement:number)
2 Contre_indication(#code:varchar, description:varchar, medicament=>Medicament)

23
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Glossaire

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

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}

24
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Signification des abréviations

Abréviations
BD : Base de Données

E-A : Entité-Association

SGBDR : Système de Gestion de Bases de Données Relationnelles

UML : Unified Modeling Language

25
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Bibliographie

Bibliographie

Codd EF, A relational model for large shared data banks, Communications de l'ACM, juin 1970.

Delmal Pierre. SQL2 SQL3, applications à Oracle. De Boeck Université, 2001


.

26
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)
Webographie

Webographie

Objecteering software. http://www.objecteering.com. [2002-


septembre].

27
Stéphane Crozat (Contributions : Benjamin Lussier, Antoine Vincent, Dritan Nace)

Vous aimerez peut-être aussi