Vous êtes sur la page 1sur 100

FONDEMENT DES BASES DE DONNÉES

AU : 2019 - 2020

Auditoire : 1ère Licence Computer Science, Parcours : GLSI

DR. SAHBI ZAHAF

11/02/2020
PLAN DU COURS
• Introduction Générale
• Chapitre 1 : Modélisation Conceptuelle de la BD
– Modèle Entité-Association
– Diagramme De Classe UML
– Chapitre 2 : Modélisation Relationnelle Logique de la BD
– Modèle Relationnel Formel
– Algèbre Relationnelle
– Règles de Passages du Niveau Conceptuel vers le Niveau
Logique Relationnel
– Normalisation
• Chapitre 3 : Langage SQL
– Langage de Définition de Données (LDD)
– Langage de Manipulation de Données (LMD)
– Langage d’Interrogation de données (LID)
– Langage de Contrôle de Données (LCD)
• Conclusion Générale
11/02/2020 Bases de Données 2
FONDEMENT DES BASES DE DONNÉES
INTRODUCTION GÉNÉRALE

Auditoire : 1ère Licence Computer Science, Parcours : GLSI

DR. SAHBI ZAHAF

A.U : 2019 - 2020


11/02/2020
SYSTÈME D’INFORMATION DE
L’ENTREPRISE (SIE)

11/02/2020 Bases de Données 4


ENVIRONNEMENT EXTERNE DE
L’ENTREPRISE

11/02/2020 Bases de Données 5


ENVIRONNEMENT INTERNE DE
L’ENTREPRISE (1)
• Système Opérant vs Système de Pilotage
– Système Opérant (SO)
• Système d’exécution des activités métiers qui sont
couvertes par l’entreprise
• Système de transformation de flux qui est réalisée en
respectant des règles bien précises
– Flux financières, Flux de matières, Flux d’informations, etc.
– Système de Pilotage (SP)
• Système de Prise de Décision en ce qui concerne la
définition et l’exploitation des activités métiers
• Système qui permet à l’entreprise de planifier ses
objectifs fixés

11/02/2020 Bases de Données 6


ENVIRONNEMENT INTERNE DE
L’ENTREPRISE (2)
• Système Opérant : Exemples

• Usine de montage de voitures


Pièces détachées Automobiles
Système
Entrées Sorties
• Atelier de fabrication
Matières premières Produits finis
Système
Entrées Sorties

11/02/2020 Bases de Données 7


ENVIRONNEMENT INTERNE DE
L’ENTREPRISE (3)
• Relation entre SO et SP
– SP procède à l’adaptation, la régulation et au
contrôle du SO en décidant du comportement
de celui-ci
Système de Pilotage
Informations
sur l’état du SO
Décision sur le SO
Flux entrant Flux sortant
Système Opérant
11/02/2020 Bases de Données 8
BESOIN : SYSTÈME D’INFORMATION
Augmentation en quantité et en
complexité des informations
échangées entre les deux systèmes
(SO et SP)

Besoin : un autre Système qui


stocke et traite de façon plus
efficace ces informations

SYSTÈME D’INFORMATION
11/02/2020 Bases de Données 9
SYSTÈMES VS ENTREPRISE
Système de Pilotage

Système d’Information

Entrée Sortie
Système Opérant
11/02/2020 Bases de Données 10
L’INFORMATION EST OMNIPRÉSENTE DANS
L’ENVIRONNEMENT INTERNE DE L’ENTREPRISE
Tout élément est susceptible
de produire, consommer ou
véhiculer de l’information

L’information doit être :


stockée, extraite, traitée,
maintenue, etc.

C’est le rôle du Système


d’Information

L’information : facteur de production de l’entreprise


11/02/2020 Bases de Données 11
SYSTÈME D’INFORMATION DE
L’ENTREPRISE (SIE)
• Le Système d’Information de l’Entreprise
(SIE) est composé d’éléments divers
(employés, ordinateurs, règles et méthodes,
etc.) qui sont chargés de stocker et de
traiter les informations relatives au
Système Opérant (SO) afin de les mettre à
la disposition du Système de Pilotage
(SP)

11/02/2020 Bases de Données 12


ASPECTS DU SIE
• Aspect Statique (ou Aspect Données)
– Modélisation des données
– Base de Données
• Aspect Dynamique (ou Aspect Traitement)
– Circulation de l’information entre les
différents acteurs de l’entreprise
– Production de nouvelles informations au
cours d’exécution des différentes activités
métiers

11/02/2020 Bases de Données 13


BASE DE DONNÉES

11/02/2020 Bases de Données 14


BASE DE DONNÉES : C‘EST QUOI ?
• Une Base de Données (BD) est un “récipient”
commun d’information, partagé par plusieurs
utilisateurs.
– Les informations peuvent être interrogées et mises-à-jour
par l’intermédiaire d’un logiciel (Système de Gestion de
Bases de Données ou SGBD).
– Les informations décrivent les activités de l’entreprise et
sont destinées pour la prise de décision
• Exemples d’applications basées sur une BD :
– Location des véhicules
– Gestion des billets de transport
– Catalogue électronique de la Bibliothèque Universitaire
(BU)
– Etc.
11/02/2020 Bases de Données 15
BASE DE DONNÉES : DÉFINITION
• Une Base de Données (BD) est un ensemble structuré
de données (1) enregistrées sur un support
permanent avec le minimum de redondances
possibles (2) pour satisfaire simultanément plusieurs
utilisateurs (3) de façon sélective (4) en un temps
opportun (5)
(1) Organisation et Description des objets et des liens entre
ces objets à l’aide d’un Langage de Description de
Données (LDD)
(2) Stockage sur disque vs Unicité de l’information
(3) Accès à l’information à l’aide du Langage d’Interrogation
de Données (LID), Mise-à-jour de l’information à l’aide
d’un Langage de Manipulation de Données (LMD)
(4) Confidentialité, Sécurité à l’aide du Langage de Contrôle
de Données (LCD)
(5) Performance
11/02/2020 Bases de Données 16
BASE DE DONNÉES : EXPLOITATION
• SGBD
– Système de Gestion de Base de Données
• DBMS
– DataBase Management System
• Principaux SGBD du marché :
– Oracle
– MySQL
– SQLite
– SQL Server
– IBM DB2
– Sybase

