Designer et l ingénierie du logiciel Les données calculées par les applications Web PL/SQL



Documents pareils
1.2 Genèse. 1.3 Version de Designer utilisée

APIs de table pour SQL Server

Méthodologies de développement de logiciels de gestion

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

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

INTRODUCTION AU DATA MINING

1 Introduction et installation

DÉPLOIEMENT D UN ERP. Cours dispensé pour les L3 MSI Elaboré par : Mehdi M tir 2013/2014 Chapitre 3 : Modélisation des besoins

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Compétences Business Objects

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Introduction à la B.I. Avec SQL Server 2008

Objectif. Participant. Prérequis. Oracle BI Suite EE 10g R3 - Développer des référentiels. 5 Jours [35 Heures]

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

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

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

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

Chapitre 1 : Introduction aux bases de données

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Modélisation de bases de données : Le modèle relationnel

Concevoir un modèle de données Gestion des clients et des visites

Les bases de données Page 1 / 8

Entrepôt de données 1. Introduction

Conception des bases de données : Modèle Entité-Association

Information utiles. webpage : Google+ : digiusto/

WINDOWS SHAREPOINT SERVICES 2007

Communiqué de lancement Paie 100 pour SQL Server

TP2 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

CONCEPTION ET IMPLANTATION DES SI PROJET : GESTION DU FOYER DE L ENIT

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Sage 100 Etats Comptables & Fiscaux

SAP BusinessObjects Web Intelligence (WebI) BI 4

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Comprendre Merise et la modélisation des données

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

Catalogue Formation «Vanilla»

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

16H Cours / 18H TD / 20H TP

Chap. 2: L approche base de données

Thème : Gestion commerciale

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Bases de données avancées Introduction

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Conception, architecture et urbanisation des systèmes d information

Projet CASI: Master Data Management

1 Présentation de l Apur 2. 2 Contexte général du projet 3. 3 Prestation attendue 4

PROJET DE PORTAIL INTRANET YNNA

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

Introduction : présentation de la Business Intelligence

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

et les Systèmes Multidimensionnels

Bases de données Outils de gestion

SUPPORT DE COURS ACCESS 2010

Compte Rendu d intégration d application

Conception d une base de données

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

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Fiche de projet pour les institutions publiques

HelpDesk. Sept avantages de HelpDesk

Dossier I Découverte de Base d Open Office

Bases de Données. Plan

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

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

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

UE 8 Systèmes d information de gestion Le programme

BUSINESS INTELLIGENCE

Service Systèmes et Réseaux

Cher utilisateur, Nous vous souhaitons une excellente utilisation d INES.FreeEdition. L équipe INES info@ines.eu

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

LA GESTION DE PROJET INFORMATIQUE

Méthodologie de conceptualisation BI

LA GESTION DE PROJET INFORMATIQUE

Business Intelligence simple et efficace avec Excel et PowerPivot

ETAFI Millésime 2010 (v.22.2 Oct./2010) Service d'assistance Téléphonique : ou

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

En date du 11 décembre 2008

EXAMEN CRITIQUE D UN DOSSIER TECHNIQUE

Université de Picardie - Jules Verne UFR d'economie et de Gestion

Technologies de l information Techniques de sécurité Systèmes de management de la sécurité de l information Vue d ensemble et vocabulaire

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

Nom de l application

1220 Promenade du St-Laurent, Batiscan, QC, G0X1A0 Tél:

Bases de données réparties: Fragmentation et allocation

CHAPITRE 1. Introduction aux bases de données

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

SWISS ORACLE US ER GRO UP. Newsletter 5/2014 Sonderausgabe. OBIF DB licensing with VMware Delphix 12c: SQL Plan / Security Features

Master Exploration Informatique des données Data Mining & Business Intelligence. Evelyne CHARIFOU Priscillia CASSANDRA

Modélisation des données

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Catalogue Formations Jalios

Entrepôts de données. NEGRE Elsa Université Paris-Dauphine

Cours Bases de données

Troisième concours d ingénieur des systèmes d information et de communication. «Session 2010»

TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

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

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

vcube Solutions BI INTELLIGENT AVEC MICROSOFT EXCEL

Transcription:

