• Aucun résultat trouvé

NEXT Formation - MERISE - Journée 1

N/A
N/A
Protected

Academic year: 2022

Partager "NEXT Formation - MERISE - Journée 1"

Copied!
58
0
0

Texte intégral

(1)

Next Formation

MERISE

Conception de la BD 2 journées

1

(2)

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)

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

(4)

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)

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

(6)

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)

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

(8)

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)

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

(10)

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

(11)

Next Formation

MERISE

MLD - MR - MPD journée 1

11

(12)

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)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

(24)

Pourquoi 2 tables ? Risque d’incohérence avec une table

2 - MLD-MR : Relation « 1 à plusieurs  » entre 2 tables

Pourquoi 2 tables ?

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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é

(33)

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

(34)

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é

(35)

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

(36)

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é

(37)

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

(38)

MLD-MR

4 - Vérifier son MLD-MR

- Jeu de test

Eviter toute forme de duplication

(39)

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

(40)

MPD-SQL

5 - SQL - DDL

- SQL-DDL - Foreign Key - Create Table

- Alter Table

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

MLD-MR

7 - Première série d’exercices

- Donateurs

- Billets de concert - Retail_DB

(47)

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

(48)

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

(49)

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

(50)

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 « * à * »

(51)

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)

(52)

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-MR

graphe 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

(53)

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

(54)

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

(55)

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)

(56)

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-MR

graphe 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

(57)

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

(58)

Les exercices sont dans un fichier séparé

5 exercices :

Donateurs

Maison de disques

Bibliothèque

Commandes

Cinémathèque

10 - Exercices

Deuxième série

Références

Documents relatifs

Quand on a plus d’une clé étrangère dans une table, il faut se demander si la concaténation de plusieurs attributs de la table n’est pas clé primaire de la

Quand on a plus d’une clé étrangère dans une table, il faut se demander si la concaténation de plusieurs attributs de la table n’est pas clé primaire de la

Règle 2 – Association « 1 à plusieurs » : la clé primaire de l’entité côté plusieurs devient attribut clé étrangère dans la table issue de l’entité coté 1. Dans le

La bibliothèque souhaite pouvoir faire des statistiques sur la pratique des abonnés (nombre de livres empruntés par an, répartition des emprunts par genre, nombre d’emprunts par

Mettre Mettre à Mettre Mettre à à à jour jour jour en jour en en en cascade cascade cascade les cascade les les les champs champs champs champs correspondants

Chapeau souvent conique ou mamelonné (parfois plus plat), souvent vergeté, rimeux, squamuleux (parfois lisse).. Odeur spermatique

Donc le chiffrement n’est pas déterministe. Le texte chiffré dépend non seulement du texte clair mais aussi du nombre aléatoire k ... On peut utiliser ce système sans introduire

Cliquer sur le lien « Tableau de bord », puis aller dans l’onglet « Cours » pour voir la liste des cours dont vous êtes gestionnaire. Cliquer sur le cours que vous voulez éditer..