Apprentissage d'une démarche de conception de requêtes à travers l'exploitation d'une base de données



Documents pareils
clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Le langage SQL Rappels

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Guide d utilisation des fichiers bonus accompagnant le guide «L Argent est une science exacte»

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Les Entrepôts de Données

1 Introduction et installation

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Katja Ingman. Être pro en anglais. Sous la direction de Marie Berchoud. Groupe Eyrolles, 2009 ISBN :

INTRODUCTION AU DATA MINING

Techniques d accueil clients

e-venement v2.6, par poste de fonctionnement

Langage SQL : créer et interroger une base

Création de Sous-Formulaires

Base de données relationnelle et requêtes SQL

TD n 10 : Ma première Base de Données

Pascal Weber - Expert en organisation

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

La protection des données dans les bases de données

Cahier des charges de l application visant à effectuer un suivi de consommation énergétique pour les communes. Partenaires du projet :

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel

Utiliser Access ou Excel pour gérer vos données

APPRENDRE LA CHIMIE EN ZEP

MODE OPERATOIRE OPENOFFICE BASE

TP 1 Outils collaboratifs de base

Dossier I Découverte de Base d Open Office

CAP TERTIAIRE/INDUSTRIEL

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

UE 8 Systèmes d information de gestion Le programme

Lhopitault Aurora PES 09 février Unité d apprentissage : Les fruits. Unité d apprentissage : les fruits séance 1

1. La famille d accueil de Nadja est composée de combien de personnes? 2. Un membre de la famille de Mme Millet n est pas Français. Qui est-ce?

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

PLATEFORME MÉTIER DÉDIÉE À LA PERFORMANCE DES INSTALLATIONS DE PRODUCTION

Présentation : Ces quelques informations vous aideront à mieux comprendre son fonctionnement.

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

NF26 Data warehouse et Outils Décisionnels Printemps 2010

PNL & RECRUTEMENT IMPACT SUR LES ENTRETIENS Présentation du 10/06/03

INTRODUCTION : Données structurées et accès simplifié

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

FEN FICHE EMPLOIS NUISANCES

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Le guide Votre manuel d utilisation pour une gestion rapide des polices en ligne

Les bases de données

OFFRE DE FORMATION. 1er semestre Formez vos salariés, vos dirigeants, vos bénévoles et vos licenciés.

EXAMEN MODULE. «U4 Le client au cœur de la stratégie des entreprises» Jeudi 5 septembre h30 11h30. Durée 2 heures

I. LE CAS CHOISI PROBLEMATIQUE

Atelier Administration

Utiliser un tableau de données

Organiser l espace dans une classe de maternelle : Quelques idées. I - Les textes officiels : II - Les coins jeux : III - L enfant et le jeu :

1 Modélisation d une base de données pour une société de bourse

1. Introduction Création d'une requête...2

Skills Technology Software PARTENAIRE TECHNOLOGIQUE DE VOTRE DÉVELOPPEMENT

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Le Langage De Description De Données(LDD)

Bases de Données. Plan

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Atelier Découverte de Windows. janvier 2012

TÉMOIGNAGES de participantes et de participants dans des groupes d alphabétisation populaire

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

BUSINESS. / solution de gestion au cœur de votre entreprise RC SOFT RC SOFT

COMPTABILITÉ ET FINANCE D ENTREPRISE

Structure du cours : Il existe de nombreuses méthodes intéressantes qui couvrent l Analyse des Données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

FreeAnalysis. Schema Designer. Cubes

Dossier de suivi de stage d observation en entreprise en classe de 3 ème

Comment avoir une banque sans banque. Tome 2

Les 10 étapes incontournables pour réaliser un site internet performant et accessible

AVERTISSEMENT Ce texte a été téléchargé depuis le site

Bases de données relationnelles

Les bases de données Page 1 / 8

Ne vous contentez pas de stocker vos informations, gérez-les

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

Contenu de l action de formation BTS Management des Unités Commerciales

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Présentation du module Base de données spatio-temporelles

N Y OU OÙ 1 Homophones grammaticaux de catégories différentes. ni n y ou où

Méthodologie de conceptualisation BI

Manuel d utilisation de Form@Greta

Soutien technique en informatique

La Business Intelligence & le monde des assurances

Premier cours d informatique

BUSINESS INTELLIGENCE

LE STAGE EN ENTREPRISE

PRÉPARER LA PREMIÈRE ÉPREUVE ORALE D ADMISSION OPTION EPS. DEVOIRS SUPPLÉMENTAIRES 1 et 2

SQL Historique

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Créer le schéma relationnel d une base de données ACCESS

