CAS THALI ÉLÉMENTS DE CORRIGÉ



Documents pareils
Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

SQL Historique

E4R : ÉTUDE DE CAS. Durée : 5 heures Coefficient : 5 CAS TRACE ÉLÉMENTS DE CORRECTION

CREATION WEB DYNAMIQUE

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

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

ÉTUDE DE CAS. Durée : 5 heures Coefficient : 5 CAS FEFORT ÉLÉMENTS DE CORRECTION

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Le langage SQL Rappels

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

1 Introduction et installation

Avertissement : ceci est un corrigé indicatif qui n engage que son auteur

Bases de Données relationnelles et leurs systèmes de Gestion

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Aménagements technologiques

Module BD et sites WEB

Définition des Webservices Ordre de paiement par . Version 1.0

1 Position du problème

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Cours Bases de données 2ème année IUT

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Bases de données relationnelles

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Devenez un véritable développeur web en 3 mois!

Langage SQL : créer et interroger une base

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Guide d implémentation. Réussir l intégration de Systempay

PHP 4 PARTIE : BASE DE DONNEES

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

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Gestion de stock pour un magasin

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Plateforme PAYZEN. Définition de Web-services

Bases de données élémentaires Maude Manouvrier

PHP 5. La base de données MySql. A. Belaïd 1

SESSION 2014 ÉPREUVE À OPTION. (durée : 4 heures coefficient : 6 note éliminatoire 4 sur 20)

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

et développement d applications informatiques

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

UE 8 Systèmes d information de gestion Le programme

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

TP Contraintes - Triggers

Présentation Windows Azure Hadoop Big Data - BI

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

Les bases de données

GUIDE DE PAIEMENT. Pour Bien Effectuer votre Paiement, veuillez suivre les instructions suivantes :

Bases de données cours 1

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

16H Cours / 18H TD / 20H TP

L3 informatique Réseaux : Configuration d une interface réseau

Attaques applicatives

Formation : WEbMaster

Solution Pro pour l Envoi de SMS direct opérateurs PUSH SMV MODE HTTP. Documentation Technique

1. Installation standard sur un serveur dédié

Mysql avec EasyPhp. 1 er mars 2006

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Fiche diagnostic du besoin

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

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

Application web de gestion de comptes en banques

Hébergement de sites Web

Historisation des données

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

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

Stockage du fichier dans une table mysql:

Webasto Logiciel de garantie en ligne. Document d aide utilisateur

Version 7.1. Pour Windows 2008, 2003, 2000, Vista, SEVEN, XP, Windows Mobile 5.x, 6.x / 2003, CE GUIDE TECHNIQUE

«Un tableau de bord médical en temps- réel à moindre coût»

Paiement sécurisé sur Internet

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

Le Langage SQL version Oracle

Accès réseau Banque-Carrefour par l Internet Version /06/2005

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

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Plateforme Systempay. Correspondance entre SP PLUS et SYSTEMPAY Paiement Simple et en plusieurs fois

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

I. MySQL : Serveur et SGBD

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

Compte Rendu d intégration d application

Hébergement de site web Damien Nouvel

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

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

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

MODE OPERATOIRE OPENOFFICE BASE

Cours Bases de données 2ème année IUT

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

INFORMATIONS DECISIONS ACTIONS. Entreprises Informations Décisions Actions État des ventes Prévisions Comportement consommateur. Augmenter 20 % le CA

Transcription:

BTS INFORMATIQUE DE GESTION ISE4D SESSION 2008 E4D : ÉTUDE DE CAS CAS THALI ÉLÉMENTS DE CORRIGÉ Option Développeur d applications Page : 1 / 10

Dossier 1 Les services proposés par le centre de thalassothérapie 1.1 À partir des informations fournies dans ce dossier et de l annexe 1, construire le schéma entitéassociation étendu relatif aux services proposés par le centre de thalassothérapie et leur tarification. Proposition de corrigé PRESTATION nom vertus COMPORTER nombre 0,n SOIN description durée La propriété description n est pas explicitement demandée XT CURE visitemédicale remboursementpossible WEEK-END TARIFER-PRESTATION prix AVOIR EVALUER 0,n SAISON-ANNEE 1,1 (R) OBJECTIF CRITERE numéro (R) 1,1 0,n DATE date AVOIR-PERIODE date APPARTENIR ANNEE année TARIFER-HEBERGEMENT prix SITUATION nom TYPE-CHAMBRE Remarques : L entité spécialisée WEEK-END n est pas indispensable. L entité SAISON-ANNÉE peut être appelée SAISON et être identifiée par son. Les périodes constitutives d une saison peuvent être représentées de la façon suivante : SAISON Découper 1,1 PERIODE datedebut date (R) Option Développeur d applications Page : 2 / 10

