Vous êtes sur la page 1sur 65

Bases de données MySQL

Formes normales et héritage

A . BEG DOU R I
L ST - I N FO
2020 - 2021

1
Plan
 Modèle Entité-Association
o Entité faible

 Normalisation
 Modèle relationnel et règles de passage
 Modèle Entité-Association étendu
o Héritage/spécialisation

2
Modèle Entité-Association

3
Conception d’une base de données
relationnelle

4
Conception d’un schéma E/A
 Déterminer la liste des entités
 Pour chaque entité :
o établir la liste de ses attributs
o parmi ceux-ci, déterminer un identifiant
 Déterminer les associations entre les entités
 Pour chaque association :
o dresser la liste des attributs propres à l’association
o vérifier la dimension (binaire, ternaire, etc.)
o définir les cardinalités
 Vérifier le schéma obtenu, notamment :
o supprimer les transitivités
o s’assurer que le schéma est connexe
o s’assurer qu’il répond aux demandes
 Valider avec les utilisateurs

5
Règles de conception d’un modèle E/A
 n°1:
o Un attribut ne doit apparaître qu’une seule fois dans un modèle E/A

 Règle n°2:
o Chaque entité doit avoir un identifiant

 Règle n°3:
o Les propriétés résultant d’un calcul ne doivent pas figurer dans un modèle E/A

6
Eléments de base du modèle Entité-
Association
 Entité
o type d’entité (TE)
o Attribut
o identifiant

 Association
o Type d’association (TA)
o Cardinalité

 Contraintes d’intégrité

7
Entité
 Définition:
o On désigne par entité tout objet identifiable et pertinent pour l’application

 Deux types d’entités:


o Entité régulière : son existence ne dépend pas de l’existence d’une autre entité.
o Entité faible : son existence dépend de l’existence d’une autre entité (le
contrat n’existe que si le client correspondant est présent)

8
Attribut
 Un attribut est une caractéristique ou propriété d’une entité

 Un attribut a un domaine de valeurs et peut être obligatoire ou


facultatif

9
Type d’entité
 Un type d’entité est composé des éléments suivants
o Son nom
o La liste de ses attributs, avec, optionnellement, le domaine où l’attribut peut
prendre ses valeurs (entier, chaine de caractère…)
o L’indication du (ou des) attribut(s) permettant d’identifier l’entité: ils constituent la
clé
Nom du type d’entité
internaute étudiant
Email identifiant CNE
Nom Nom
Prenom
Prenom attributs Adresse
région Dat_nais

10
Identifiant d’une entité
 Définition:
o Soit E un type d’entité et A l’ensemble des attributs de E

o Un identifiant de E est un sous ensemble minimal de A permettant


d’identifier de manière unique une entité de E

 Plusieurs clés peuvent exister pour un même ensemble d’entités


o On choisit une comme clé primaire, les autres comme clés secondaires

11
Association
 Une association binaire entre les ensembles d’entités E1 et E2 est un ensemble de
couples (e1,e2) avec e1 E1 et e2  E2

 Représente un lien entre plusieurs entités, où chaque entité joue un rôle


déterminé

 Si une association lie deux entités du même type, elle est dite ‘réflexive’

Le lien «inscription»
étudiants Ali * * BD modules
Fatima * * Calcul numérique
Hanane * * réseaux
Khalid * * programmation

Expliciter l’association "inscription" 12


Cardinalités
 Couple de valeurs (min,max) caractérisant la nature de l’association en
fonction des occurrences des entités concernées

 Cardinalité minimale:
o Nb minimum de fois où une entité est concernée par l’association
o 0 les entités ne sont pas obligatoirement concernées par l’association

 Cardinalité maximale:
o Nb maximum de fois où une entité est concernée par l’association
o N signifie plusieurs fois sans préciser de nombre

13
Représentation d’une association
Nom_entité Nom_entité
identifiant Card_min1, Card_min2, identifiant
Nom_association
propriétés Card_max1 propriétés Card_max2 propriétés

