CROC
[30 min]
La Compagnie des Rôtisseurs de l'Ouest-Centre (CROC) est une chaîne de restaurants qui propose une cuisine classique. En fait, tous les mets sont préparés dans une usine puis conditionnés sous vide. Ils peuvent être consommés dans les 8 jours qui suivent leur fabrication à condition que la chaîne du froid ne soit pas brisée. Le restaurant se contente de les réchauffer dans une étuve ou au four à micro-onde et de les présenter ensuite dans une assiette.
Le catalogue de ces produits est diffusé et permet aux restaurateurs membres de préparer leurs commandes.
Il a été décidé d’informatiser ce catalogue. Les autres parties au traitement (commande, livraison...) ne sont pas à traiter dans ce sujet.
L’élément de base est la « recette ». Ces recettes sont soit créées par des cuisiniers qui travaillent dans un restaurant de la CROC, soit par des consultants externes, qui ne travaillent pas dans un restaurant. Une recette peut être créée par une ou plusieurs personnes. Toutes les recettes sont codifiées, comportent un nom et un prix de revente conseillé. Elles sont composées par un ensemble d’ingrédients, chacun comporte un nom et est identifié par un code ingrédient, et bien entendu les mêmes ingrédients peuvent être mobilisés dans des recettes différentes.
Les auteurs des recettes sont identifiés par un code, et comporte un nom et un prénom. Un restaurant est identifié par un code, et comporte une adresse, un téléphone et un fax.
Question
Proposer une analyse du problème (sous forme de tableau par exemple) faisant ressortir la liste de tous les entités et associations mises en jeu dans cet énoncé.
Question
Réaliser le MCD en E-A. Justifiez vos choix éventuels.
Solution
Une meilleure solution aurait été d'utiliser un attribut composé pour adresse. Noter l'héritage.
Question
Réaliser le MLD relationnel correspondant. Justifier.
Solution
Recette(code, nom, prix)
Ingredient(code, nom)
Auteur(code, nom, prenom)
Consultant (code=>auteur)
Cuisinier (code=>auteur, restaurant=>restaurant)
Restaurant (code, nom, adresse, tel, fax)
Création (auteur=>auteur, recette=>recette)
Contenu (recette=>recette, ing=>ingredient)
Le meilleur choix est l'héritage par référence, mais il est aussi possible de faire un héritage par la classe mère ou les classes filles.
Le défaut de l'héritage par la classe mère est que plus rien n'impose que seuls les cuisiniers (et non les consultants) font référence à un restaurant.
Le défaut de l’héritage par les classes filles est la complexification de l’association création. Cette solution est la moins bonne.
-- Héritage par la classe mère
Recette(code, nom, prix)
Ingredient(code, nom)
Auteur(code, nom, prenom, type :{consultant|cuisier}, restaurant=>restaurant)
Restaurant (code, nom, adresse, tel, fax)
Création (auteur=>auteur, recette=>recette)
Contenu (recette=>recette, ing=>ingredient)
-- Héritage par les classes filles
Recette(code, nom, prix)
Ingredient(code, nom)
Consultant (code, nom, prenom)
Cuisinier (code, nom, prenom, restaurant=>restaurant)
Restaurant (code, nom, adresse, tel, fax)
CréationConsultant (auteur=>consultant, recette=>recette)
CréationCuisinier (auteur=>cuisinier, recette=>recette)
Contenu (recette=>recette, ing=>ingredient)