1.2 Proposer un schéma relationnel issu du sous-schéma relatif aux soins. ETAPE (Soin, numéro, description, durée) Soin, numéro : clé primaire Soin : clé étrangère en référence à de SOIN Plusieurs solutions sont possibles pour la représentation de l héritage au niveau du schéma relationnel : 1) Créer deux relations correspondant à l entité mère et l entité fille. SOIN (, ) : clé primaire SOIN_COLLECTIF (SoinCollectif, effectifmaxi) SoinCollectif : clé primaire SoinCollectif : clé étrangère en référence à de SOIN Cette solution est acceptable car elle traduit fidèlement le schéma conceptuel mais on peut critiquer son opérationnalité : exploiter les deux relations va entraîner des traitements de jointure, un coût qui eput paraître élevé au regard de ce qu apporte la relation SOIN_COLLECTIF qui possède un seul attribut spécifique. 2) Créer une seule relation avec un attribut discriminant les types de soin. SOIN (,, typesoin, effectifmaxi) : clé primaire L attribut typesoin permet de discriminer les prestations de soins collectifs des autres. On peut également opter pour un booléen Collectif. Dans les deux cas, la valorisation ou le renseignement de l attribut effectifmaxi sont conditionnés par la valorisation de l attribut précédent (contraintes d intégrité). On peut enfin utiliser l attribut effectifmaxi comme attribut discriminant en le valorisant à 1 pour les soins individuels. Ce genre de considération aurait pu être pris en compte dès le niveau conceptuel. Dossier 2 La mise à disposition de la documentation 2.1 Indiquer les précautions à prendre pour protéger au mieux le réseau local (en précisant clairement la localisation du serveur web et du serveur de bases de données dans la nouvelle architecture) et illustrer le propos à l aide d un schéma. Pour protéger au maximum le réseau local, la a solution pour protéger au maximum le réseau local est la mise en place d une DMZ et la localisation du serveur web en DMZ ; ainsi l accès au réseau local est interdit depuis l extérieur. La base de données utilisée pour les applications internet pourra être hébergée sur le serveur de données existant qui doit bien sûr être situé dans le réseau local de THALI. Option Développeur d applications Page : 3 / 10

Autre architecture possible : mettre le pare-feu juste derrière le modem-routeur ADSL. 2.2 À l aide des fonctions de script fournies en annexe 2C et en utilisant la classe GenPDF décrite en annexe 2D, écrire le script gendoc.php permettant la génération et l affichage d'un document au format PDF personnalisé. Le du script pourra être écrit en pseudo-langage ou en PHP, au choix du candidat. Corrigé du script en pseudo-langage : doc : Objet de type GenPDF datj : Date txt : Chaîne i : Entier tabchoixdoc[0 : 9] : tableau de Chaîne doc.init() datj datejour() doc.ajouttexte( Documentation éditée le : +datj) doc.sautligne(1) tabchoixdoc extparamverstab() // Ajout des documents, le dernier est ajouté à part Pour i de 0 à (compte(tabchoixdoc) 2) txt gentxt(tabchoixdoc[i]) doc.ajouttexte(txt) doc.sautpage() Fpour // Génération du dernier document sans saut de page après : Non exigé txt gentxt(tabchoixdoc[compte(tabchoixdoc)-1]) doc.ajouttexte(txt) // Affichage du PDF doc.edite() Corrigé du script en PHP : <? require('fonctionsperso.php'); $doc = new GenPDF(); $datj = datejour(); $doc->cell( Documentation éditée le :.$datj) $doc->ln(1); $tab= extparamcheck(); Option Développeur d applications Page : 4 / 10

