ETAPE03 « Produits et ingrédients…… »
« Produits et ingrédients… » Rappel : Dans létape 2, nous avons vu une organisation plus complète des données relatives aux articles du Moulin des Costières. Notre schéma relationnel comporte à présent 3 relations : Ce schéma relationnel permet : déviter la redondance ; de minimisant le volume des données ; de faciliter les traitements : – dinterrogation, – de mise à jour. PRODUIT(CodeP, NomP, Description, NomFamille#) FAMILLE(NomFamille, Commentaire) ARTICLE(Référence, Désignation, image, Prix,disponibilité, CodeP#)
« Produits et ingrédients… » Choisissez dans le menu : NOS PRODUITS puis PREPARATION puis Verte pistou – Noire Provençale – Poumo dAmour ou en local C:\…\MDC\LeSite\Index.htm Changeons de page…..
« Produits et ingrédients… » Quelle information apparaît dans cette page non prise en compte dans les étapes précédentes ? Les ingrédients qui entrent dans la composition des catégories darticles
« Produits et ingrédients… » Comment peut-on définir un ingrédient ? On choisit des attributs qui caractérisent un ingrédient en fonction des besoins de gestion: Un code, une désignation On définit une clé permettant didentifier un ingrédient donné : CodeI INGREDIENT(CodeI,Désignation) On définit ainsi une nouvelle relation :
« Produits et ingrédients… » Un produit est-il composé dun seul ingrédient ? Tapenade Verte au Pistou Olives vertes Basilic Ail frais Huile dolive câpres Pour un produit, il y a plusieurs ingrédients possibles….
« Produits et ingrédients… » Tapenade Verte au Pistou Olives vertes Basilic Ail frais Huile dolive câpres Tapenade Noire Provençale Olives noires Basilic Ail frais Huile dolive Herbes de Provence câpres Poumo dAmour Tomates séchées Basilic Ail frais Huile dolive Thym sel …Un ingrédient peut être intégré dans plusieurs produits. Les ingrédients sont-ils spécifiques à un produit ?
« Produits et ingrédients… » Comment savoir si un ingrédient entre ou non dans la composition dun produit ? Comment savoir si un produit a dans sa composition un ingrédient donné ? ? INGREDIENT INGREDIENT(CodeI,Désignation) PRODUIT PRODUIT(CodeP, NomP, Description, NomFamille#) COMPOSER(CodeI, CodeP) En ajoutant une nouvelle relation qui fait le lien entre INGREDIENT et PRODUIT
« Produits et ingrédients… » INGREDIENT(CodeI,Désignation) PRODUIT(CodeP, NomP, Description, NomFamille#) COMPOSER(CodeI, CodeP) Pour que la relation COMPOSER ait un sens, il est indispensable que: On parle de contrainte référentielle Mais il faut aussi que la valeur de lattribut COMPOSER.CodeP existe dans les valeurs de lattribut PRODUIT.CodeP La valeur de lattribut COMPOSER.CodeI existe dans les valeurs de lattribut INGREDIENT.CodeI
« Produits et ingrédients… » PRODUIT T01, « Tapenade Verte au Pistou », PREPA INGREDIENT AR01,« basilic » CodeP(T01), correspond à un seul ingrédient dans PRODUIT Exemple : COMPOSER(CodeI, CodeP) (AR01, T01) CodeI (AR01) correspond à un seul ingrédient dans INGREDIENT
COMPOSER INGREDIENT PRODUIT « Produits et ingrédients… » CodeICodeP CodeI Désignation CodeP NomPDescriptionNomF On peut construire un graphe partiel des dépendances fonctionnelles Quelles sont les dépendances fonctionnelles existantes entre les attributs de COMPOSER, INGREDIENT, PRODUIT ?
« Produits et ingrédients… » COMPOSER(CodeI, CodeP) INGREDIENT(CodeI,Désignation) PRODUIT(CodeP, NomP, Description, NomFamille#) CodeI et CodeP sont des clés étrangères. Ces attributs sont des clés primaires dans les relations INGREDIENT et PRODUIT CodeI,CodeP constitue la clé primaire de COMPOSER. Une valeur de CodeI,CodeP permet didentifier un tuple dans COMPOSER COMPOSER( CodeI, CodeP ) Schéma définitif de la relation :
« Produits et ingrédients… » Si on souhaite connaître la quantité dingrédient nécessaire pour une catégorie, quelle information faut-il ajouter ? La quantité dingrédient dépend à la fois de lingrédient et du produit. On peut fixer une quantité pour un certain volume Exemple T01 Tapenade Verte au Pistou », PREPA »)OL01, Olive verte 650 g/kg
« Produits et ingrédients… » Linformation Quantité ( 650g/kg) dépend de la préparation T01 et de lingrédient OL01. Dans quelle relation faut-il placer lattribut ou les attributs correspondant? Ce nest quen connaissant un CodeI et un CodeP, que lon connaître la Quantité. Un attribut Quantité doit être ajouté dans la relation COMPOSER : COMPOSER(CodeI,CodeP,Quantité) T01 Tapenade Verte au Pistou », PREPA »)OL01, Olive verte 650 g/kg T01OL01
COMPOSER INGREDIENT « Produits et ingrédients… » Graphe des dépendances fonctionnelles : FAMILLE PRODUIT ARTICLE Référence Désignation imagePrix disponibilité CodeP NomP Description NomFamille Commentaire CodeI Désignation CodeICodeP Quantité
« Produits et ingrédients… » Le schéma relationnel est le suivant : COMPOSER(CodeI,CodeP,Quantité) INGREDIENT(CodeI,Désignation) PRODUIT(CodeP, NomP, Description, NomFamille#) FAMILLE(NomFamille, Commentaire) ARTICLE(Référence, Désignation, image, Prix,disponibilité, CodeP#)
« Produits et ingrédients… » Nous avons défini une organisation des données relatives aux articles du Moulin des Costières sous la forme dun schéma relationnel. Dans ce schéma, chaque relation est normalisée : Résumons-nous…. elle possède une clé : Les valeurs de la clé sont uniques et permettent didentifier un tuple de la relation de façon certaine. Exemple : il ny a quune référence « HUILE01 », un seul produit « H01 », une seule famille « HUILE »…. ;
« Produits et ingrédients… » ses attributs sont élémentaires ( au sens du domaine détude): chaque attribut dépend entièrement de la clé Pour connaître le prix dun article( ARTICLE.Prix), il faut connaître sa référence(ARTICLE.Référence). On ne peut connaître une valeur de COMPOSER.Quantité quen connaissant une valeur de COMPOSER.CodeI et une valeur de COMPOSER.CodeP un attribut ne dépend pas dun autre attribut non clé Si nous avions une relation du type : ARTICLE( Référence,……., CodeP, NomP), NomP dépendrait de CodeP qui lui-même dépendrait de Référence. Cette relation ne serait pas normalisée.
« Produits et ingrédients… » Le schéma relationnel normalisé va permettre : Déviter la redondance ; De minimiser le volume des données ; De faciliter les traitements : – dinterrogation, – de mise à jour. Les contraintes référentielles existant entre les relations permettent de lier toutes les données entres elles.
« Produits et ingrédients… » Lobjectif du modèle relationnel est danalyser lorganisation des données pour en faciliter le stockage et lexploitation. En définissant les relations suivantes : Le Moulin des Costières définit une organisation des données susceptible de répondre à ses besoins dinformation.
« Application 03 » Une commande dun client sur le site marchand du Moulin des Costières se présente de la manière suivante : Travail : Quelles sont les informations nécessaires pour compléter ce formulaire ? Proposez le schéma relationnel correspondant. Les différents champs du formulaire sont remplis automatiquement à partir des informations données par le client( « ENREGISTREZ VOS COORDONNEES : Application 01; Ajout des articles au panier… ). Ces informations sont stockées en attendant la validation du client.