11/02/2020 Bases de Données 17


RÔLES D’UN SGBD (1)
• Non redondance des données
• Stockage des données
– Indépendance au niveau Physique
– Indépendance au niveau Logique
• Définition des données
– Langage de Définition de Données (LDD)
• Manipulation des données
– Langage de Manipulation de Données (LMD)
11/02/2020 Bases de Données 18
RÔLES D’UN SGBD (2)
• Cohérences des données
– Contraintes d’Intégrité (CI) doivent être
respectées à chaque mise-à-jour de la BD
• Interrogation des données
– Langage d’Interrogation de Données (LID)
• Administration et Contrôle des données
– Langage de Contrôle de Données (LCD)
• Gestion des Requêtes utilisateurs
• Gestion des Transactions
• Gestion de Reprise face aux Pannes

11/02/2020 Bases de Données 19


ÉTAPES DE LA MISE EN ŒUVRE
D’UNE BD
• Modélisation Conceptuelle de la BD
– Modèle Conceptuel
• Modèle Entité / Association (E/A)
• Diagramme de Classes UML
• Modélisation Relationnelle Logique de la BD
– Modèle Logique Relationnel
• Application des Règles de Passages : Modèle Conceptuel 
Modèle Logique Relationnel
• Application des Règles de Normalisations : 1 FN  2 FN
3 FN
– Utilisation d’un SGBD
– Langage d’exploitation
• SQL : Structured Query Language

11/02/2020 Bases de Données 20


FONDEMENT DES BASES DE DONNÉES
CHAPITRE 1 : MODÉLISATION CONCEPTUELLE DE LA
BD

Auditoire : 1ère Licence Computer Science, Parcours : GLSI

DR. SAHBI ZAHAF

A.U : 2019- 2020


11/02/2020
CONCEPTION D’UNE BASE DE
DONNÉES

Reconnaissance
Structuration
Monde Réel
Perception

Une Base de Données est une représentation de


la réalité telle qu’elle est perçue par les utilisateurs

11/02/2020 Bases de Données 22


CRÉATION D’UNE BASE DE DONNÉES
Modélisation Schéma Conceptuel
Monde Réel Conceptuelle
0:n 1:1
Personne Possède Voiture

Modélisation
Logique

Schéma Logique Personne Nom Adresse Tel


Jemai Gabes 75999244
Ben Salah Sfax 74465983
BASE DE DONNÉES Ktari Gafsa 76547325
……. ……. …….

11/02/2020 Bases de Données Implémentation 23


en SQL
MODÉLISATION CONCEPTUELLE
• Approche utilisée :
– Le concepteur de la BD s’appuie sur une
description exprimée en langage naturel
(interview, cahier des charges, etc.), pour extraire
les entités et les associations. Pour cela, il doit
appliquer les règles suivantes :
• Les noms deviennent des entités
• Les verbes deviennent des associations
– Exemple :
• « Une voiture appartient à un modèle particulier ».
– Les noms sont : « voiture », « modèle »
– Le verbe est : « appartient à »

11/02/2020 Bases de Données 24


EXEMPLE
• Le responsable d’une agence de location de voiture
décide d’implanter une DB pour gérer la location de
ses voitures
– Une Voiture est identifiée par son Numéro
d’immatriculation (Immat), une Marque, un Type et une
Puissance.
– Une Voiture est louée à un ou plusieurs Clients.
– Un Client est identifié par un Numéro, un Nom et une
Adresse.
– Un client peut louer une ou plusieurs voitures.
– Pour chaque location de voiture, il faut noter la Date de
Location (DL), la Date de Retour (DR), le Kilométrage de
Départ (KILD) et le Kilométrage de Retour (KILR).

11/02/2020 Bases de Données 25


EXEMPLE :
DICTIONNAIRE DE DONNÉES
Classe d’entités Classe d’associations
Champ Voiture Client Louer
Immat X X
Marque X
Type X
Puissance X
NumCl X X
NomCl X
AdrCl X
DL X
DR X
KILD X
KILR X

11/02/2020 Bases de Données 26


EXEMPLE : MODÈLE E/A

Voiture Client
Immat NumCl
Marque
Louer NomCl
Type DL AdrCl
Puissance DR
KILD
KILR

11/02/2020 Bases de Données 27


EXEMPLE : TYPE DE RELATION
1 N
Voiture Client
M 1

Voiture [N-M] Client


Immat NumCl
Marque
Louer NomCl
Type DL AdrCl
Puissance DR
KILD
KILR

11/02/2020 Bases de Données 28


MODÉLISATION CONCEPTUELLE

PARTIE 1 : MODÈLE ENTITÉ-ASSOCIATION

11/02/2020 Bases de Données 29