Poste de travail segment


N_serie Ind_IP
Connecté à
Adr_IP 0.1 Nom
1.N
Type_poste longueur

étudiant stage
Num_etud Num_sta
veut
Nom 1.N 0.N thème
responsable
14
Associations 1-1
C’est une association binaire avec la cardinalité maximale 1 sur chaque lien

Cardinalités possibles:
◦ 0.1 - 0.1
◦ 0.1 - 1.1
◦ 1.1 - 1.1

étudiant stage
Num_etud Num_stag
effectue
Nom 1.1 0.1 thème
responsable

15
Association 1- N
Une association 1-N ou père fils est une association binaire avec une
cardinalité max=N et une cardinalité max=1

Cardinalités possibles:
◦ 0.1 - 0.N
◦ 0.1 - 1.N
◦ 1.1 - 0.N
◦ 1.1 - 1.N

professeur module
Num_prof Num_mod
responsable
Nom 0.N 1.1 Titre
grade

16
Association N-N
C’est une association binaire avec la cardinalité maximale N sur chaque lien

Cardinalités possibles:
◦ 0.N - 0.N
◦ 0.N - 1.N
◦ 1.N - 0.N
◦ 1.N - 1.N

département logiciel
Code_dep Nom_log
achat
Nomdep 1.N Date_achat 1.N Éditeur
prix
budget

17
Associations N-aires
C’est une association qui connecte n entités. Elle peut posséder des propriétés

logiciel serveur
Num_log Nom_serveur
installation
Éditeur 1.N Date_install 1.N Type_serveur

0.N
département
Code_dep
Nomdep
budget

18
Association réflexive
C’est une association binaire ou N-aire qui fait intervenir au moins 2 fois la
même entité

Un client est relié 1 et 1


Poste de travail
seul serveur
N_serie 1.1
serveur
Adr_IP
Type_poste

0.N

Un serveur relie plusieurs


clients
19
Type d’association
 Un type d’association TA est décrit par:

 Le nom du TA

 Les noms des TE participant au TA


o Avec le nom du rôle les associant au TA (pour les associations réflexives)

 Pour chaque rôle ses cardinalités

 La description des attributs du TA s’il en existe

 La description des identifiants du TA s’il en existe

20
Identifiant d’une association
 Définition
o L’identifiant d’une association (binaire) entre un TE E1 et un type d’entité E2 est le
couple constitué de l’identifiant e1 de E1 et e2 de E2

o Généralisation pour les associations N-aires

21
Les entités faibles
 Une entité faible est une entité qui ne peut exister qu’en étroite
association avec une autre

 Elle est donc identifiée relativement à cette entité

 Exemple: représentation des salles et des cinémas d’un pays

salle cinéma
numéro nom
Appartient à
capacité 1.1 1.N Rue,

Date_constr ville

22
Contraintes d’intégrité
 Si une personne participe à l’association mariage alors son état civil
doit être «marié»

 Si mois  {4,6,9,11} alors jour  [1:30],

 Sinon, si mois = 2 alors jour  [1:29],

 Sinon jour  [1:31],

 Le nombre d’enfants dans une association «est parent de» doit être
égal au nombre d’occurrences du TA «est parent de»

23
Formes normales

24
Normalisation d’une relation
 On mesure la qualité d’une relation (sa capacité à représenter le monde
réel sans générer des problèmes) par son degré de normalisation

 Une relation peut être


o en 1ère forme normale,

o 2ème forme normale,

o 3ème forme normale,

o en forme normale de Boyce Codd,

o en 4ème forme normale

25
1ère forme normale
 Une relation est en 1ère forme normale si chaque valeur de chaque

tuple est une valeur simple

 Tous les attributs sont simples et monovalués

26
Dépendance fonctionnelle
 Soit A un attribut (ou un ensemble d’attributs) d’un type d’entité TE (ou TA)

 Il y a dépendance de A vers B, notée A  B,

 Si dans la population du TE (ou TA) toutes les occurrences qui ont même valeur
