BASES DE DONNEES
Eléments de conception et d’exploitation d’une Base de Données
Equipe Bases de Données, Université LYON 1, LIRIS.
LYON 1 - UFR Informatique - Laboratoire LIRIS
8 septembre 2022
Equipe BD Université LYON 1 Conception des Bases de Données 1
Le modèle Entité-Association
1 Le modèle Entité-Association
Equipe BD Université LYON 1 Conception des Bases de Données 2
Le modèle Entité-Association
Un formalisme graphique de travail
E/R (Entity-Relationship) en anglais.
Langage graphique pour élaborer un Modèle Conceptuel de
Données (MCD)
Modélise les entités, leurs attributs et leurs associations
(interactions)
Très intuitif, simplifie les échanges autour du cahier des charges
Bien intégré à la démarche de conception logicielle, proximité
avec un diagramme ce classe UML.
Fourni une documentation précieuse pour l’évolutivité
Se traduit automatiquement ver le modèle logique (relationnel)
Equipe BD Université LYON 1 Conception des Bases de Données 3
Le modèle Entité-Association
Un formalisme graphique de travail
Attention à ne pas tomber dans la facilité
Simple langage sans mécanisme de raisonnement
Des choix dépendent du concepteur, de son expérience
Pouvoir d’expression limité -> tendance à trop simplifier
Rester proche des besoins
Démarche itérative
Bien critiquer ses choix et lister les manques pour la suite
Importance de connaître les bonnes pratiques
Equipe BD Université LYON 1 Conception des Bases de Données 4
Le modèle Entité-Association
Les élements du langage
Entités
Associations
Binaires (entre deux entités) ou bien n-aires.
Attributs
Décrivent les entités, où les associations
Certains attributs d’entité sont des Identifiants.
Deux types particuliers d’entités 1 , presque indispensables :
Entité faibles
Entités spécialisées
1. appartiennent au modèle E/A dit "étendu"
Equipe BD Université LYON 1 Conception des Bases de Données 5
Le modèle Entité-Association
Entités et Classes d’entités
Entité :
Une "chose" du monde réel qu’on cherche à modéliser
Exemple
Un étudiant, un diplôme. . .
Classe d’entités
Modélisation commune d’entités
Exemple : "Un étudiant est représenté par son num, son nom et
son prenom."
Une entité appartient à une classe d’entité
Par abus de langage, Entité = Classe d’entité.
Equipe BD Université LYON 1 Conception des Bases de Données 6
Le modèle Entité-Association
Associations et Classes d’Association
Association :
Une relation entre deux ou plusieurs entités.
Exemple :
Tom est inscrit en Master Informatique
Classe d’Association :
Décrit de façon commune un ensemble d’associations
Exemple : Un étudiant s’inscrit dans un diplôme
Par abus de langage, Assocation = Classe d’association.
Equipe BD Université LYON 1 Conception des Bases de Données 7
Le modèle Entité-Association
Attributs
Attribut :
Propriété d’une entité ou d’une association prend ses valeurs dans
un domaine de valeurs de type simple (caractère, chaîne de
caractères, entier, date).
Exemple :
L’entité Etudiant a pour attributs Num, Nom et Prenom
L’association "inscrit" peut avoir pour attribut la date d’inscription
On peut accepter les attributs multivalués, marqués du symbole ’*’.
Ils peuvent alors prendre une liste de valeurs.
Exemple : un document peut avoir plusieurs mots clés, une personne
plusieurs prénoms
Attention : chaque valeur reste bien atomique.
Au moins un ensemble d’attributs permet d’identifier de façon unique
une entité. On souligne cet identifiant 2 .
2. Un attribut multivalué ne peut pas être identifiant
Equipe BD Université LYON 1 Conception des Bases de Données 8
Le modèle Entité-Association
Formalisme de représentation des associations
EntitéA Relation EntitéB
Attribut1 Attributk
....
1,n Relation 1,n
EntitéA EntitéB
Att1
...
Equipe BD Université LYON 1 Conception des Bases de Données 9
Le modèle Entité-Association
Connectivité et participation aux associations
Dans une association entre E1 et E2 , on doit définir :
A combien d’entité E2 peut se connecter une entité E1 et
inversement : c’est la connectivité de chaque classe d’entité. Elle
vaut soit 1, soit N
Si chaque entité E1 (ou E2 ) est obligée de participer à
l’association : c’est la participation de chaque classe d’entité. Elle
vaut soit 0, soit 1.
Exemples :
Un étudiant DOIT être inscrit dans au moins une formation
(participation obligatoire)
Un étudiant doit être inscrit AU PLUS dans une formation
(connectivité simple)
Une formation peut avoir PLUSIEURS étudiants (connectivité
multiple)
Une formation peut n’avoir aucun étudiant (participation optionnelle)
Equipe BD Université LYON 1 Conception des Bases de Données 10
Le modèle Entité-Association
Connectivité et participation aux associations
Equipe BD Université LYON 1 Conception des Bases de Données 11
Le modèle Entité-Association
Entités Faibles
Salle Bâtiment
N°Salle N°Bat.
Nom Nom
Capacité 1,1 Est_Dans 1,n
Adresse
... ...
Que se passe-t-il s’il y a deux salles 1 dans deux bâtiments différents ?
L’attribut "N Salle" ne permet pas d’identifier une salle.
Il faut savoir de quel bâtiment il s’agit.
Lien existentiel : la salle n’existe que si le bâtiment existe.
Caractérisé par une flèche ID.
Equipe BD Université LYON 1 Conception des Bases de Données 12
Le modèle Entité-Association
Entités Faibles
Pour savoir de quelle salle on parle, il faut connaître dans quel
bâtiment elle est. Une salle est donc "identifiée" par : un numéro de
salle N umSalle (identifiant local) et un numéro de bâtiment N umBat.
Equipe BD Université LYON 1 Conception des Bases de Données 13
Le modèle Entité-Association
Spécialisation / Généralisation
Une entité représente un cas particulier d’une autre entité
Les entités "filles" héritent des attributs des entités "parents", y
compris de l’identifiant.
Donc il ne faut répéter aucun de ces attributs ni identifiants.
Exemple :
Une salle de visio, en plus des autres, possède un matériel
spécifique, des identifiants de connexion, un modes de réservation,
etc. . .
Il faut donc les modéliser de façon distincte des autres salles
Sans perdre de vue que c’est bien une salle !
Equipe BD Université LYON 1 Conception des Bases de Données 14
Le modèle Entité-Association
Exemple
Attention : contrairement à une entité faible qui possède un identifiant
local souligné, une entité spécialisée n’a JAMAIS d’attribut souligné.
Son identifiant provient totalement de l’entité "mère" à laquelle elle est
reliée.
Equipe BD Université LYON 1 Conception des Bases de Données 15
Le modèle Entité-Association
Associations n-aires
Il est possible de faire interagir trois entités ou plus dans une même
association :
C’est parfois une première intention naturelle
Mais beaucoup de "fausses" associations n-aires, faites un peu
rapidement
Tous les sous-ensembles d’entités peuvent-ils se répéter ?
Si la réponse est non, utiliser des associations d’associations
(aggrégation)
Equipe BD Université LYON 1 Conception des Bases de Données 16
Le modèle Entité-Association
Associations réflexive
Une association réflexive associe des entités de même type.
Il faut alors ajouter un rôle à chaque élément de l’association,
pour lever les ambiguïtés.
Supervisé
0,n
Employé Supervision
0,1
Superviseur
Equipe BD Université LYON 1 Conception des Bases de Données 17
Le modèle Entité-Association
Pour aller plus loin dans les contraintes
Sur les liens de spécialisations
Contrainte de totalité (couverture) notée T : toutes les entités
correspondent à au moins une spécialisation.
Contrainte d’exclusivité notée X : une entité ne peut pas être dans
deux spécialisations.
Contrainte de partition notée XT , toutes les entités correspondent
à exactement une spécialisation
Entre des associations qui impliquent les mêmes entités
Totalité T , exclusivité X et partition XT sur les participations
Contrainte d’inclusion I entre les associations A1 et A2 : les
entités participant à A1 participent aussi à A2 .
Contrainte d’égalité = : inclusion dans les deux sens.
Equipe BD Université LYON 1 Conception des Bases de Données 18
Le modèle Entité-Association
Exemples de contraintes avancées
Equipe BD Université LYON 1 Conception des Bases de Données 19
Le modèle Entité-Association
Exemples de contraintes avancées
Equipe BD Université LYON 1 Conception des Bases de Données 20
Le modèle Entité-Association
Remarques
On ne peut pas tout Modéliser
Beaucoup de subjectivité ! Et des limites d’expressivité.
Lister les spécifications non modélisées
Elles permettront d’affiner sur le modèle logique plus tard
Et enventuellement modifier le schéma E/A en conséquence
Quelques points de vigilance
Le graphe final doit être connexe. Il manque probablement
quelque chose sinon.
Une association n’a jamais d’attribut souligné. Si vous avez
"besoin" de le faire, c’est qu’il vous manque une entité...
Un cycle dans le graphe n’est pas une erreur, mais mérite de
l’attention.
Idem pour les associations
Equipe BD Université LYON 1 Conception des Bases de Données 21
Le modèle Entité-Association
Quelques exercices 3 (1)
A l’université
Des enseignants (identifiés par PID) donnent des cours (CID). Un
enseignant peut donner plusieurs cours ; un cours est donné par
exactement un enseignant. On précise le semestre.
Faites un deuxième schéma pour qu’un enseignant puisse
redonner un même cours à un semestre différent.
Faites un troisième schéma pour qu’un cours, le même trimestre,
ne soit affecté qu’à un seul enseignant.
Finalement, on ajoute que lorsqu’un enseignant donne un cours,
c’est toujours le même !
3. Inspirés de [Ramakrishnan, Gehrke, DBMS systems, 2003]
Equipe BD Université LYON 1 Conception des Bases de Données 22
Le modèle Entité-Association
Quelques exercices (2)
Au travail
Une entreprise stocke les informations sur ses employés. Ils ont un
numéro de sécurité social qui les identifie, un salaire et un numéro de
téléphone. Les départements de l’entreprise sont identifiés par leur
numéro, possèdent un nom et un budget. Les employés peuvent avoirs
des enfants avec un nom et une date de naissance (on fera ici
l’hypothèse qu’un seule parent travaille dans l’entreprise). Chaque
employé travaille dans des départements, chaque département est
dirigé par un employé.
Equipe BD Université LYON 1 Conception des Bases de Données 23
Le modèle Entité-Association
Quelques exercices (3)
Un peu de culture
On considère la base de données d’une galerie d’art. Elle garde des
informations sur les artistes (un nom unique, un ville de naissance, un
style). Chaque oeuvre est réalisée par un artiste, avec une année de
réalisation, un titre unique, et un prix. Elle appartient à un ou plusieurs
groupes d’œuvres qu’on crée pour les classer (portraits, oeuvre de
Picasso,...). Chaque groupe est identifié par son nom. La gallerie
garde des informations sur ses clients (nom unique, adresse,
préférences.) Chaque client peut effectuer des commandes à des
dates différentes ; chaque commande porte sur une ou plusieurs
oeuvres.
Equipe BD Université LYON 1 Conception des Bases de Données 24