Système d’information
Pr DAOUDI [email protected]
Plan du cours
I. Système de Gestion de Base de Données (SGBD)
– Introduction Générale
– Modélisation des données
• Merise
• UML
– Modèle Logique de Données (MLD)
Pr. DAOUDI Imane 2018-2019 2
�Qu’est qu’une base de données??
Introduction générale
Pr. DAOUDI Imane 2018-2019 4
� Une base de données
� Ensemble de données modélisant les objets d'une partie du monde réel et servant
de support à une application informatique
Introduction générale
� Ensemble de données interrogeable par le contenu
• Exemple :
les produits de prix >100 DH
� Ensemble de données interrogeable à partir des relations entre données
• Exemple:
Les produits commandés par un client habitant CasablancaLes produits commandés par un client habitant Casablanca
Pr. DAOUDI Imane 2018-2019 5
� Une base de données (autre définition)
un ensemble structuré de données (1) enregistrées sur des supports
accessibles par l’ordinateur (2) pour satisfaire simultanément
Introduction générale
accessibles par l’ordinateur (2) pour satisfaire simultanément
plusieurs utilisateurs (3) de manière sélective (4) en un temps
opportun (5).
– (1) : Organisation et description de données
– (2) : Stockage sur disque
– (3) : Partage des données
– (4) : Confidentialité
– (5) : Performance
Pr. DAOUDI Imane 2018-2019 6
�Qu’est qu’un SGBD?
Introduction générale
Pr. DAOUDI Imane 2018-2019 7
� SGBD= Système de Gestion de Base de données
DATA BASE MANAGEMENT SYSTEM (DBMS)
� Ensemble de logiciels systèmes permettant de gérer (d'insérer,
Introduction générale
� Ensemble de logiciels systèmes permettant de gérer (d'insérer,
modifier et de rechercher des données) une BD partagée par plusieurs
utilisateurs simultanément
Programme 1Base de données
Pr. DAOUDI Imane 2018-2019 8
Programme 2
Programme 3
SGBDFichier 1
Fichier 2
Fichier 3
SGBD externe
� Un SGBD est composé de :
– Gestionnaire de fichier
– SGBD interne
– SGBD externe
Gestion de données stockées dans les fichiers: gestion des liens entre données, placement des données dans des fichiers
Introduction générale
SGBD externe
SGDB interne
Gestionnaire
de fichiers
MS
PA
– SGBD externe
Mise en forme, présentation des données aux programmes d’applications, et aux
TerminauxP.A=Programmes d'applicationM.S=Mémoires Secondaires
Pr. DAOUDI Imane 2018-2019 9
Mémoire secondaire adressable : recherche par le contenu
et aux utilisateurs
Modélisation des données: Merise
Pr. DAOUDI Imane 2018-2019 10
Ecrire de façon formelle les données d’une base de données. Il s'agit donc d'une représentation des données, faci lement
compréhensible, permettant de décrire la base de d onnées à l'aide
Objectif du MCD
Modélisation des données: Merise
� Il est à la base de tous les SGBD dits relationnels (Access, Oracle, DB2…) qui sont les plus utilisés actuellement dans les entreprises.
� Il est généralement représenté à l’aide du formalisme «entités-associations » sous
la forme de :
compréhensible, permettant de décrire la base de d onnées à l'aide d'entités.
la forme de :
ENTITES, ASSOCIATIONS et ATTRIBUTS.
Pr. DAOUDI Imane 2018-2019 11
� Une entité concrète possède une existence physique : client, équipement, et produit
Concept concret ou abstrait (un fait, un moment…) id entifié du monde réel caractérisé par un nom et une liste de p ropriétés.
Entité
Modélisation des données: Merise
� Une entité concrète possède une existence physique : client, équipement, et produit
� Une entité abstraite a une existence conceptuelle : une transaction, un tarif, l’annulation
d’un vol d’avion
� Exemples
� Le client Jean Dupond est une entité concrète
� La commande COM0001 est une entité abstraite
� L’entité Personne(nom, prénom), et l’entité Voiture(nom , puissance fiscale) ne peuvent pas
être groupés en une même entité car ils ne partagent pas leurs propriétés
Pr. DAOUDI Imane 2018-2019 12
Client
L’ entité se représente par un cadre contenant le nom de l’entité
� Est un élément d’une entité :
Propriété d’une entité ou d’une association caracté risée par un nom et un type élémentaire.
Attribut (Entité)
Modélisation des données: Merise
� Est un élément d’une entité :
– a un nom unique,
– permet de mémoriser une valeur,
– doit avoir un sens (donc une valeur) pour chacune des occurrences de l’entité.
� Exemple
Client Entité
Pr. DAOUDI Imane 2018-2019 13
Client
N_clientNomPrénom
Entité
Attributs
Représentation graphique d’une entité comportant tr ois attributs
Règle 1
Règles concernant les attributs
Modélisation des données: Merise
Un attribut ne peut en aucun cas être partagé par p lusieurs entités/associations.
Un attribut est une donnée élémentaire, ce qui excl ut des données calculées ou dérivées.
Règle 2
Pr. DAOUDI Imane 2018-2019 14
Une entité et ses attributs doivent être cohérents entre eux (i.e. ne traitent qu’un seul sujet).
Règle 3
Elément particulier d’une entité, identifiable de f açon unique (instance)
Occurrence: entité
Modélisation des données: Merise
� Deux occurrences de l’entité ne peuvent avoir la même valeur d’identifiant.
� Exemple
L’entité client1 dont le N° est 06464M est une
occurrence de l’entité clientoccurrence de l’entité client
Pr. DAOUDI Imane 2018-2019 15
Client 1
064646MDupontFrank
23 BD zola
Client 2
012646MRevaudjerome
2 BD alpha
Attribut ou groupe d’attributs permettant d’identif ier chaque occurrence d’une entité.
Identifiant: entité
Modélisation des données: Merise
� Exemple
Client
Chaque entité possède au moins un identifiant, éven tuellement formé de plusieurs attributs.
Règle 4
Pr. DAOUDI Imane 2018-2019 16
Client
N°clientNomPrénomAdresse
Identifiant simple
� identifiant : entité (suite)
� Il existe 2 types d’identifiants: simple et composé
Modélisation des données: Merise
� Un identifiant est simple s’il est formé d’un seul attribut
� Un identifiant est composé s’il est formé de plusieurs attributs,
� Exemple:
� Entité avec identifiant composé
Pr. DAOUDI Imane 2018-2019 17
Appartement
N°ApptAdresse
Superficie
Identifiant composé
Lien logique entre entités dont le type est défini par un verbe et une liste éventuelle de propriétés
Association
Modélisation des données: Merise
� On appelle collection de l’association l’ensemble des entités qu’elle relie.
Un attribut peut être placé dans une association un iquement
Règle 5
Pr. DAOUDI Imane 2018-2019 18
Un attribut peut être placé dans une association un iquement lorsqu’il dépend de toutes les entités liées par l’ association.
� Association : exemple
Nom de l’association
Modélisation des données: Merise
Client
N°clientNom
PrénomAdresse
Commande
N°CommandeDate livraison
Total commande
Nom de l’association
Extrémités de
Effectuer
Pr. DAOUDI Imane 2018-2019 19
Extrémités de l’association
collection de l’association
� Association : identifiant
� Il est implicite !
– C’est un ensemble composé des identifiants de la collection de l’association.
Règle 6
Modélisation des données: Merise
� Exemple:
– l’identifiant de l’association « effectuer » est le couple (N° client, N° commande)
Client Commande
La concaténation des identifiants des entités liés à une association constitue l’identifiant de cette association (cet i dentifiant n’est pas
mentionné sur le modèle (il est implicite).
Pr. DAOUDI Imane 2018-2019 20
Client
N°clientNom
PrénomAdresse
Commande
N°CommandeDate Commande
Date livraisonTotal commande
Effectuer
� Association : cardinalités (1)
Contrainte inscrite à chaque extrémité d’une associ ation comportant un couple de valeurs (min-max) qui établit, pour chaqu e entité de
l’association, le nombre minimum et maximum d’occur rences d’une association auxquelles elle peut participer
Modélisation des données: Merise
� Exemple
– Un client peut effectuer de 0 à n commande, mais une commande ne peut être
effectuer que par un seul client
Client Commande
Pr. DAOUDI Imane 2018-2019 21
Client
N°clientNom
PrénomAdresse
Commande
N°CommandeDate Commande
Date livraisonTotal commande
(0,n) (1,1)Effectuer
� Association : cardinalités (2)
Règle 7: L’expression de la cardinalité est obligat oire pour chaque patte d’une association
Règle 8: Une cardinalité minimal est toujours 0 ou 1, et une cardinalité
Règle 7&8
Modélisation des données: Merise
� Remarques– Une cardinalité maximale de 0 n’a pas de sens– Si une cardinalité maximale est connu et vaut 2, 3 ou plus, alors nous considérons
qu’elle est indéterminée et vaut n– Les cardinalités minimales qui valent plus de 1 sont modélisées par 1
� Les seules cardinalités admises sont:
cardinalités signification
Règle 8: Une cardinalité minimal est toujours 0 ou 1, et une cardinalité maximale est toujours 1 ou n
Pr. DAOUDI Imane 2018-2019 22
cardinalités signification
0,1 Au plus un
1,1 (ou 1) Un seul
0,n (ou *) Un nombre indéterminé
1,n Au moins un
� Association : cardinalités (2)
Une extrémité sans contrainte aura
Modélisation des données: Merise
Client
N°clientNom
Prénom
Commande
N°CommandeDate Commande
Date livraison
Une extrémité sans contrainte aura pour cardinalité (0,n)
(0,n) (0,n)Effectuer
Pr. DAOUDI Imane 2018-2019 23
PrénomAdresse
Date livraisonTotal commande
� Règles absolues!! (1)
Une association binaire de cardinalité minimale et
Modélisation des données: Merise
Une association binaire de cardinalité minimale et maximale égale à un ne peut en aucun cas porter de
propriétés !
Entité1
N°Entité 1Nom Entité 1
Prénom Entité 1
(1,1)
Entité2
N°Entité 2Nom Entité 2
Prénom Entité 2
Association(0,n)Attribut
Pr. DAOUDI Imane 2018-2019 24
Prénom Entité 1….
Prénom Entité 2etc
Faux
� Règles absolues!! (2)
Une association binaire ne peut en aucun cas porter
Modélisation des données: Merise
Une association binaire ne peut en aucun cas porter des cardinalités 1,1 des deux extrémités !
Entité1
N°Entité 1Nom Entité 1
Prénom Entité 1
(1, 1) (1,1)
Entité2
N°Entité 2Nom Entité 2
Prénom Entité 2
AssociationAttribut
Pr. DAOUDI Imane 2018-2019 25
Prénom Entité 1…
Prénom Entité 2…
Faux
� Les associations plurielles
Les différents types d’associations
Personne
NomPrénom
Être l’auteurLivre
Titre Editeur(0,n) (1,n)
Deux mêmes entités peuvent être plusieurs fois en a ssociations
Pr. DAOUDI Imane 2018-2019 26
PrénomAdresse
Editeur
Avoir critiqué(0,n)(0,n)
� Les associations réflexives
Les différents types d’associations
(0,n)Personne
N°Nom
Être parent
Parent
Une association réflexive est une association relia nt des occurrences de la même entité
Pr. DAOUDI Imane 2018-2019 27
(1,n)
NomPrénomAdresse
Enfant
� Les associations ternaires
Une association ternaire est une association qui dé crit un lien sémantique entre trois entités
Les différents types d’associations
(0,n) (0,n)B
idB
A
idA
C
(0,n)
lien sémantique entre trois entités
AssociationAttribut
Difficile à gérer en pratique !!!
Il faut essayer d’en avoir le moins possible
Pr. DAOUDI Imane 2018-2019 28
idC
� Les associations ternaires
Les différents types d’associations
(0,n) (0,n)Salle
N° SalleCapacité
Créneau horaire
N° CréneauDateHeure de début
Film
(0,n)
Projeter
Pr. DAOUDI Imane 2018-2019 29
N° FilmTitreDurée
� Les associations ternaires: décomposition
� On remplace l’association ternaire (ou n-aire) par une entité et on lui attribut un
identifiant
Les différents types d’associations
identifiant
� On crée des associations binaires entre la nouvelle entité et toutes les autres
entités de la collection de l’ancienne association
� La cardinalité de chacune des associations binaires crées est 1,1 du côté des
entités créé et 0,n ou 1,n du côté des entités de la collection de l’ancienne
association
Pr. DAOUDI Imane 2018-2019 30
� Les associations ternaires
Créneau horaire
N°créneauDate
SalleN°SalleCapacité
0,n1,n
Les différents types d’associations
Film
H de début
N°FilmTitreDurée
Créneau h
N°créneauDateHeure de début
0,n
0,n
1,1Projection 0,n
N°projectionTarif
1,1
Projeter
Avoir lieu dans
Pr. DAOUDI Imane 2018-2019 31
Salle
N°SalleCapacité
FilmN°FilmTitreDurée
1,1
0,n
Concerner
� Règles portant sur les noms
Dans un modèle entités-associations, le nom d’une e ntité, d’une association, ou d’un attribut doit être unique
Règles de bonne formation d’un MCD
Personne
N° PersonneNom Prénom
Enseignant
N° EnseignantNom Prénom
Etudiant
N° EtudiantNom Prénom
Fusionner
Client Facture
Pr. DAOUDI Imane 2018-2019 32
Client
N° clientNom PrénomAdresse de facturation
Facture
N° FactureDateAdresse de facturation
Correspondre0,n 0,n
� Règles de normalisation des attributs
un attribut multiple doit être remplacé par une ass ociation et une entité supplémentaires
Règles de bonne formation d’un MCD
Employé
N°EmployéNom Prénom
Employé
N° EmployéNom PrénomAdresse principaleAdresse secondaireN_tél domicile principaleN_tél domicile secondaire
Normaliser
Adresse
N°adresseCode postalVilleHabiter
1,n
1,n
Pr. DAOUDI Imane 2018-2019 33
PrénomN_tél domicile secondaireN_portable
Num_tél
N°num téltype
Posséder
1,n
1,n
� Règles de normalisation des attributs
Un attribut est une donnée élémentaire, ce qui excl ut des données calculées ou dérivées
Règles de bonne formation d’un MCD
Commande
N° commandeDateMontant total
Article
N° ArticleDésignationPrix unitaire
ContenirQuantité
0,n 0,n
Pr. DAOUDI Imane 2018-2019 34
� Règles de fusion/ suppression entités/associations
Il faut factoriser les entités quand c’est possible
Règles de bonne formation d’un MCD
Généraliste
N°généralisteNomPrénomAdresse
Dentiste
N°dentisteNomPrénomAdresse
Ophtalmologue
N°OphtalmologueNomPrénomAdresse
Fusionner
Pr. DAOUDI Imane 2018-2019 35
MédecinN°médecinNomPrénomAdresseSpécialité
� Règles de fusion/ suppression entités/associations
Il faut factoriser les entités quand c’est possible , mais l’introduction d’un attribut supplémentaire n’est pas toujours néc essaire
Règles de bonne formation d’un MCD
Ecrivain
N°EcrivainNomPrénomAdresse
Abonné
N°Ecrivain Livre
Ecrire0,n
0,n
Personne
N°PersonneNomPrénom
Livre
N°LivreTitreEditeur
Ecrire
0,n 0,n
Pr. DAOUDI Imane 2018-2019 36
N°EcrivainNomPrénomAdresse
Livre
N°LivreTitreEditeur
Emprunter0,n
0,n
PrénomAdresse
Editeur
Emprunter0,n 0,n
� Règles de fusion/ suppression entités/associations
Il faut factoriser les associations quand c’est pos sible
Joueur de Tennis Joueur de Tennis
Règles de bonne formation d’un MCD
N°joueurNomPrénomGenreClassement
Jouer en tant que joueur 1
Jouer en tant que joueur 2
Jouer en tant que coéquipier
1
Jouer en tant que coéquipier
1,1
1,1
0,1
0,1N°joueurNomPrénomGenreClassement
JouerType
0,n
Pr. DAOUDI Imane 2018-2019 37
Match de Tennis
N°MatchType
que joueur 1 que joueur 21 2
0,n 0,n
0,n 0,n
Match de Tennis
N°MatchType
0,n
� Règles de fusion/ suppression entités/associations
Il faut aussi se poser la question de l’intérêt de l’association quand les cardinalités maximale sont toutes de 1
Règles de bonne formation d’un MCD
FournisseurN°fournisseurNomPrénomAdresse
Travailler chez
1,1
Fusionner
FournisseurN°fournisseurNom
Pr. DAOUDI Imane 2018-2019 38
ContactN°contactNom contactN°tél contact
chez
1,1
NomPrénomAdresseNom contactN°tél contact
Entités
Règle 1
A retenir….
Règle 1 Toute entité présente dans un MCD doit obligatoirement comporter un identifiant
Règle 2 Pour chaque occurrence d’une entité, chaque attribut ne peut prendre qu’une valeur
Règle 3 Un attribut ne peut en aucun cas être partagé par plusieurs entités/associations
Règle 4 Un attribut est une donnée élémentaire, ce qui exclut des données calculées ou dérivées
Pr. DAOUDI Imane 2018-2019 39
dérivées
Règle 5 Deux occurrences de l’entité ne pourraient avoir la même valeur pour leur identifiant
Associations
Règle 6 Un attribut peut être placé dans une association uniquement lorsqu’il dépend de toutes les entités liées par l’association
A retenir….
de toutes les entités liées par l’association
Règle 7 La concaténation des identifiants des entités liés à une association constitue l’identifiant de cette association (cet identifiant n’est pas mentionné sur le modèle (il est implicite).
Règle 8 L’expression de la cardinalité est obligatoire pour chaque patte d’une association
Règle 9 Une cardinalité minimal est toujours 0 ou 1 est une cardinalité maximale est toujours 1 ou n
Pr. DAOUDI Imane 2018-2019 40
toujours 1 ou n
Règle 10 Une association binaire de cardinalité (1,1) ne peut en aucun cas porter de propriétés !
Règle 11 Une association binaire ne peut en aucun cas porter des cardinalités 1,1 des deux extrémités !
Exercice de modélisation
• Un éditeur souhaite installer une base de données pour mémoriser lesinformations suivantes:
• les livres sont identifiés par leur numéro ISBN. Un livre possède un titre et un prixde vente. Il est écrit par un ou plusieurs auteurs.
Chaque livre est tiré en une ou plusieurs éditions, datées et identifiées par leur• Chaque livre est tiré en une ou plusieurs éditions, datées et identifiées par leurordre (première édition, seconde édition, etc.). Chaque édition comporte uncertain nombre d'exemplaires. Le prix de vente peut changer d'une édition àl'autre. Chaque occurrence d’Edition décrit une édition d'un livre.
• les auteurs sont identifiés par leur nom et prénoms et peuvent avoir unpseudonyme. Pour chaque livre, un auteur perçoit des droits d'auteur annuels,calculés comme un pourcentage des ventes (il est aussi fonction du nombred'auteurs).
• les libraires (identifiés par leur nom et adresse complète) commandent des livresen précisant l’édition et le nombre d’exemplaires désiré et la quantitéen précisant l’édition et le nombre d’exemplaires désiré et la quantitécommandée.
• Question: Composer le schéma conceptuel correspondant à cette base dedonnées
Pr. DAOUDI Imane 2018-201953
� UML
UML (Unified Modeling Language) :• autre langage de modélisation• langage dédié à l'objet
Modélisation des données : UML
• langage dédié à l'objet• plusieurs types de diagramme, dont un utile en bases de données :le diagramme de classes
Pr. DAOUDI Imane 2018-2019 42
� Lien / traduction entre UML et Merise
Modélisation des données : UML
Merise UML
EntitéIdentifiantAttribut 1Attribut 2
…
Classe
Attribut 1Attribut 2
…
Méthodes
Pr. DAOUDI Imane 2018-2019 43
� Lien / traduction entre UML et Merise: association
Modélisation des données : UML
Merise UML
Pr. DAOUDI Imane 2018-2019 44
� Lien / traduction entre UML et Merise: association
Modélisation des données : UML
Merise UML
Lien vers 0 ou 1 : 0,1 Lien vers 0 ou 1 : 0..1
Lien vers 1 : 1,1 Lien vers 1 : 1
Lien vers 0 ou plusieurs : 0,n Lien vers 0 ou plusieurs : *
Lien vers 1 ou plusieurs : 1,n Lien vers 1 ou plusieurs : 1..*
Pr. DAOUDI Imane 2018-2019 45
� Lien / traduction entre UML et Merise: association et cardinalité
Modélisation des données : UML
Merise UML
Pr. DAOUDI Imane 2018-2019 46
Inversion du sens des cardinalités
� Lien / traduction entre UML et Merise: association et cardinalité
Modélisation des données : UML
Merise UML
Pr. DAOUDI Imane 2018-2019 47
� Lien / traduction entre UML et Merise:
Modélisation des données : UML
� Classe-association :
• Exemples:
Société Personne
Emploie
0..* 1..*NomNumadresse
NomPrénomAge
FonctionSalaire
Pr. DAOUDI Imane 2018-2019 47
Etudiant Concours
Résultat
1..* 1..*NomPrénomadresse
NomecoleDateLieu
Note
� Lien / traduction entre UML et Merise:
Modélisation des données : UML
� Utilisation d’une classe-association :
� Une classe association peut participer à d'autres relations:
• L’exemple met en œuvre la classe-association Installation en liaison avec la classe• L’exemple met en œuvre la classe-association Installation en liaison avec la classe
Serveur. Il met en évidence qu’une installation (constituée d’un logiciel et d’un
département à une date donnée) est associée à un seul serveur (multiplicité 1 du
côté Serveur).
• Contrainte d’unicité: un logiciel d’un département n’est installé que sur un seul
serveur.
Departement Logiciel
* *codedeptnomdeptbudget
nomlogiediteur
Pr. DAOUDI Imane 2018-2019 47
Installation
budget
dateinstall *1
Serveur Nomservtypeserv
� Lien / traduction entre UML et Merise:
Modélisation des données : UML
� Auto-association sur classe-association :
� Exemple:
• pour préciser qu'une personne est le supérieur d'une autre personne. On ne peut paspour préciser qu'une personne est le supérieur d'une autre personne. On ne peut pas
ajouter une association réflexive sur la classe Personne. En effet, une personne n'est
pas le supérieur d'une autre dans l'absolu. Une personne est, en tant qu'employé
d'une entreprise donnée, le supérieur d'une autre personne dans le cadre de son
emploi pour une entreprise donnée. Il s'agit donc d'une association réflexive, non pas
sur la classe Personne, mais sur la classe-association Emploie
Société Personne
0..* 1..*NomNumadresse
NomPrénomAge
Pr. DAOUDI Imane 2018-2019 47
Emploie
adresse Age
FonctionSalaire
0..1
*
Supérieur de
� Les plus d’UML: agrégation
Association particulière dans laquelle l’une des en tités décrit un tout alors que l’entité associée décrit des parties. L’entité qui représente les tout est appelée composite , l’entité qui représente une partie du tout est appelée composant.
Modélisation des données : UML
� Propriétés de l’agrégation– A « contient » des instances de B– La suppression de A n’implique pas la suppression de B– L'élément agrégé peut être partagé
� Exemple:
BA
agrégation
Enseignant
N° Enseignant
L’agrégé
Pr. DAOUDI Imane 2018-2019 48
Agrégat
Nom Dept
DépartementEquipe de rechercheNom équipeThématique
•L’enseignant est un composant d’une (ou plusieurs) équipe de recherche
• La disparition d’une équipe de recherche n’entraine pas la disparition d’un enseignant
� Les plus d’UML: composition
– Remarque 1:Dans une composition, la multiplicité du côté du composite est toujours à 1, car un
composant doit appartenir à un seul et un seul composite
Une forme forte d’agrégation avec le composé qui à chaque mom ent a unepossession exclusive des parties. Le temps de vie des partie s coïncide aveccelui du composé
Modélisation des données : UML
composant doit appartenir à un seul et un seul composite
– Remarque 2: la création d’une occurrence d’un composant exige la présence d’un composite pour s’yassocier.
– Remarque 3 : la fin de vie d’une occurrence de composite entraîne en cascade la fin de vie de toutes lesoccurrences des composants associés.
CommandeN°Commande
Date CommandeDate livraison
Total commande
Composite
49
Total commande
1,n
1
Ligne de commandeN°lig commande
Composant
Pr. DAOUDI Imane 2018-2019
� Associations : Héritage
• L’association d’héritage est employée d’abord pour assurer le respect d’une règle de
modélisation appelée la règle d’homogénéité .
Tous les attributs d’une entité sont pertinents à cette enti té et éventuellementtous doivent posséder une valeur .
Modélisation des données : UML
� Contre exemple
– Remarque 1: Transgression de la règle d’homogénéité
– Remarque 2: Certains employés ne sont pas syndiqués, notamment les employés cadres
– Remarque 3: les occurrences de l’entité représentant des employés non syndiqués ne pourrontavoir de valeur pour No_syndiqué et Taux _cotisation_syndicale
tous doivent posséder une valeur .
50
Employé
No matricule NomPrénomNo_syndiquéTaux _cotisation_syndicale
Pr. DAOUDI Imane 2018-2019
� Association : Héritage
� Exemple : Héritage et respect de la règle d’homogénéité
– Remarque 1: L’entité Employé_syndiqué est une sorte d’entité Employé et qui hérite de tous
les attributs de Employé
– Remarque 2: Toute occurrence de Employé possède une valeur pour chacun de ses 3
Modélisation des données : UML
– Remarque 2: Toute occurrence de Employé possède une valeur pour chacun de ses 3
attributs.
– Remarque 3: Dans le cas de Employé_syndiqué chaque Occurrence possède une valeur pour
les 5 attributs
Employé
No matricule NomPrénom
51Pr. DAOUDI Imane 2018-2019
Employé_syndiqué
No_syndiquéTaux _cotisation_syndicale
� Association : Héritage
Type d’association qui définit la structure d’une entité en fonction d’une autre.Une entité appelée le supertype identifie les attributs communs, une autreprécise les attributs spécifiques à un sous-type de la première ; le sous-typehérite à la fois des attributs, dont l’identifiant, et des associations de son supertype
Modélisation des données : UML
� Exemple : L’héritage porte sur les attributs et les associations
– Remarque 1: L’entité Employé_syndiqué hérite des attributs de Employé, elle hérite aussi del’association avec Poste
– Remarque 2: Un employé_syndiqué est une sorte d’employé et tout employé occupe unposte.
– Remarque 3: Employé syndiqué est un sous-type de l’entité Employé
EmployéPoste
52
No matricule NomPrénom
Pr. DAOUDI Imane 2018-2019
Employé_syndiqué
No_syndiquéTaux _cotisation_syndicale
Poste
EXERCICES DE MODÉLISATION
Pr. DAOUDI Imane 2018-2019 =
Plan du cours
I. Système de Gestion de Base de Données (SGBD)
– Introduction Générale
– Modélisation des données
• Merise
• UML
– Modèle Logique de Données (MLD)
Pr. DAOUDI Imane 2018-2019
� Le Modèle Logique des Données (MLD) est une étape intermédiaire pour
passer du modèle E/A, qui est un modèle sémantique, vers une
Modèle logique de données (MLD): Terminologie
passer du modèle E/A, qui est un modèle sémantique, vers une
représentation physique des données : fichiers, SGBD hiérarchique, SGBD
réseau, SGBD relationnel.
� Nous nous limitons au seul MLD relationnel, qui prépare le passage aux � Nous nous limitons au seul MLD relationnel, qui prépare le passage aux
SGBD relationnels.
Pr. DAOUDI Imane 2018-2019 54
� Comment est constitué un MLD (relationnel) et comment l’établir?
� Tables, lignes, colonnes, attribut et domaine
Modèle logique de données (MLD): Terminologie
� Tables, lignes, colonnes, attribut et domaine
� clefs primaires et clefs étrangères
� Schéma relationnel
Pr. DAOUDI Imane 2018-2019 55
� Tables
� Lorsque les données ont la même structure (par ex. renseignement relatifs à
un client), on peut alors les organiser en tables dans lesquelles:
– Les colonnes décrivent les champs en commun
Modèle logique de données (MLD): Terminologie
– Les colonnes décrivent les champs en commun
– Les lignes contiennent les valeurs de ces champs pour chaque enregistrement
� Exemple
N° Client Nom Prénom Adresse
1 Durand Marie 2, rue la Paix
Pr. DAOUDI Imane 2018-2019 56
2
…
Motte
…
Pierre
…
7, rue Cler
…
� Tables, lignes, colonnes
� Une table est une relation comportant des lignes (tuples) et des colonnes
Considérant N ensembles E1, E2,…En. Tout sous -ensemble du produit
Relation
Modèle logique de données (MLD): Terminologie
� Exemple:
� et , sont deux ensembles
� le produit cartésien est:
� l’ensemble est un sous ensemble de il constitue une relation.
� Les éléments de la relation sont appelés des tuples.
Considérant N ensembles E1, E2,…En. Tout sous -ensemble du produit cartésien des N ensembles, noté E1 X E2 X…X En, cons titue une relation
{ }baE ,1 = { }dcE ,2 ={ }),(),,(),,(),,(21 dbcbdacaEE =×
{ }),(),,(1 dacaR = 21 EE ×
� Les éléments de la relation sont appelés des tuples.
Pr. DAOUDI Imane 2018-2019 57
E1 E2
a c
a d
b c
b d
R1
� Attribut, et domaine
Attribut
Modèle logique de données (MLD): Terminologie
Exemple :
Colonne d’une relation caractérisée par un nom
Ensemble des valeurs admises pour un attribut. Il établit les valeurs acceptables dans une colonne
Domaine
� Exemple :
– Domaine= {Entier, réel, booléen, caractère}
Pr. DAOUDI Imane 2018-2019 58
� clef primaire
� Les lignes d’une table sont unique�il existe au moins une colonne qui sert à
Modèle logique de données (MLD): Terminologie
� Les lignes d’une table sont unique�il existe au moins une colonne qui sert à identifier les lignes: il s’agit de la clef primaire de la table
� Les propriétés et conventions requises
– La valeur vide (NULL) est interdite
– La valeur de la clef primaire d’une ligne ne devrait pas changer au cours du temps
– On souligne les clefs primaire dans un MLD– On souligne les clefs primaire dans un MLD
Pr. DAOUDI Imane 2018-2019 59
� clef primaire
Ensemble minimal de colonnes qui permet d’identifi er de manière unique
clef primaire
Modèle logique de données (MLD): Terminologie
� une clef primaire est simple si elle est composée d’une seule colonne
� Une clef primaire composée peut être constituée de deux colonnes ou plus
� Exemple
chaque tuple dans une table (primary key)
� Exemple
– Client (N°, Nom, prénom, adresse)
– Appartement( N°, adresse, superficie)
Pr. DAOUDI Imane 2018-2019 60
� clef étrangère
une ou plusieurs colonnes dans une table qui a pour but d’assurer une liaison entre deux tables. La clef primaire de la première table est
clef étrangère
Modèle logique de données (MLD): Terminologie
� Convention:
– On fait précéder par # la clef étrangère
� Exemple
liaison entre deux tables. La clef primaire de la première table est dupliquer dans la deuxième. On l’appelle aussi clef externe (Foreign key)
Clients Commandes
Pr. DAOUDI Imane 2018-2019 61
Clients
N° client
Nom client
Prénom client
Adresse client
Commandes
N° commande
Date commande
# N° client
� Tables, lignes, colonnes, attribut, et domaine
Modèle logique de données (MLD): Terminologie
Modèle relationnel Modèle conceptuel
Table/relation Entité
Ligne/tuple Occurrence d’entité
Nom de colonne Attribut d’entité
clef primaire/ étrangère identifiant
Pr. DAOUDI Imane 2018-2019 62
clef primaire/ étrangère identifiant
RemarquesRemarques
Rq1: Une même table peut avoir plusieurs clefs étran gères mais une seule clef primaire(éventuellement composée de plus ieurs
Modèle logique de données (MLD): Terminologie
seule clef primaire(éventuellement composée de plus ieurs colonnes)
Rq2: Une clef étrangère peut aussi être primaire (da ns la même table)
Rq3: Une clef étrangère peut être composée (c’est le cas si la clef primaire référencée est composée)
Rq4: Implicitement chaque colonne qui compose une cl ef primaire ne peut pas recevoir la valeur NULL
Pr. DAOUDI Imane 2018-2019 63
Rq5: Si une clef étrangère ne doit pas recevoir la v aleur NULL, alors il faut le préciser dans la description des colonnes
� Schéma relationnel
– Les tables sont appelées relations
Modèle logique de données (MLD): Schéma relationnel d’une BD
– Les liens entre les clefs étrangères et leur clefs primaires sont symbolisés par un
connecteur
Pr. DAOUDI Imane 2018-2019 64
� Entité
Toute entité (dans un MCD) devient une table (dans un MRD) dans laquelle
Règle
Modèle logique de données (MLD): Schéma relationnel d’une BD
Toute entité (dans un MCD) devient une table (dans un MRD) dans laquelle les attributs deviennent les colonnes et l’identifi ant de l’entité constitue la clef primaire de la table
se traduit parClient
Codcli
Nomcli
Pr. DAOUDI Imane 2018-2019 65
Client (codcli , nomcli, adrcli)Entité
Table
Nomcli
Adrcli
� Association binaire 1/1- 0/1
se traduit en ajoutant une clef étrangère (identifiant de l'entité de cardinalité (0,1) ) à la table provenant de l'entité dont la cardinalité est (1,1).
Modèle logique de données (MLD): Schéma relationnel d’une BD
dirige 0..11
se traduit par
Employé
numemp
nomemp
Département
Nudep
nomdep
Pr. DAOUDI Imane 2018-2019 66
Employé (nuemp , nomemp)Département (nudep , nomdep, #nuemp )
Employé
numemp
nomemp
Département
nudep
#nuemp
nomdep
� Association binaire plusieurs à plusieurs
se traduit par une nouvelle table dont la clef primaire est composée des
Modèle logique de données (MLD): Schéma relationnel d’une BD
se traduit par une nouvelle table dont la clef primaire est composée des identifiants des deux entités. Les éventuelles propriétés de l'association deviennent les attributs de cette table.
0..* 0..*ClasserSkieur
Nomski
spécialité
Compétition
refcomp
datcomp
rangclassement
Pr. DAOUDI Imane 2018-2019 67
Classer ( #nomski, refcomp , rang)
se traduit par
classement
rang
� Association binaire un à plusieurs
Modèle logique de données (MLD): Schéma relationnel d’une BD
Magasin
N°Agence
N° civique
Rue
Ville
Code postal
Employé
N° Employé
Nom Employé
Prénom employé
Salaire employé1..*1
Embaucher
Magasin Employé
Pr. DAOUDI Imane 2018-2019 68
Magasin
N°Agence
N° civique
Rue
Ville
Code postal
Employé
N° Employé
Nom Employé
Prénom employé
Salaire employé
#N° Agence
� Association n-aire (n>2)
on crée une table ayant pour clef primaire les identifiants des différentes entités de l'association. Les éventuelles propriétés de l'association deviennent les attributs de la table.
Modèle logique de données (MLD): Schéma relationnel d’une BD
Classe
* *
*
Classe
No_classe
Matière
No_matiere
Professeur
No_prof
Assurer
Pr. DAOUDI Imane 2018-2019 69
Assurer ( #No_classe, No_matiere, No_prof , codsalle)
se traduit par
Assurercodsalle
� Association réflexive
Personne
Modèle logique de données (MLD): Schéma relationnel d’une BD
N°matricule
Nom
Prénom
0..*
0..*
Epouse
Personne
Se marier
Date mariage
Pr. DAOUDI Imane 2018-2019 70
Personne
N°matricule
Nom
Prénom
Se marier
#N° matricule 1 , #N° matricule 2
Date mariage
� La composition
Adresse
Modèle logique de données (MLD): Schéma relationnel d’une BD
Client
Un client est identifié par son nom, prénom et adresse
UMLidAdresse
NumRue
NomRue
CP
NomVille
1,1 1..*
Client
Nom
Prénom
Tél
Client (Nom, Prénom, #idAdresse, Tél)Adresse(idAdresse, NumRue, NomRue, CP, NomVille)
UML
� L’entité faible a pour clé sa propre clé + celle de l’entité forte (qui est clé étrangère)
Pr. DAOUDI Imane 2018-2019 71
Adresse(idAdresse, NumRue, NomRue, CP, NomVille)
� L’héritage
� Chaque classe fille� une relation
� Clé primaire de la classe mère migre dans les
relations issues des classes fille et devient clé
Modèle logique de données (MLD): Schéma relationnel d’une BD
Réservation
NumReservation
Classerelations issues des classes fille et devient clé
et clé étrangèreClasse
DateReservation
RES_FRET
qte
RES_Passager
nbrPassager
Pr. DAOUDI Imane 2018-2019 72
Réservation(NumReservation, Classe, DateReservation)RES_FRET(#NumReservation, qte)RES_Passager(#NumReservation, nbrPassager)
� Les règles d’intégrité sont les règles que doivent vérifiés les données contenues dans
une base de données. Ces règles sont inhérentes au modèle de données
Modèle logique de données (MLD): Règles d’intégrité structurelles
une base de données. Ces règles sont inhérentes au modèle de données
� On distingue plusieurs règles structurelles correspondant au concepts:
– Entité
– Domaine
– Clef (contrainte référentielle)
Pr. DAOUDI Imane 2018-2019 73
Contrainte d’entité
Contrainte imposant que toute relation possède une clef primaire et tout attribut participant à cette clef primaire est non nul
Modèle logique de données (MLD): Règles d’intégrité structurelles
tout attribut participant à cette clef primaire est non nul
Contrainte de Domaine
Contrainte imposant que la colonne d’une relation d oit comporter des valeurs vérifiant une assertion logique
�Valeur nulle: valeur conventionnelle introduite dans une relation pour représenter une information inconnue ou inapplicable
Pr. DAOUDI Imane 2018-2019 74
� L’ assertion logique est l’appartenance à une plage ou liste de valeurs:�Exemple:
� Le domaine des salaires mensuels qui sont des réels compris entre 900 et 3000€
� L’âge d’une personne est compris entre 1 et 150
Contrainte référentielle (clef étrangère)
Contrainte d’intégrité portant sur une relation R1, consistant à imposer que la valeur connue d’un groupe d’attributs appara isse comme valeur de clef dans une autre relation R2
Modèle logique de données (MLD): Règles d’intégrité structurelles
�Lors d'une insertion d’une valeur dans une relation, la valeur des attributs doit exister dans la relation référencée
�Exemple:
– Insertion : Commande
– Contrainte: le client correspondant doit exister
�Lors d'une suppression dans la relation référencée , les tuples référençant ne doivent pas exister
– Exemple: la suppression d’un client entrainera la vérification qu’aucun client ne référence une commande
– Exemple: la suppression d’un client entrainera la vérification qu’aucun client ne référence une commande
Pr. DAOUDI Imane 2018-2019 75
Clients
N° client
Nom client
Prénom client
Adresse client
Commandes
N° commande
Date commande
# N° client