MODÈLE CONCEPTUEL « E/A »
• Ensemble de conventions graphiques qui
permettent de représenter la partie
statique d’un Système d’Information
• Concepts de base :
– Objet  Entité
– Lien  Association
– Propriété  Attribut
• + la représentation multiple  lien « Is-

11/02/2020 Bases de Données 30
ENTITÉ VS TYPE D’ENTITÉ
• Entité :
– Représentation d’un objet du
monde réel ayant une existence
propre Eya Rim Ali …………. Sami

• Type d’Entité (TE) :


– Représentation d’un ensemble
d’entités perçues comme similaires
et ayant les mêmes caractéristiques
Personne

11/02/2020 Bases de Données 31


ASSOCIATION VS TYPE
D’ASSOCIATION
• Association :
– Représentation d’un lien logique non orienté
entre deux entités ou plus
• Type d’Association (TA) :
– Représentation d’un ensemble d’associations
ayant la même sémantique et décrites par les
mêmes caractéristiques
Personne Achète Maison

1 « achète » = < 1 personne, 1 maison >


11/02/2020 Bases de Données 32
POPULATION D’UN TYPE
D’ASSOCIATION

Personne Achète Maison

11/02/2020 Bases de Données 33


ASSOCIATION BINAIRE
1 « achète » = < 1 personne, 1 maison >

Personne Achète Maison

ACHETEUR ACHETÉ
Association Binaire  deux rôles (relie 2 types d’entités différentes)

ASSOCIATION TERNAIRE
1 « achète » = < 1 personne, 1 produit, 1 fournisseur >

Client Achète Produit

Fournisseur
Association Ternaire  trois rôles (relie 3 types d’entités différentes)
11/02/2020 Bases de Données 34
ASSOCIATION CYCLIQUE
1 « marié à » = < 1 personne, 1 personne >

Personne Marié à

Association Cyclique  deux rôles (relie le même type d’entité)


Problème : Comment savoir dans un couple qui est le mari et qui est la femme?
1 « marié à » = < Nour Trabelsi, Nour Trabelsi > ?????

ASSOCIATION CYCLIQUE
Solution : Spécifier le rôle de chaque entité pour supprimer les ambiguïtés

FEMME
Personne Marié à
MARI
1 « marié à » = < Nour Trabelsi / femme, Nour Trabelsi / mari >

11/02/2020 Bases de Données 35


CARDINALITÉ DES RÔLES

Personne Possède Voiture

Combien de voitures (Minimum) une personne peut-elle avoir ?


Combien de voitures (Maximum) une personne peut-elle avoir ?

Min : Max
Personne Possède

SI (Maximum > 1) : les rôles liant l’entité peuvent constituer un


ensemble (par défaut) ou une liste

11/02/2020 Bases de Données 36


CONTRAINTES DE CARDINALITÉS
Une personne peut ne pas avoir de voiture, en avoir 1, 2,…., n

0:n
Personne Possède

Une voiture a un et un seul propriétaire

0:n 1:1
Personne Possède Voiture

0 : n  Pas de contrainte
i : j  Contrainte sur le Type d’Entité (TE) lié
11/02/2020 Bases de Données 37
POPULATION D’UN TYPE
D’ASSOCIATION
0:n 1:1
Personne Achète Maison

11/02/2020 Bases de Données 38


DIFFÉRENTES CARDINALITÉS

A B A B A B

Plusieurs-à-Plusieurs Un-à-Plusieurs Un-à-Un


0,N - 0,M 0,1 - 0,N 0,1 - 0,1
N-M 1-N 1-1

11/02/2020 Bases de Données 39


LECTURE DES CARDINALITÉS
Modélisation E/A : Plusieurs Formalismes (Merise, Chen)
Formalisme Merise
Client Produit
Commander
1:n 0:1

Une occurrence de Client est en relation, Un Produit donnée est Commandé, au


Par la relation Commander, avec un ou Maximum par un seul Client mais peut
Plusieurs occurrences de Produit ne pas être commandé

0:1 1:n
Client Commander Produit

Formalisme de Chen
11/02/2020 Bases de Données 40
ASSOCIATION BINAIRE
DE TYPE [1-1]
• Une Association binaire de type [1-1] si à
une entité de E peut correspondre par
l’association A au plus une entité de F et
que, réciproquement, à une entité de F ne
peut correspondre au plus qu’une entité de E
Chef [1-1] Département
Diriger
NumCh NumDep

1 1
Chef Département
1 1
11/02/2020 Bases de Données 41
ASSOCIATION BINAIRE
DE TYPE [1-N]
• Une Association binaire de type [1-n] si à
une entité de E peut correspondre par
l’association A plusieurs entités de F, mais à
une entité de F ne peut correspondre au plus
qu’une entité de E
[1-N] Département
Enseignant
Travailler
NumEn NumDep

1 1
Enseignant Département
N 1
11/02/2020 Bases de Données 42
ASSOCIATION BINAIRE
DE TYPE [N-M]
• Une Association binaire de type [N-M] si
à une entité de E peut correspondre par
l’association A plusieurs entités de F, et
vice-versa
[N-M] Cours
Enseignant
Enseigner
NumEn NumCours

1 N
Enseignant Cours
M 1
11/02/2020 Bases de Données 43
ATTRIBUTS
• Décrivent l’information (les propriétés) à
conserver sur :
– Une entité (objet)
– Une association
– Un attribut composite
FEMME
Personne Marié à
MARI
Date_Mariage
Nom Prénom Salaire

Jour Mois Année


Domaine [1, 31]

11/02/2020 Bases de Données 44


ATTRIBUT SIMPLE
• Simple (atomique)  non décomposable
– Exemples : Jour, Prénom, etc.