?> For ($i=0; $i<(count($tab)-1); $i++) { $txt = gentxt($tab[$i]) $doc->cell($txt); $doc->addpage(); } $txt = gentxt($tab[count($tab)-1]) $doc->cell($txt); $doc->output(); Remarque concernant le sujet : erreur à rectifier dans l annexe 2B Annexe 2B Extrait du source du formulaire de la page HTML et exemple d URL transmise <form name="choixdoc" method="get" action="gendoc.php">.. <input type="checkbox" name="choixbe" value="bien_etre.txt">bien-être <input type="checkbox" name="choixre" value="remise_en_forme.txt">remise en forme <input type="checkbox" name="choixsa" value="sante.txt">santé.. <input type="submit" value="envoyer"> </form> Lors de la soumission du formulaire, un script vérifie qu une ou plusieurs cases sont cochées puis l URL est transmise au script gendoc.php. Dans l exemple ci-dessus, l URL transmise lors de la soumission du formulaire sera : http://www.thali.fr/gendoc.php?choixbe=bien_etre.txt&choixsa=sante.txt Dossier 3 Les mini-excursions 3.1 A. Présenter la déclaration de la classe MiniExcursionPayante (la procédure init() paramétrée et les méthodes get() et set() de cette classe sont à déclarer mais leur n est pas à écrire). Classe MiniExcursionPayante hérite de MiniExcursion // Attributs privés tarif : Réel // Constructeur procédure init(pnum : Entier, plib : Chaîne, pnombreplaces : Entier, ptarif : Réel) // Méthodes publiques fonction gettarif() : Réel procédure settarif(ptarif : Réel) Classe MiniExcursionPayante B. Écrire le corps de la méthode estcomplète() de la classe MiniExcursionPlanifiée fonction MiniExcursionPlanifiée : estcomplète() : Booléen Option Développeur d applications Page : 5 / 10

Variables nombreplaces : Entier bool : Booléen nombreplaces laminiexcursion.getnombreplaces() Si nombreinscrits = nombreplaces Alors bool VRAI Sinon bool FAUX Fsi retourner(bool) Remarques : On peut également écrire la fonction en une seule instruction : retourner(nombreinscrits = laminiexcursion.getnombreplaces()) D autres solutions intermédiaires sont envisageables. Option Développeur d applications Page : 6 / 10