AP 2nde G.T : «Organiser l information de manière visuelle et créative»

13 conseils pour bien choisir son prestataire de référencement

Complaints Manager 4/06/2015 Page 1 Arpaweb 2015

Transcription:

Cas Bonne table Apprentissage d'une démarche de conception de requêtes Propriétés Intitulé long Formation concernée Matière Présentation Notions Description Apprentissage d'une démarche de conception de requêtes à travers l'exploitation d'une base de données Classe de terminale CFE - Comptabilité et finance d'entreprise Comptabilité et finance d'entreprise La société BONNE TABLE est une jeune entreprise agroalimentaire spécialisée dans la production de plats cuisinés. Elle souhaite améliorer son approvisionnement en ingrédients pour s adapter à une production saisonnière très variable. Elle vous demande d'analyser sa production à travers l'exploitation de sa base de données et de lui proposer un planning d'approvisionnement pour la prochaine année. 3.1 La base de données support du système d'information comptable Les concepts du modèle relationnel, le rôle de la normalisation relationnelle. La conception de requêtes d interrogation de la base de données en langage SQL : projection, sélection, jointure, tri, regroupement, fonctions d agrégats. La conception des requêtes de modification de la base de données et leur traduction en langage SQL : mise à jour. Pré-requis Programme de première information et gestion (point 2) Connaissance du vocabulaire de la base de données et du modèle relationnel Manipulations élémentaires d une interface d accès à une base de données Visualisation du contenu d une table Visualisation du schéma des tables et des liens entre elles Utilisation du mode de création graphique Manipulations de base d'un tableur Création de formules de cumul Création d un graphique (facultatif) Manipulations de base d un traitement de texte Outils Mots-clés Durée Auteur(es) Version 1.0 Date de publication Un SGBDR et un tableur Exemples fournis avec Excel et Access SQL ; projection ; restriction ; jointure ; regroupement; GROUP BY 10 heures réparties en cinq séances de deux heures Alain Van Sante Olivier Cappuozzo 19 Janvier 2005 Contexte organisationnel La société BONNE TABLE est une jeune entreprise agroalimentaire spécialisée dans la production de plats cuisinés. Elle souhaite améliorer son approvisionnement en ingrédients pour s adapter à une production saisonnière très variable. Vous êtes chargé(e) de seconder M. Fabien Rabelais, PDG de la société, dans l analyse des informations contenues dans la base de données BONNETABLE. A partir des données relatives à la production de l année courante, il sera possible de prévoir l approvisionnement pour l année suivante. L'entretien réalisé avec le M. Fabien Rabelais, rapporté en annexe 1, vous indiquera précisément ce qu il attend de vous. http://www.reseaucerta.org CERTA - janvier 2005 v1.0 Page 1/6

1. Préparer l'espace de travail destiné à la réalisation de votre projet F Chaque membre du groupe doit pouvoir disposer d une version de la base de données BONNETABLE pour réaliser ces expérimentations. F Un espace commun doit permettre de regrouper le résultat des travaux réalisés par chacun. Pour votre première journée dans l entreprise, M. Fabien Rabelais vous a chargé d étudier la production de la société BONNE TABLE et de lui apporter des informations sur plusieurs points qui lui posent actuellement problème et qu il vous a énoncés à l issue de votre premier entretien (annexe 1). 2. Analyser la production de la société F En observant le contenu des tables et des états de la base de données BONNETABLE, noter les informations demandées par M. Fabien Rabelais à la fin du premier entretien. F Construire le schéma relationnel correspondant à la base de données BONNETABLE en : explicitant le rôle de chaque clé étrangère, expliquant la signification de la clé primaire de la table COMPOSITION. Rédiger les réponses aux questions de Fabien Rabelais sous la forme d un rapport succinct. Encouragé par votre premier rapport, M. Fabien Rabelais vous a demandé de passer dans son bureau et vous a exposé quelques situations pour lesquelles il a besoin de votre aide (annexe 2) 3. Construire les requêtes permettant de répondre aux questions posées par Fabien Rabelais F Pour chaque question : préciser les informations nécessaires, les tables et les opérations mises en jeu, construire la requête SQL et la tester, Il faut maintenant aborder le vif du sujet : extraire de la base de données toutes les informations nécessaires pour faire le bilan de la production de l entreprise et prévoir les approvisionnements de l année prochaine. Vous disposez pour cela des indications fournies par M. Fabien Rabelais lors de votre premier entretien (annexe 1) et d'un complément d'informations, recueilli auprès de votre professeur (annexe 3). 4. Établir le bilan de la production de l entreprise pour l année en cours F Identifier les tables indispensables au calcul du poids de production annuel de chaque produit. F Écrire la requête SQL correspondante, en utilisant la clause GROUP BY expliquée en annexe 3. F Exporter le résultat de cette requête dans une feuille de calcul. F Élaborer un graphique permettant de comparer le volume de production des dix produits les plus fabriqués. 5. Préparer l approvisionnement des composants 4 et 10 de la prochaine année F Extraire les données nécessaires pour obtenir la quantité mensuelle consommée de chacun de ces composants. F Produire un graphique montrant la répartition mensuelle des consommations de chacun de ces composants. F Déterminer le pourcentage de perte de chacun des composants. 6. Proposer une estimation des consommations de ces composants pour la prochaine année. Vous vous limiterez aux composants 4 et 10 http://www.reseaucerta.org CERTA - janvier 2005 v1.0 Page 2/6