Designer et l ingénierie du logiciel Les données calculées par les applications Web PL/SQL P.-A. Sunier, ISNet Neuchâtel avec le concours de C. Kohler et P. Ferrara 1 Introduction... 1 2 Besoin de données calculées... 2 3 Champs calculés... 4 3.1 Spécification... 4 3.2 Modalités de calcul... 4 3.2.1 Calcul par dérivation... 5 3.2.2 Calcul par une fonction PL/SQL... 5 3.2.3 Formulaire... 6 4 Table d agrégat... 7 5 Conclusions... 8 6 Liens utiles... 8 1 Introduction Dans le premier article consacré à Designer, Newsletter 2/2003 d avril 2003, sous le titre Notions élémentaires, nous avons présenté les concepts de Designer sur la base d une approche d ingénierie du logiciel alliant méthodologie, normalisation et standardisation, qualité et réutilisation. Nous avons décrit succinctement les modules de traitement et le générateur d application Web PL/SQL. Dans le deuxième article, Newsletter 3/2003 d août 2003, sous le titre Couplage entre structure de données et modules de traitement, nous avons présenté les structures essentielles de manipulation de données de base. Dans cet article, nous expliquerons comment fournir à l utilisateur des données issues non plus des tables manipulées par les modules mais résultant de traitements plus ou moins sophistiqués. Ces données, que nous appelons «calculées», peuvent être produites de deux manières distinctes : par les modules de traitement eux-mêmes ou par le serveur de données via la APIS de tables. Nous présenterons ci-après les mécanismes d alimentation de données calculées par les modules de traitement; dans un prochain article, nous décrirons les mécanismes d alimentation de données calculées fournis par les APIs de tables. Article 5-1/8 - Mai 2004

2 Besoin de données calculées Dans le deuxième article, Couplage entre structure de données et modules de traitement, nous avions présenté le modèle conceptuel de données reproduit en figure 1. Figure 1 - MCD des commandes Après transformation de ce modèle conceptuel de données en un modèle logique de données, Server Model, nous avons créé le module de traitement des commandes reproduit en figure 2. Figure 2 - Module des commandes Article 5-2/8 - Mai 2004

Après la génération par Web PL/SQL de ce module, l utilisateur dispose d un formulaire (figure 3) qui lui permet de traiter une commande. Figure 3 - Formulaire des commandes Ce formulaire fournit à l utilisateur les données de base d une commande ; mais, en plus de ces données de base, il serait judicieux de fournir à l utilisateur des informations plus pertinentes telles que le montant d une ligne de commande et le montant total d une commande. Ces deux informations seront fournies à l utilisateur sous forme de données calculées ; et, comme nous l avons indiqué en introduction, nous effectuerons ce calcul au niveau du module de traitement à l aide de champs calculés. Article 5-3/8 - Mai 2004

3 Champs calculés 3.1 Spécification La figure 4 représente un module de traitement des commandes comprenant deux camps calculés : MONTANTCDE et MONTANTLIGNE. Un champ calculé est rattaché à un composant de module sans être associé à une colonne de table. MONTANTCDE est associé au composant maître et devra afficher le montant total de la commande. MONTANTLIGNE est associé au composant de détail et devra afficher le montant d une ligne de commande. Figure 4 - Module des commandes avec champs calculés 3.2 Modalités de calcul Designer offre plusieurs méthodes d alimentation d un champ calculé. La figure 5 illustre le paramétrage de la méthode d alimentation du champ calculé MONTANTCDE ; ce champ est alimenté par une fonction PL/SQL exécutée sur le serveur de base de données. Nous verrons, par la suite, l alimentation du montant de ligne, MONTANTLIGNE, par une expression SQL et le calcul du montant de commande par une fonction d agrégat comme alternative à la fonction PL/SQL. Figure 5 - Type de calcul de champ Article 5-4/8 - Mai 2004

3.2.1 Calcul par dérivation Le champ calculé, MONTANTLIGNE, est alimenté par la simple multiplication du prix du produit et de la quantité commandée ; cette règle de calcul se spécifie par l intermédiaire d une expression SQL. Figure 6 - Expression SQL Le générateur Web PL/SQL affecte cette expression SQL au champ calculé MONTANTLIGNE lorsqu il crée la commande SQL de sélection des lignes de commandes. Figure 7 - Code SQL avec expression 3.2.2 Calcul par une fonction PL/SQL Le champ calculé, MONTANTCDE, doit être alimenté à partir de données qui ne se trouvent pas dans les tables du composant ; dès lors, une simple expression SQL comme précédemment ne peut suffire. Une première alternative consiste à utiliser une fonction PL/SQL pour alimenter le champ calculé. Cette fonction PL/SQL doit recevoir en paramètre la clé primaire de la commande ; de son côté, la fonction doit rendre comme résultat, la somme du montant de chacune des lignes de la commande. Figure 8 - Appel de fonction PL/SQL Le générateur Web PL/SQL affecte cette fonction PL/SQL au champ calculé MONTANTCDE lorsqu il crée la commande SQL de sélection des commandes. Article 5-5/8 - Mai 2004

