Vous êtes sur la page 1sur 13

Bases de données

(Séances 6-7 : MERISE)

Abdelghani MAZOUZI
Le CNAM, le 25/05/2018
Contenu de la séance
● Modèle logique de données MLD
● Passage de MCD au MLD
● Modèle physique du données MPD
● Passage du MLD au MPD
● TD
● TP
Modèle logique de données MLD 
● Tables, colonnes
Analyse des besoins
Règles de gestion,
● Clés primaires dictionnaires de données

● Clés étrangères
MCD
Entités, associations, cardinalités

MLD
Tables, colonnes
Clés prmaires, clés étrangères

MPD
MLD : Passage du MCD au MLD 
● Cardinalités un [0,1 ou 1,1] à plusieurs [0,n ou 1,n]
– Les deux entité deviennent des tables
– Les identifiants deviennent des clés primaires
– Ajout clé étrangère coté [0,1 ou 1,1]
0.n 1.1
Client passer Commande
ClientID CommandeID
Nom Date
Prénom Total
Age MCD

Client Commande
ClientID CommandeID
Nom Date
Prénom Total
Age
MLD ClientID
MLD : Passage du MCD au MLD 
● Cardinalités plusieurs [0,n ou 1,n] à plusieurs [0,n ou 1,n]
– L'association est transformée en table ayant une clé primaire composée
de deux clés primaires des autres tables attachées.

Cours Suivre 1.n Etudiant


1.n
CoursID ---------------- EtudiantID
Matiere salle Nom
... Prenom
MCD

Cours Suivi_cours Etudiant


CoursID EtudiantID EtudiantID
Matiere CoursID Nom
... salle Prenom

MLD
MLD : Passage du MCD au MLD 
● Cardinalités un [0,1 ou 1,1] à un [0,1 ou 1,1]
– La clé primaire est de coté de l'entité émettrice de la contraintes
d'intégrité.

Salarie 1.0 1.1 Badje


SalarieD porter
Nom AdresseID
Prenom date_validite
MCD

Salarie Badje
SalarieID
Nom BadjeID
Prenom date_validite
SalarieID

MLD
Modèle physique de données MPD 
● Implémenter le modèle dans un
Analyse des besoins
SGBD Règles de gestion,
dictionnaires de données

● Utilisation de langage SQL (CREATE


TABLE ...) MCD
● Utilisation des types de données (int, Entités, associations, cardinalités

varchar, date...)
● Utilisation des outils (mysql MLD
Tables, lignes, colonnes

workbench...) Clés prmaires, clés étrangères

● Implémentation graphique ou par


script SQL MPD
Implémentation dans un SGBD
MLD : Passage du MLD au MPD 

Client Commande
ClientID CommandeID
Nom Date
Prenom Total
Age
MLD ClientID

Client Commande
ClientID int CommandeID int
Nom varchar(30) Date date
Prenom varchar(30) Total int
Age int MPD ClientID int
MPD : Représentation graphique
MPD : Script SQL
CREATE TABLE IF NOT EXISTS `cours` ( CREATE TABLE IF NOT EXISTS `enseignant` (
`coursID` int(11) NOT NULL AUTO_INCREMENT, `enseignantID` int(11) NOT NULL AUTO_INCREMENT,
`enseignantFK` int(11) DEFAULT '0', `nom` varchar(30) DEFAULT NULL,
`salleFK` int(11) DEFAULT '0', `prenom` varchar(30) DEFAULT NULL,
`creneauFK` int(11) DEFAULT '0', `adresse` varchar(200) DEFAULT NULL,
`matiere` varchar(30) NOT NULL, `telephone` varchar(30) DEFAULT NULL,
PRIMARY KEY (`coursID`), `mail` varchar(30) DEFAULT NULL,
KEY `enseignantFK` (`enseignantFK`), `statut` varchar(30) DEFAULT NULL,
KEY `salleFK` (`salleFK`), `annees_enseignement` smallint(6) DEFAULT '0',
KEY `creneauFK` (`creneauFK`) `nb_annees_enseignement` smallint(6) DEFAULT '0',
) ENGINE=InnoDB DEFAULT CHARSET=latin1; PRIMARY KEY (`enseignantID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `creneau` (
`creneauID` int(11) NOT NULL AUTO_INCREMENT,
`date_crebeau` date NOT NULL, CREATE TABLE IF NOT EXISTS `etudiant` (
`heure_debut` time NOT NULL, `etudiantID` int(11) NOT NULL AUTO_INCREMENT,
`heure_fin` time NOT NULL, `nom` varchar(30) DEFAULT NULL,
PRIMARY KEY (`creneauID`) `date_naissance` date DEFAULT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=176 DEFAULT `adresse` varchar(100) DEFAULT NULL,
CHARSET=latin1; `telephone` varchar(30) DEFAULT NULL,
`mail` varchar(30) DEFAULT NULL,
`cursus_suiviFK` int(11) DEFAULT NULL,
PRIMARY KEY (`etudiantID`),
CREATE TABLE IF NOT EXISTS `cursus_suivi` (
KEY `cursus_suiviFK` (`cursus_suiviFK`)
`cursus_suiviID` int(11) NOT NULL AUTO_INCREMENT,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
`niveau` varchar(30) DEFAULT NULL,
`intitule` varchar(30) DEFAULT NULL,
PRIMARY KEY (`cursus_suiviID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT
CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `salle` (
`salleID` int(11) NOT NULL AUTO_INCREMENT,
`code_salle` varchar(20) NOT NULL,
CREATE TABLE IF NOT EXISTS `etudiant_cours` (
`nb_places` int(11) NOT NULL,
`etudiantFK` int(11) NOT NULL,
PRIMARY KEY (`salleID`)
`coursFK` int(11) NOT NULL,
`presence` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`etudiantFK`,`coursFK`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;
KEY `coursFK` (`coursFK`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
TD : Passage du MCD au MLD 
● Transformer le MCD en MLDs
0.n 1.1
Facteur distribue Colis

FactureID ColisID
Nom Destinataire
Prénom expéditeur
MCD
TD : Passage du MCD au MLD 
● Transformer le MCD en MLDs
0.n 1.1
Client passer Commande

ClientID
Nom NumCommande
Prénom DateCommande
Tel
1.n

Produit
concerner
CodeProduit
Prix 0.n
Designation

MCD
TP : Gestion de réservation hôtelière

Réaliser un MCD, un MLD et un MPD en fonction des règles de gestion


suivantes :
● La modélisation concerne un seul hôtel
● Il y a plusieurs catégories de chambres en fonction de la superficie, le
nombre d'occupant max et le type de lits
● Pour réserver, un client doit fournir (nom, prénom, téléphone,
adresse, période souhaité et catégorie de la chambre)
● Une réservation concerne un et un seul client
● Un client peut réserver plusieurs chambre à la fois

Vous aimerez peut-être aussi