pour A ont toujours même valeur pour B

 On dit aussi: B dépend de A ou A détermine B


Pour un étudiant
CNE  nom
CNE  prénom
CNE  date_naissance
CNE  adresse

27
2ème forme normale
Une relation est en 2ème forme normale si
o Si elle est en première forme normale
o Et si chaque attribut qui ne fait partie d’aucun identifiant dépend de tout
identifiant entier, et non pas d’une partie de l’identifiant

Exemple
o Fournisseur(numfour, nomprod, adr, tel, prix)
o Nomprod  prix
o Numfour  adr && numfour  tel
o Deux relations Fournisseur(numfour, adr, tel)
Catalogue(numfour, nomprod, prix)

28
2ème forme normale
étudiant
Num-etud Num-etud  nom_etud
Départ Depart  chef_depart
Nom_etud
Chef_depart

étudiant département
Num-etud intitulé
Appartient à
Nom_etud Chef_depart

29
3ème forme normale
 Une relation est en 3ème forme normale
o Si elle est en 2ème forme normale
o Et si chaque attribut qui ne fait partie d’aucun identifiant dépend uniquement et
directement des identifiants entiers,
◦ et non par l’intermédiaire d’un autre attribut

 la dépendance transitive n’est pas acceptée dans un modèle relationnel


 Exemple:
o fournisseur(numfour, pays, ville)
o Numfour  ville et ville  pays
o Deux relations: fournisseur(numfour, ville)
localisation(ville, pays)

30
3ème forme normale
étudiant
Num-etud Num-etud  nom_etud

Nom_etud Num-etud  départ

Départ Départ  chef_depart

Chef_depart

étudiant département
Num-etud intitulé
Appartient à
Nom_etud Chef_depart

31
Validation des attributs d’un TE (ou TA)
 Les attributs d’un TA dépendent au moins de tous les identifiants des TEs qui
participent au TA

étudiant matière
Num-etud NumMat
contrôle
Nom_etud coef
Note

Num-etud, NumMat  Note


Num-etud  Note
NumMat  coef &&
NumMat  Note
Num-etud  nom_etud

32
Validation des attributs d’un TE (ou TA)
 Un enseignant peut enseigner plusieurs matières
 Une matière peut être enseignée par plusieurs enseignants
 La note donnée à un étudiant par un enseignant a un coefficient en fonction
du nombre d’heures assurées par l’enseignant

étudiant enseignant
Num-etud contrôle Nom-ens
Note
Nom_etud coef

matière
Num-etud, nom-ens,NumMat  Note
NumMat
Nom-ens, NumMat  coef

33
Validation des attributs d’un TE (ou TA)

étudiant enseignant
Num-etud contrôle Nom-ens
Nom_etud Note

matière enseigne
NumMat coef

34
Validation d’un TE (ou TA)
Un chercheur travaille dans un laboratoire sur un projet
Chaque projet est réalisé dans un et un seul laboratoire

0,1 travaille 0,n


chercheur laboratoire

1,n
projet
dépendance

35
Validation d’un TE (ou TA)
La dépendance doit être décrite par un TA binaire reliant projet et laboratoire

Le TE restant doit être lié par un TA binaire au TE source de la dépendance

0,1 travaille 1,n


chercheur laboratoire
0,n
Affecté à
Sur quel projet travaille un chercheur?
1,1
0,1 travaille 1,n
chercheur projet projet
1,1
Affecté à

0,n
laboratoire

36
Dénormalisation du modèle relationnel
Non respect des règles de normalisation avec deux objectifs principaux:
o Simplifier le schéma relationnel
o Faciliter l’accès aux données en introduisant un certain degré de
redondance

Introduire des anomalies dans le schéma relationnel

 Comparer le gain attendu avec les risques encourus

37
Vérification du diagramme E/A
 Vérification syntaxique
o Vérifier que les règles du modèle E/A sont respectées

 Par jeu d’essai


