Introduction aux Bases de Données Relationnelles
Introduction aux Bases de Données Relationnelles
Pr.HAJJI TARIK
Académie Royale Militaire de Meknès
Génie Informatique, 3eme année
2021-2022
INTRODUCTION
26/09/2023 bd 2
QU’EST CE QU’UNE BD ?
• Collection de données
stockées pour une
longue durée (souvent
des années …)
• Techniquement :
Collection de données «
structurée » gérée par
un SGBD
– Système de Gestion de
Bases de Données
26/09/2023 bd 3
SGBD
26/09/2023 bd 4
SGBD
✔Masse de données
✔Persistance
✔Sécurité
✔Multi-utilisateurs
✔Simplicité
✔Efficacité
✔Fiabilité
26/09/2023 bd 5
SGBD
26/09/2023 bd 6
PLAN DE COURS
26/09/2023 bd 7
BASES DES DONNÉES
26/09/2023 bd 9
MODÈLE DE DONNÉES ?
• Deux modèles majeurs pour les systèmes de bases
de données actuels :
o Le modèle relationnel, y compris les extensions objet-
relationnel
• Simple et efficace !
• Présent dans tous les systèmes de gestion de bases de données
(SGBD).
• Objet de ce cours.
o Le modèle de données semi-structurées, y compris XML
et les normes associées
• Plus de flexibilité
26/09/2023 bd 10
MODÈLE DE DONNÉES ?
26/09/2023 bd 11
MODÈLE RELATIONNEL
• Modèle défini en 1970 par Codd:
– o « A Relational Model of Data for Large Shared Data
Banks »
• Un modèle simple et efficace.
• La majorité des SGBD se basent sur le modèle
relationnel.
• Les premiers SGBD bâtis sur ce modèle :
o SQL/DS (1981) et DB2 (1983) de IBM.
o Implémentent le langage SQL (SEQUEL) : langage de
manipulation de BD relationnelles (1974).
26/09/2023 bd 12
MODÈLE RELATIONNEL
• Repose sur de solides bases théoriques : algèbre
relationnel
• Le succès du modèle relationnel est due à :
– La simplicité de la structure des données:
• Une approche simple et limitée de la structuration des données
Une BD relationnelle est composée de tables (relations)
– La simplicité des opérateurs:
• Un nombre limité d'opérations sur les données
• Toute opération relationnelle sur une table génère une nouvelle
table
26/09/2023 bd 13
BASES DES DONNÉES
Etudiant Ecole
26/09/2023 bd 15
Base de données relationnelle
• Une base de données est un ensemble de relations
(tables)
• Chaque relation a un ensemble d’attributs (ou colonnes)
Etudiant Ecole
26/09/2023 bd 16
Base de données relationnelle
• Une base de données est un ensemble de relations (ou tables)
• Chaque relation a un ensemble d’attributs (ou colonnes)
• Chaque tuple (ou ligne) a une seule valeur pour chaque attributs
• Chaque attribut a un type ou domaine (integer, string, date …)
code nom note photo nom ville effectif
FC404 Amine 13 ENSAM Meknès 400
KL239 Fatima 14 ARM Meknès 500
PX354 Samir 15 EST Fès 600
… … … … … … …
Etudiant Ecole
26/09/2023 bd 17
VALEUR NULL
• La valeur NULL
Etudiant Ecole
26/09/2023 bd 18
CLÉ PRIMAIRE
• Clé d’une relation (Key)
– Un attribut (ou combinaison d’attributs) à valeur unique pour chaque tuple.
un type de contraintes sur les relations
• La clé primaire (PRIMARY KEY)
• Dans la pratique on utilise des clés artificielles (ID)
Etudiant Ecole
26/09/2023 bd 19
SCHÉMA RELATIONNEL
• Schéma = Description structurelle des relations
(tables) de la base de données
– Etudiant (code, nom, note, photo)
– Ecole (nom, ville, eff)
• Etudiant (code : int , nom : string , note : float , photo :
string)
code nom note photo nom ville effectif
FC404 Amine 13 NULL ENSAM Meknès 400
KL239 Fatima 14 NULL ARM Meknès NULL
PX354 Samir 15 NULL EST Fès 600
… … … … … … …
Etudiant Ecole
26/09/2023 bd 20
INSTANCE D’UNE RELATION
Etudiant Ecole
26/09/2023 bd 21
Exemple: schéma d’une BD
26/09/2023 bd 22
Base de données
26/09/2023 bd 24
Création de tables
• L'instruction CREATE TABLE déclare le schéma d'une
relation :
– Déclare le nom de la table, ses attributs et leurs types.
– Permet également de déclarer une clé, ou plusieurs clés,
de la table.
– Aussi la déclaration des contraintes, des indexes, …
26/09/2023 bd 25
Création de tables - Exemple
26/09/2023 bd 26
Data types
• Chaines de caractères (string) :
– CHAR(n), VARCHAR(n)
• Les entiers :
– INT, INTEGER, SHORTINT, …
• Les nombres à virgule flottante :
– FLOAT REAL, DECIMAL(n, d), NUMERIC, …
• Dates et heures :
– DATE, DATETIME, …
• Booléens :
– BOOLEAN
26/09/2023 bd 27
Insertion de tuples
26/09/2023 bd 28
Insertion de tuples Exemple
26/09/2023 bd 29
BD – LES ÉTAPES
• Etapes de création et d’exploitation :
• 1. Conception du schéma de la BD
• 2. Création du schéma en utilisant SQL DDL
• 3. Chargement de données initiales (Bulk load)
• 4. Exécution de requêtes SQL d’interrogation
et de modification DML
26/09/2023 bd 30
BASE DE DONNÉES
26/09/2023 bd 32
RELATION DES DÉPARTEMENTS DEP
26/09/2023 bd 33
EXEMPLES DE
TUPLES
26/09/2023 bd 34
DDL de la BD
26/09/2023 bd 35
ARCHITECTURE DE LA BD
SQLite
Studio
SQL
Lite
Base de
26/09/2023 bd donnes locale 36
BASE DE DONNÉES
Introduction
Projection et sélection
Jointures
Opérateurs ensemblistes
26/09/2023 bd 38
ALGÈBRE RELATIONNELLE ET
SQL
PROJECTION ET SÉLECTION
ALGÈBRE RELATIONNELLE
Une algèbre composée de relations (tables)
et d’opérateurs sur ces relations.
Une requête (expression) sur un ensemble
de relations produit une relation comme
résultat.
26/09/2023 bd 40
ALGÈBRE RELATIONNELLE VS SQL
L'algèbre relationnelle n'est pas utilisée
comme langage de requêtes dans les SGBD
actuels.
SQL est le standard.
Mais, une requête SQL est généralement
traduite en algèbre relationnelle par le SGBD
pendant l’exécution.
Implémentation et optimisation de
requêtes
26/09/2023 bd 41
OPÉRATEURS
4 catégories d’opérateurs de l'algèbre
relationnelle :
Opérateurs usuels sur les ensembles : union,
intersection et différence
Opérateurs de sélection et projection sur
une seule table
Opérateurs de jointures de deux ou
plusieurs tables
Un opérateur pour renommer un attribut ou
une table
26/09/2023 bd 42
Project ion
PROJECTION
26/09/2023 bd 43
PROJECTION
• Exemples :
– La table Livre (idlivre, titre, annee, langue,
editeur, prix)
26/09/2023 bd 44
PROJECTION
26/09/2023 bd 45
PROJECTION
26/09/2023 bd 46
PROJECTION
26/09/2023 bd 47
PROJECTION
• En langage SQL
26/09/2023 bd 48
PROJECTION
26/09/2023 bd 49
PROJECTION
• En algèbre relationnel :
– « A relation is a set of
tuples »
• En SQL :
– « A relation is a bag of
tuples »
26/09/2023 bd 50
PROJECTION
• En algèbre relationnel :
– « A relation is a set of
tuples »
• En SQL :
– « A relation is a bag of
tuples »
26/09/2023 bd 51
LA SÉLECTION
26/09/2023 bd 52
LA SÉLECTION
26/09/2023 bd 53
LA SÉLECTION
26/09/2023 bd 54
LA SÉLECTION
• En langage SQL
26/09/2023 bd 55
LA SÉLECTION
26/09/2023 bd 56
LA SÉLECTION
26/09/2023 bd 57
COMBINAISON D’OPÉRATIONS
26/09/2023 bd 58
ALGÈBRE RELATIONNELLE ET
SQL
OPÉRATEURS DE JOINTURES
OPÉRATEURS DE JOINTURES
26/09/2023 bd 60
OPÉRATEURS DE JOINTURES
26/09/2023 bd 61
PRODUIT CARTÉSIEN
Soient 𝑅(𝐴1, 𝐴2,…, 𝐴𝑛) et 𝑆(𝐵1, 𝐵2,…,𝐵𝑚) deux schémas
relationnels de deux tables R et S.
Le produit 𝑅 × 𝑆 est une relation définie par :
26/09/2023 bd 63
PRODUIT CARTÉSIEN
26/09/2023 bd 64
PRODUIT CARTÉSIEN
• En langage SQL
26/09/2023 bd 65
PRODUIT CARTÉSIEN
26/09/2023 bd 66
JOINTURE NATURELLE (NATURAL
JOIN)
26/09/2023 bd 67
JOINTURE NATURELLE
Exemple :
26/09/2023 bd 68
JOINTURE NATURELLE
• En langage SQL
26/09/2023 bd 69
JOINTURE NATURELLE
26/09/2023 bd 70
JOINTURE THÉTA (THETA-JOIN)
26/09/2023 bd 71
JOINTURE THÉTA
Exemple :
26/09/2023 bd 72
JOINTURE THÉTA
• En langage SQL
26/09/2023 bd 73
JOINTURE THÉTA
26/09/2023 bd 74
OPÉRATEURS ENSEMBLISTES: UNION,
INTERSECTION ET DIFFÉRENCE
• Soient 𝑅 et 𝑆 deux relations de même
schéma.
– L’union 𝑅 ∪ 𝑆 est une relation définie par
𝑹 ∪ 𝑺 ={ 𝒕| 𝒕 ∈ 𝑹 𝒐𝒖 𝒕 ∈ 𝑺}
– L’intersection 𝑅 ∩ 𝑆 est une relation
définie par 𝑹 ∩ 𝑺 ={ 𝒕| 𝒕 ∈ 𝑹 𝒆𝒕 𝒕 ∈ 𝑺}
– La différence 𝑅 − 𝑆 est une relation définie
par 𝑹 − 𝑺 ={ 𝒕 |𝒕 ∈ 𝑹 𝒆𝒕 𝒕 ∉ 𝑺}
26/09/2023 bd 75
UNION, INTERSECTION ET
DIFFÉRENCE
Exemple :
26/09/2023 bd 76
UNION, INTERSECTION ET
DIFFÉRENCE
• En langage SQL
26/09/2023 bd 77
UNION, INTERSECTION ET
DIFFÉRENCE
26/09/2023 bd 78
UNION, INTERSECTION ET
DIFFÉRENCE
26/09/2023 bd 79
SQL - AGRÉGATION ET
GROUPEMENT
AGRÉGATION
Le salaire min, le salaire max et la moyenne des
salaires des employés?
Le nombre d’employés ingénieurs?
La moyenne des salaires par ville? Ou par profession ?
Opérateurs d’agrégation
26/09/2023 bd et groupement 81
Des opérateurs qui s’appliquent sur un
ensemble de valeurs (numériques, chaines,
…) et qui produisent une valeur agrégée
comme résultat.
Ces opérateurs sont utilisés pour résumer ou
«agréger» les valeurs d’une colonne d'une
relation opérateurs d'agrégation.
26/09/2023 bd 82
Les opérateurs standard :
SUM
MIN
MAX
AVG
COUNT
…
26/09/2023 bd 83
26/09/2023 bd 84
Le salaire min, le salaire
max et la moyenne des
salaires des employés?
26/09/2023 bd 85
Le nombre d’employés ingénieurs?
26/09/2023 bd 86
Le nombre de professions?
Attention à la répétition !
26/09/2023 bd 87
Le salaire moyen
des
ingénieur?
26/09/2023 bd 88
26/09/2023 bd 89
SQL - AGRÉGATION ET
GROUPEMENT
GROUPEMENT
Le salaire moyen par profession ?
26/09/2023 bd 91
Regrouper les tuples d’une table en
sous groupes avant d’appliquer un
opérateur d’agrégation sur chaque
sous groupe.
Le groupement se fait selon la
valeur d’une colonne (ou plusieurs
colonnes)
26/09/2023 bd 92
Le salaire moyen par profession ?
26/09/2023 bd 93
La somme et la moyenne des salaires par ville ?
26/09/2023 bd 94
La moyenne des salaires par prof dans chaque ville ?
26/09/2023 bd 95
SQL - AGRÉGATION ET
GROUPEMENT
SQL - MODIFICATIONS
1. Ajouter un nouveau
employé? Un nouveau
département ?
2. Mettre à jour les données
d’un ou plusieurs
employés?
3. Supprimer un ou
plusieurs employés?
4. Requêtes de
modification de
données : INSERT,
26/09/2023 bd UPDATE, DELETE 102
Insertion de tuples dans une relation.
La forme de base de l'insertion est :
INSERT INTO R (A1, A2, …, An) VALUES (v1, v2, …, vn);
Un tuple sera créé en utilisant les valeurs vi pour les
attributs Ai.
Si la liste des attributs n'inclut pas tous les attributs
de la relation R, alors le tuple créé a des valeurs par
défaut pour tous les attributs manquants.
Forme simplifiée :
INSERT INTO R VALUES (v1, v2, …, vn);
26/09/2023 bd 103
INSERT INTO emp
VALUES (105, ‘ADIL’,
‘Ingénieur’, 1100, 10);
26/09/2023 bd 104
INSERT INTO emp (enom,
enum) VALUES (‘ZAID’, 106);
26/09/2023 bd 105
On peut insérer un ensemble de tuples en
utilisant les sous requêtes :
INSERT INTO R (A1, A2, …, An)
SELECT B1, B2, …, Bn
FROM T
WHERE Condition;
26/09/2023 bd 106
Suppression de tuples d’une relation
vérifiant une condition.
La forme de base de la suppression est :
DELETE FROM R WHERE Condition;
Cette requête a pour effet que chaque
tuple de R qui satisfait la condition sera
supprimé de la relation R.
26/09/2023 bd 107
Supprimer les employés
qui ont un salaire supérieur
à 1100.
DELETE FROM
emp
WHERE
sal >= 1100;
26/09/2023 bd 108
Supprimer les employés
qui travaillent à Casa.
DELETE FROM emp
WHERE dnum IN
(SELECT dnum FROM
dep WHERE
ville=‘Casa’);
26/09/2023 bd 109
Changer les valeurs des composants (attributs) d’un
ou plusieurs tuples d’une relation.
La forme de base de la mise à jour est :
UPDATE R SET A1=v1, A2=v2, …, An=vn WHERE
Condition;
L'effet de cette instruction est de trouver tous les tuples
de R qui satisfont la condition.
Chacun de ces tuples est ensuite modifié en affectant les
valeurs vi aux composants Ai du tuple.
26/09/2023 bd 110
UPDATE emp
SET sal = sal + sal*10/100
WHERE prof=‘Technicien’;
26/09/2023 bd 111
UPDATE emp
SET sal = sal + sal*10/100 ;
Augmenter de
10% les salaires
de tous
les employés ?
26/09/2023 bd 112
BASES DES DONNÉES
26/09/2023 bd 115
Gestion des candidatures des élèves aux
écoles post-Bac.
Données manipulées :
Numéro de l’élève, nom, tél et email.
Série et moyenne de Bac
Nom de l’école, ville et nombre de places
On peut utiliser la relation :
Candidature (num, nom, serie, moy, tel, email,
ecole, ville, places).
26/09/2023 bd 116
• Quelques tuples possibles :
26/09/2023 bd 118
Un bon schéma pas d’anomalies :
Redondances
Plusieurs fois la même information.
des valeurs peuvent être éliminées sans perte
d’information
Problème de mise à jour
Une occurrence d’une information est modifié et pas les
autres.
Problème de suppression
Une information pertinente est perdue en supprimant un
tuple.
La normalisation des relations permet d’éviter
ces anomalies.
26/09/2023 bd 119
Normalisation = Ensemble de règles
introduites dans le modèle relationnel dès son
origine qui, une fois satisfaites, garantissent :
La non redondance des données
La cohérence lors de la manipulation des
données (insertion, mise à jour, suppression).
Ces règles sont appelées :
Formes Normales (FN)
26/09/2023 bd 120
Les FN sont dépendantes :
Une relation en 3FN est nécessairement en
2FN et 1FN.
Normaliser un schéma relationnel passe
essentiellement
par l’étude des
dépendances
fonctionnelles.
26/09/2023 bd 121
BASES DES DONNÉES
Dépendances Fonctionnelles
Normaliser un schéma relationnel
passe essentiellement par l’étude
des dépendances fonctionnelles.
Un concept clé dans la conception
26/09/2023 bd 123
On considère deux attributs moy et mention d’une
relation étudiant
Avec les règles suivantes :
16 ≤ moy mention = T. bien
14 ≤ moy < 16 mention = Bien
12 ≤ moy < 14 mention = A. bien
10 ≤ moy < 12 mention = Passable
Deux étudiants qui ont la même moy ont
nécessairement la même mention
On dit que la mention dépend fonctionnellement de
la moy :
Moy Mention
26/09/2023 bd 124
Soit R une relation et A, B deux attributs de R
On dit que B dépend fonctionnellement de A
(ou A détermine B) ssi à toute valeur de A
correspond une et une seule valeur de B.
Autrement dit : si deux tuples de R ont la
même valeur sur A alors ils ont aussi la
même valeur sur B.
26/09/2023 bd 125
A1 , A2 , … , An B1 , B2 , … , Bm;
Si deux tuples de R ont les mêmes
26/09/2023 bd 126
école , ville places num nom
num , école , ville classement num série
num , école , ville nom, série, num moy
moy, tél, email, num tél
26/09/2023 places. bd num email
127
Remarque:
Les DF sont basées sur la
compréhension du domaine
étudié (le système
d’information).
26/09/2023 bd 128
AB,C => AB et AC (Décomposition)
AB et AC => A B,C (Combinaison)
A B et B C => AC (transitivité)
Si B est une partie de A alors AB
(dépendance triviale)
Si AB alors A , CB
26/09/2023 bd 129
AB est une dépendance fonctionnelle
élémentaire si
Aucune partie de A ne détermine B
B ne dépend pas d’une partie de A
Exemples :
Num_facture , Ref_produitQuantité_achetée
Est élémentaire.
Code_Etudiant , Num_Livre , Date_emprunt
Date_retour
N’est pas élémentaires.
26/09/2023 bd 130
école , ville places num nom
num , école , ville classement num série
num , école , ville nom, série, num moy
moy, tél, email. num tél
26/09/2023 bd
num email
131
AB est une dépendance fonctionnelle directe
si:
il n’existe pas d’attribut C tel que AC et CB (càd
A C B).
AB ne peut pas être déduite par transitivité
Exemples :
Ref_produitTaux_TVA
Ref_produitCatégorie
CatégorieTaux_TVA
Donc Ref_produitTaux_TVA n’est pas directe, elle est
transitive
26/09/2023 bd 132
BASES DES DONNÉES
Les FN : règles pour éviter les anomalies dans un
schéma relationnel
26/09/2023 bd 134
26/09/2023 bd 135
Une relation R est en 1FN si :
R possède une clé
Les domaines des attributs de R sont constitués
de valeurs atomiques :
chaque valeur d’un attribut provienne d’un
domaine non structuré.
Pas d’ensemble.
Pas de type énuméré.
Pas de groupes répétitifs.
26/09/2023 bd 136
Exemple : employés et projets
MembreProjet ( id_emp , Nom , Fonction , id_proj )
26/09/2023 bd 137
26/09/2023 bd 138
Une relation R est en 2FN si :
R est en 1FN
Il existe une dépendance
fonctionnelle élémentaire reliant la
clé de R à chaque attribut non clé.
tout attribut hors clé ne dépend
pas d’une partie de la clé
26/09/2023 bd 139
Soit R (A , B , C , D) :
Décomposition en 2 NF :
Isoler la DF partielle dans une nouvelle relation
Eliminer la cible de la DF de la relation initiale
26/09/2023 bd 140
Relation:
Candidature (num , nom , série , moy , tél , email ,
école , ville , places , classement)
Clé:
(num , école, ville)
26/09/2023 bd 141
Candidature (num, nom, série, moy, tél , email , école , ville , places ,
classement)
Clé de la relation :
(num , école, ville)
DF :
numànom , série , moy , tél , email
école , ville àplaces
num , école, ville àclassement
Décomposition en 2FN :
Élève (num , nom , série , moy , tél , email)
Ecole (école , ville , places)
Candidature (num , école, ville , classement )
26/09/2023 bd 142
26/09/2023 bd 143
26/09/2023 bd 144
Une relation R est en 3FN si :
R est en 2 FN
Tout attribut hors clé de R est en DF
directe par rapport à la clé
(pas de transitivité)
Tout attribut de R, n’appartenant
pas à la clé, ne dépend que de la clé
26/09/2023 bd 145
Soit R (A , B , C , D) :
Décomposition en 3 NF :
Isoler la DF transitive dans une nouvelle relation
Eliminer la cible de la DF de la relation initiale
26/09/2023 bd 146
On considère la relation suivante pour la gestion des
ventes :
vente (facture , date , ref , design , pu , categ , tva , qte)
Clé de la relation ( facture , ref )
DF :
facture , refàdate , design , pu , categ , tva , qte
facture date Décomposition en 3FN :
Refdesign, pu, categ, tva facture ( facture , date )
produit (ref , design , pu , categ )
facture , refqte Categ (categ , tva )
Categtva vente ( facture , ref , qte)
La relation vente n’est pas en 2FN
26/09/2023 bd 147
26/09/2023 bd 148
Une relation R est en BCNF si :
Pour toute dépendance fonctionnelle (non
triviale) AB sur les attributs de R, A est une
clé de R.
C’est-à-dire :
Tout attribut non clé de la relation n'est pas
source de DF.
Les seules DF élémentaires qu’elle comporte
sont celle où une clé détermine un autre
attribut.
26/09/2023 bd 149
Remarques:
Si une relation R est en BCNF
alors elle est en 3 NF.
Si R est en 3 NF alors elle n’est
26/09/2023 bd 150
Soit R (A , B , C , D , E) :
Décomposition en BCNF :
Isoler la DF problématique dans une nouvelle
relation
Eliminer la cible de la DF problématique et la
remplacer par sa source dans la relation initiale
26/09/2023 bd 151
On considère la relation suivante :
Enseignement ( section , prof , matière , séance ,
salle)
Un prof enseigne une matière à une section
pendant une séance
DF :
section , matièreprof , séance , salle
On suppose qu’un prof enseigne une seule matière
Donc : profmatière
Clé de la relation (section , matière)
La relation est en 3FN, mais n’est pas en BCNF
26/09/2023 bd 152
Remarques:
Toute relation a une
décomposition en BCNF sans
perte d’information.
Mais, une décomposition en
26/09/2023 bd 155
Le MCD contient 3 concepts de base :
Entité
Association (lien)
Propriété (attribut)
Modèle entité-association
26/09/2023 bd 156
Une propriété est une donnée élémentaire manipulée dans
le SI et ayant un sens.
Elémentaire (ou atomique) non décomposable.
Règles :
Une propriété ne doit pas être composée
Attention : date, adresse ?
Une propriété ne doit pas être calculée ou dérivée (prix TTC, durée,
âge…).
Une propriété ne doit jamais être redondante dans le MCD :
Pas de synonymes (ex : référence article et numéro produit).
Pas de polysèmes : même signifiant pour plusieurs signifiés (ex :
"adresse" qui désigne "adresse client" et "adresse fournisseur").
On crée deux propriétés avec deux noms différents.
26/09/2023 bd 157
Une entité est un ensemble de propriétés caractérisant un
type d'objets du SI.
Exemples : étudiant, enseignant, filière, module, élément,
note, …
Exemples : employé, service, produit, client, fournisseur,
commande, facture …
Parmi les propriétés d'une entité, une propriété (ou sous-
ensemble de propriétés) joue le rôle d’identifiant
Identifier d’une manière unique chaque occurrence de
l’entité.
Exemples : code Massar, matricule employé, référence
produit, …
Le plus souvent, l’identifiant est un numéro, code, référence …
26/09/2023 bd 158
Dans une entité, les propriétés n’appartenant
pas à l’identifiant sont en dépendances
fonctionnelles élémentaires et directes
(DFED) par rapport à l’identifiant
Exemple : Entités Etudiant et Ecole
26/09/2023 bd 159
Une association représente les liens qui existe
entre les objets (instances des entités) du
système d’information modélisé.
Une association relie deux ou plusieurs entités
(binaire, ternaire, n-aire, réflexive)
Exemples :
Un employé est affecter à un service
Une commande concerne un ou plusieurs produits
Un employé est chef d’un employé
Un module contient un ou plusieurs éléments
Un étudiants est inscrit dans des modules
26/09/2023 bd 160
Représentation et règles de gestion
Règles de gestion:
Un employé est affecté à un et un seul service
Un service contient plusieurs employé
Un service peut ne contenir aucun employé
26/09/2023 bd 161
Une association peut être porteuse ou non de
propriétés.
Les propriétés d’une association sont en dépendances
fonctionnelles élémentaires et directes par rapport
aux identifiants de leurs entités.
Exemple : Le classement d’un étudiant dans une
candidature à une école.
26/09/2023 bd 162
Les cardinalités représente pour chaque couple
(entité, association) les nombres minimum et
maximum d'occurrences de l'association que peut
avoir un objet.
Chaque sens de lecture d’une association est
entièrement décrit lorsqu'on précise le couple
(cardinalité minimale, cardinalité maximale).
26/09/2023 bd 163
Cardinalités possibles :
(0,1)
(1,1)
(0,n)
(1,n)
Les cardinalités traduisent les règles de
gestion.
26/09/2023 bd 164
Lorsque la cardinalité maximale de l'un des côtés d’une association vaut 1 on
dit que l'association binaire est fonctionnelle.
On l’appelle dépendance fonctionnelle (DF) ou contrainte d'intégrité
fonctionnelle (CIF).
Les associations binaires ayant les cardinalités (x, 1) constituent une CIF
26/09/2023 bd 165
BASES DES DONNÉES
Etape 1 : Dégager la liste des propriétés
À partir de l’analyse de l’existant dans le
Système d’Information à modéliser
À partir des documents recueillis
À partir des questionnaires
À partir de l’énoncé du problème
…
26/09/2023 bd 167
Exemple :
Nom client
Adresse client
N°, rue, CP, ville
Numéro facture
Date facture
Numéro commande
Échéance
Quantité
Désignation
Prix unitaire HT
Montant HT
Total HT
Total TVA
Total
Numéro client
Référence produit
Catégorie Produit
TVA
26/09/2023 bd 168
Étape 2 : Établir le dictionnaire de données
Nom abrégé de la propriété
Nom détaillé de la propriété
Sa nature : E (Élémentaire), CA (Calculée) et CO (Concaténée)
Type : N (Numérique), A (Alphabétique), AN (AlphaNum.),
Date, …
Remarques : si la propriété est calculée, on écrit l’expression
du calcul; si elle est concaténée, on écrit l’expression de
décomposition.
26/09/2023 bd 169
26/09/2023 bd 170
Étape 3 : Tracer le graphe de dépendances
fonctionnelles élémentaires et directes
(GDFED):
Dégager l’ensemble des DF entre les propriétés
Tracer ces DF sous forme d’un graphe
Ne garder sur le graphe que les DF élémentaires
et directes
26/09/2023 bd 171
26/09/2023 bd 172
26/09/2023 bd 173
Étape 4 : Déduire le MCD à partir du GDFED
Un MCD est composé d’entités et d’associations.
Règles
Les propriétés qui dépendent d’une seule propriété forment
une entité
Les propriétés qui dépendent d’une propriété composée des «
clés d’entités » forment une relation qui associe ces entités
Les cardinalités des associations sont déduites des règles de
gestion
26/09/2023 bd 174
Transformation du GDFED en MCD
Toute propriété du GDF devienne une propriété dans
le MCD.
N.B. chaque propriété figure une et une seule fois sur le
GDFED et sur le MCD
Les propriétés sources de DF (celles qui sont
soulignées sur le graphe) représentent les
identifiants des entités dont les attributs sont les
cibles de ces DF.
Les flèches restantes deviennent des associations.
Les propriétés déterminées par une DF conjointe
deviennent des attributs portés par l’association.
Les règles de gestion doivent permettre de trouver
les cardinalités.
26/09/2023 bd 175
26/09/2023 bd 176
26/09/2023 bd 177
26/09/2023 bd 178