Gestion d'une coopérative viticole
[20 minutes]
Cet exercice a été inspiré par Bases de données : objet et relationnel[1].
On considère une base "Coopérative" qui possède les caractéristiques suivantes :
Un vin est caractérisé par un numéro entier unique
nv
, un cru, une année de production et un degré.Un viticulteur est caractérisé par un numéro entier unique
nvt
, un nom et une ville.Un viticulteur produit plusieurs vins, chaque vin n'est produit que par un viticulteur.
Les buveurs sont caractérisés par un numéro de buveur
nb
, un nom, prénom et une adresse (limitée à la ville pour simplifier).Un buveur consomme des vins et peut passer des commandes pour acheter des vins.
Question
Lister tous les types d'objet à considérer, les attributs associés et les domaines de valeurs de ces attributs. Repérer les éventuelles clés.
Solution
Buveurs
Nb:Entier (clé), Nom:Char, Ville:Char)
Vins
Nv:Entier (clé), Cru:Char, Millésime:Entier(4), Degré:Décimal
Viticulteurs
Nvt:Entier (clé), Nom:Char, Région:Char
Question
Lister toutes les associations à considérer et indiquer leurs cardinalités.
Solution
Entité | Association | Entité | Cardinalité |
---|---|---|---|
Buveur | Consommation | Vin | N:M |
Viticulteur | Production | Vin | 1:N |
Buveur | Commande | Vin | N:M |
Remarque :
Concernant l'association Production
, la cardinalité minimale (coté Vins) peut être aussi bien 0 ou 1 en fonction de la conception de la base : il se peut qu'il y ait des Vins importés et que l'entité Viticulteur ne concerne que les producteurs français, ou plus généralement qu'il y ait des vins pour lesquels on ne connaît pas le producteur et réciproquement des viticulteurs pour lesquels on ne connaît pas les vins produits.
En d'autres termes les cardinalités dépendent fortement des hypothèses considérées concernant la situation qu'on doit modéliser.
Question
Donner le diagramme UML de cette situation.