• Feuilles de l’arbre des attributs


– Seuls les attributs simples portent des valeurs

• Le domaine de valeurs est constitué par des


valeurs atomiques
– Exemple : Jour – domaine de valeurs : {1, 2, …, 31}
– Domaines prédéfinis standards, intervalles énumérés

11/02/2020 Bases de Données 45


ATTRIBUT COMPOSITE
• Composite (complexe, non atomique)  Décomposable en
d’autres attributs
– Exemples :
• Date (Jour, Mois, Année)
• Adresse (Rue, Numéro, Ville, Code_Postal)

• Un attribut complexe ne porte pas de valeurs propres (pas de


domaine directement associé)

• La valeur d’un attribut complexe est la composition des valeurs


des attributs qui le composent

• Différent niveau d’abstraction aux niveaux composition


d’attributs
– Un composant d’attribut complexe peut être lui-même un attribut
complexe

11/02/2020 Bases de Données 46


ATTRIBUT DÉRIVÉ
• Un attribut est dit dérivé si sa valeur peut être
déduite ou calculée à partir des valeurs d’autres
attributs stockés dans la Base de Données
– Exemples :
• L’âge d’une personne peut être déduit à partir de sa date de
naissance et la date courante (date système)
• La Moyenne d’un étudiant peut être calculée à partir des
Notes qu’il a obtenues et les Coefficients à appliquer
• Le Nombre d’employés peut être trouvé en comptant le
Nombre d’instances
• Remarque importante : les attributs dérivés
constituent une forme de redondance  on ne
les représente dans la base de données sauf dans
des cas particuliers
11/02/2020 Bases de Données 47
ATTRIBUT MONO-VALUÉ VS
ATTRIBUT MULTI-VALUÉ
• Attribut Mono-valué
– Une seule valeur par occurrence (cardinalité
max = 1)
– Exemples : Date de Naissance, CIN, etc.

• Attribut Multi-valué
– Plusieurs valeurs par occurrence (cardinalité
max > 1)
– Exemples : Prénoms, Téléphones,
Diplômes, etc.
11/02/2020 Bases de Données 48
ATTRIBUT OBLIGATOIRE VS
ATTRIBUT FACULTATIF
• Attribut Obligatoire
– Une valeur au moins par occurrence (cardinalité min  1)
• Exemples : CIN, Matricule, Nom, Prénoms, etc.

• Attribut Facultatif
– Peut ne pas prendre de valeurs (cardinalité min = 0)
• Exemples : Salaire, Téléphones, Fax, etc.

• Le caractère obligatoire ou facultatif est déterminé par les


besoins de l’application :
SI l’on accepte d’enregistrer une personne sans connaître sa
Date_de_Naissance
ALORS l’attribut Date_de_Naissance sera facultatif
SINON l’attribut Date_de_Naissance sera obligatoire

11/02/2020 Bases de Données 49


IDENTIFIANT DE TE ET TA
• Identifiant
– Permet de désigner une entité (ou une association) de façon
univoque
– Ensemble minimum d’attributs tel qu’il n’existe pas deux
instances du TE (TA) où ces attributs aient la même valeur
• Remarques :
– Un bon identifiant doit vérifier les propriétés suivantes :
• Sa valeur est connue pour toute entité
• On ne doit jamais avoir besoin de modifier sa valeur
• Sa taille de stockage doit être la plus petite possible (pour des raisons
de performances)
– SI il est difficile de trouver un identifiant pour un type
d’entité ALORS il faut créer un identifiant « abstrait »
indépendant de tout autre attribut (i.e. un numéro, une
référence, un code, etc.)

11/02/2020 Bases de Données 50


IDENTIFIANT D’UN TA
RÔLES MULTI-VALUÉS
0:n 0:n
Etudiant Obtenu Cours

No- carte Nom Année Note No- cours Intitulé

Identifiant (Obtenu) = Etudiant.No-carte + Cours.No-cours

Identifiant (TA) = ensemble des identifiants des TE liés

11/02/2020 Bases de Données 51


IDENTIFIANT D’UN TA
RÔLES MULTI-VALUÉS
0:n Commande
0:n
Client Produit
Quantité
No-commande
No- client Nom No- produit Nom
Date

Deux identifiants pour Commande :


1) No-commande
2) Client.No-client + Produit.No-produit
(il n’existe qu’une seule commande d’un client donné pour un produit donné)

Identifiant (TA) = attribut propre (TA) + ensemble des identifiants (TE) liés

11/02/2020 Bases de Données 52


IDENTIFIANT D’UN TA
RÔLES MULTI-VALUÉS
0:n Commande
0:n
Client Produit

No- client Nom Date Quantité No- produit Nom

Un client peut commander le même produit plusieurs fois


à des dates différentes
Identifiant (Commande) = Client.No-client + Produit.No-produit
+ Commande.Date
Identifiant (TA) = attribut (TA) + ensemble des identifiants (TE) liés

11/02/2020 Bases de Données 53


IDENTIFIANT D’UN TA
RÔLE MONO-VALUÉ
0:n 1:1
Personne Assure Voiture

0:n
No- cin Compagnie No- imm
Assurance

Nom

Identifiant (Assure) = Voiture.No-imm


Règle : Tout rôle mono-valué induit un identifiant du TA
(l’identifiant du TE lié est aussi identifiant du TA)

11/02/2020 Bases de Données 54


IDENTIFIANT D’UN TA
CYCLIQUE
FEMME 0:1
Personne Marié à
MARI 0:1
Date_Mariage
CIN Nom Prénom Salaire

