MODÉLISATION DE BASES
DE DONNÉES AVEC MERISE
1
1 ORGANISATION ET
SYLLABUS
2
SYLLABUS
Les notions à voir dans ce cours
⮚ Les systèmes de gestion de bases de données (SGBD) : définitions et caractéristiques
⮚ La méthode Merise pour la conception d'une base de données relationnelle
🢝 Schéma entité-relation
🢝 L'intégrité référentielle et les dépendances fonctionnelles dans un SGBD
3
SYLLABUS
Les Bases de Données Relationnelles
⮚ Création d'une base de données relationnelles
⮚ Interroger une base de données
🢝 les requêtes simples "SELECT" et avec conditions (min, max, order by, group by,
count, etc.)
🢝 Requêtes de jointures (inner, left/right)
🢝 Les sous-requêtes
4
SYLLABUS
Compétences interdisciplinaires
⮚ Travail en groupe (binôme) : communiquer, s'exprimer, écouter, partager ...
⮚ Recherche d'information : poser la bonne question, utiliser les bonnes ressources ...
⮚ Conception de logiciel centrée client/humain : agile et incrémentale
⮚ Rétroconception à partir des versions existantes
⮚ Évaluation par les pairs via un audit guidé
5
SYLLABUS
Prélude (concerne uniquement les L1 SDN)
DÉVELOPPER UNE APPLICATION INFORMATIQUE
⮚ En concevant les spécifications fonctionnelles et techniques et en rédigeant la
documentation utilisateur
⮚ En validant son travail technique et fonctionnel
6
RESSOURCES DE CONFIANCE
⮚ Merise : Parlez-vous Merise
⮚ Requêtes : w3school (avec possibilité de tester vos requêtes)
7
2 LA MODÉLISATION DE
DONNÉES :
INTRODUCTION ET
DÉFINITIONS
8
LES DONNÉES ... LES MÉTIERS
⮚ Stockage et traitement de données, pourquoi ?
🢝 la gestion, la finance, la prédiction, l'aide à la décision ...
⮚ Domaines concernés ?
🢝 finance, médecine, éducation, réseaux sociaux, biology, gestion, commerce,
communication et publicité ... et beaucoup beaucoup d'autres
9
LES DONNÉES (INFORMATIQUE)
⮚ En informatique, une donnée est la représentation d'une information. Exemple,
nom_utilisateur, numéro_étudiant ...
⮚ Elle peut être conservée et classée sous différentes formes : texte (chaîne de caractères),
numérique, image, son, etc.
La gestion des données
⮚ La structuration et l'utilisation de système de gestion de base de données sont pour
faciliter leurs insertion, récupération, modification, recherche, etc.
⮚ Les données doivent être répertoriées et organisées de manière à être aisément
(re-)trouvées et manipulées par tous les utilisateurs potentiels.
10
CONCEVOIR DES DONNÉES STRUCTURÉES À
PARTIR DES DONNÉES BRUTES ... COMMENT ?
Modéliser pour rendre les données plus accessibles ... plus lisibles ...
ressource image : abridespossibles DOT fr et
bidart DOT fr 11
INTRODUCTION AUX SYSTÈMES D'INFORMATION
Une information/donnée est un élément qui permet de compléter notre connaissance sur un
objet, un événement, une personne, etc.
Exemples : le nom d'une personne est une information concernant cette personne. Le
titre d'un film est une information concernant ce film.
Un système d'information (SI) est constitué par l'ensemble organisé de ressources (humain,
matériels et immatériels) mis en œuvre afin de gérer (collecter, stocker, traiter, distribuer ...)
l'information au sein d'une unité.
Exemples : Les ressources relatives à une librairie font partie du système
d'information de celle-ci. Ce système inclut les personnels, les matériels de stockage,
le système de gestion des commandes et des ventes, etc.
Remarque : Un système d'information n'est pas forcement informatisé (ex. bibliothèque à
l'ancien)
12
BD ET SGBD
Une base de données BD : est un ensemble structuré de données relatives à un sujet global.
Une BD est le bloc principal des dispositifs informatiques de traitement d'informations
(stockage, structuration, recherche ...). Souvent accompagné d'un système de gestion de base
de données (SGBD).
SGBD : un logiciel moteur qui manipule la base de données et dirige l'accès à son contenu.
De tels dispositifs comportent également des logiciels applicatifs, et un ensemble de règles
relatives à l'accès et l'utilisation des informations.
⮚ Un SGBD doit répondre aux problématiques suivants :
🢝 intégrité de données (ex. une commande sans client)
🢝 confidentialité de données (ex. l'accessibilité de données qui a le droit d'accéder à
quoi et pour quoi en faire),
🢝 synchronisation de données (ex. achat en parallèle dans l'e-commerce). 13
CARACTERISTIQUES SGBD
Un SGBD peut avoir une ou plusieurs de ces caractéristiques parmi d'autres:
⮚ Relationnel : stockage de données sous une forme très structurée
⮚ Embarqué : ex. véhicule, robot, application mobile
⮚ Centralisé : BD stockée sur un seul ordinateur/serveur
⮚ Distribué : BD stockée sur plusieurs ordinateurs
⮚ NOSQL (Not Only SQL) : stockage orienté documents, graph, clé-valeur ...
14
LES SYSTÈMES DE GESTION DE BASES DE
DONNÉES RELATIONNELLES (SGBDR)
Les SGBDR sont des systèmes servant à stocker, à manipuler ou gérer, et à partager des
données dans des bases de données, en garantissant la qualité, la pérennité et la
confidentialité des informations ainsi que l'intégrité référentielle des données.
Exemples : ORACLE, ACCESS, MYSQL, POSTGRESQL, etc.
15
LES SYSTÈMES DE GESTION DE BASES DE
DONNÉES NOSQL
NOSQL (Not Only SQL) :
⮚ permet de stocker des données volumineuses,
⮚ n'est pas forcément un SGBDR (ça peut l'être, mais ça coute beaucoup),
⮚ plus anciens que les logiciels SGBDR,
⮚ performant là où les lectures sont bien plus fréquentes que les écritures,
⮚ Logiciels NoSQL sont destinés à permettre la répartition sur plusieurs machines afin de
réduire les coûts de maintenance.
Le NoSQL répond à la problématique actuelle du Big Data (grande 16
quantité de données).
CLASSEMENT SGBD
ressource image : db-engines DOT com
17
3 LA MODÉLISATION
D'UNE BDR :
LA MÉTHODE MERISE
18
MERISE
⮚ Une méthode de conception d'une base de données
relationnelle..
⮚ Permets une conception centrée utilisateur à partir de
ses besoins.
⮚ Créer en France en 1978 suite à la demande du
ministère de l'Industrie de définir une méthode de
conception de systèmes d'information automatisés et
numérisés.
19
ressource image : commentcamarche DOT net
LA MÉTHODE MERISE
Merise est répartie sur trois niveaux :
⮚ MCD - le Modèle Conceptuel de Données : le niveau conceptuel.
⮚ MLD - le Modèle Logique de Données : le niveau logique ou organisationnel.
⮚ MPD - l'implémentation en Modèle Physique de Données : le niveau physique.
20
MERISE : CAS D'ÉTUDE
Conception d'un SI de facturations d'une entreprise.
La BDR demandée contient les propriétés figurant sur les factures :
21
MERISE : CAS D'ÉTUDE
Besoins Résultat de la modélisation
MERISE
22
LE MCD
23
MERISE : LE MCD
⮚ Une représentation graphique et structurée des informations d'un SI.
⮚ Connu sous le nom de Schéma Entité-Relation.
⮚ Se base autour de 3 concepts principaux, les entités (ex. Client, Facture), les propriétés
(ex. nom, date) et les relations/associations (ex. obtient).
24
MERISE : LE MCD
Pour construire le Schéma Entité-Relation :
⮚ analyse et critique de l'existant (BD existant ou SI non informatique)
⮚ analyse de besoins des utilisateurs : conception centrée utilisateur
Pour réaliser un MCD, on s'appuie sur les étapes suivantes :
1- l'élaboration du dictionnaire des données (propriétés),
2- l'élaboration des besoins et préciser les règles de gestion,
3- l'élaboration du graphe de dépendances fonctionnelles,
4- et finalement, l'élaboration du schéma entité-relation (MCD).
25
MERISE : LE MCD
Cas d'étude : Facture
26
MERISE : LE MCD
1. Le dictionnaire de données
Le dictionnaire de données est un document/tableau qui regroupe toutes les données qui
seront conservées dans la base (et qui figureront donc dans le MCD). Pour chaque donnée, il
indique :
⮚ le code ou libellé (ex. «id_produit»)
⮚ la désignation : il s'agit d'une mention décrivant ce à quoi la donnée correspond (ex.
l'identifiant du produit) ;
⮚ le type de donnée : A pour Alphabétique, N pour Numérique; AN pour Alphanumérique,
Date (au format AAAA-MM-JJ), Booléen.
⮚ la taille : elle s'exprime en nombre de caractères.
27
⮚ des remarques ou observations complémentaires (ex. format et valeurs strictes).
MERISE : LE MCD
Cas d'étude : dictionnaire de données
Code Désignation Type Taille Remarques
id_facture Identifiant numérique de la facture N
Au format AAAA-JJ-
date_facture La date d'édition de la facture Date 10
MM
la quantité d'un produit dans la
quantité N
facture
le nom du client concerné par la
nom_client A 30
facture
... ... ... ... ...
28
MERISE : LE MCD
1. Le dictionnaire de données
⮚ Les données d'un dictionnaire des données doivent être élémentaires ou atomiques :
🢝 ne doivent pas être calculées ou dérivées (sauf pour des raisons d'optimisation pour
certains cas) : par exemple, le montant d'une commande ne doit pas être enregistré ou
l'âge à partir de date de naissance.
🢝 ne doivent pas être composées : les données composées doivent être obtenues par la
concaténation de données élémentaires conservées en base (ex. adresse = rue + ville +
code postal).
⮚ Les données numériques qui ne sont pas sujet de calcul doivent être de type AN (ex. n.
de téléphone).
29
MERISE : LE MCD
2. Les besoins
⮚ Étudier les besoins à partir des demandes des futurs utilisateurs de l'application et le
maître de l'application (si ce n'est pas le vôtre).
⮚ Établir les règles de gestion pour éviter les conflits et les ambiguïtés.
Exemple : Pour le SI de facturation
1. Un client peut obtenir une ou plusieurs factures ou aucune facture.
2. Une facture ne peut être affectée qu’a un seul client.
3. Une facture peut concerner un ou plusieurs produits.
4. Un produit peut être affecté à une ou plusieurs factures ou aucune facture.
30
MERISE : LE MCD
3. Les dépendances fonctionnelles
Dépendance fonctionnelle (DF) d'un attribut A vers un attribut B
La connaissance de la valeur de A détermine une valeur unique de B
Exemple :
⮚ la valeur du numéro de l'étudiant détermine de manière unique le nom de l'étudiant = le
nom de l'étudiant est fonctionnellement déterminé par son numéro étudiant
⮚ Attention ; le contraire n'est pas correct (ex. deux étudiants avec le même nom)
31
MERISE : LE MCD
Graphe des DF
32
MERISE : LE MCD
Entité et propriétés
Chaque entité est unique et est décrite par
un ensemble de propriétés/attributs.
Exemple : entité CLIENT.
Une propriété est une donnée élémentaire
d'une entité. Une propriété n’est rattachée
qu’à une et une seule entité. Exemple :
Code_client, Nom, Prénom, Adresse,
Code_postal, Ville.
ATTENTION : à éviter les accents et les
espaces dans les noms de vos entités et
propriétés pour un meilleur 33
fonctionnement de votre BD.
MERISE : LE MCD
Identifiant
Pour faire référence à chaque occurrence
d'une entité, l'entité doit être munie d'un
identifiant. L'identifiant est composé
d'une ou de plusieurs propriétés de
l'entité. À chaque valeur de l'identifiant
doit correspondre une et une seule
occurrence de l'entité.
La ou les propriétés qui constituent
l'identifiant d'une entité sont soulignées.
34
MERISE : LE MCD
Occurrences dans le modèle physique
Une occurrence de l'entité Client (le code doit être unique pour chaque occurrence)
Code_client Nom Prénom Adresse Code_postal Ville
1 Dupont Pierre 44 rue pomme 59000 Lille
Auto-Incrément pour garantir un code unique si pas d'autres solutions
Bien souvent, on utilise une donnée de type entier qui s'incrémente pour chaque occurrence,
ou encore un identifiant unique spécifique au contexte (numéro étudiant, numéro sécurité
sociale ...)
35
MERISE : LE MCD
Association
Lecture à l'oral :
⮚ Un client peut obtenir entre 0 et n factures.
⮚ Une facture est associée à un et un seul client. 36
MERISE : LE MCD
Association
Une association décrit un lien entre deux ou plusieurs entités. En effet, la définition de liens
entre entités permet de traduire une partie des besoins qui n'ont pas été satisfaites par la
simple définition des entités.
Chaque relation possède un nom, qui est généralement constitué par un verbe à l'infinitif.
Une relation est liée à chacune de ses entités par un lien sur lequel on indique les
cardinalités. Les cardinalités représentent la participation de l'entité concernée à la relation.
Le premier nombre indique la cardinalité minimale, le deuxième la cardinalité maximale.
37
MERISE : LE MCD
Association
38
MERISE : LE MCD
Association
La cardinalité minimale exprime le nombre de fois minimum où une occurrence d'une entité
participe à une relation. Cette cardinalité est généralement 0 ou 1.
⮚ Cardinalité minimale = 0 : Certaines occurrences de l'entité ne participent pas à la
relation
⮚ Cardinalité minimale = 1 : Chaque occurrence de l'entité participe au moins une fois à la
relation
39
MERISE : LE MCD
Association
La cardinalité maximale exprime le nombre de fois maximum où une occurrence d'une
entité participe à une relation. Cette cardinalité vaut souvent 1 ou n, avec n indiquant une
valeur >1, mais pas connue.
⮚ Cardinalité maximale = 1 : Chaque occurrence de l'entité participe au plus une seule fois
à la relation.
⮚ Cardinalité maximale = n : Chaque occurrence de l'entité peut participer
plusieurs fois à la relation.
40
MERISE : LE MCD
Association
Exemple de cardinalité :
⮚ 1,1 : un et un seul
⮚ 0,n : aucun ou plusieurs
⮚ 1,n : au moins un
⮚ 0,1 : au plus 1
⮚ 4,6 : de 4 à 6
41
MERISE : LE MCD
Association
Le degré d'une association est le nombre
d'entités impliquées dans l'association :
⮚ réflexive, sur une même entité
⮚ binaire, entre deux entités
⮚ n-aire entre n entités
42
MERISE : LE MCD
Facture
Besoins et règles de gestion
1. Un client peut obtenir une ou
plusieurs factures ou aucune
facture.
2. Une facture ne peut être
affectée qu’a un seul client.
3. Une facture peut concerner un
ou plusieurs produits. À FAIRE : dictionnaire de
4. Un produit peut être affecté à données, le graphe des DF et le
une ou plusieurs factures ou MCD.
aucune facture.
43
MERISE : LE MCD
DF Facture
44
MERISE : LE MCD
DF Facture
Pour chaque relation, on ajoute les cardinalités (min,max) de chaque côté selon les règles de
gestion.
45
MERISE : LE MCD
4. MCD (Facture)
46
MERISE : MCD - TD - EXERCICE 1
À vous
Prenons l'exemple d'un développeur qui doit informatiser le SI d'une bibliothèque. On lui fixe
les 5 besoins et règles de gestion suivants :
1- pour chaque livre, on doit connaître le titre, l'année de parution, un résumé et le
type (roman, poésie, science-fiction…) ;
2- un livre peut être rédigé par aucun (dans le cas d'une œuvre anonyme), un ou
plusieurs auteurs dont on connaît le nom, le prénom, la date de naissance et le pays
d'origine ;
3- chaque exemplaire d'un livre est identifié par une référence composée de lettres et
de chiffres ;
47
MERISE : MCD - TD - EXERCICE 1
4- un inscrit est identifié par un numéro et on doit mémoriser son nom, prénom,
adresse, téléphone et adresse e-mail ;
5- un inscrit peut faire zéro, un ou plusieurs emprunts qui concernent chacun un et un
seul exemplaire. Pour chaque emprunt, on connaît la date et le délai accordé (en
nombre de jours).
Exercice 1 : Élaborer le MCD.
48
LOGICIELS DE MODÉLISATION MERISE
ENTITÉS/RELATIONS
⮚ [Link] : [Link] : Diagram Entity Relation (liste à gauche)
⮚ package "[Link] Integration" dans VSCode
⮚ ou à l'ancien : papier + crayon (plus rapide et ça bug jamais :) )
49
LE MLD
50
MERISE : LE MLD
Le modèle logique de données (MLD) se base sur un modèle conceptuel des données. Il est
composé de tables logiques reliées entre elles par des flèches.
C'est l'étape responsable d'assurer l'intégrité référentielle (intégrité de données) via la mise
en place de Contrainte d’Intégrité Référentielle.
Ces contraintes garanties l'intégrité de données en cas de modifications (ON UPDATE) ou
suppressions de données (ON DELETE).
51
MERISE : PASSAGE DU MCD AU MLD
Comment traduire les relations entre les tables d'une manière à faire les
références entre les occurrences dans les tables ?
Est-ce que la solution proposée est accessible et compréhensible par une
machine ?
52
MERISE : LE MLD
Entité : passage du MCD au MLD
⮚ L'entité est transformée en table.
⮚ Les propriétés de l'entité deviennent les attributs de la table.
⮚ L'identifiant de l'entité devient la clé primaire (Primary Key - PK) de la table.
53
MERISE : LE MLD
Relation : passage du MCD au MLD
1- Relation avec cardinalité (x,n) et (x,1) ou x = 0 ou 1**
⮚ On copie la clé primaire de la table dont la cardinalité est (x,n) dans la table dont la
cardinalité est (x,1).
⮚ L’attribut est appelé clé étrangère (FK pour Foreign Key).
⮚ Les deux tables sont liées par une flèche qui pointe de la table à clé étrangère vers la
table qui contient la clé primaire correspondante (flèche vers l'origine de la clé étrangère).
54
MERISE : LE MLD
Relation : passage du MCD au MLD
1- Relation avec cardinalité (x,n) et (x,1) ou x = 0 ou 1**
55
MERISE : LE MLD
Relation : passage du MCD au MLD
2- Relation avec cardinalité (x,n) et (x,n)
ou x=0 ou 1**
⮚ Création d’une table supplémentaire
ayant comme clé primaire une clé
composée des identifiants des 2
entités.
⮚ Lorsque la relation contient des
propriétés, celles-ci deviennent
attributs de la table supplémentaire.
56
MERISE : LE MLD
Le corrigé - facture
57
MERISE : MLD - TD - EXERCICE 2
À partir du MCD corrigé de l'exercice bibliothèque mis à disposition sur icampus :
Exercice 2 : Élaborer le MLD correspondant.
58
LE MLD : CAS
PARTICULIERS
59
MERISE : PLURI_RELATIONS
60
MERISE : REFLEXIVE 1N
61
MERISE : RELATION REFLEXIVE NN
62
MERISE : RELATION TERNAIRE
63
MERISE : HERITAGE
64