o À l’aide d’une BD d’essai, le concepteur vérifie que le diagramme permet de
stocker les informations nécessaires à l’entreprise

 Complétude par rapport aux traitements


o Le concepteur vérifie que le diagramme contient toutes les informations
nécessaires à l’exécution des traitements prévus

 Vérification par les utilisateurs


o Le concepteur présente le diagramme accompagné des définitions aux
futurs utilisateurs de la BD pour validation

 Chaque problème détecté lors des vérifications


o Mise à jour du diagramme E/A
o Re-lancement des différentes phases de vérification

38
Etude de cas

39
BD spectacle
 Nous voulons créer une BD concernant les films projetés dans les salles des
cinémas au Maroc.
 Nous voulons garder trace du titre du film, de l’année de sortie, du pays du
film (nom et langue), du genre ainsi qu’un résumé du film
 De plus, nous voulons garder trace des artistes(nom, prénom, année de
naissance) ayant joué un rôle dans chaque film et du réalisateur
 Un film est projeté dans une salle d’un cinéma se trouvant à une adresse
particulière. Chaque salle a un nombre de places bien connu et peut être
climatisée ou non
 La projection des films se fait dans des salles à des horaires précis (heure
début et fin) et à des tarifs particuliers

40
Le modèle E/A
Artiste
id_artiste pays
nom_artiste 0,n Joue Id_pays
Année_naiss rôle Nom
langue
0,n
cinéma 0,n 1,n
id_cinéma Film
Nom_cinéma réalise Id_film 1,1 origine
adresse 1,1 Titre
Année_sortie
1,n Genre
Appartient à résumé
num_sal 0,n
salle horaire
1,1 Id_horaire
Capacité séance
climatisée 0,n tarif 0,n Heure_début
Heure_fin

41
Règles de passage du modèle
E-A au modèle relationnel

42
Transformation des entités
 Pour chaque entité du modèle E/A:
o Créer une relation de même nom que l’entité

o Chaque attribut de l’entité, y compris l’identifiant, devient un attribut de la


relation

o Les attributs de l’identifiant constituent la clé de la relation

43
Transformation des entités
 A partir du schéma E/A spectacle
o Film(id_film, titre, année_sortie, genre, résumé)
o Artiste(id_artiste, nom_art, prénom_art, année_naiss)
o Pays(id_pays, nom, langue)
o Cinéma(id_cinéma, nom_cinéma, adresse)
o Salle(capacité, climatisée)
o Horaire(id_horaire, heure_debut, heure_fin)

Remarque: on a perdu pour l’instant tout lien entre les relations

44
Transformation des associations 1/n
A B
Id_A association Id_B
… 0,1 0,n …
… …