Annexe 1 COMPTE-RENDU DU PREMIER ENTRETIEN Fabien Rabelais : notre société BONNE TABLE produit des plats cuisinés. Nous disposons d une usine de fabrication qui nous permet d adapter rapidement notre production en fonction des demandes de nos distributeurs. Nous utilisons des lignes de fabrication qui produisent des lots de plats cuisinés. En une heure nous pouvons adapter une ligne pour produire un nouveau produit. Vous : qu appelez-vous un lot? Fabien Rabelais : lorsqu une ligne de fabrication est en fonctionnement, elle produit toujours le même produit. Par exemple, hier la ligne 2 a produit dans la journée 2 500 barquettes de saumon à l oseille pour une personne. Toutes ces barquettes font partie du même lot de fabrication, le numéro 04-347. Cela nous permet de répondre aux exigences de traçabilité : en cas de problème de qualité sur une barquette, nous pouvons savoir à quel lot elle appartient et retirer de la vente toutes les autres barquettes du même lot. Vous : pouvez-vous m expliquer ce que vous entendez par adaptation d une ligne de fabrication? Fabien Rabelais : eh bien, imaginez que nous recevions dans le courant de l après-midi un commande très urgente de 3 000 barquettes de cuisses de canard aux truffes pour deux personnes en provenance d un de nos plus gros distributeurs. Pas question de lui dire non : nous nous sommes engagés sur un délai de réponse de 24h. En fonction des quantités à produire, nous allons arrêter le nombre de lignes de fabrication nécessaires et nous allons les modifier. Par exemple, si une ligne fabriquait des barquettes de «lasagnes à la bolognaise pour une personne», il nous faudra lui ajouter un atelier de découpe pour préparer les canards. Bien sûr nous évitons de multiplier ces adaptations. Cette opération se fait au plus une fois par jour, car une heure d interruption des lignes, c est de la production perdue. Vous : mais que faites-vous des produits fabriqués? Fabien Rabelais : nous les stockons dans notre entrepôt en attente de la livraison au client. Nous essayons de produire le plus possible à la demande pour limiter le stock. Trop de stock, c est des capitaux immobilisés dans nos locaux de stockage, des dépenses de personnel, de matériel, d exploitation, d entretien des locaux en plus : tout cela coûte cher et ne rapporte rien. Bien sûr nous prévoyons un stock suffisant pour répondre aux besoins de nos distributeurs : une rupture de stock, c est des distributeurs qui ne peuvent être livrés dans les délais. Résultat : insatisfaction, dégradation de notre image de marque et surtout risque de perte de chiffres d affaires s ils passent à la concurrence. En fait mon travail consiste à trouver en permanence la meilleure réponse à trois questions : que produire, en quelle quantité, et quand? Vous : vous fabriquez beaucoup de produits? Fabien Rabelais : nous avons actuellement un catalogue de trente-trois produits. Ils se répartissent en trois gammes. Nous avons la gamme «soirée de gala» qui regroupe les produits de luxe, mais nous avons aussi une gamme moyenne «coup de cœur» et une gamme «premier prix». Nous avons mis en place une base de données qui me permet de suivre la production. Vous : qu attendez-vous de moi? Fabien Rabelais : je vous avoue que je ne suis pas très à l aise avec la base de données. Le stagiaire qui vous a précédé l a mise en place mais il est parti sans avoir terminé son travail. Résultat : j ai pu enregistrer la production de l année, mais je ne sais pas comment l exploiter. J ai besoin d estimer la productivité de mon affaire et pour cela je dois en particulier calculer la production par salarié (exprimée en kg). Je connais mon nombre de salariés : ils sont actuellement 12. Il me reste à connaître mon volume de production pour l année. Ce n est pas difficile : il faut calculer le poids de chaque lot fabriqué (on connaît le nombre d unités produites et on peut retrouver le poids d une unité). J aimerai également pouvoir comparer les productions annuelles de mes produits et connaître les consommations de chaque matière première pour l année, mois par mois, afin de prévoir mon planning d approvisionnement pour l année prochaine. J envisage en effet une augmentation de production de 10 % sur la gamme «soirée de gala», 25 % sur la gamme «coup de coeur» et 20 % sur la gamme «premier prix» et je veux d une part éviter les ruptures de stock, d autre part en profiter pour renégocier les tarifs proposés par mes fournisseurs. Je compte sur vous pour me donner un coup de main. Vous : qu entendez-vous par matière première? Fabien Rabelais : ce sont tous les ingrédients qui rentrent dans la fabrication d un produit. Dans la base de données, on les a appelés des composants. Nous avons estimé pour chacun le pourcentage qu il représente dans la composition d un produit. Par exemple, dans la barquette de cuisses de canard aux truffes pour deux http://www.reseaucerta.org CERTA - janvier 2005 v1.0 Page 3/6