Figure 9 - Code SQL avec fonction PL/SQL 3.2.3 Formulaire Nos deux champs calculés sont affichés en lecture dans le formulaire généré par Web PL/SQL. En finalité, l utilisateur dispose d informations beaucoup plus riches et pertinentes que la simple juxtaposition de données contenues dans les tables des divers composants. Figure 10 - Formulaire des commandes avec données de montants calculées Article 5-6/8 - Mai 2004

4 Table d agrégat Nous avons vu dans les deux premiers articles, que Designer permet de spécifier l utilisation de tables de base et de tables de références dans un composant ; pour les besoins de fonctions d agrégation, Designer offre la possibilité de définir des tables d agrégat. Tout comme pour les liens de maître/détails et de table de référence, les liens d agrégats sont proposés automatiquement à partir de la structure de données logique, Server Model, existante. Figure 11 - Utilisation de table d'agrégat La table LIGNESCOMMANDES étant intégrée à notre composant en tant que table d agrégat et la table PRODUITS en tant que table de référence de LIGNESCOMMANDES, il nous est possible de spécifier une simple expression d agrégation pour l alimentation du champ calculé MONTANTCDE. Figure 12 - Expression SQL avec fonction d'agrégat Le générateur Web PL/SQL affecte cette expression SQL au champ calculé MONTANTCDE lorsqu il crée la commande SQL de sélection des commandes ; mais par rapport à la situation précédente, il ajoute les tables LIGNESCOMMANDES et PRODUITS dans la jointure et la clause d agrégation GROUP BY. Figure 13 - Code SQL avec fonction d'agrégation Article 5-7/8 - Mai 2004

5 Conclusions Les modules de traitement nous permettent de fournir à l utilisateur des informations sous forme de données calculées à partir du contenu des tables du modèle logique, Server Model. Nous disposons de plusieurs mécanismes de calcul: des expressions SQL, l appel de fonctions PL/SQL, l intégration dans nos composants de tables d agrégation et d autres mécanismes que nous n avons pas présentés dans cet article. Nous avons aussi vu que l alimentation de champs calculés peut être spécifiée de différentes manières ; par exemple, le montant total d une commande peut être calculé par l appel d une fonction PL/SQL mais aussi par une utilisation de table d agrégat. Entre plusieurs possibilités de calcul, nous préconisons toujours d utiliser les mécanismes qui apportent un maximum d automatisme et qui, en contre-partie, minimiseront les travaux de maintenance et les risques de régression lors d évolution des applications. Pour notre exemple de calcul du montant total de commande, il est évident que nous implanterions l utilisation de la table d agrégat; l utilisation d une fonction PL/SQL est recommandée seulement dans les cas où un traitement particulier doit être mis en place. Comme nous l indiquions en introduction, ces données calculées peuvent aussi être alimentées au niveau du serveur par les APIs de tables ; dans ce cas, le modèle logique de données contiendra des colonnes qui serviront à stocker les données calculées. Ces colonnes introduisent une redondance dans la base de données puisque leur contenu peut toujours être déterminé à partir des données de base. Dans nos prochains articles, nous présenterons l alimentation de données calculées par les APIs de tables et compareront cette stratégie à celle que nous venons de présenter. Toutefois, avant de terminer cet article, il nous semble utile d établir un bilan des avantages et inconvénients essentiels de la stratégie d alimentation des données calculées par les modules applicatifs. Alimentation de données calculées par les applications Avantages Les informations sont toujours actualisées car elles sont calculées à la volée. Pas de redondance de données dans la base de données. Inconvénients /Risques Les informations doivent toujours être recalculées ce qui peut être pénalisant pour un système à forte charge transactionnelle. Chaque module applicatif doit mettre en œuvre les mécanismes de calcul, donc, un redondance de travail et un risque de fournir des informations divergentes entre les modules. 6 Liens utiles L auteur : Pierre-André Sunier pierre-andre.sunier@hegne.ch Site de l atelier de génie logiciel de la HEG-NE http://doc.esnig.ch/ Rubrique : Génie logiciel Sous-site de formation à Designer Rubrique : Génie logiciel / Designer 6i/9i - Les bases Sous-site des anciens articles Rubrique : Génie logiciel / Publication Liste des publications / SOUG Les cahiers «03 Approfondissement des associations» et «03b Particularité de modélisation des modules», de notre sous-site de formation Designer 6i/9i - Les bases, traitent avec plus de détails pratiques les notions présentées dans cet article. Article 5-8/8 - Mai 2004