Jour Mois Année

Deux rôles mono-valués  Deux identifiants pour « Marié à » :


1) Personne/Femme.CIN
2) Personne/Mari.CIN

11/02/2020 Bases de Données 55


IDENTIFIANT DE TE FAIBLE
Un « TE faible » ne peut pas être identifié par ses seuls attributs
propres

Entité Forte Entité Faible


1:1 1:n
Livre Existe Exemplaire

No- ISBN Titre Date-achat No- exemp État

La clé complète d’un « TE faible » résulte de la concaténation de la


clé d’entité forte et de sa clé locale

Identifiant (Exemplaire) = Livre.No-ISBN + Exemplaire.No-exemp


Identifiant (Existe) = Livre.No-ISBN + Exemplaire.No-exemp
11/02/2020 Bases de Données 56
LIEN DE GÉNÉRALISATION /
SPÉCIALISATION (1)
Article
Un « Article Alimentaire » Lien « Is-a »
est un « Article »
Article Article Article
Alimentaire Habillement Hi-Fi

Produit Fruits et
Viande
Laitier Légumes

Une relation de Généralisation / Spécialisation est toujours


représentée par un lien orienté de l’Entité Type Spécifique
vers l’Entité Type Générique (lien « Is-a »)
11/02/2020 Bases de Données 57
LIEN DE GÉNÉRALISATION /
SPÉCIALISATION (2)
TE Générique
Article
Spécialisation Généralisation
Lien « Is-a »
TE Spécifique
Article Article Article
Alimentaire Habillement Hi-Fi

La Sémantique du lien (« Is-a ») est qu’à toute occurrence de


l’Entité Type Spécifique correspond une occurrence de
l’Entité Type Générique qui décrit le même objet du monde réel
Inversement, à toute occurrence de l’Entité Type Générique
correspond zéro ou une occurrence par l’Entité Type Spécifique
11/02/2020 Bases de Données 58
LIEN DE GÉNÉRALISATION /
SPÉCIALISATION (3)
TE Générique
Article
Spécialisation Généralisation
Lien « Is-a »
TE Spécifique
Article Article Article
Alimentaire Habillement Hi-Fi

Inclusion de Population :
X Est un Y Tout X est Y
X Sous-type de Y
Y Sur-type de X
X Y

11/02/2020 Bases de Données 59


LIEN DE GÉNÉRALISATION /
SPÉCIALISATION (4)
0:n 0:n
No- article Attributs
Existe Article Marque Commun
Type
Lien « Is-a »

Article Article Article


Alimentaire Habillement Hi-Fi
0: n
Date limite Taille Couleur Puissance
Réparation
Les Attributs des sous-types sont 0: n
spécifiques aux informations
Service Après
additionnelles propres aux sous-types
Vente
11/02/2020 Bases de Données 60
GÉNÉRALISATION MULTIPLE (1)
Personne
Lien « Is-a »

Étudiant Enseignant

Doctorant Assistant Professeur

Assistants
Assistant-Doctorant

Assistants-Doctorants
Population
Doctorants
11/02/2020 Bases de Données 61
GÉNÉRALISATION MULTIPLE (2)
Personne
Lien « Is-a »

Étudiant Enseignant

Doctorant Assistant Professeur

Assistant-Doctorant

L’héritage pose des problèmes au niveau de la Généralisation Multiple :


il faut éviter d’hériter deux fois d’un ancêtre commun
 « Assistant-Doctorant » doit hériter une seule fois de « Personne » soit
par « Doctorant-Étudiant » soit par « Assistant-Enseignant »
11/02/2020 Bases de Données 62
CONTRAINTES D’INTÉGRITÉ (CI)
• Règles définissant les états cohérents de la BD
– Les CI sont des propriétés sémantiques du réel
perçu qui ne sont pas exprimables avec le modèle
E/A et que doivent satisfaire les données de la base
– Les CI doivent être décrites explicitement avec un
langage approprié
• Une BD est cohérente si toutes les CI définies
sont respectées par les valeurs stockées dans la BD
• Les CI sont subdivisées en deux catégories
– Contrainte Statique
– Contrainte Dynamique

11/02/2020 Bases de Données 63


CONTRAINTES D’INTÉGRITÉ (CI)
CONTRAINTE STATIQUE
• Une contrainte statique est une
propriété qui doit être vérifiée à tout
moment
• Exemples :
– Un auteur doit écrire au moins un article
(cardinalité « 1..n »)
– Date de mariage d’une Personne > Date
de sa naissance

11/02/2020 Bases de Données 64


CONTRAINTES D’INTÉGRITÉ (CI)
CONTRAINTE DYNAMIQUE
• Une contrainte dynamique est une propriété qui
doit respecter tout changement d’état de la Base
de Données
• Exemples :
– Le salaire d’un Employé ne peut qu’augmenter
– L’état civil d’une Personne évolue dans l’un des sens
suivants :
• {Célibataire}  {Marié}
• {Marié}  {Divorcé, Veuf}
• {Divorcé, Veuf}  {Marié}
• Remarque Importante :
– SI à un instant donnée, les valeurs de la BD ne satisfont
pas toutes les contraintes ALORS la BD est
incohérente
11/02/2020 Bases de Données 65
CONTRAINTES D’INTÉGRITÉ SUR LES
ATTRIBUTS
• But :
– Limiter les valeurs possibles d’un attribut à
certaines valeurs du domaine sous-jacent
• Exemples :
– Note de l’étudiant  [0..20]
– SI mois  {4, 6, 9, 11} ALORS jour  [1..30]
SINON SI mois = 2 ALORS jour  [1..29] SINON
jour  [1..31]
– SI une Personne participe à l’association
« Epouser » ALORS son état civil doit être
« Marié »

