Académique Documents
Professionnel Documents
Culture Documents
M44 - Chapitre-2 - BD Relationnelles Et SGBD MySQL
M44 - Chapitre-2 - BD Relationnelles Et SGBD MySQL
l'élaboration du MCD (création des entités puis des associations puis ajout
des cardinalités).
◼ Lien association
◼ Propriété attribut
Attribut
Définition :
Une association est une représentation d'un lien sémantique non orienté
(associations binaire).
Plus la dimension d’une relation est grande, plus la relation devient
« marié à » est une association entre une personne (femme) et une autre personne (mari).
Association n-aire :
Exemple 1: une association ternaire (lie 3 entités):
« Assurer » est une association (ternaire) entre un Enseignant, une Matière et un Groupe
Association plurielle :
Elle permet de relier deux mêmes entités plusieurs fois en association.
Exemple :
Il est utile parfois d’ajouter des rôles pour faciliter la lecture de l’association.
Exemple :
Une propriété se décrit par son nom, une description, son type, sa longueur.
Pr. A. El Mhouti 15 FSTH
Modèle EA
Propriétés
Un identifiant est une Propriété spéciale (d’une entité ou d’une association) permettant
d’identifier de manière unique chaque occurrence d’un type d’entités (d’associations).
Un identifiant est constitué d’un ensemble minimal de propriétés permettant de
distinguer sans ambiguïté une occurrence de l’entité.
Toute entité doit avoir un identifiant.
MERISE propose de souligner l’identifiant ou de le précéder par le caractère #.
Exemple :
L’id de l’entité Clients est N° Client car 2 clients ne peuvent pas avoir le même N°.
L’id de l’entité Articles est N° Article car 2 articles ne peuvent pas avoir le même N°.
Remarque : Si une entité est identifiable par plusieurs identifiants, l’un d’eux est choisi
comme clé primaire.
Pr. A. El Mhouti 18 FSTH
Modèle EA
Identifiant d’une Association
L’identifiant d’une association peut être construit selon les possibilités suivantes :
1ère possibilité : attribut(s) propre(s) :
(Un client peut commander le même produit plusieurs fois à des dates différentes)
L’identifiant de l’association Commande est : Client.N°client + Produit.N°produit +date
(min,max) (min,max)
Dans le cas des relations binaires, ce qui est fréquent est résumé dans le
tableau suivant :
Entité1/Entité2 0-1 1-1 0-N 1-N
0-1 ? ? ✓ ✓
1-1 ? * ✓ ✓
0-N ✓ ✓ ✓ ✓
1-N ✓ ✓ ✓ ✓
? : il faut se demander si l’une des entités n’est pas propriété d’une autre.
• : à éviter car il traduit souvent une erreur de conception.
Lorsque autour d’une entité, toutes les associations ont pour cardinalités maximales 1
au centre et n à l’extérieur, cette entité est candidate pour être remplacée par une
association branchée à toutes les entités voisines avec des cardinalités identiques 0,n.
Exemple : soit la BD de gestion d’un cinéma suivante :
Remarques :
La difficulté de concevoir une association n-aire directement est d’établir les bonnes
cardinalités.
Il est donc conseillé d’en passer par un schéma EA dans lequel on ne trouve que des
associations binaires, puis de repérer les entités remplaçables par des associations.
Cette règle permet d’éviter d’introduire une association ternaire abusive.
Contre exemple :
Dans ce tableau, on trouve les valeurs prises par les différentes propriétés.
La propriété Prénom prend les valeurs (donc les occurrences !) : Amine, Latifa,
Mohamed, Adil, Ilham.
Pr. A. El Mhouti 27 FSTH
Modèle EA
Occurrence : Occurrence d’une entité
L’ensemble de valeurs prises par les propriétés d’une entité définit l’occurrence de
l’entité.
Etudiant
Exemple : soit l’entité Etudiant suivante :
Numéro
Nom
Prénom
Dans le tableau suivant, l’entité étudiant a 5 occurrences. Date_naiss
(Chaque ligne du tableau est une occurrence de l’entité). Note_Arabe
Note_Anglais
Une occurrence d’une association est l’ensemble de valeurs prises par les propriétés de
l’association générée par des occurrences des entités impliquées dans l’association.
Exemple : soit l’association « commander » suivante :
Occurrence
Exemple :
Les règles de gestion du MCD précisent les contraintes qui doivent être respectées par la
base de données.
Exemple : Dans le MCD d‘une école, les règles de gestion peuvent être les suivantes :
◼ RG1 : tout professeur enseigne en principe au moins une matière.
◼ RG2 : certains professeurs peuvent être dispensés d‘enseignement en raison de
leurs travaux de recherche.
◼ RG3 : toute matière est enseignée dans au moins une classe.
◼ RG4 : toute classe a au moins trois enseignants.
◼ …
Les CI sont des règles définissant les états (CI statiques) et les transitions d'état (CI
dynamiques) possibles de la BD.
Une BD est cohérente si toutes les CI définies sont respectées par les valeurs de la BD.
…
CI dynamiques :
Permettent d’exprimer le fait que les valeurs des données d’un état
dépendent d’un des états précédents.
Exemples :
Employé
N° employé
Salaire
Age
donnée calculée: information qui pourra être retrouvée par le biais d’un
calcul grâce aux données élémentaires et paramétrées.
Cette entité est redondante car les informations concernant les fournisseurs sont
redondantes.
Si on veut modifier l'adresse du fournisseur « Alaoui », il faut absolument vérifier que
toutes les adresses de Alaoui sont modifiées: La BD devenaient incohérente.
→ L'objectif de la normalisation du MCD (et du MLD) est de construire une BD
cohérente (sans anomalie).
Pr. A. El Mhouti 41 FSTH
Normalisation
Introduction
données.
Remplacer les attributs en plusieurs exemplaires par des entités avec des
associations supplémentaires de cardinalités maximales n.
Il faut éliminer les associations fantômes (toutes les cardinalités sont à 1,1).
Les cardinalités sont toutes 1,1 donc c’est une association fantôme.
Une association suffit pour remplacer les 4 associations « participer en tant que ».
Pr. A. El Mhouti 47 FSTH
Règles générales de normalisation
Normalisation des cardinalités
Cette relation est mal construite : les informations concernant les fournisseurs sont
redondantes.
S'il faut modifier l'adresse du fournisseur « Alaoui », il faut absolument vérifier que
toutes les adresses de « Alaoui » sont modifiées. La BD est incohérente.
Une DF est une propriété sémantique, elle correspond à une contrainte supposée
toujours vrai du monde réel.
De plus l'identification des DF est indispensable pour diminuer la redondance.
Exemple : Soit l’entité »Enseignant » suivante :
la DF : Grade, Echelon →Salaire signifie que tout salaire dépend d’un grade et d’un
échelon.
Pr. A. El Mhouti 53 FSTH
Dépendances fonctionnelles
Exemple
C'est une propriété qui doit être extraite de la connaissance que l'on a de
l'application à modéliser.
DF simple :
Une DF est simple si sa source n'est composée que d'un seul attribut.
Une DF simple caractérise une entité (table) dont la source est la clé et dont les
propriétés sont constituées par le but de la DF.
DF composée :
Une DF est composée si sa source est composée de plusieurs attributs.
Une DF composée caractérise une association entre entités (tables) dont la source
est la clé et dont les propriétés sont constituées par le but de la DF.
◼ Réflexivité : si Y ⊆ X alors X → Y
◼ Augmentation : si X → Y alors X ∪ Z → Y ∪ Z
◼ Transitivité : si X → Y et Y → Z alors X → Z
◼ Union : si X → Y et X → Z alors X → Y ∪ Z
◼ Pseudo-transitivité : si X → Y et Y ∪ W → Z alors X ∪ W → Z
◼ Décomposition : si X → Y et Z ⊆ Y alors X →Z
DF élémentaire (DFE) :
Une DF X → Y est dite élémentaire si :
◼ Y est un attribut unique non inclus dans X.
◼ il n’existe pas de X’ inclus dans X tel que X’ → Y (c à d: Y ne dépend pas
d’une partie de X).
Exemple:
Soit l’entité Fournisseur suivante :
Cette entité comporte la DF élémentaire :
No_Four, No_Piece ➔ Quantite
En effet, une quantité de pièces n'a de sens que pour un fournisseur et un type de
pièce donnés : pour un fournisseur on peut avoir différentes quantités de pièces et
il n'existe donc pas de DF No_Four ➔ Quantite.
De la même façon, il n'existe pas de DF No_Piece➔ Quantite.
Pr. A. El Mhouti 59 FSTH
Dépendances fonctionnelles
Types de DF
DF élémentaire directe :
X → Y est directe si elle est élémentaire et si Y ne dépend pas transitivement de
X (il n'existe pas d'ensemble d'attributs Z tel que X→ Z et Z →Y).
Contre exemple:
◼ DF1 : No_Etudiant → No_Filère
◼ DF2: No_ Filère → Nom_ Filère
◼ DF3 : No_Etudiant → Nom_ Filère n’est pas directe
DF triviale :
Une DF X → Y est triviale si Y ⊆ X.
DF canonique :
Une DF X → Y est canonique si sa partie droite ne comporte qu’un seul
attribut.
Pr. A. El Mhouti 60 FSTH
Dépendances fonctionnelles
DF et identifiants
Un attribut ou une liste d’attributs X est une clé pour la relation R(X,Y,Z) si X → Y ∪ Z.
GDF correspondant :
Le GDF obtenu doit ensuite être vérifié pour ne pas négliger certaines DF et ne pas
avoir des redondances de DF.
Pour cela, il faut tout d’abord traiter les éventuels cycles existants en éliminant l’une
des DF.
Exemple :
Soit l’ensemble de DF :
Une F* d’un ensemble F de DF est donc une représentation alternative, avec d’autres DF,
mais véhiculant une sémantique équivalente : au final, c’est exactement le même
ensemble de DF qui est implicite.
En représentant tous les attributs et toutes les DF élémentaires directes entre eux, nous
obtenons un réseau appelé graphe de couverture minimale (GCM).
Recherche des entités : tous les attributs non identifiant qui dépendant directement
d’un identifiant et d’un seul, forment une entité avec l’identifiant.
Recherche des propriétés : enfin, les attributs (non identifiants) qui dépendent de
plusieurs identifiants sont les attributs d’une association supplémentaire dont les
cardinalités maximales sont toutes n.
Pr. A. El Mhouti 67 FSTH
Dépendances fonctionnelles
Traduction GCM vers un schéma EA
Exemple :
Une entité R(A, B, C) est décomposable selon (A, B) et (A,C) s’il existe R1 et R2 telles que :
R1=πA,B(R) (R1 est la projection sur les colonnes A et B)
R2= πA,C (R) (R2 est la projection sur les colonnes A et C) R
R=R1*R2 (il est possible de reconstruire R par des opérations
relationnelles de jointure sur R1 et R2)
R1 R2
avec les DF :
◼ F = { E → A, E → B, E → C, C → D},
◼ F+ = F ∪ { E → D }.
R
Ces formes normales s’appuient sur la décomposition des schémas relationnels, tout en
préservant les DF et sans perdre d'informations.
On peut recenser les 6 formes normales suivantes : 1FN, 2FN, 3FN, FNBC, 4FN, 5FN
La 3ème FN est généralement reconnue comme la plus importante à respecter.
La BCNF est la plus simple à établir.
L’entité n’est pas en 1FN car un attribut ne peut pas être un ensemble de valeurs.
Solution : décomposer l’entité ELEVES en :
◼ ELEVES (no-elv, nom, prenom)
◼ NOTES (no-elv, no-matiere, note)
Il existe d‘autres formes normales mais on admet couramment que ces 3 premières
formes normales sont suffisantes pour permettre de construire des modèles fiables et
cohérents.
Parmi ces formes normales , la forme normale de BOYCE-CODD (FNBC).
Décomposition :
◼ CODES_Ville(CodePostal, Ville)
◼ CODES_Rues(CodePostal, Rue)
Le domaine Di d’un attribut est un type de données, il est définit par l’ensemble de ses
valeurs admissibles.
Exemples :
◼ nom : chaîne de caractères de longueur 30.
◼ num : entiers compris entre 1 et 10000.
◼ couleurs :{″blanc″, ″bleu″, ″vert″, ″jaune″, ″rouge″ }
◼ age : entiers compris entre 1 et 100.
◼ date : [01 :31] / [01 :12] / [1920 :2011]
Relation « Eleve »
Entité « Eleve »
Un schéma de relation est le nom de la relation suivi de la liste des attributs avec leurs
domaines (types).
Exemple :
Entité :
Schéma de relation :
Eleve (N°: Entier ; Nom: chaine; Prenom: chaine; Age:[0, 20]; Sexe: {M,F})
Pr. A. El Mhouti 90 FSTH
Principaux concepts
Clé primaire
La clé étrangère d’une relation est un attribut (ou groupe d’attributs) qui apparaît
comme clé primaire dans une autre relation référencée.
Exemple :
NumCli est une clé étrangère de la relation Commande (apparaît comme clé
primaire dans la relation Client).
Client Commande
Ainsi :
le client numéro 3 (Nicolas Jacques) a passé une commande de trois tubes de colle.
le client numéro 2 (Marie Malherbe) a passé 2 commandes (papier et ciseaux).
Le schéma relationnel est constitué par l’ensemble des schémas des relations avec les
clés primaires, les clés étrangères et éventuellement d’autres contraintes d’intégrité.
Les clés étrangères ont pour fonction principale la vérification de l'intégrité référentielle
de la BD.
Le mécanisme d'intégrité référentielle impose que chaque valeur d'une clé
étrangère existe comme valeur de la clé primaire dans la table référencée.
Exemple :
Soit les deux tables ETUDIANT et PROMOTION :
Dans cette BD :
➢ aucune valeur de la clé primaire _Promo ne
viole l'intégrité référentielle.
➢ Mais l’ajout d’un étudiant "0005, Ali, MIP"
serait rejetée car la clé primaire de la table
PROMOTION ne contient pas la valeur «
MIP ».
Que se passe-t-il si l'on supprime ou si l'on modifie une valeur de la clé primaire dont
dépendent d'autres valeurs dans une clé étrangère ?
➢ la suppression avec initialisation : toutes les clés étrangères égales à la clé primaire
supprimée sont mises à la valeur nulle.
➢ Exemple :
La suppression du tuple "MEEA, Maîtrise EEA" entraîne la mise à NULL de l'attribut _Promo
des étudiants portant les numéros 0001 et 0003.
Toute entité du MCD devient une relation du MLD, et donc une table de la BD.
Chaque propriété de l'entité devient un attribut de cette relation, et donc une colonne
de la table correspondante.
L'identifiant de l'entité devient la Clé Primaire de la relation (elle est donc soulignée).
La Clé Primaire de la table qui se situe du côté "complexe" devient une Clé
Etrangère dans la table qui se situe du côté "simple" ,
Une association de type simple-complexe disparait.
Si l’association est porteuse de propriétés, elles migrent également.
Exemple :
→ MLD :
◼ Client (Nclient, Société, Contact, Fonction, Ville)
◼ Commande (NCommande, DateCommande, #Nclient)
→ MLD:
◼ Animateur (idAnimateur, NomAnimateur)
◼ Groupe (idGroupe, NomGroupe, #idAnimateur)
→ MLD :
◼ Commande (NCommande, DateCommande)
◼ Produit (Nproduit, NomProduit)
◼ DétailCom (NCommande, Nproduit, quantité, PrixUnitaire)
→ MLD :
Etudiant (NEtudiant, NomEtudiant)
Niveau (NumNiv, NomNiv)
Langue (NLangue, NomLangue)
Parle (NEtudiant, NumNiv, NLangue)
◼ → MLD:
◼ Employé (idEmploye, NomEmploye, #idSup)
◼ idSup correspond à l'identifiant (idEmploye) du supérieur hiérarchique direct de
l'employé considéré.
Pr. A. El Mhouti 105 FSTH
Passage du modèle EA au modèle relationnel
Association Réflexive
→ MLD :
◼ PIECE(codePiece ,libellePiece)
◼ COMPOSITION (#pieceComposee , #pieceComposante)
Dans un MPD, on crée les tables (nom dans l’en-tête), on répertorie l’ensemble
des champs qu’elles contiennent (souligner les clés primaires et mettre un “#”
devant les clés étrangères).
Pour les clés étrangères ce n’est pas tout, il faut montrer, à l’aide d’une flèche
vers quel champ fait référence la clé étrangère.
Exemple :
MCD
MLD
MPD