personnes, qui pèse 375 grammes, les cuisses de canard interviennent pour 62 % du poids, les pommes de terre pour 37 % et les truffes pour 1%. Nous ne nous intéressons qu aux ingrédients principaux. Avez-vous d autres questions? Vous : oui, vous parlez d'estimation. Comment peut-on calculer la consommation réelle? Fabien Rabelais : vous faîtes bien de m'en parler, j'allais oublier d'aborder ce problème de perte de production. C'est mon comptable qui détermine les consommations réelles à partir de nos factures fournisseurs. Il m'a fait remarquer que la consommation de certains composants avait beaucoup augmenté cette année, sans rapport apparent avec notre production. Nous avons ainsi consommé 17,3 tonnes de truffes et 225 tonnes d'airelles. Il faudrait me comparer ces consommations réelles avec votre estimation et m'indiquer les pourcentages de perte correspondant. Vous : pouvez-vous me préciser ce que vous souhaitez? Fabien Rabelais : Je vous donne un exemple : les truffes (c'est le produit 4). Le relevé des factures de mon fournisseur nous indique que cette année nous en avons consommé 17,3 tonnes. Il est normal qu'entre le nettoyage, le découpage, la confection des plats, on ne retrouve pas la totalité du produit dans nos plats : nous avons estimé le taux de perte pour ce produit à 1,5 %. Si vos calculs me disent que notre production annuelle a entraîné une consommation estimée de truffes de 16,95 tonnes, je serai très satisfait. Mais si votre estimation donne une valeur de 15,3 tonnes, il faudra bien que je cherche une autre explication à cette perte de 2 tonnes qui représente plus de 13 % de la consommation estimée ((17,3 15,3)/15,3 = 13,07 %). Je vous demande donc de me calculer le pourcentage réel de perte pour les deux produits repérés par mon comptable. Vous : bien, je pense avoir tout ce qu il me faut pour me mettre au travail. Merci. Fabien Rabelais : vous allez donc commencer par faire une copie de ma base de données de production. Pour vous faire la main et comprendre les données que vous allez devoir manipuler, vous allez ensuite me faire un premier rapport sur notre catalogue de produits. Retrouvez-moi notamment combien nous fabriquons de produits différents et dans combien de gammes. Vous me préciserez également quelles sont ces gammes. Pendant que vous y êtes, rendez-moi un petit service. Indiquez-moi les ingrédients nécessaires à la fabrication du produit 12 : mon principal client vient de m en demander 6 000 et j aimerai voir avec mon responsable de production si nous avons un stock de matières premières suffisant. Ah oui, n oubliez pas de me préciser le poids de ce produit : je vais en avoir besoin pour négocier avec mon transporteur. Mon fournisseur de truffes vient de me faire part d une forte augmentation de ses tarifs. Avant de prendre une décision, j aimerai aussi savoir quels sont les produits qui seront concernés si j abandonne l approvisionnement en truffes. http://www.reseaucerta.org CERTA - janvier 2005 v1.0 Page 4/6

Annexe 2 COMPTE-RENDU DU DEUXIÈME ENTRETIEN Fabien Rabelais : Bravo pour votre rapport. Je vois que vous avez bien compris notre métier et que vous maîtrisez maintenant notre base de données de production. J ai appris que vous connaissiez les éléments de base du langage SQL et j ai trouvé l occasion idéale d utiliser vos compétences. Figurez-vous que j ai régulièrement besoin d extraire des informations de cette base. Pour l instant je regarde le contenu des tables pour trouver les informations qui m intéressent. Je vous ai listé quelques exemples de questions auxquelles je dois constamment répondre. Il faudrait que vous me construisiez d abord les requêtes SQL correspondantes. Ensuite vous pourrez les généraliser pour me permettre de les utiliser pour des valeurs différentes. Voilà les dernières questions que m ont posées mes clients et mon responsable de production : F Quel est le poids du produit 12? F Vous avez quoi dans la gamme "SG"? F Quels lots du produit 10 avons-nous fabriqués cette année? F Vous avez quoi dans la gamme "Coup de coeur"? F A quelles dates avons-nous fabriqué le produit 12 et en quelles quantités? F Quels lots de produits de la gamme "CC" avons-nous fabriqués cette année? F Quelle est la composition du produit 12 (libellé des composants et pourcentage de composition)? F Quels sont les produits utilisant l ingrédient 15 (libellé des produits et poids du composant 15 entrant dans leur composition)? F F Quels sont les libellés des ingrédients du plat nommé "Cuisses de canard aux truffes pour deux personnes"? Quels sont les lots ayant nécessité l ingrédient 15? Préciser pour chaque lot le poids utilisé de cet ingrédient. Il faut aussi que je pense à l avenir. Je n aurai pas tous les jours un stagiaire comme vous. J aimerai donc pouvoir construire mes propres requêtes après votre départ. Je compte donc sur vous pour me réaliser un mode d emploi qui m explique comment construire une requête. Bon courage! Annexe 3 La clause GROUP BY et les fonctions agrégatives dans une requête SQL La clause GROUPE BY vient compléter la commande SQL que vous connaissez déjà (SELECT.. FROM...WHERE). Elle permet de regrouper plusieurs lignes en une seule en précisant sur quel critère sera réalisé ce regroupement. On peut lui associer un calcul réalisé sur l'ensemble de ces lignes. Par exemple, si vous voulez connaître le nombre de lots fabriqués pour chaque produit, vous pouvez toujours effectuer une requête par produit et calculer ensuite le nombre de lignes obtenues pour chacune : SELECT Num WHERE CodeProduitFabriqué = 1 SELECT Num WHERE CodeProduitFabriqué = 2... Après tout, il n'y a que 33 produits... Le mieux est quand même d'utiliser la clause GROUP BY. On veut regrouper les lots par produit (grâce à leur code) et pour chaque groupe ainsi constitué on veut compter le nombre de lignes qui le constituent : on affichera pour chaque groupe le code du produit qu'il représente et le nombre de lignes (i.e. le nombre de lots fabriqués). http://www.reseaucerta.org CERTA - janvier 2005 v1.0 Page 5/6

SELECT CodeProduitFabriqué, COUNT(*) GROUP BY CodeProduitFabriqué La fonction COUNT() est une fonction agrégative (qui agit toujours sur un groupe de lignes) qui calcule le nombre de lignes d'un groupe. Le caractère * indique qu'on compte les lignes. Il en existe d'autres comme SUM() ou MOYENNE() qu'on emploie plutôt avec un champ comme argument (ce qui se trouve entre les parenthèses). SELECT CodeProduitFabriqué, SUM(Quantité) GROUP BY CodeProduitFabriqué Cette requête regroupe les lignes représentant les lots par produit et pour chaque groupe effectue la somme de toutes les quantités fabriquées. Elle permet d'obtenir les quantités fabriquées de chaque produit. On peut utiliser une fonction agrégative sur la totalité d'une table. Il suffit de ne pas utiliser la clause GROUP BY. Dans ce cas la fonction agrégative est appliquée à toutes les lignes : SELECT COUNT(*) FROM PRODUIT donne le nombre de produits. Chaque ligne de la requête obtenue ne peut contenir que le (ou les) champ(s) qui ont permis de constituer chaque groupe et les fonctions agrégatives qu'on applique à ce groupe. Ainsi : SELECT CodeProduitFabriqué, Quantité, COUNT(*) GROUP BY CodeProduitFabriqué ne peut pas fonctionner : la seule information commune à toutes les lignes d'un groupe est le code du produit fabriqué. Chaque ligne de ce groupe contient a priori une quantité différente : comment en choisir une pour constituer la ligne qui va représenter le groupe? On peut aussi effectuer un regroupement sur une partie d'un champ. Ainsi la fonction MONTH() permet d'extraire le mois d'une date. SELECT MONTH(DateFabrication), SUM(Quantité) GROUP BY MONTH(DateFabrication) donne la quantité fabriquée par mois, tous lots confondus. On peut bien sûr associer les clauses GROUP BY et ORDER BY : dans ce cas le tri est réalisé après toutes les autres opérations. http://www.reseaucerta.org CERTA - janvier 2005 v1.0 Page 6/6