11/02/2020 Bases de Données 66


MODÉLISATION CONCEPTUELLE

PARTIE 2 : DIAGRAMME DE CLASSE UML

11/02/2020 Bases de Données 67


VUES DE MODÉLISATION
Fonctionnelle
Diagramme de Use Cases
(Diagramme d’activités)
(Diagramme de séquence)
3 Axes de
modélisation

Statique Dynamique
Diagramme de Classes Diagramme d’états
(Diagramme d’objets) (Diagramme d’activités)
(Diagramme de séquence)
Diagramme de composants
(Diagramme de déploiement) Diagramme de Collaboration

11/02/2020 Bases de Données 68


INTRODUCTION
DIAGRAMME DE CLASSE
• Représente la structure des classes d’un
système :
– Les Propriétés et les Méthodes de chaque
classe
– Les Relations existantes entre les classes
• Reprend les concepts du Modèle E/A et
propose de nouvelles fonctionnalités
pour améliorer la sémantique du d’un
schéma conceptuel
• S ’adapte parfaitement à la modélisation
d’une BD Relationnelle ou BD Objet-
Relationnelle
11/02/2020 Bases de Données 69
NOTION D’UNE CLASSE
• Classe
– Une classe est une structure qui décrit un groupe d’objets du
monde réel ayant les mêmes caractéristiques et le même
comportement
– Exemples : Client, Produit, Étudiant, Matière
• Attribut
– Un Attribut est une propriété de la Classe
– Exemples : Numéro, Nom, Prénom, Adresse, Téléphone,
etc.
– À chaque Attribut est associé un Type (Entier, Réel, Texte,
Date, Booléen, etc.) et éventuellement une valeur par défaut
– Un identifiant caractérise de façon unique les instances d’une
Classe
• Opération / Méthode
– Une Opération définit un service qui peut être demandé par
n’importe quel objet de la classe
– Une Méthode est une implémentation d’une Opération
– Dans le cadre de ce cours : Opération  Méthode
11/02/2020 Bases de Données 70
REPRÉSENTATION D’UNE CLASSE
Niveau sans détail Niveau détail d’analyse
PERSONNE PERSONNE Nom de la Classe
Nom
Prénom Attributs
Adresse
Modifier_Adresse() Opérations
• Niveau détail de conception (on doit préciser de plus par
rapport au niveau détail d’analyse)
– Les Types des Attributs (integer, string, date, etc.)
– Les valeurs par défaut
– Les signatures des opérations
– Le niveau de visibilité (Attributs et/ou Opérations) :
• (+) Public : « Membre Public » accessible par toutes les Classes
(visibilité par défaut)
• (-) Privé : « Membre Privé» inaccessible en dehors de sa Classe
(accessible seulement par la Classe elle-même)
• () Protégé : « Membre Protégé» accessible par les Méthodes de sa Classes
et ses Classes Dérivées
11/02/2020 Bases de Données 71
ATTRIBUT DÉRIVÉ
• Un attribut peut être dérivé (/Attribut) :
– Déduit par application d’une formule sur
d’autres Attributs
– Conduit en implémentation à une Opération

RECTANGLE RECTANGLE
Longueur Longueur
Note
Largeur Largeur
/ Surface Surface = Longueur * Largeur

Opérations Surface()

Niveau Analyse Niveau Conception


11/02/2020 Bases de Données 72
ASSOCIATIONS
• Association
– Une Association est un lien sémantique qui existe entre deux
Classes d’objets ou plus
• Plusieurs types d’associations
– Association à navigabilité restreinte
– Classe d’associations
– Associations récursives (réflexives)
– Associations n-aires
– Association d’agrégation
– Association de composition
– Héritage
• Remarque : Par rapport au Modèle E/A les
Représentations Conceptuelles UML sont plus riches
sémantiquement et plus proches de la réalité

11/02/2020 Bases de Données 73


RÔLE & ASSOCIATION (1)
• L’extrémité d’une Association peut posséder un
nom appelé Rôle qui décrit comment une Classe
source voit une Classe destination au travers
de l’association

[Nom Association]
CLASSE 1 CLASSE 2
[Rôle 1] [Rôle 2]

• Rôle 1 : le rôle joué par CLASSE 1 dans l’association


• Rôle 2 : le rôle joué par CLASSE 2 dans l’association
Employeur
SOCIÉTÉ PERSONNE
Employée

11/02/2020 Bases de Données 74


RÔLE & ASSOCIATION (2)
• L’indication des Rôles est nécessaire pour
les Associations ambiguës
Client
SOCIÉTÉ PERSONNE
Directeur

Parents

PERSONNE
Matricule : Entier
Nom : Texte
Enfants

11/02/2020 Bases de Données 75


MULTIPLICITÉ & ASSOCIATIONS
• Chaque extrémité d’une association porte
une indication de multiplicité
– Elle exprime le nombre minimum et maximum
d’objets d’une classe qui peuvent être reliés à
un objet d’une autre classe
Multiplicité Signification
1..1 (ou 1) Un et un seul
0..1 Zéro ou un
0..* (ou *) Zéro ou plus
1..* Un ou plus
m..n De m à n ( m et n des entiers)
11/02/2020 Bases de Données 76
AFFECTATION DES CARDINALITÉS
E/A VS UML
Entité 1 Entité 2
Diagramme A11 Card1 Card2 A21
Nom
E/A A12 Association A22
… …

