1
Modèle relationnel
Idrissa SARR
Master RETEL
Février 2017
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 1
2
Plan
l Concepts de base
n Relation, attribut, schéma
n Clé primaire et clé étrangère
l Contraintes d’intégrité sémantique
l Transformation d’un diagramme de classe en un
schéma relationnel
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 2
BD et Modèles 3
l Base de données (BD)
n Collection d’occurrences d’un diagramme de classe stockée en
mémoire secondaire
n gérée par un système de gestion de bases de données (SGBD)
l Type d’organisation (modèle de données)
n Relationnel
n Graphe
n Clé-valeur
n Colonne
n Document
l Le type d’organisation visé a un impact sur la modélisation
conceptuelle
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 3
Chapter 3. The domain model
Setting the stage
4
Modèle de données
We wanted to outline the domain model before diving into library details. We also looked at the data
model of the themoviedb.org data to confirm that it matched our expectations.
In Java code this looks pretty straightforward:
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 4
Get it running
5
Modèle de données : Exemple Graphe
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 5
Modèle de données : Exemple 6
Relations
login Name Friend
Id star Comme Name
Micha Micha Olivier nts
Olivier Olivier Null iii 1 Boring Micha
oooo 2 Exciting Micha
title Year rating
Matrix 2000 iii
Un Café 2016 Micha
sans
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 6
7
Concepts de base
l Codd (1970)
l Relation
n Schéma (intention): liste d’attributs et contraintes
d’intégrité
n Table (extension)
l Schéma d’une BD
n Ensemble de schémas de relations
n Contraintes d’intégrité entre relations
l Contraintes d’intégrité sémantique
n Clés
n Dépendances fonctionnelles, ...
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 7
Concepts de base 8
l Relation
n Schéma (intention) : liste d’attributs et de contraintes
d’intégrité
EDITEUR(code_ed, Nom_ed, Lieu)
Lieu ∈ {Paris, Montréal, Boston, New York}
n Table, extension, ou état Attributs
code_Ed Nom_ed lieu ….
11 Gaetan Morin Montreal …
Tuples
22 Addison New York …
Wesley
33 Flammarion Paris …
44 Eyrolles Paris …
55 MS Press Boston …
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 8
Concepts de base 9
l Tuple
n Enregistrement ou ligne (“row”, “record” )
n Instance (occurrence) particulière d’entité ou
d’association (ex. un éditeur)
l Attribut
n Colonne ou champ (“column”, “field”)
n propriété d’une entité ou d’une association
n Ex: Lieu est un attribut pour la relation editeur
l Domaine
n d’un attribut : ensemble de valeurs possibles
n Ex: Lieu ∈ au domaine {Montréal, Paris, New York,
Grand Bassam}
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 9
Concepts de base 10
l Ex. Schéma relationnel de la base BD_Auteur
Auteur (Id_a, Nom, Téléphone, Ville, Province, Contrat)
Livre (Id_livre, Titre, Catégorie, Code_ed, Prix, Droits, Date)
AuteurLivre (Id_a, Id_livre, Ordre, Part)
Éditeur (Code_ed, Nom_ed, Lieu)
Auteur
*Id_a
Nom
….
AuteurLivre
Livre Éditeur
*Id_a *Code_ed
*Id_livre
*Id_livre Nom_ed
Titre
Ordre Lieu
….
Part
Code_ed
…..
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 10
Concepts de base 11
l Ex. Contenu de BD_Auteur
id_a Nom Téléphone Ville Province Contrat
10 Alain Dubuc 819 734-8889 Hull Qc 0
20 Pierre Lebrun 514 655-1750 Montreal Qc 0
Auteur 30 Amina Missaoui 418 678-3444 Quebec Qc 1
40 Brian Adams 416 998-2345 Toronto Ont 0
50 Luc Nadeau 506 877-4466 Moncton Nb 1
60 Laks Agrawal 416 888-9834 Toronto Ont 1
70 Michel Montignac 331 678-5555 Paris 0
80 C-J Date 202 812-5675 Washington Dc 1
90 Jacques Dupont 331 876-0685 Paris 1
Code_ed Nom_ed Lieu
11 Gaetan Morin Montreal
Éditeur 22 Addison Wesley New York
33 Flammarion Paris
44 Eyrolles Paris
55 MS Press Boston
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 11
Concepts de base 12
id_livre Titre Catégorie Code_ed Prix Droits Date
1000 Menus quebecois cuisine 11 20.99 10 Jun 17 1987
2000 SQL Server 6.5 informatique 55 65.00 15 Apr 21 1995
Livre
3000 BD informatique 44 57.99 16 Feb 4 1998
4000 Management gestion 44 40.99 15 Oct 30 1990
5000 A guide to SQL informatique 22 43.99 20 Feb 24 1991
6000 Je maigris dietetique 33 8.99 15 Jan 15 1999
Id_a Id_livre Ordre Part
10 1000 1 5
10 3000 3 17
20 1000 2 5
AuteurLivre 30 4000 2 5
40 2000 1 15
50 4000 1 5
60 4000 3 5
70 6000 1 15
80 3000 1 8
80 5000 1 13
90 3000 2 7
90 2000 2 10
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 12
Contraintes d’intégrité sémantique 13
l Types de contraintes
n Clé primaire et clé étrangère
n Contraintes de domaine : les valeurs d’un attribut
appartiennent à un domaine spécifique
Ex. Ville ∈ {Paris, Boston, ...}
Ex. part ≤ 20
n Règles d’implication
Ex. Si l’employé est analyste, alors son salaire dépasse
50000$
n Dépendances fonctionnelles
n Etc.
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 13
14
Contraintes d’intégrité sémantique
l Clés d’une relation
n Clé primaire : attribut ou groupe d’attributs identifiant
d’une manière unique les occurrences. La clé est
toujours renseignée (“NOT NULL”).
Ex. Id_livre est la clé primaire de la relation livre
n Clé étrangère d’une relation R : fait référence à la clé
primaire d’une relation R’. R et R’ ne sont pas
nécessairement des relations distinctes.
n Ex. Id_livre est une clé étrangère de la relation
auteurLivre car elle fait référence à Id_livre, clé de la
table livre
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 14
Contraintes d’intégrité sémantique 15
l Intégrité référentielle
n les valeurs d’une clé étrangère C de R doivent être
incluses dans l’ensemble des valeurs de la clé primaire
de S, i.e. R[C] ⊆ S[C], ou bien non renseignées
n Exemple
auteurLivre[id_livre] ⊆ livre[id_livre]
Signification:
Si un numéro de livre apparaît dans la table auteurLivre
(i.e., si un auteur rédige un livre), alors ce code
apparaît nécessairement dans la table livre.
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 15
Contraintes d’intégrité sémantique 16
l Maintien de l’intégrité référentielle : trois options
n CASCADE : effet “domino”
w Propagation de la modification aux enregistrements
contenant la clé étrangère.
n RESTRICTED : modification conditionnelle
n NULL : mise à blanc
l Exemple de maintien de l’intégrité référentielle
n Quel est l’impact de l’élimination de l’éditeur dont le
code est 33 de la table éditeur sur les tuples de la table
livre laquelle possède pour clé étrangère code_ed
référençant la clé primaire code_ed ?
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 16
Contraintes d’intégrité sémantique 17
n CASCADE
• Cela entraîne nécessairement la destruction de tous
les enregistrements de la table livre qui ont 33
comme valeur de la clé étrangère éditeur
n RESTRICTED
• L’élimination du tuple de la table éditeur ayant 33
comme valeur de la clé primaire code_ed ne peut se
faire que s’il n’existe aucun enregistrement de la
table livre qui a 33 comme valeur de la clé étrangère
éditeur
n NULL
• Cela entraîne la mise à NULL (c-à-d aucune valeur)
de la clé étrangère code_ed dans livre pour tout tuple
ayant eu la valeur 33
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 17
Conversion d’un Diagramme de classe en 18
relationnel
Soit le diagramme suivant :
DÉPARTEMENT
#D
Nom_D
Étage
0..1
1
a_pour_chef comporte
1..*
1..1 0..*
EMPLOYÉ
#E supervise
Nom_E
Salaire
1..* 0..1
Détails
réalise
Rôle
0..*
PROJET
#P
Type
Durée
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 18
Conversion d’un Diagramme en relationnel 19
l Association binaire * --- * entre C1 et C2
n Une table dont la clé est la concaténation des clés de
C1 et C2. Les attributs rattachés à l’association vont
également apparaître dans cette nouvelle table
n Ex. RÉALISE(#E, #P, Rôle)
l Association ternaire entre C1, C2 et C3
n Une table dont la clé est la concaténation des clés de
C1, C2 et C3. Les attributs rattachés à l’association vont
également apparaître dans cette nouvelle table
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 19
20
Conversion d’un Diagramme de classe en
relationnel
l Classe
n Une relation
n Ex: PROJET(#P, Type, Durée)
l Association binaire 1..1/0..1 --- 1..*/0..*
n un pointeur logique (clé étrangère) dans la classe se
trouvant du côté de la multiplicité maximale (*) en
provenance du côté de la multiplicité minimale.
n Ex. Un département a plusieurs employés et un
employé est dans un seul département.
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 20
Conversion d’un diagramme de classe en 21
relationnel
Schéma relationnel correspondant :
DÉPARTEMENT(#D, Nom_D, Etage, Chef)
EMPLOYÉ (#E, Nom_E, Salaire, #D, Patron)
PROJET (#P, Type, Durée)
RÉALISE (#E, #P, Rôle)
Ex. d’intégrité référentielle
EMPLOYÉ[#D] ⊆ DÉPARTEMENT[#D]
N.B. Les clés primaires sont en gras
Les clés étrangères sont en italique
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 21
Conversion d’un Diagramme en relationnel 22
#D Nom_D Etage Chef
AA Jouets 4 200
Département
BB Sports 2 400
#E Nom_E Salaire #D Patron
Employé 100 Latour 25000 AA 200
200 Babin 45000 AA
300 Dubuc 35000 AA 200
400 Nguyen 55700 BB
500 Bailey 43000 BB 400
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 22
Conversion d’un schéma relationnel en 23
Diagramme de Classes
l La conversion d’un schéma relationnel en un diagramme de
classe est un processus du génie à rebours (reverse
engineering). Elle consiste à:
l Repérer les relations primaires du schéma relationnel, c-à-d
les relations dont la clé primaire n’est pas constituée de clés
étrangères.
n Chaque relation primaire R donne lieu à une classe (dans le
diagramme de classe) avec comme éléments tous les attributs à
l’exception de clés étrangères apparaissant dans la liste des
attributs non clés.
n Toute clé étrangère CE génère une association entre la classe
correspondante (R) et la classe S ayant comme clé CE.
n La multiplicité maximale du côté de l’entité décrivant R est
nécessairement *.
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 23
Conversion d’un schéma relationnel en 24
diagramme de classes
l Repérer les relations faibles, c-à-d les relations dont la clé
primaire représente la concaténation de la clé primaire CP
d’une autre relation R et d’un identifiant local (ex. un numéro de
séquence d’une copie de film).
n Chaque relation faible donne lieu à une relation d’aggrégation avec
l’entité R possédant la clé CP. Les 2 multiplicités (min. et max.) du
côté de l’entité faible sont à 1. Ex. INVENTAIRE est un cas de
relation faible.
l Repérer les relations de lien qui sont des relations dont la clé
primaire est constituée de la concaténation de clés étrangères
référant d’autres relations.
n Si le nombre de clés étrangères est 2 (respectivement 3), cela se
traduit par une association binaire (resp. ternaire) entre les classes
dont les clés primaires correspondent aux clés étrangères.
RÉSERVATION est un exemple de relation de lien qui engendre
une association binaire entre CLIENT et FILM.
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 24
Conversion d’un schéma relationnel en E/R 25
l FILM(Code_film, Titre, année, No_producteur)
l PRODUCTEUR(No_producteur, Ville)
l INVENTAIRE(Code_film, No_séquence, Date_achat,
No_fournisseur)
l FOURNISSEUR(No_fournisseur, Adresse)
l FACTURE(No_facture, No_client, Date_facture)
l EMPRUNT(No_facture, Code_film, No_séquence, Date_retour)
l CLIENT(No_client, Nom)
l RÉSERVATION(No_client, Code_film, Date_réservation)
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 25
26
Références
• Date, C. J. An Introduction to Database Systems, 8ème édition,
Addison-Wesley, 2004.
• Elmasri, R. & Navathe, S.B. Fundamentals of Database Systems,
6ème édition, Addison-Wesley, 2011.
• Godin, R. Systèmes de gestion de bases de données par
l’exemple, 2ème édition. Loze-Dion, 2006.
Rokia Missaoui
Idrissa SARR-- UQO
UCAD INF6009 - Introduction
M1 RETEL- Modèleaux bases de données
relationnel Automne
Février 2002
2017 26