Le Modele entité

publicité
ENST
Le modèle Entité-Association
2012-2013
Le modèle Entité-Association
Introduction
Les bases de données ont pris une place importante en informatique, et particulièrement dans le
domaine de la gestion. L’étude des bases de données a conduit au développement de concepts,
modèles, méthodes et algorithmes spécifiques, notamment pour gérer les données en mémoire
secondaire (i.e. disques durs). En effet, dès l’origine de la discipline, les informaticiens ont observé
que la taille de la RAM ne permettait pas de charger l’ensemble d’une base de données en mémoire.
Cette hypothèse est toujours vérifiée car le volume des données ne cesse de s’accroître sous la
poussée des nouvelles technologies du WEB.
Les SGBD ont vu leur domaine d’utilisation s’élargir considérablement. Systèmes Experts, Systèmes
d’Information Géographique (SIG), Edition de Documents Informatisés (EDI), Systèmes d’Information
Documentaire (SID), Conception Assistée par Ordinateur (CAO), Gestion de Production Assistée par
Ordinateur (GPAO) sont des domaines où une information structurée est enregistrée et gérée par un
SGBD générique (relationnel) et traitée selon des besoins spécifiques, l’interface et les outils de
traitement dépendant plus particulièrement de l’application.
1. Une base de données :
Une base de données est un ensemble structuré de données enregistrées avec le minimum de
redondance pour satisfaire simultanément plusieurs utilisateurs de façon sélective en un temps
opportun.
2. Un SGBD :
Un Système de Gestion de Base de Données permet à un utilisateur de communiquer avec une base
de données pour :
- décrire et organiser les données sur les mémoires secondaires (disques).
- rechercher, sélectionner et modifier les données.
Un SGBD comprend des langages spécialisés utilisés pour décrire la base de données et pour
manipuler et accéder aux données contenues dans la base de données. Les SGDB utilisent
généralement le langage SQL.
Langage de description des données (LDD) (spécifie le schéma conceptuel)
C’est un langage descriptif des types d’entités, de leur attributs et domaines et des
associations (ou relations) entre ces entités. On l’utilise lors de la définition de la base de
données, lors des modifications de schémas et pour préciser la façon dont les données sont
1
ENST
Le modèle Entité-Association
2012-2013
enregistrées et comment y accéder (correspondance entre le schéma conceptuel et le
schéma physique).
Langage de manipulation des données, ou langage d’interrogation (LMD)
Pour interroger la base, mettre à jour les données et effectuer les manipulations sur cellesci.
Il existe de nombreux systèmes de gestion de bases de données, en voici une liste non
exhaustive :
SGBD
plate-forme
mode
licence
ACCESS
Windows
mono-poste
commerciale
SQL SERVER
Windows
client/serveur
commerciale
ORACLE
Windows et Linux
client/serveur
commerciale
SYBASE
Windows et Linux
client/serveur
commerciale
POSTGRESQL
Windows et Linux
client/serveur
libre
MYSQL
Windows et Linux
client/serveur
libre
3. Conception des bases de données :
Il est difficile de modéliser un univers réel observé sous une forme directement utilisable par
un SGBD. En construisant directement les tables d’une base de données dans un SGBD
(PostgreSQL, Oracle, SQL Server, DB2, base, Access, MySQL, ...), deux questions se posent :
– dans quelle table placer certaines colonnes (par exemple : l’adresse de livraison doit être
dans la table des clients ou dans la table des commandes ?).
– comment prévoir les tables de jonction intermédiaires (par exemple : la table des
interprétations qui est indispensable entre les tables des films et la table des acteurs).
Il est donc nécessaire, après la collecte et l’acquisition de toutes les données nécessaires, de
recourir à une étape préliminaire de conception. Les modèles conceptuels de données MCD
(tels que le modèles réseau, hiérarchique, Codasyl, Entité-Association et UML) permettent
de concevoir un système d’information d’une façon standardisée et méthodique. Ces
modèles sont indépendants du SGBD utilisé.
Ensuite ce modèle conceptuel est représenté exclusivement par un modèle logique : le
modèle relationnel. Dans ce modèle, les données sont représentées par des tables, sans
préjuger de la façon dont les informations sont stockées dans la machine. Les tables
2
ENST
Le modèle Entité-Association
2012-2013
constituent donc la structure logique du modèle relationnel duquel est directement dérivée
la base de données.
I. Le modèle Entité-Association (EA) :
Le modèle entités-associations constitue l’un des premiers et des plus courants modèles
conceptuels de données. Ce modèle, présenté par Chen en 1976, permet une description
naturelle du monde réel à partir des concepts d’entité et d’association. Il est universel
(retenu par l'ISO) et répond à l’objectif d’indépendance données-programmes.
I.1. Dictionnaire des données
Il est utile, voir indispensable, d'effectuer un inventaire brut des données qui seront
stockées et/ou calculées par la base de données (les données collectées et acquises dans la
première phase). Il faut donc différencier deux types de données, les données stockées et les
données qui peuvent être déduites ou calculés à partir des données stockées.
Ce document sera présenté sous forme de tableau de 3 colonnes, avec dans la première
colonne le nom de la donnée, la seconde distingue une donnée calculée d’une autre stockée
et dans la troisième décrit la donnée (longueur, type, Domaine, règle de calcul, etc).
I.2. Schéma entité-association
La représentation du modèle entités-associations s’appuie sur trois concepts de base :
– L’entité.
– L’association.
– Les cardinalités.
I.2.1.Entité
Une entité est un objet (concret ou abstrait) qui existe et peut être distingué d’un autre
objet. Par exemple : Jean Dupont, Pierre Bertrand, un vélo, une voiture, Philippe Daulirent,
Le 23/03/2003, un bus, Le 01/01/2011,Etc.
Une classe d’entités (ou type d’entités) désigne un ensemble d’entités qui possèdent une
sémantique et des propriétés communes. Par exemple : Personne, Vehicule, Date_Location.
Notation :
Personne
Vehicule
Date_Location
Figure. I.1. Représentation graphique d’exemples de classes d’entités.
3
ENST
Le modèle Entité-Association
2012-2013
Définitions :
-
Un attribut est une propriété caractéristique des entités de même classe.
-
Un attribut associe à chaque entité une valeur appartenant à un domaine.
-
Le domaine d'un attribut caractérise à la fois le type de donnée (énuméré, caractère,
entier, réel, chaîne de caractères...) et l'ensemble des valeurs admissibles de celui-ci.
Le domaine peut être une liste énumérée, un intervalle numérique ou une chaîne
alphanumérique.
-
Une clé est un attribut ou un ensemble d’attributs dont les valeurs identifient de
manière unique une entité au sein de l’ensemble d’entités.
-
Un tuple ou n-uplet ou une occurrence d’une classe d’entité est un ensemble de
valeurs des attributs caractérisant une entité.
Le choix des attributs, des domaines et des clés constitue une étape essentielle lors de la
définition d’un modèle du monde réel.
Exemple et Notations:
Attributs: Personne=(Numero,Nom,Prenom,Date de Naissance).
Valeur: du Preom peut être Jean.
Domaine: D(Nom)=Toutes les chaines de caracrtères.
D(Numero)=N+U{0}.
Clé: Numero.
Un tuple: (23, Jeann Dupont, 13/11/1976)
Le schéma: Personne=(Numero,Nom,Prenom,Date de Naissance).
Les données: les tuples.
Remarque :
Un attribut ne peut en aucun cas être partagé par plusieurs classes d’entités.
Un attribut est une donnée élémentaire, ce qui exclut des données calculées ou dérivées.
Une classe d’entités et ses attributs doivent être cohérents entre eux (i.e. ne traiter qu’un
seul sujet).
I.2.2.Association
Une association d’entités est un regroupement de classes d’entités traduisant une certaine
réalité (lien). L’ensemble des classes d’entités participant à l’association est appelé «
collection de l’association ».
4
ENST
Le modèle Entité-Association
2012-2013
On distingue deux types d’associations (on parle ici du degré ou de la dimension de
l’association qui est le nombre de classes d’entités qui y participent):
-
les associations binaires qui ne relient que deux entités.
-
les associations n-aires qui relient plus de deux entités
Un attribut d’une association est une propriété qui dépend de toutes les entités intervenant
dans l’association. Par exemple, l’association Louer peut posséder un attribut Durée qui est
dépend de la personne, du véhicule et de la date de location.
Exemple :
> Jean Dupont possède un vélo.
> Jean Dupont a loué une voiture, le 28/02/2001 pour une durée de trois
jours.
La collection de la relation « posséder » est (Personne, vehicule).
La collection de la relation « Louer » est (Personne, vehicule, Date_Location).
Figure. I.2. Un exemple de relations: binaire et ternaire porteuse de propriété.
I.2.3.Cardinalités
La cardinalité d'un couple entité-association est définie de la manière suivante :
- Etant données une classe d'entité E et une association A reliant E à une (ou plusieurs)
autre(s) classes(s) d'entités, on définit m (respectivement M) le nombre minimum
(respectivement maximum) d'associations de classe A pouvant exister pour une entité
donnée de classe E. Alors (m,M) est la cardinalité du couple (E,A). D’autre terme, c’est le
minimum et le maximum de fois qu’une occurrence de l’entité E peut être concerné par
l’association 1.
Remarque : Une cardinalité minimal est toujours 0 ou 1 et une cardinalité maximale est
toujours 1 ou n (n n’étant souvent pas précisé de manière numérique, faute de connaissance
suffisante).
5
ENST
Le modèle Entité-Association
2012-2013
Exemple et notations :
Figure. I.3. Exemple de cardinalités.
Les seuls cardinalités admises sont donc :
0, 1 : une occurrence du type-entité peut exister tout en étant impliquée dans aucune
association et peut être impliquée dans au maximum une association.
0, n : c’est la cardinalité la plus ouverte ; une occurrence du type-entité peut exister tout en
étant impliquée dans aucune association et peut être impliquée, sans limitation, dans
plusieurs associations.
1, 1 : une occurrence du type-entité ne peut exister que si elle est impliquée dans
exactement (au moins et au plus) une association.
1, n : une occurrence du type-entité ne peut exister que si elle est impliquée dans au moins
une association.
I.2.4.Compléments sur les associations et les classes d’entités (cas particuliers):
a. Associations plurielles
Deux mêmes entités peuvent participer dans plusieurs associations à la fois.
Exemple:
Figure. I.4. Exemple de relations plurielles.
6
ENST
Le modèle Entité-Association
2012-2013
b. Associations réflexives
Une association est réflexive quand elle matérialise une relation entre une classe d’entités et
elle-même
Exemple:
Figure. I.4. Exemple de relations réflexives.
c. Sous type d’une classe d’entités
Une classe d’entités peut être un sous-type d’une autre classe d’entités plus générale. Elle
hérite des propriétés générales de la classe générique, et possède des propriétés locales
propres à elle.
Exemple: La classe d’entités « Enseignant »
peut être vue comme un sous type de la
classe « Personnel ». Un autre sous-type
est « Personnel-ATS ».
Figure. I.5. Exemple de sous-typage de classes d’entités.
Il existe deux types de sous-typage de classes d’entités :
La spécialisation : dans ce cas, les sous classes n’ont pas d’identifiant (clé). en effet,
elles héritent leur identifiants de la classe générique.
La généralisation : dans ce cas, chaque sous-classe possède son propre identifiant
indépendamment de celui de la classe générique. Cependant, la classe générique
contiendra les propriétés communes.
7
ENST
Le modèle Entité-Association
2012-2013
Exemple:
Généralisation
Spécialisation
Figure. I.6. Exemple d’un sous-typage multiple de la classe d’entité « Personnel ».
I.2.5.Règles de normalisation
Afin de bien modéliser une réalité en modèle entité-associations, différentes règles doivent
être respectées.
Figure. I.7. Exemple d’un schéma E-A non normalisé.
Normalisation des entités : Toute entité remplaçable par une association doit être
remplacée. Par exemple : l’entité « Ligne Commande » doit être remplacée par une
association porteuse de propriété « quantité ».
8
ENST
Le modèle Entité-Association
2012-2013
Normalisation des attributs : les attributs multivalués (en plusieurs exemplaires)
sont remplacés par une association supplémentaire de cardinalité maximale n et les
attributs calculable à partir d’autres attributs sont supprimés.
Par exemple : l’attribut « Adresses» doit être remplacé par une association «a
comme adresse » liée à une nouvelle entité « Adresse ». En plus l’attribut « Age » est
calculable à partir de la « date de naissance » et l’attribut « Montant Total » est
calculable à partir de la « quantité » et du « Prix Unitaire », alors ils doivent être
supprimés.
Normalisation des identifiants (clés) :
Eviter les clés composées de plusieurs attributs; susceptibles de changer au cours du
temps (comme l’âge, la situation familiale, l’adresse) et les chaînes de caractères. Par
exemple : même si l’attribut « Désignation » de l’entité« Produit » peut être unique,
mais il éviter comme clé à cause du temps de recherche nécessaire pour les chaines
de caractères.
Normalisation des associations :
Il est indispensable de supprimer
-
les associations fantômes : avec des cardinalités (1,1) sur toutes les extrémités
de l’association. Par exemple : l’association « possède ».
- Les associations redondantes : pouvant être déduites d’autres associations. Par
exemple : l’association « Du ».
- Les associations en plusieurs exemplaires. Par exemple : les deux associations
« Est le 1er Fournisseur de» et « Est le 2eme Fournisseur de» peuvent être remplacées
par une association « Est le Fournisseur de» avec la propriété « Ordre ».
En plus, toute association n-aire avec une cardinalité (0,1) ou (1,1) sur une de ses extrémités,
peut être décomposée en (n-1) associations binaires (voir Figure I.8.).
Figure. I.8. Exemple de décomposition d’une association ternaire.
9
ENST
Le modèle Entité-Association
2012-2013
Normalisation des attributs des associations : Les attributs d’une association doivent
dépendre directement des identifiants de toutes les entités qui y participent.
Normalisation des cardinalités : Une cardinalité minimale est toujours 0 ou 1 (et pas
2, 3 ou n) et une cardinalité maximale est toujours 1 ou n (et pas 2, 3...)..
Figure. I.9. Exemple du schéma de la figure I.7. normalisé.
I.3. Démarche de construction d’un schéma Entité-Association
Construire le dictionnaire des données.
Identifier les entités et lister leurs attributs.
Choisir ou ajouter les identifiants (numéro arbitraire et auto-incrémenté).
Etablir les associations binaires entre les entités et lister leurs attributs.
Calculer les cardinalités.
Vérifier les règles de normalisation et effectuer les corrections nécessaires.
Il faut itérer plusieurs fois les étapes successives, pour espérer converger vers une
modélisation pertinente de la situation.
10
Téléchargement