master EGO - Système d`information - décembre 2006
Transcription
master EGO - Système d`information - décembre 2006
master EGO - Système d’information - décembre 2006 tous documents autorisés December 4, 2006 1 Mariages Présentation Un grand magasin a décidé d’ouvrir à sa clientèle un nouveau service intitulé : listes de mariage. Le magasin gèrera donc plusieurs mariages et leurs différentes listes. Pour un mariage, on a mémorisé le nom des époux et la date du mariage. Le magasin est organisé en rayons correspondant à des lignes de produits : Hi-Fi, Vidéo, Electro-ménager, Textiles, Décoration, Mobilier, Literie, Vaisselle, etc. Les futurs mariés choisissent des articles qu’ils désirent se voir offrir. La liste des articles choisis constitue la liste de mariage. Les futurs époux communiquent au magasin les noms et adresses des invités. Le magasin se charge d’envoyer la liste de mariage aux invités. Puis, le magasin accueille et conseille les invités. Les invités choisissent dans la liste, le ou les cadeaux qu’ils offriront aux mariés. En général un invité offre un cadeau. Mais un invité généreux (ou fortuné) peut offrir ou participer à plusieurs cadeaux. Certains invités n’offrent pas de cadeaux. Pour un cadeau coûteux, des invités peuvent se grouper pour offrir ensemble le cadeau. Le magasin mémorise simplement quels sont les invités qui ont participé et à quel pourcentage ils ont participé (le pourcentage est un chiffre entier compris entre 0 et 100). Donc dans le cas où un invité offre, à lui seul, un cadeau, le pourcentage est 100%. Evidemment, le cadeau que peut offrir un invité est nécessairement à choisir parmi ceux de la liste, à condition qu’il n’ait pas déjà été offert par quelqu’un d’autre. Le modèle logique des données est donné à la suite des questions Questions Téléchargez la base de données qui se trouve sur le site http://www.grappa.univ-lille3.fr/˜terlutte/exam/rh.html. Répondez aux questions suivantes en concevant des requêtes. Vous indiquerez clairement les tables ouvertes, les liens, les champs affichés (avec les éventuelles opérations), les regroupements, les tris, les critères de sélection... Si vous répondez à une question par plusieurs requêtes, indiquez le nom des vues que vous créez. 1. Affichez le catalogue du magasin ; c’est à dire tous les articles (avec libellé et prix) par rayon. Présentez l’affichage par rayon et par prix décroissant. 2. Affichez la liste des articles de la liste de mariage de Melle Jeanne Lelong qui appartiennent au rayon HiFi et ceux dont le prix est inférieur à 100 euros. 3. Pour le mariage de Melle Jeanne Lelong, affichez les invités ayant participé à plus de 50% à l’achat de cadeaux. 4. Affichez les invités ayant participé à plusieurs (plus qu’un) cadeaux. 5. Affichez le montant dépensé par chaque invité. On souhaite le montant total de ces achats, pas le montant de chaque participation ; mais, bien sûr, vous pouvez commencer par afficher le montant de chaque participation. 6. Affichez les noms du couple du premier mariage qui a fait appel aux services du magasin. 1 Modèle logique des données Le nom de l’entité est en majuscules, l’identifiant est souligné, les références sont en italiques. Mais vérifiez si les noms sont en majuscules ou en minuscules. Rayons NoRayon LibelleRayon Articles NoArticle LibelleArticle Prix RefRayon RefRayon = NoRayon RefArticle = NoArticle RefArticle = NoArticle Cadeaux RefArticle RefInvite Pourcentage ListesMariage RefArticle RefMariage RefInvite = NoInvite RefMariage = NoMariage Invites NoInvite NomInvite AdresseInvite RefMariage 2 RefMariage = NoMariage Mariages NoMariage NomEpouse NomEpoux DateMariage Cabinet médical Un cabinet médical désire mémoriser les prescriptions faites lors des consultations. Le cabinet médical regroupe plusieurs médecins. Pour chaque médecin, on mémorise juste le nom. Pour les patients, on mémorise le nom, le sexe et la date de naissance du patient. Une consultation concerne un médecin et un patient. Une consultation a lieu à un jour et à un horaire donnés. Le médecin inscrit une brève description des symptômes ; pour simplifier, on supposera que la description se fait dans un court texte de moins de 200 caractères. Lors de la consultation, le médecin va certainement prescrire des médicaments. Il établit une ordonnance précisant le nombre de boites nécessaires au traitement. Pour les médicaments, on mémorise le libellé et le prix du médicament. Enfin, on mémorise aussi le montant de la consultation et une propriété indique si la consultation a été payée. 1. Dessinez le MCD pour le cabinet médical 2. Réalisez-le avec le logiciel AnalyseSI. Dessinez le MLD et recopiez le script SQL obtenu. 3. Indiquez quelles modifications il faut apporter au script avant de l’exécuter dans le logiciel OpenOffice. December 4, 2006 à 12h24 2/4 December 4, 2006 à 12h24 Correction des requêtes 1. TABLES OUVERTES JOINTURES CHAMPS AFFICHÉS TRIÉ PAR Rayons, Articles Rayons.NoRayon = Articles.RefRayon Rayons.LibelleRayon Articles.LibelleArticle Articles.Prix Rayons.LibelleRayon Articles.Prix (décroissant) 2. TABLES OUVERTES JOINTURES CHAMPS AFFICHÉS CRITÈRES ou Mariages, ListesMariage, Articles, Rayons Mariages.NoMariage = ListesMariage.RefMariage ListesMariage.RefArticle = Articles.NoArticle Rayons.NoRayon = Articles.RefRayon Articles.LibelleArticle Mariages.NomEpouse = ’Jeanne Lelong’ et Rayons.LibelleRayon = ’HiFi’ Mariages.NomEpouse = ’Jeanne Lelong’ et Articles.Prix < ’100’ 3. TABLES OUVERTES JOINTURES CHAMPS AFFICHÉS CRITÈRES et Mariages, Invités, Cadeaux Mariages.NoMariage = Invités.RefMariage Invités.NoInvité = Cadeaux.RefInvité Invités.NomInvité Mariages.NomEpouse = ’Jeanne Lelong’ Cadeaux.Pourcentage > 50 4. TABLES OUVERTES JOINTURES CHAMPS AFFICHÉS REGROUPÉS PAR CRITÈRES Invités, Cadeaux Invités.NoInvité = Cadeaux.RefInvité Invités.NomInvité compte de Cadeaux.RefArticle Invités.NoInvité Invités.NomInvité compte de Cadeaux.RefArticle > 1 5. TABLES OUVERTES JOINTURES CHAMPS AFFICHÉS REGROUPÉS PAR Invités, Cadeaux, Articles Invités.NoInvité = Cadeaux.RefInvité Cadeaux.RefArticle = Articles.NoArticle Invités.NomInvité somme de Cadeaux.Pourcentage * Articles.Prix / 100 Invités.NoInvité Invités.NomInvité 6. Il faut deux requêtes : on cherche la plus petite date de mariage, puis on cherche le couple correspondant. TABLES OUVERTES CHAMPS AFFICHÉS Mariages min de Mariages.DateMariage as MinDate Enregistrée en tant que vue DatePremierMariage TABLES OUVERTES JOINTURES CHAMPS AFFICHÉS December 4, 2006 à 12h24 Mariages, DatePremierMariage Mariages.DateMariage = DatePremierMariage.MinDate Mariages.NomEpouse Mariages.NomEpoux 3/4 December 4, 2006 à 12h24 Correction du cabinet médical Le nom de l’entité est en majuscules, l’identifiant est souligné. Médecins NoMédecin NomMédecin 0:n reçoit ◮ 1:1 Consultations NoConsultation Jour Horaire Symptomes Montant Payé 1:1 consulte ◭ 1:n Patients NoPatient NomPatient Sexe DateNaissance 0:n prescription Nombre 0:n Médicaments NoMédicament Libellé Prix Figure 1: le cabinet médical Ce MCD est réalisé sous AnalyseSI. Il fournit le MLD et le script SQL. Une fois le Prix Montant Payé script obtenu, il faudra modifier les types pour être compatible avec OpenOffice. initialement numeric(6) deviendra numeric(6,2) initialement numeric(6) deviendra numeric(6,2) initialement bool deviendra boolean December 4, 2006 à 12h24 4/4 December 4, 2006 à 12h24