Nom de l’entité Clé Film mot de passe année de naissance nom email Internaute année genre résumé titre prénom Figure 4.2 — Représentation des entités Choix de l’identifiant Dans le premi
Trang 1Un type d’entité, comprenant les éléments ci-dessus, décrit toutes les entités d’un même ensemble On représente ce type graphiquement comme sur la figure 4.2 qui
donne l’exemple de deux entités, Internaute et Film.
Nom de l’entité
Clé
Film
mot de passe année de naissance
nom
Internaute
année genre résumé
titre
prénom
Figure 4.2 — Représentation des entités
Choix de l’identifiant
Dans le premier cas, on a décidé qu’un internaute était identifié par son email, ce qui est cohérent pour une application web Il est en fait très rare de trouver un attribut d’une entité pouvant jouer le rơle d’identifiant Le choix du titre pour identifier un film serait par exemple beaucoup plus discutable En ce qui concerne les artistes, acteurs ou réalisateurs, l’identification par le nom seul paraỵt vraiment impossible
On pourrait penser à utiliser la paire (nom,pr´enom), mais l’utilisation d’identifiants composés de plusieurs attributs, quoique possible, peut poser des problèmes de per-formance et complique les manipulations par SQL
Dans la situation, fréquente, ó on a du mal à déterminer quelle est la clé d’une entité, on crée un identifiant « abstrait » indépendant de tout autre attribut Pour les
artistes, nous avons ajouté id, un numéro séquentiel qui sera incrémenté au fur et
à mesure des insertions Ce choix est souvent le meilleur, dès lors qu’un attribut ne s’impose pas de manière évidente comme clé
Associations
La représentation (et le stockage) d’entités indépendantes les unes des autres est de
peu d’utilité On va maintenant décrire les associations entre des ensembles d’entités.
Une bonne manière de comprendre comment on doit représenter une association entre des ensembles d’entités est de faire un graphe illustrant quelques exemples, les plus généraux possibles
Prenons le cas de l’association représentant le fait qu’un réalisateur met en scène des films Sur le graphe de la figure 4.3 on remarque que :
1 certains réalisateurs mettent en scène plusieurs films ;
2 inversement, un film est mis en scène par au plus un réalisateur
La recherche des situations les plus générales possibles vise à s’assurer que les deux caractéristiques ci-dessus sont vraies dans tout les cas Bien entendu on peut trouver
Trang 21% des cas ó un film a plusieurs réalisateurs, mais la question se pose alors : doit-on modifier la structure de notre base, pour 1% des cas Ici, on a décidé que non
Psychose
Vertigo Impitoyable Alfred Hitchcock
Clint Eastwood
Figure 4.3 — Association entre deux ensembles.
Ces caractéristiques sont essentielles dans la description d’une association On les représente sur le schéma de la manière suivante :
1 si une entité A peut être liée à plusieurs entités B, on indique cette multiplicité
par un point noir (•) à l’extrémité du lien allant de A vers B ;
2 si une entité A peut être liée à au plus une entité B, alors on indique cette unicité par un trait simple à l’extrémité du lien allant de A vers B ;
Pour l’association entre Réalisateur et Film, cela donne le schéma de la figure 4.4 Cette association se lit Un réalisateur réalise un film, mais on pourrait tout aussi bien utiliser la forme passive avec comme intitulé de l’association Est réalisé par et une lecture Un film est réalisé par un réalisateur Le seul critère à privilégier dans ce choix
des termes est la clarté de la représentation
Film
Réalise
Réalisateur
titre
année genre résumé année naiss
id
prénom nom
Figure 4.4 — Représentation de l’association.
Prenons maintenant l’exemple de l’association (Acteur,Film) représentant le fait qu’un acteur joue dans un film Un graphe basé sur quelques exemples est donné dans la figure 4.5 On constate tout d’abord qu’un acteur peut jouer dans plusieurs films, et que dans un film on trouve plusieurs acteurs Mieux : Clint Eastwood, qui apparaissait déjà en tant que metteur en scène, est maintenant également acteur, et dans le même film
Trang 3Clint Eastwood
Les films
Inspecteur Harry Impitoyable
Ennemi d’état Gene Hackman
Figure 4.5 — Association (Acteur,Film)
Cette dernière constatation mène à la conclusion qu’il vaut mieux regrouper les acteurs et les réalisateurs dans un même ensemble, désigné par le terme plus général « Artiste » On obtient le schéma de la figure 4.6, avec les deux associations représentant les deux types de lien possible entre un artiste et un film : il peut jouer dans le film, ou le réaliser Ce « ou » n’est pas exclusif : Eastwood joue dans
Impitoyable, qu’il a aussi réalisé.
Film
Réalise
Joue
Artiste
rôle
titre
année genre résumé année naiss.
id
prénom nom
Figure 4.6 — Associations entreArtisteetFilm.
Dans le cas d’associations avec des cardinalités multiples de chaque côté, certains attributs doivent être affectés qu’à l’association elle-même Par exemple, l’association
Joue a pour attribut le rôle tenu par l’acteur dans le film (figure 4.6) Clairement, on
ne peut associer cet attribut ni à Acteur puisqu’il a autant de valeurs possibles qu’il y a
de films dans lesquels cet acteur a joué, ni à Film, la réciproque étant vraie également.
Seules les associations ayant des cardinalités multiples de chaque côté peuvent porter des attributs
Associations impliquant plus de deux entités
On peut envisager des associations entre plus de deux entités, mais elles sont plus difficiles à comprendre, et la signification des cardinalités devient beaucoup plus ambiguë
Imaginons que l’on souhaite représenter dans la base de données les informations indiquant que tel film passe dans telle salle de cinéma à tel horaire On peut être
tenté de représenter cette information en ajoutant des entités Salle et Horaire, et en
créant une association ternaire comme celle de la figure 4.7
Trang 4Avec un peu de réflexion, on décide que plusieurs films peuvent passer au même horaire (mais pas dans la même salle !), qu’un film est vu à plusieurs horaires diffé-rents, et que plusieurs films passent dans la même salle (mais pas au même horaire !) D’ó les cardinalités multiples pour chaque lien On peut affecter des attributs à cette association, comme par exemple le tarif, qui dépend à la fois de l’horaire, du film et
de la salle
Horaire
id
heure début
id
nom adresse Salle
titre
année genre résumé heure fin
Figure 4.7 — Association ternaire.
Ces associations avec plusieurs entités sont assez difficiles à interpréter, et elle offrent beaucoup de liberté sur la représentation des données, ce qui n’est pas toujours souhaitable On ne sait pas par exemple interdire que deux films passent dans la même salle au même horaire Le graphe de la figure 4.8 montre que cette configuration est tout à fait autorisée
Les salles
14-16 16-18
Impitoyable Vertigo
Salle 1 Salle 2
Figure 4.8 — Graphe d’une association ternaire.
Les associations autres que binaires sont donc à éviter dans la mesure du
possible Il est toujours possible de remplacer une telle association par une
entité Sur l’exemple précédent, on peut tout simplement remplacer l’association
Trang 5ternaire par une entité Séance, qui est liée, par des associations binaires, aux trois
entités existantes (voir figure 4.9) Il est préférable d’avoir plus d’entités et moins d’associations complexes, car cela rend l’interprétation du schéma plus facile Dans le cas de la séance, au lieu de considérer simultanément trois entités et une association, on peut prendre maintenant séparément trois paires d’entités, chaque paire étant liée par une association binaire
Horaire
id
heure début
id
Séance
tarif
Film
titre
année genre résumé
id
nom adresse Salle heure fin
Figure 4.9 — Transformation d’une association ternaire en entité.
Récapitulatif
En résumé, la méthode basée sur les graphiques Entité/Association est simple et pratique Elle n’est malheureusement pas infaillible, et repose sur une certaine expé-rience Le principal inconvénient est qu’il n’y a pas de règle absolue pour déterminer
ce qui est entité, attribut ou association, comme le montre l’exemple précédent ó une association s’est transformée en entité
À chaque moment de la conception d’une base, il faut se poser des questions auxquelles on répond en se basant sur quelques principes de bon sens :
1 rester le plus simple possible ;
2 éviter les associations compliquées ;
3 ne pas représenter plusieurs fois la même chose ;
4 ne pas mélanger dans une même entité des concepts différents
Voici quelques exemples de questions légitimes, et de réponses qui paraissent raison-nables
« Est-il préférable de représenter le metteur en scène comme un attribut de Film ou comme
une association avec Artiste ? »