CLASSE 1 CLASSE 2
Diagramme Card2 Card1
A11 A21
Classe UML A12 Nom A22
… Association …

11/02/2020 Bases de Données 77


AFFECTATION DES CARDINALITÉS
E/A VS UML (EXEMPLE)
• Considérons les règles de gestion
suivantes :
– Un livre comporte plusieurs chapitres
– Un chapitre appartient à un seul livre
– Un livre est édité par un seul éditeur
– Un éditeur peut éditer plusieurs livres
• Réalisez la modélisation conceptuelle de
cet exemple en utilisant : E/A et UML

11/02/2020 Bases de Données 78


AFFECTATION DES CARDINALITÉS
E/A VS UML (EXEMPLE)
Diagramme E/A
ÉDITEUR LIVRE CHAPITRE

Num Ed
1, n 1,1 NumLiv
1, n 1,1 NumCh
NomEd Éditer Titre Appartenir TitreCh
… … …

Diagramme Classe UML


ÉDITEUR LIVRE CHAPITRE

Num Ed
1..1 1..* NumLiv
1..1 1..* NumCh
NomEd Titre TitreCh
… Éditer … Appartenir …

11/02/2020 Bases de Données 79


ASSOCIATION À NAVIGABILITÉ
RESTREINTE
• Par défaut, une Association est navigable dans les
deux sens
• La réduction de la portée d’une Association peut
être exprimée à l’aide d’une flèche orientée pour
indiquer que les instances d’une Classe ne
« connaissent » pas les instances d’une autre

ÉLECTEUR CANDIDAT
NumCart : Entier 0..* 0..1 NumCand : Entier
NomElec : Texte NomCand : Texte
Voter

Un Candidat aux élections présidentielles ne peut pas connaître les Électeurs


qui ont voté pour lui
11/02/2020 Bases de Données 80
CLASSES D’ASSOCIATIONS
• Une Classe d’Association est une
Association promue au rang de la
Classe
– Elle possède à la fois les caractéristiques
d’une Association et celles d’une Classe et
peut donc porter des Attributs
– Une Classe d’Association est caractérisée
par un trait discontinu entre la Classe et
l’Association qu’elle représente

11/02/2020 Bases de Données 81


CLASSES D’ASSOCIATIONS
EXEMPLE 1
• Un Employé peut travailler sur plusieurs Projets et un Projet
peut impliquer plusieurs Employés. On désire comptabiliser le
nombre d’heures de travail de chaque Employé, sur chaque
Projet

EMPLOYÉ PROJET
Matricule : Entier 0..* 0..* NumProj : Entier
NomEmp : Texte NomProj : Texte
Grade : Texte Lieu : Texte

Travailler_Sur
NbreHeur : Réel

11/02/2020 Bases de Données 82


CLASSES D’ASSOCIATIONS
EXEMPLE 2
• Une Commande client peut contenir plusieurs lignes. Chaque
ligne correspond à un Produit commandé avec une certaine
quantité

COMMANDE PRODUIT
NumCde : Entier 0..* 1..* NumProd : Entier
DateCde : Date Libellé : Texte
PrixUnit : Réel

LigneCommande
Quantité : Réel

11/02/2020 Bases de Données 83


ASSOCIATIONS RÉCURSIVES
• Une Association Récursive ou bien
Cyclique représente un lien sémantique
entre les objets d’une même Classe
• En cas d’ambigüité, il faut préciser le Rôle
que va jouer chaque instance de la
Classe dans la Relation

11/02/2020 Bases de Données 84


ASSOCIATIONS RÉCURSIVES
EXEMPLE 1
• Dans une entreprise, chaque Employé possède un seul
supérieur hiérarchique (à part le PDG), alors qu’un chef peut
superviser un nombre quelconque de subordonnés

Superviser
Supérieur 0..1

EMPLOYÉ
Matricule : Entier 0..*
NomEmp : Texte
Grade : Texte Subordonné

11/02/2020 Bases de Données 85


ASSOCIATIONS RÉCURSIVES
EXEMPLE 2
• Dans un plan de formation, certains Cours nécessitent
d’autres Cours comme prérequis

Requérir
0..*

COURS
NumCours : Entier 0..*
IntituléC : Texte

11/02/2020 Bases de Données 86


ASSOCIATION N-AIRES
• Une Association N-Aires relie trois
Classes ou plus
• Elle est représentée par un grand
losange, où les arcs qui relient les
Classes impliquées dans l’association
sont marqués chacun de multiplicités

11/02/2020 Bases de Données 87


ASSOCIATION N-AIRES
EXEMPLE
• Un Enseignant peut donner plusieurs Cours à une même Classe, mais
un Cours ne peut pas être donné par plus d’un Enseignant à une même
Classe. De même, un Enseignant peut donner le même Cours à
plusieurs Classes
ENSEIGNANT COURS
Matricule : Entier 0..1 0..* NumCours : Entier
NomEns : Texte Donner Libellé : Texte
Grade : Texte
0..*
CLASSE
CodeClasse : Texte
LibelléCl : Texte
Dépt : Texte

11/02/2020 Bases de Données 88


