Next Formation
MERISE
Conception de la BD 2 journées
1
➡ La méthode MERISE
• MERISE est une méthode efficace pour concevoir la BD d’un système d’information ou de n’importe quel logiciel, programme ou application.
➡ L’organisation des données : SGBD-R
• Concevoir la BD veut dire : organiser les données.
• Le principal outil de gestion et d’organisation des données est aujourd’hui (et pour longtemps) le SGBD-R (Système de Gestion de Bases de Données Relationnelles).
• L’objectif principal des SGBD-R est de garantir l’intégrité des données (avoir des données sans duplications d’information, sans incohérences ni valeurs aberrantes)..
• Le langage des SGBD-R est le SQL.
• Exemples de SGBD-R : Oracle, MySQL, SQL-Server, PostgreSQL, SQLite…
1 - Brève présentation
BD - SGBD-R - SQL
3
Bertrand Liaudet // bliaudet.free.fr
➡ Historique des SGBD-R
• 1970 : Article de E.F. CODD sur l’algèbre relationnelle et le modèle relationnel (MR) : théorie à la base des SGBD-R et du SQL.
• 1979 : ORACLE, premier SGBD-R.
➡ Historique de MERISE
• 1976 : Article de P. Chen (du MIT) sur le Modèle Entité-Association (MEA).
• 1978 : méthode MERISE (méthode Française) utilisant un modèle équivalent au MEA.
➡ Conclusion
• Dès la naissance du modèle relationnel (le MR), s’y est ajouté un modèle plus théorique mais aussi plus pratique (le MEA) pour la conception de la BD. Il y a donc 2 modèles qu’il faut comprendre.
1 - Brève présentation
CODD - MR - ORACLE - MERISE - MEA
➡
Les sigles de MERISE : MCD, MLD, MPD
•
MERISE définit 3 étapes dans sa méthode :
•
Celle du MCD : modèle conceptuel des données
•
Celle du MLD : modèle logique des données
•
Celle du MPD : modèle physique des données
➡
Représentation des modèles :
•
Un modèle peut être :
•
un diagramme (un schéma graphique)
•
du texte
•
du code
1 - Brève présentation
Modèles, diagramme, texte, code, MCD, MLD, MPD
5
Bertrand Liaudet // bliaudet.free.fr
➡
Langages associés aux MCD, MLD, MPD
•
A chaque modèle est associé 1 langage.
•
On fait un MCD en faisant un MEA
•
On fait un MLD en faisant un MR
•
On fait un MPD en codant du SQL
➡
Apprendre la syntaxe
•
Pour pratiquer correctement la méthode MERISE, il faut connaitre la syntaxe des 3 langages :
•
le MEA
•
le MR
•
le SQL
1 - Brève présentation
MCD-MEA, MLD-MR, MPD-SQL
➡
Règles de passage du MCD au MLD (du MEA au MR) :
•
Pour pratiquer correctement la méthode MERISE, il faut connaitre les règles de passage du MCD au MLD (du MEA au MR).
•
Il faut pouvoir appliquer ces règles dans le sens MCD vers MLD mais aussi dans le sens MLD vers MCD.
➡
Règles de passage du MLD au MPD (du MR au SQL) :
•
Une fois le MLD réalisé, il reste à le coder en SQL.
•
Pour cela, il faut connaître la syntaxe SQL (partie DDL du SQL : Data Définition Language).
•
A ce niveau, il faudra aussi avoir analysé l’ensemble des contraintes d’intégrité (on y reviendra).
1 - Brève présentation
Règles de passage du MCD au MR
7
Bertrand Liaudet // bliaudet.free.fr
➡ Cahier des Charges Fonctionnelles : CCF
• Le CCF est un document qui décrit les fonctionnalité du logiciel (du système) à réaliser ainsi que les contraintes associées.
➡ Les tableaux de données de la BD
• Toutes les données du système qui sont stockées dans la BD peuvent être présentées sous la forme de tableaux de données type tableaux excel.
➡ Du cahier des charges fonctionnel (CCF) aux tableaux de données
CCF <—> MCD-MEA <—> MLD-MR <—> MPD-SQL <—> Tableaux de données
• Tout le processus de conception de la BD consiste à passer du CCF à des tableaux de données.
• Il faut savoir le faire dans tous les sens.
1 - Brève présentation
CCF - Tableau de données - Circulation entre les modèles
➡ Méthode classique : Top - Down : CCF -> MCD -> MLD
• Etape 1 : syntaxe du MCD-MEA
• Etape 2 : du CCF au MEA
• Etape 3 : syntaxe du MLD-MR
• Etape 4 : du MCD au MLD
➡ Méthode Bottom-Up - version 1 : tableaux de données -> MLD -> MCD
• Etape 1 : syntaxe du MLD-MR
• Etape 2 : de données mal organisées avec des doublons vers des données bien organisées sans doublons.
• Etape 3 : des données bien organisées au MLD
• Etape 4 : syntaxe du MCD-MEA
• Etape 5 : du MLD au MEA
2 - Méthode d’apprentissage
CCF <—> MCD-MEA <—> MLD-MR <—> MPD-SQL <—> Tableaux de données
9
Bertrand Liaudet // bliaudet.free.fr
➡
Méthode Bottom-Up - version 2 :
- CCF -> MLD -> MCD - MPD -> MLD -> MCD
•
Etape 1 : syntaxe du MLD-MR
•
Etape 2 : du CCF au MLD et du MPD au MLD
•
Etape 3 : syntaxe du MCD-MEA
•
Etape 4 : du MLD au MEA
2 - Méthode d’apprentissage
CCF <—> MCD-MEA <—> MLD-MR <—> MPD-SQL <—> Tableaux de données
➡
Formation NEXT
•
2 journées. C’est court : on se concentre sur l’essentiel.
•
Méthode Bottum-Up - Version 2. On part du plus concret : les modèles proches du code (MLD-MR et MPD-SQL) pour remonter au plus abstrait : le MCD- MEA et les associations plusieurs à plusieurs.
•
Beaucoup d’exercices.
•
Journée 1 : Le MR - MLD, MPD
•
Journée 2 : Le MEA - MCD, MLD
2 - Méthode d’apprentissage
CCF <—> MCD-MEA <—> MLD-MR <—> MPD-SQL <—> Tableaux de données
Next Formation
MERISE
MLD - MR - MPD journée 1
11
MLD - MR
1 - Table seule
- Table Excel
- Table et clé primaire
- clé primaire - clé candidate - clé significative
- Valeur : unique, intelligible, NULL
- Représentations textuelle et graphique
- Représentation ensembliste
13 La table type : un tableau de données excel
• La première ligne d’un tableau Excel correspond à la description des caractéristiques de l’ensemble des lignes. C’est une description abstraite.
• Les lignes suivantes correspondent aux données concrètes.
Table des Employés
1 - MDL-MR : Table seule
Table excel
➡ Une table de base de données est un tableau lignes-colonnes.
• Les colonnes sont des attributs (=caractéristique = propriété = champ)
• Les lignes sont les tuples de la table (tuple = élément = individu = objet)
• La table est aussi appelée : relation = classe = ensemble = collection
➡ Représentation des données dans une table : la tables des employés
➡ Relation obligatoire entre une table et un attribut : relation « a un »
• un employé à 1 fonction et 1 seule, pas plusieurs.
• Un employé à 1 commission ou aucune (valeur NULL), pas plusieurs.
1 - MDL-MR : Table seule
Table et clé primaire
➡ Clé primaire
• La clé primaire est un attribut dont chaque valeur est unique et qui permet
d’identifier toute la ligne (de distinguer 2 lignes entre elles). Ici, c’est NE (Numéro d’Employé). On l’appelle aussi « identifiant ». Ca peut être un simple numéro qui augmente automatiquement au fur et à mesure de l’insertion de nouveaux tuples.
➡ Clé secondaire - clé candidate
• Il n’y a qu’une clé primaire dans une table. Une clé secondaire est un attribut qui pourrait être clé primaire alors qu’il y en a déjà une. On parle aussi de clé candidate
➡ Clé significative
• La clé significative, c’est l’attribut qui sert de clé dans le langage ordinaire. Dans le cas des employés, c’est leur nom. C’est une notion subjective et pas
mathématique ! Il faut chercher la clé significative pour mieux savoir de quoi on parle.
1 - MDL-MR : Table seule
clé primaire - clé candidate - clé significative
Bertrand Liaudet // bliaudet.free.fr 15
➡ 1 information par cellule : relation « a un »
• Une cellule ne contient jamais plusieurs informations.
• Un employé a 1 nom et un seul, 1 fonction, 1 date d’entrée, 1 salaire, une commission ou pas. En aucun cas plusieurs !
➡ Information directement intelligible
• L’information correspondant à une donnée doit être directement
intelligible : elle ne correspond pas à un calcul ou à un codage (pas de code spéciaux dans la BD).
➡ Valeur NULL
• Une valeur non renseignée prend la valeur NULL. C’est le seul code spécial dans une BD.
1 - MDL-MR : Table seule
Valeur : unique, intelligible, NULL
➡ Représentation textuelle du MLD-MR :
On peut aussi présenter le résultat sans les données. On parle alors de Modèle Relationnel. On écrit tout simplement :
Employe(NE, nom, fonction, dateEntrée, salaire, commission)
• La clé primaire est mise en premier et soulignée.
• Le nom de la table est mis de préférence au singulier, pour faciliter la transformation de la table en classe de P.O.O. Ce n’est pas toujours le cas dans ce PPT !
➡ Représentation graphique du MLD-MR :
Bertrand Liaudet // bliaudet.free.fr 17
1 - MDL-MR : Table seule
Représentations textuelle et graphique
Représentation ensembliste d’une table
Une table d’employés est un ensemble d’employés.
On peut le noter : Employes = {e1, e2, e3, e4, e5 } On peut le représenter graphiquement :
Cette représentation permet de montrer les éléments en plus de l’ensemble.
Elle ne montre pas les attributs. On peut les préciser avec le nom de l’ensemble.
1 - MDL-MR : Table seule
Représentation ensembliste
MLD-MR
2 - Relation entre 2 tables et clé étrangère
relation « 1 à plusieurs »
- Tables excel
- Représentation ensembliste - MR - Clé étrangère
- Pourquoi 2 tables ?
- MR : représentation graphique et graphe des tables Clé étrangère réflexive - Table de données
Clé étrangère réflexive - MR graphiques
Relation « a plusieurs » entre une table et un attribut
19
La table type : un tableau de données excel
• La première ligne d’un tableau Excel correspond à la description des caractéristiques de l’ensemble des lignes. C’est une description abstraite.
• Les lignes suivantes correspondent aux données concrètes.
Certaines colonnes permettent de passer d’une ligne à une autre ligne à une autre :
• le ND des Employés permet de passer au ND des
Départements.
• le NEchef des Employés permet de passer à une autre ligne
dans la table des Employés.
Table des Employés Table des Départements
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
Tables excel
Relations entre les objets de deux ensembles - 1er cas
Employes est un ensemble d’employés : Employes = {e1, e2, e3, e4, e5 }
Departements est un ensemble de départements : Departements = {d1, d2, d3}
On s’intéresse à la relation : « travailler dans » : les employés travailler dans un départements.
1.1 est une « cardinalité ». Elle veut dire que 1 employé travaille dans 1 département et 1 seul (minimum 1, maximum 1).
0.* veut dire que dans un département, il peut y avoir 0 ou plusieurs (et parfois 1 seul) employés.
On parle de relation « 1 à plusieurs » ou « 1 à * »
Bertrand Liaudet // bliaudet.free.fr 21
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
Représentation ensembliste
Représentation des données dans les tables : MLD-MR
Une relation « 1 à plusieurs » entre deux tables donne un attribut appelé : clé étrangère.
Définition : Une clé étrangère est un attribut qui fait référence à la clé primaire d’une autre table ou de sa propre table. Un tuple ainsi fait référence à un autre tuple dans une autre table ou dans sa propre table.
Dans notre exemple, le ND des employés (clé étrangère) fait référence au ND des départements (clé primaire):
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
MR - Clé étrangère
➡ Pourquoi 2 tables ?
• On aurait pu ajouter directement les attributs du département dans la table des employés.
➡ Cette solution pose deux problèmes :
•Elle viole le principe de non duplication : le triplet (10, Accounting, New York) apparaît 2 fois. Elle risque donc de conduire à des
incohérences.
•Elle ne permet pas d’avoir des départements vides.
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables Pourquoi 2 tables ?
Bertrand Liaudet // bliaudet.free.fr 23
➡
Pourquoi 2 tables ? Risque d’incohérence avec une table
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
Pourquoi 2 tables ?
MLD-MR
représentation graphique :
On met une flèche de la clé étrangère vers la clé primaire
MLD-MR textuel :
• EMPLOYE (NE, nom, fonction, dateEntree, salaire, commission, #ND)
• DEPARTEMENT (ND, nom, ville)
Les clés primaires sont en premier et soulignées.
Les clés étrangères sont en dernier et précédées d’un #.
Bertrand Liaudet // bliaudet.free.fr 25
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
MR : représentation graphique et graphe des tables
Graphe des tables :
• Le graphe des tables est un schéma dans lequel on ne met que les tables et les liens entre les tables.
• Les liens sont représentés par des flèches : une flèche traduit le lien d’une clé étrangère vers la clé primaire à laquelle elle fait référence.
• On représente autant que possible le graphe de façon arborescente, les flèches vers le bas :
graphe des tables :
EMPLOYE
DEPARTEMNT
On ne représente que le nom des tables et les flèches de la clé étrangère vers la clé primaire.
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
MR : représentation graphique et graphe des tables
• On veut modéliser la situation suivante : Chaque employé a un chef qui est lui aussi employé. Seul le président n’a pas de chef.
• Pour ça, on ajoute l’attribut NEChef dans la table employé. Le NEchef, c’est le numéro du chef de l’employé concerné.
• NEChef est une clé étrangère qui fait référence à NE. Un tuple fait référence à un autre tuple dans la même table
• Une clé étrangère réflexive est un attribut qui fait référence la clé primaire de sa table.
Bertrand Liaudet // bliaudet.free.fr 27
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
Clé étrangère réflexive - Table de données
MLD-MR
représentation graphique :
On met une flèche de la clé étrangère vers la clé primaire
MLD-MR textuel :
• EMPLOYE (NE, nom, fonction, dateEntree, salaire, commission, #ND, #NEchef)
• DEPARTEMENT (ND, nom, ville)
Les clés primaires sont en premier et soulignées.
Les clés étrangères sont en dernier et précédées d’un #.
MLD-MR
graphe des table :
EMPLOYES NEchef
DEPARTEMNTS
On précise le nom de l’attribut clé étrangère dans le cas d’un
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
Clé étrangère réflexive - MR graphiques
La situation :
On gère des produits qui ont un nom, une catégorie et un prix.
La table des produits est la suivante :
• PRODUIT (NP, nom, prix, catégorie)
La mauvaise solution :
Les produits ont aussi des photos qui les décrivent. Comment gérer ça ?
Un produit « a plusieurs » photos : on ne peut pas mettre « photo » comme attribut du produit :
• PRODUIT (NP, nom, prix, catégorie, photos) : ERREUR : le produit à plusieurs photos.
La bonne solution :
Il faut créer une table PHOTO, avec un id, une photo (le nom du fichier permettant de récupérer la photo, une URL par exemple) et une clé étrangère vers le produit
correspondant.
• PRODUIT (NP, nom, prix, catégorie)
• PHOTO (NPH, nomFichier, #NP)
Bertrand Liaudet // bliaudet.free.fr 29
2 - MLD-MR : Relation « 1 à plusieurs » entre 2 tables
Relation « a plusieurs » entre une table et un attribut
MLD-MR
3 - Valorisation du MLD-MR Analyse des
contraintes d’intégrité
- Valorisation
- Contrainte d’intégrité - Type, Clé primaire, Unique - Obligatoire, Modifiable, Enuméré
- Limites et contraintes, Valeur par défaut, Automatique - Calculé
- Dictionnaire
La valorisation consiste, pour chaque attribut, à préciser plusieurs caractéristiques :
1. Le type
2. S’il est clé primaire 3. S’il est unique
4. S’il est obligatoire (situation la plus courante) 5. S’il est modifiable
6. S’il est énuméré
7. S’il a une valeur par défaut
8. S’il a des limites et contraintes de valeurs
9. S’il est automatique (un auto-incrément est automatique) 10. Si c’est une référence à un fichier
11. S’il est calculé
Bertrand Liaudet // bliaudet.free.fr 31
3 - Valorisation du MLD-MR - Contraintes d’intégrité
Valorisation
•
Une contrainte d’intégrité est une précision qu’on ajoute qui permet de signaler que la valeur que prendra l’attribut devra conforme à sa définition.
•
Un attribut peut avoir plusieurs contraintes d’intégrité. Il en a toujours au moins une : son type.
•
Les caractéristiques de la valorisation sont des contraintes d’intégrité.
•
Les clés étrangères sont des contraintes d’intégrité particulière qu’on appelle « contrainte d’intégrité référentielle ».
3 - Valorisation du MLD-MR - Contraintes d’intégrité
Notion de contrainte d’intégrité
1 : Type (MPD-SQL : integer, varchar, etc.)
Entier, réel, booléen, date, caractère, chaîne de caractère, ref_fichier, ref_image, etc.
2 : Clé primaire (MPD-SQL : PRIMARY KEY)
Un attribut clé primaire est tel que sa valeur est toujours renseignée (elle est obligatoire) et qu’elle est différente pour tous les éléments de la table (elle est unique).
3 : Unicité - Clé secondaire (MPD-SQL : UNIQUE)
Un attribut unique est telle que sa valeur est différente pour tous les éléments de la table (elle est unique). Cette unicité ne concerne pas la valeur NULL : un attribut peut être unique mais non obligatoire.
Les clés primaires et secondaires sont uniques et obligatoires.
Par défaut, un attribut n’est pas unique.
Bertrand Liaudet // bliaudet.free.fr 33
3 - Valorisation du MLD-MR - Contraintes d’intégrité
Type, Clé primaire, Unique
4 : Obligatoire (MPD-SQL : Not NULL)
Un attribut obligatoire possède nécessairement une valeur. On dit aussi « not NULL ». Il faut distinguer entre la valeur « 0 » : c’est une possibilité de valeur entière ou réelle parmi les autres, et la valeur NULL. La valeur NULL signifie que la valeur n’est pas renseignée.
Par défaut un attribut est obligatoire.
5 : Modifiable
Une valeur d’attribut peut toujours être modifiée dans la base de données. Mais du point de vue du SI, un
attribut peut être « naturellement » modifiable (mon salaire), plutôt fixe (mon nom), non modifiable (le prix payé pour un produit). On va préciser surtout les attributs naturellement modifiables. Ca permet de réfléchir à la dynamique de la BD, donc on fonctionnement du système.
Par défaut, un attribut est plutôt non modifiable.
6 : Énuméré
Un attribut énuméré est un attribut dont les valeurs appartiennent à une liste prédéfinie. La liste de valeur peut être fixe ou modifiable.
Par défaut un attribut n’est pas énuméré.
7 : Automatique (MPD-SQL : auto-increment)
Un attribut automatique est un attribut qui reçoit automatiquement une valeur, qui ne sera pas la même dans tous les cas, mais sera fonction du contexte. Par exemple, un attribut « date de création » peut recevoir
automatiquement la date du jour au moment de la création. Un attribut clé primaire peut recevoir automatiquement une valeur grâce à un auto-incrément.
Par défaut un attribut n’est pas automatique.
3 - Valorisation du MLD-MR - Contraintes d’intégrité
Obligatoire, Modifiable, Enuméré
8 : Référence à un fichier
Une référence à un fichier c’est un nom de fichier. On utilise ça pour les images, les vidéos, les pdf : des donnée de grosse taille qui ne sont pas en format texte.
On peut donner un nom relatif ou un nom absolu. En général on donne un nom relatif et c’est l’application qui gère le chemin absolu.
9 : Limites et contraintes de valeurs
Cette contrainte sur le type qui précise la liste des valeurs possibles. Par
exemple, des bornes inférieures et supérieures. Par exemple : compris entre 10 et 100, ou différent de 0.
10 : Valeur par défaut (MPD-SQL : DEFAULT)
La valeur par défaut est une valeur donnée par défaut si aucune valeur n’est saisie.
Par défaut, un attribut n’a pas de valeur par défaut (sa valeur par défaut est NULL).
Bertrand Liaudet // bliaudet.free.fr 35
3 - Valorisation du MLD-MR - Contraintes d’intégrité
Limites et contraintes, Valeur par défaut, Automatique
11 : Calculé
Un attribut calculé est un attribut dont la valeur est calculée à partir d’informations qui sont dans la base de données. C’est donc un attribut qui duplique l’information : il y a donc un risque d’incohérences de données. En effet, si les données sources sont modifiées, il faudra mettre à jour l’attribut calculé sinon sa valeur ne sera plus valable.
Par défaut un attribut n’est pas calculé.
Il faut éviter les attributs calculés et toujours les identifier ! Exemple :
On peut ajouter à notre modèle :
le salaire total de l’employé = salaire+commission le nombre d’employés par départements
• EMPLOYE (NE, nom, fonction, dateEntree, salaire, commission, salaireTotal, #ND, #NEchef)
• DEPARTEMENT (ND, nom, ville, nbEmployes)
• => A EVITER !!!
Il faut éviter les attributs calculés et toujours les identifier !
3 - Valorisation du MLD-MR - Contraintes d’intégrité
Attribut calculé
• Le dictionnaire des attributs regroupe tous les attributs dans un tableau avec les éléments de valorisation.
• On regroupe les attributs par table pour faciliter la lecture.
• Exemple 1 : la BD des employés
Enuméré :
Fonction : 'SALESMAN', 'MANAGER', 'PRESIDENT'.
Bertrand Liaudet // bliaudet.free.fr 37
3 - Valorisation du MLD-MR - Contraintes d’intégrité
Dictionnaire
MLD-MR
4 - Vérifier son MLD-MR
- Jeu de test
Eviter toute forme de duplication
Jeu de données de test
•
Pour valider son MLD-MR, il faut créer un jeu de données qui permette de tester la BD.
Principes pour un jeu de données de test
•
Il faut faire attention à ce que les données soient significatives.
•
Il faut mettre des doublons quand c’est possible.
•
Il faut choisir les valeurs des clés étrangères de façon pertinentes.
•
Il faut choisir les dates de façon pertinente.
•
Pour le reste, on peut mettre une simple lettre et un numéro : par exemple, pour l’attribut nom, on peut mettre n1, n2, n3, etc. Et mettre au moins 2 fois n1 pour qu’il y ait un doublon.
Bertrand Liaudet // bliaudet.free.fr 39
4 - Vérifier son MLD-MR
Jeu de données de test
MPD-SQL
5 - SQL - DDL
- SQL-DDL - Foreign Key - Create Table
- Alter Table
Du MLD au SQL-DDL
•
A partir du MLD valorisé, on peut facilement écrire le code SQL, donc faire le MPD.
•
La syntaxe est celle du DDL des tables : elle relève d’un cours de SQL.
•
Le code est facile à lire, et peut s’écrire en prenant
exemple sur les codes existants, à condition de connaître les principes et les contraintes d’intégrité.
Clé étrangère : Foreign Key
•
Les foreign key peuvent être déclarées en même temps que les tables, dans le CREATE TABLE.
•
Les foreign key peuvent aussi être déclarées après la création des tables avec un ALTER TABLE.
Bertrand Liaudet // bliaudet.free.fr 41
5 - MPD-SQL-DDL
Code de création de la BD
SQL-DDL
CREATE TABLE employes (
NE integer primary key auto_increment, NOM varchar(10) not NULL,
JOB enum ('PRESIDENT','MANAGER', 'SALESMAN', 'CLERK', 'ANALYST') not NULL,
DATEMB date not NULL,
SAL float(7,2) not NULL, COMM float(7,2),
ND integer not null,
NEchef integer, foreign key(NEchef) references employes(NE) );
CREATE TABLE departements (
ND integer primary key auto_increment, NOM varchar(14) not NULL,
VILLE varchar(13) not NULL, );
ALTER TABLE employes ADD foreign key(ND) references departements(ND);
5 - MPD-SQL-DDL
Code de création de la BD
MLD-MR
6 - Comment modéliser ?
- Trouver les ensembles contenant les réalités les plus concrètes - Chercher les relations entre ces ensembles
- Eviter d’avoir plusieurs valeurs pour un attribut Eviter toute forme de duplication
43
1) Définir les ensembles contenant les réalités les plus concrètes
•
Par exemple, les employés, les départements, les lions, les buffles, etc.
•
Trouver des attributs qui caractérisent ces ensembles.
•
Vérifier que les attributs sont reliés au nom de la table par une
formule du type « a un » et pas plusieurs ! Sinon, créer une table pour cet attribut.
•
Définir la clé primaire.
•
Trouver une clé significative.
•
Eviter les attributs calculés ou préciser qu’ils le sont.
2) Chercher les relations entre ces ensembles : elles se traduisent par une clé étrangère.
•
Par exemple, les employés travaillent dans les départements : #ND dans la table des employés.
6 - MLD-MR - Comment modéliser ?
Etape 1 - première approche
1) Une valeur d’attribut ne doit contenir qu’une seule information
•
Une information par valeur d’attribut, jamais plusieurs.
•
Un produit a un nom et un prix, pas plusieurs.
•
Par contre, un produit peut avoir plusieurs photos le décrivant.
•
Si une valeur d’attribut peut contenir plusieurs valeur, l’attribut doit être transformé en table et cette table reliée à la table initiale par une clé étrangère.
2) Il faut éviter toute forme de duplication d’information
•
La duplication d’une information engendre des risques d’incohérences des données.
•
Il faut l’éviter.
•
Si on repère des couples, triplets, n-uplet de valeurs dupliquées dans une table, il faut les sortir de la table pour créer une autre table.
Bertrand Liaudet // bliaudet.free.fr 45
6 - MLD-MR - Comment modéliser ?
2 principes fondamentaux
MLD-MR
7 - Première série d’exercices
- Donateurs
- Billets de concert - Retail_DB
Les exercices sont dans un fichier séparé
4 exercices :
•
Donateurs
•
Billets de concert
•
Ventes
•
Retail_DB
Bertrand Liaudet // bliaudet.free.fr 47
7 - Exercices
Première série
MLD-MR
8 - Une difficulté du MLD-MR
Les clés primaires concaténées
Cas n°1
relation « plusieurs à plusieurs »
- Relation plusieurs à plusieurs
- Clé primaire concaténée, clé primaire constituée de clés étrangères
Relations entre les objets de deux ensembles: 2ème cas
Soit L un ensemble de lions : L = {l1, l2, l3, l4}
Soit B un ensemble de buffles : B = {b1, b2, b3, b4}
On s’intéresse à la relation : « manger ». Les lions mangent les buffles.
0.* du côté de L veut dire que 1 lion peut manger 0 ou plusieurs buffles.
0.* du côté de G veut dire que 1 buffle peut être mangé par 0 ou plusieurs lions.
On parle de « relation plusieurs à plusieurs ».
Bertrand Liaudet // bliaudet.free.fr
8 - MLD-MR - Relation « * à * »
49
On peut décrire l’ensemble des relations comme un ensemble M de couples : M = { (l1, b1), (l2, b1), (l2, b2), (l3, b2) , (l4, b2) , (l4, b3) }
On peut décrire l’ensemble des relations comme un comme un tableau à deux colonnes :
Manger :
Id_Lion Id_Buffle
l1 b1
l2 b1
l2 b2
l3 b2
l4 b2
l4 b3
Le tableau « manger » va contenir les « id » des lions et des buffles. Cette table est une table de liaison. Elle peut aussi contenir des attributs supplémentaires.
8 - MLD-MR - Relation « * à * »
MLD-MR textuel :
• LIONS (idLion nom, dateNaissance)
• BUFFLES (idBuffle, nom, dateNaissance)
• MANGER(#idLion, #idBuffle)
Les clés primaires sont en premier et soulignées.
Les clés étrangères sont en dernier et précédées d’un #
Clé primaire constituée de clé(s) étrangère(s)
La clé primaire de la table MANGER est constituée des clés étrangères des tables LIONS et BUFFLES. On ne lui met pas une clé primaire simple avec un id unique.
Bertrand Liaudet // bliaudet.free.fr 51
8 - MLD-MR - Relation « * à * »
clé primaire constituée de clé(s) étrangère(s)
MLD-MR
représentation graphique :
MLD-MR textuel :
• LIONS (idLion nom, dateNaissance)
• BUFFLES (idBuffle, nom, dateNaissance)
• MANGER(#idLion, #idBuffle)
Les clés primaires sont en premier et soulignées.
Les clés étrangères sont en dernier et précédées d’un #
On met une flèche des clés étrangères vers les
clés primaires
MLD-MRgraphe des table :
MANGER
LIONS BUFFLES
On ne représente que le nom des tables et les flèches des clés étrangères vers les clés primaires.
8 - MLD-MR - Relation « * à * »
MR textuel et graphique. Graphe des tables
MLD-MR
9 - Une difficulté du MLD-MR Les clés primaires concaténées
Cas n°2 :
relation « plusieurs à plusieurs » avec des attributs
- Relation plusieurs à plusieurs
- Clé primaire concaténée constituée d’une clé étrangère et d’une date
53
Relations entre les objets de deux ensembles: 3ème cas
Les relations peuvent porter des attributs.
Les lions attaquent les buffles. Un lion peut attaquer plusieurs fois le même buffle. On enregistre la date et heure de l’attaque.
On peut décrire l’ensemble des relations comme un comme un tableau à trois colonnes : Attaquer :
Le tableau « Attaquer » va contenir les « id » des lions et des buffles et aussi la date et heure de chaque attaque.
On parle de « relation plusieurs à plusieurs » porteuse d’attributs.
Id_Lion Id_Buffle Date_heure
l1 b1 1/06-11h
l2 b1 1/06-11h15
l3 b1 1/06-11h15
l2 b2 2/06-14h30
l3 b2 2/06-14h45
l4 b3 1/06-10h
l1 b1 3/06-12h
9 - MLD-MR - Relation « * à * » avec attributs
MLD-MR textuel :
• LIONS (idLion nom, dateNaissance)
• BUFFLES (idBuffle, nom, dateNaissance)
• ATTAQUER(#idLion, date_heure, #idBuffle,) Les clés primaires sont en premier et soulignées.
Les clés étrangères sont en dernier et précédées d’un #
Clé primaire constituée de clé(s) étrangère(s)
La clé primaire de la table ATTAQUER est constituée la clé étrangères de la table LIONS et de la date. En effet, à une date donnée, un lion ne mange qu’un seul buffle ! Par contre à une date donnée, un buffle peut avoir plusieurs lions sur le dos !
La détermination de cette clé primaire, c’est LA difficulté du modèle relationnel.
Bertrand Liaudet // bliaudet.free.fr 55
9 - MLD-MR - Relation « * à * » avec attributs
clé primaire constituée de clé(s) étrangère(s)
MLD-MR
représentation graphique :
MLD-MR textuel :
• LIONS (idLion nom, dateNaissance)
• BUFFLES (idBuffle, nom, dateNaissance)
• ATTAQUER(#idLion, dateHeure, #idBuffle)
A noter la clé primaire de ATTAQUER : #idLion, dateHeure
On met une flèche des clés étrangères vers les
clés primaires
MLD-MRgraphe des table :
ATTAQUER
LIONS BUFFLES
On ne représente que le nom des tables et les flèches des clés étrangères vers les clés primaires.
4 - MLD-MR - Relation « * à * » avec attributs
MLD-MR textuel et graphique. Graphe des tables
MLD-MR
10 - Deuxième série d’exercices
- Donateurs - version 2 - Maison de disques
- La bibliothèque - Les commandes - La cinémathèque
57
Les exercices sont dans un fichier séparé
5 exercices :
•
Donateurs
•
Maison de disques
•
Bibliothèque
•
Commandes
•