9.9 Extensions du modèle entité-association
225
© Dunod – La photocopie non autorisée est un délit.
• Attributs composés. Une valeur d’un attribut composé est constituée d’un
assemblage de valeurs plus élémentaires. L’attribut Adresse d’EMPRUNTEUR
est ainsi constitué des attributs plus élémentaires Rue et Ville.
• Attributs multivalués. En principe, chaque entité d’un type possède une
valeur de chacun de ses attributs. Si un attribut est multivalué, alors une entité
peut posséder plusieurs valeurs de cet attribut. Tel serait le cas de l’attribut
Mot Clé de DOCUMENT et Téléphone d’EMPRUNTEUR. Le nombre de
valeurs par entité est caractérisé par une contrainte de cardinalité min-max.
• Contraintes d’intégrité. Les modèles professionnels sont dotés d’un jeu de
contraintes d’intégrité plus riche que celui que nous avons défini dans ce
chapitre. La figure 9.26 illustre deux de ces contraintes.
Les modèles Entité-association ont aussi intégré certains concepts des approches
orientées-objets. C’est ainsi qu’il est permis de spécifier le comportement dynamique d’un type d’entités sous la forme d’un ensemble de méthodes.
Figure 9.27 - Un type d’entités peut être doté de méthodes qui définissent son
comportement. Les attributs Compte et A payer sont définis sur le domaine Montant,
défini par l’utilisateur
Une méthode est un service qui peut être demandé à toute entité d’un certain type.
Elle se présente sous la forme d’une procédure dont l’exécution est déclenchée par
un message envoyé à l’entité. Le schéma de la figure 9.27 spécifie que les actions
dont les commandes peuvent faire l’objet sont : son enregistrement 9 , la production
d’une facture, son annulation, l’expédition des produits commandés (non illustrés
dans le schéma), son archivage. Dans certains modèles récents, il est possible de
spécifier des domaines de valeurs (exemple Montant) sur lesquels des attributs
peuvent être définis.
9. Le préfixe * indique qu’il s’agit d’une méthode de classe et non d’instance : on demande à la
classe COMMANDE d’enregistrer une nouvelle entité, mais on demande à une entité de
s’archiver.
1-1
0-N
passe
COMMANDE
NumCom: num (8)
DateEnreg: date (10)
A payer: Montant
id: NumCom
*enregistrer()
facturer()
annuler()
expédier()
archiver()
CLIENT
NumCli: char (12)
Nom: varchar (32)
AdresseClient: Adresse
Compte: Montant
id: NumCli
*enregistrer()
supprimer()
changer_adresse()
calculer_montant()
Précédent

- 225/436

Suivant