RA (id-A, … , #id_B)
RB (id-B, …)

 Créer les relations RA et RB correspondant respectivement aux entités A et B

 L’identifiant de B devient un attribut de RA

 Une occurrence de A «référence» l’occurrence de B qui lui est associée à l’aide


d’une clé étrangère

45
Transformation des associations 1/n pays
Id_pays
Nom
langue
Artiste 1,n
Film
id_artiste réalise Id_film
nom_artiste 1,1 origine
0,n 1,1 Titre
Année_naiss Année_sortie
Genre
résumé
Film(id_film, titre, année_sortie, genre, résumé, #id_artiste, #id_pays)

Remarque:
o Renommer l’attribut en donnant un nom plus explicite
o Film(id_film, titre, année_sortie, genre, résumé, #id_MES, #id_pays)

46
Transformation d’association avec entité
faible
salle
cinéma
Numsal 1,1 Appartient à 1,n Nom_cinéma
Capacité
adresse
climatisée

cinéma(id_cinéma, adresse)
salle(#id_cinéma, numsal, capacité, climatisée)

 Même règle de passage qu’une association 1/n

 Clé étrangère pour référencer l’entité forte dans l’entité faible

 La clé étrangère fait partie de la clé de la relation correspondant à l’entité


faible

47
Transformation d’association binaire n/n
A B
Id_A association Id_B
… 0,n Attributs_ass 0,n …
… …

RA (id-A, … )
RB (id-B, …)
RA-B (id-A, id-B, attributs-ass)
 Créer les relations RA et RB correspondant aux entités A et B
 Créer une relation RA-B pour l’association
 La clé de RA et la clé de RB deviennent des attributs de RA-B
 La concaténation des clés des relations RA et RB fait partie de la clé de RA-B
 Les attributs de l’association deviennent des attributs de RA-B
48
Transformation d’association binaire n/n

Artiste Film
id_artiste Id_film
nom_artiste 0,n Joue 0,n Titre
Année_naiss rôle Année_sortie
Genre
résumé

 Film(id_film, titre, année_sortie, genre, résumé, #id_MES, #id_pays)

 Artiste(id_artiste, nom_art, prénom_art, année_naiss)

 Rôle(#id_film, #id_acteur, rôle)

49
Transformation d’associations ternaires

Film
Id_film
Titre
Année_sortie
Genre
résumé
salle 0,n horaire
Numsal séance Id_horaire
Capacité 0,n tarif 0,n Heure_début
climatisée Heure_fin

cinéma(id_cinéma,numéro, rue, ville)


salle(#id_cinéma, numsal, capacité, climatisée)
Horaire(id_horaire, heure_deb, heure_fin)
Séance(#id_film, #id_cinéma, #numsal, #id_horaire, tarif)

50
Retour sur le choix des identifiants
séance Id_film Id_cinéma numsal Id_horaire tarif
103 Le rex 2 1 23
103 Le rex 2 2 56
100 Royal 1 2 45
102 Le rex 2 1 50

La clé de la table séance est la concaténation de id_film, id_cinéma, numsal,


id_horaire

Contradiction: la même salle présente deux films différents au même horaire

 la clé devient id_cinéma, numsal, id_horaire

En général, la clé de la table résultant d’une association ternaire est un sous


ensemble de la concaténation des clés

51
Dénormalisation du modèle relationnel
Suppression des relations qui portent peu d’attributs en les déplaçant vers
une autre relation
o Cinéma(nomcinéma, adresse)
o  salle(nom-cinéma, numsal, adresse)

Introduction de redondance
o À partir de la table séance, il faut consulter salle et cinéma pour connaître
l’adresse du cinéma
o Et faire un calcul pour obtenir le nombre de salles d’un cinéma
séance(id_film,id_cinéma,num_sal,id_horaire,adresse)
Cinéma(id_cinema, numéro, rue, ville, nbsalles)

52
Retour sur le choix des identifiants
 Il est préférable de choisir un identifiant «neutre» qui ne soit pas une
propriété de l’entité
o Titre pour la relation film, et nom pour acteur ne sont pas les bons choix

 Si on utilise un ensemble d’attributs comme identifiant, la référence à


une occurrence est lourde
o La clé de cinéma pourrait être nom_cinéma, rue, ville

 Inconvénient:
o l’identifiant neutre ne donne pas une idée sur l’occurrence qu’il référence

53
Modèle Entité-Association
étendu
HÉRITAGE / SPÉCIALISATION

54
Héritage / Spécialisation
 Introduire dans le modèle E/A le concept d’héritage classique de
l’orienté objet

 Permet de définir un TE par rapport à un autre TE par spécialisation

 Exemples:
o Une personne peut être étudiant, enseignant ou administratif

o Le propriétaire peut être une personne physique ou morale

o Un composant informatique peut être un écran, un clavier, une souris, etc.


chacun a ses propres caractéristiques

55
Héritage
 Entité fille: l’ensemble des occurrences de l’entité étudiant qui héritent
les attributs de l’entité mère ‘Personne’

Personne

CIN
Nom
Prenom

Etudiant Administratif

CNE NumBureau
Niveau Salaire

56
Transformation vers le modèle
relationnel

 Approche par généralisation

 Approche par spécialisation

57
L’exemple Personne

CIN
Nom
Prenom

Etudiant Salarié

CNE NumBureau
Niveau Salaire

Salarié Privé Salarié Public

Prime SOM
Indice

58
Approche par généralisation
 Une feuille du modèle E/A devient une relation dont le schéma est
l’union des attributs de la feuille jusqu’à la racine

 Une entité non feuille du modèle E/A devient une vue définie comme
union des fils avec projection sur les attributs communs

59
Approche par généralisation
L’exemple:
o Etudiant (CIN, Nom, Prénom, CNE, Niveau)
o Salarié_Privé (CIN, Nom, Prénom, NumBureau, salaire, Prime)
o Salarié_Public (CIN, Nom, Prénom, NumBureau, salaire, SOM, Indice)
o Salarié:
CREATE VIEW Salarié AS
SELECT (CIN, Nom, Prénom, NumBureau, Slaire)
FROM Salarié_Privé
UNION
SELECT (CIN, Nom, Prénom, NumBureau, Slaire)
FROM Salarié_Public
o Personne
CREATE VIEW Personne AS
SELECT (CIN, Nom, Prénom)
FROM Etudiant
UNION
SELECT (CIN, Nom, Prénom)
FROM Salarié

60
Approche par spécialisation
 Chaque nœud devient une relation dont le schéma est constitué des
attributs « locaux »
 A chaque instance on rajoute un oid
 Héritage: on ajoute l’oid de l’instance mère comme clé étrangère dans
l’instance fille
Toutes les entités sont accessible via des vues

61
L’exemple Personne

CIN
Nom
Prenom

Etudiant Salarié

CNE NumBureau
Niveau Salaire

Salarié_Privé Salarié_Public

Prime SOM
Indice

62
Approche par spécialisation
 Les relations
o PPersonne (idP, CIN, Nom, Prénom)
o EEtudiant (idE, CNE, Niveau, #idP)
o SSalarié (idS, NumBureau, Salaire, #idP)
o SPrivé (idSPr, Prime, #idS)
o SPublic (idSPb, SOM, Indice, #idS)

 Les vues
o La vue Personne
◦ CREATE VIEW Personne AS
◦ SELECT CIN, Nom, Prénom From PPersonne
o La vue Etudiant
◦ CREATE VIEW Etudiant AS
◦ SELECT PP.CIN, PP.Nom, PP.Prénom, EE.CNE, EE.Niveau
◦ From Ppersonne PP, Etudiant EE
◦ WHERE PP.idP = EE.idP

63
Approche par spécialisation
Les vues
o La vue Salarié
◦ CREATE VIEW Salarié AS
◦ SELECT PP.CIN, PP.Nom, PP.Prénom, SS.NumBureau, SS.salaire
◦ FROM PPersonne PP, Ssalarié SS
◦ WHERE PP.idP = SS.idP
o La vue Privé
◦ CREATE VIEW Prive AS
◦ SELECT PP.CIN, PP.Nom, PP.Prénom, SS.NumBureau, SS.salaire, PR.Prime
◦ FROM PPersonne PP, SSalarié SS, PPrivé PR
◦ WHERE PP.idP = SS.idP AND SS.idS = PR.idS
o La vue Public
◦ CREATE VIEW Public AS
◦ SELECT PP.CIN, PP.Nom, PP.Prénom, SS.NumBureau, SS.salaire, PU.SOM, PU.Indice
◦ FROM PPersonne PP, SSalarié SS, PPublic PU
◦ WHERE PP.idP = SS.idP AND SS.idS = PU.idS

64
Conséquences
 Approche par généralisation
o Pas de création d’instances sur les nœuds intermédiaires
o Accès aux feuilles peu coûteux
o Accès aux non feuilles par union/projection
o Une même instance peut être spécialisée dans plusieurs entités
o Pas d’OID
o Evolution du schéma difficile

 Approche par spécialisation


o Création d’instances à tous les niveaux de l’arbre de l’héritage
o Accès coûteux aux instances loin de la racine (jointures)
o Support de la notion d’OID
o Evolution du schéma plus facile

65

Vous aimerez peut-être aussi