C. Écrire le corps de la méthode ajouteetape() de la classe MiniExcursion fonction MiniExcursion : ajouteetape(e unnumetape : Entier, unedescription : Chaîne, uneduréeprévue : Entier) : Booléen Variables bool : Booléen i : Entier uneetape : Etape bool.vrai ; i 1 Tantque (i <= lesetapes.cardinal()) ET (bool) Si lesetapes.extraire(i).getnumetape() = unnumetape Alors bool.faux si TantQue Si bool Alors uneetape.init(unnumetape, unedescription, uneduréeprévue) lesetapes.ajouter(uneetape) FSi retourner(bool)) Pour cette question, on acceptera (avec ou sans usage d une variable bool) : uneetape.init(unnumetape, unedescription, uneduréeprévue) si lesetapes.existe(uneetape) alors retourner FAUX sinon lesetapes.ajouter(uneetape) retourner VRAI FSi Même si cette solution ne répond pas exactement à la demande (le test ne portant pas uniquement sur la présence d un numéro d étape). D. Écrire le corps de la méthode donneduréeprévue() de la classe MiniExcursion. fonction MiniExcursion : donneduréeprévue() : Entier Variables uneetape : Etape duréetot : Entier i : Entier duréetot 0 Pour i 1 à lesetapes.cardinal() uneetape lesetapes.extraire(i) duréetot duréetot + uneetape.getduréeprévue() Pour retourner(duréetot) E. Écrire le corps de la méthode donneduréeprévuehhmm() de la classe MiniExcursion fonction MiniExcursion : donneduréeprévuehhmm() : Chaîne retourner(temps.conversion_hhmm(donneduréeprévue()) Option Développeur d applications Page : 7 / 10

3.2 D après le résultat de cette commande : indiquer la classe d adresses (en précisant la façon de la déterminer) et l adresse de réseau, expliquer le rôle du masque, préciser s il s agit d une adresse publique ou privée. L adresse IP 192.168.1.15 appartient à la classe C. L écriture en base 2 du 1 er octet nous donne la valeur 1100 0000. On constate que les 3 premiers bits sont 110 ce qui caractérise une adresse de classe C. Le masque de réseau permet de savoir si une machine dont on connaît l adresse IP est dans le réseau ou non. Cette adresse est privée car elle appartient à la plage des adresses de classe C utilisables uniquement en interne ; cette plage d adresses (qui va de 192.168.0.0 à 192.168.255.255 pour la classe C) est dite plage d adresses privées. Aucun paquet provenant de ces réseaux ou à destination de ces réseaux, ne sera routé sur internet. Il existe également des plages d adresses privées dans la classe A et dans la classe B. 3.3 Proposer brièvement une solution matérielle permettant de répondre à la demande du centre. La solution proposée devra également préciser l équipement matériel dont devra disposer l ordinateur portable ou l assistant personnel d un curiste. La meilleure solution est d offrir aux clients un accès WiFi à Internet et à l intranet du centre. Au niveau matériel, il faudra doter chacun des trois salons d un ou de deux points d accès WiFi (le nombre de points d accès nécessaires dépend de la géométrie des salons). L ordinateur portable ou l assistant personnel doivent être équipés d'une carte WiFi. Il est possible que la carte soit déjà intégrée. On admettra une proposition de solution basée sur la technologie «courant porteur». Dossier 4 La boutique en ligne 4.1 Écrire en langage SQL les requêtes permettant de : A. Obtenir la liste des produits ( de gamme, produit, désignation, conditionnement, contenance) de la catégorie Visage. Select G., P., désignation, conditionnement, contenance From CATEGORIE C, GAMME G, PRODUIT P Where C. = Visage And C. = G.Catég And G.Catég = P.Catég And G.numéro = P.numéroGamme B. Obtenir les informations de la fiche produit A044 présentée en annexe 4. Select désignation, descriptifcomposition, descriptifproduit, conditionutilisation, PrixEnVigueur( A044, SysDate()) From PRODUIT Where = A044 C. Déterminer le nombre de produits pour chaque gamme de la catégorie Visage (préciser le numéro et le de la gamme). La liste est à présenter par nombres de produits décroissants Select numéro, G., count(*) From CATEGORIE C, GAMME G, PRODUIT P Where C. = Visage And C. = G.Catég And G.Catég = P.Catég And numéro = numérogamme Group by numéro, G. Option Développeur d applications Page : 8 / 10

Order by 3 desc D. Modifier le conditionnement du produit B036 qui est maintenant commercialisé en tube et non plus en pot. Le prix est inchangé. Update PRODUIT Set conditionnement = tube Where = B036 4.2 Expliquer clairement le mécanisme à mettre en place. Le correspondant n est pas à écrire. Il faut écrire un déclencheur (trigger) qui se déclenche sur insertion dans la table PRIXPRODUIT et effectue le travail demandé. Principe de ce trigger (non demandé) : recherche de la dernière ligne (avec select count(*)) de la table PRIXPRODUIT pour le produit en question (donc avec = :new. si Oracle ou jointure avec la table inserted si SQLServer). Si le nombre retourné est différent de 0 et que la date de fin est à NULL alors on effectue un UPDATE pour alimenter la date de fin d application avec SysDate(). 4.3 Sur la base de 30 000 unités annuelles produites et vendues annuellement, déterminer le prix à partir duquel, l entreprise commence à faire du bénéfice. RÉSULTAT DIFFÉRENTIEL 2008 Calcul Montant Taux Chiffre d'affaires 30000x 30000x 1 Charges variables Coût unitaire Fucus 0,07 Soit Eau purifiée 0,03 0,5 *30 000 Concentré aqueux de laminaires 0,1 Soit 15 000 Sel Marin 0,3 Amortissement (30 000/150 000)*50 000 10 000 (15 000+10 000)/ Total charges variables 15 000+10 000 MARGE SUR COÛT 30000x-15000- VARIABLE 30000x-15 000-10000 10000 Charges fixes Charges de personnel (35*150*12)*2 126000 Charges administratives 14 000 Total charges fixes 140 000 Résultat 0 30 000x 15 000 10 000 140 000 = 0 30 000x = 165 000 x = 5,5 30 000x (30 000x-15 000-10 000)/30 000x THALI doit vendre le produit à plus de 5,5 la boîte pour faire du bénéfice compte tenu des charges fixes et variables. Autrement dit le seuil de rentabilité en valeur est de 5,5 l unité vendue. Option Développeur d applications Page : 9 / 10

4.4 Décrire le déroulement de la transaction. Le serveur web du Crédit Mutuel est sécurisé par SSL et possède une URL commençant par https://, où le "s" signifie secured (sécurisé). Le serveur, à réception de la requête, envoie un certificat au client, contenant la clé publique du serveur, signée par une autorité de certification (CA). Le client vérifie la validité du certificat (donc l'authenticité du marchand), puis crée une clé secrète aléatoire (plus exactement un bloc prétendument aléatoire), chiffre cette clé à l'aide de la clé publique du serveur, puis lui envoie le résultat (la clé de session). Le serveur est en mesure de déchiffrer la clé de session avec sa clé privée. Ainsi, les deux entités sont en possession d'une clé commune dont ils ont seuls la connaissance. Le reste des transactions peut se faire à l'aide de la clé de session, garantissant l'intégrité et la confidentialité des données échangées. Option Développeur d applications Page : 10 / 10