ASSOCIATION D’AGRÉGATION (1)
• Une Agrégation est une Association non
symétrique et transitive qui :
– Exprime un couplage fort et une relation de
subordination
– Représente une relation de type « ensemble /
élément »
– Peut notamment (mais pas nécessairement) exprimer :
• qu’une Classe (un « élément agrégé ») fait partie d’une
autre (l’agrégat)
• qu’un changement d’état d’une Classe, entraîne un
changement d’état d’une autre,
• qu’une action sur une Classe, entraîne une action sur une
autre
• Les agrégations n’ont pas besoin d’être
nommées explicitement. Elles signifient
« contient »
11/02/2020 Bases de Données 89
ASSOCIATION D’AGRÉGATION (2)
• Une instance d’élément agrégé peut exister
sans agrégat (et inversement)
• Les cycles de vie de l’agrégat et de ses éléments
agrégés peuvent être indépendants
La création et la suppression de l’un n’implique
pas celle de l’autre

LIVRE COUVERTURE

Agrégation

Élément Agrégat Élément Agrégé

11/02/2020 Bases de Données 90


ASSOCIATION D’AGRÉGATION
EXEMPLES

Exemple 1 : Un Ordinateur peut contenir un ou plusieurs Disques Durs

ORDINATEUR DISQUE DUR


NumSérie : Entier NumDisque : Entier
Marque : Texte 1..* Capacité : Entier
0..1

11/02/2020 Bases de Données 91


ASSOCIATION DE COMPOSITION
• La Composition est une forme d’Agrégation avec un
couplage plus important, ce couplage indique :
– Les Composants ne sont pas partageables
– La destruction de l’agrégat entraîne la destruction des
composants agrégés
• La Composition est utilisée pour spécifier une dépendance
existentielle d’une entité vers une autre
– L’entité qui représente le tout est appelée Composite
– L’entité qui représente une partie du tout est appelée
Composant
• Dans une Association de Composition, la multiplicité du
côté du composite est systématiquement 1, car un
Composant doit appartenir à un et un seul Composite

11/02/2020 Bases de Données 92


ASSOCIATION DE COMPOSITION
EXEMPLES
Exemple 1 : Un Immeuble est composé de plusieurs Appartements

IMMEUBLE APPARTEMENT
NumImm : Entier NumAppa : Entier
Adresse : Texte 1..* Étage : Entier
1..1

Exemple 2 : Un Livre qui est composé de plusieurs Chapitres, peut


éventuellement contenir des Couvertures
COUVERTURE LIVRE CHAPITRE
0..1 1..1
NumC : Entier ISBN : Entier NumChap : Entier
Couleur : Texte 1..* Titre : Texte 1..* NumPage : Entier

11/02/2020 Bases de Données 93


AGRÉGATION & COMPOSITION
EXEMPLE RÉCAPITULATIF (1)
• Enoncé :
– Une Personne possède un ou plusieurs
Immeubles
– Dans un Immeuble, on trouve un
Ascenseur
– Un Immeuble est composé d’Étages
– Une Personne possède un Compte et une
Adresse
• Représentez le Diagramme de Classe ?
11/02/2020 Bases de Données 94
AGRÉGATION & COMPOSITION
EXEMPLE RÉCAPITULATIF (2)
• Raisonnement :
– Une Personne possède un ou plusieurs
Immeubles
• Lien conceptuel entre PERSONNE et IMMEUBLE :
les objets ont des cycles de vie indépendants
• Ce lien exprime une relation temporaire
 Association classique

11/02/2020 Bases de Données 95


AGRÉGATION & COMPOSITION
EXEMPLE RÉCAPITULATIF (3)
• Raisonnement :
– Dans un Immeuble, on trouve un Ascenseur
• Lien conceptuel entre IMMEUBLE et ASCENSEUR :
les objets ont des cycles de vie qui représentent une
intersection
• La suppression de l’Immeuble n’entraîne pas
obligatoirement celle de l’Ascenseur
• Un Ascenseur ne peut pas être utilisé (au même
temps) par plus qu’un Immeuble
• Dans le temps, le même Ascenseur peut être utilisé
par différents Immeubles
 Agrégation
11/02/2020 Bases de Données 96
AGRÉGATION & COMPOSITION
EXEMPLE RÉCAPITULATIF (4)
• Raisonnement :
– Un Immeuble est composé d’Étages
• Lien conceptuel entre IMMEUBLE et ÉTAGE :
les objets ont des cycles de vie qui coïncident
• La création de l’Immeuble  la création de
ses Étages
• La suppression de l’immeuble  la
suppression de ses Étages
• Un étage ne peut pas être partagé par
différents Immeubles
 Composition
11/02/2020 Bases de Données 97
AGRÉGATION & COMPOSITION
EXEMPLE RÉCAPITULATIF (5)
• Diagramme de Classe :

IMMEUBLE Posséder PERSONNE

0..* 1..*

1..*
Habiter
1..* 0..* 1..* 1..*
ÉTAGE ASCENSEUR ADRESSE COMPTE

11/02/2020 Bases de Données 98


HÉRITAGE
• L’héritage est un type d’Association qui
définit la structure d’une Classe en fonction
d’une autre (Association « EST-UN » ou
« IS-A »)
– La Classe de base est appelée super-classe 
identifie les attributs communs
– La Classe dérivée est appelée sous-classe 
précise les attributs spécifiques
• La sous-classe hérite à la fois les Attributs (y compris
l’identifiant), les Méthodes et les Associations de la
super-classe

11/02/2020 Bases de Données 99


HÉRITAGE
EXEMPLE
Exemple : La classe « Employé » généralise les classes « Administratif »,
« Technicien » et « Ouvrier »

EMPLOYÉ
Matricule : Entier
NomEmp : Texte
Grade : Texte

ADMINISTRATIF TECHNICIEN OUVRIER


Fonction : Texte Spécialité : Texte Nb_heures : Réel

11/02/2020 Bases de Données 100

Vous aimerez peut-être aussi