Mémoire de Fin d Etudes

Dimension: px
Commencer à balayer dès la page:

Download "Mémoire de Fin d Etudes"

Transcription

1 Mémoire de Fin d Etudes Pour l Obtention du Diplôme de Magister en Informatique Présenté par : KAHLOULA BOUBAKER Option : Informatique & Automatique THEME Chargement de données XML dans un Data Warehouse : Approches pour l'automatisation du Schema Matching Jury Pr BELDJILALI Bouziane Président Université d Oran Dr BOUAMRANE Karim Encadreur Université d Oran Dr NAIT BAHLOUL Safia Examinatrice Université d Oran Dr ATMANI Baghdad Examinateur Université d Oran Année universitaire 2009/2010

2

3 A Meriem, à mes enfants et à toute ma famille pour tout ce qu ils me donnent A Mourad pour m avoir encouragé à entreprendre ce travail et soutenu en bien d autres circonstances Aux Prof. Norbert Krier, Prof. Hans Scholz, Prof. Axel Schmidt et à tous mes autres professeurs retraités de la Hochschule Darmstadt pour l enseignement qu ils m ont prodigué A mes collègues de Sonatrach Aval et à ceux de la Dresdner Bank Frankfurt pour la confiance qu ils m ont toujours accordée

4 Je veux en cette place dire toute ma gratitude au Docteur Bouamrane Karim, qui a accepté sans hésitation de m encadrer dans ce travail, et le remercier vivement pour la disponibilité et la patience dont il a fait preuve en m accompagnant tout le long de cette tâche. Ma reconnaissance va aussi aux très honorables membres du jury, qui ont bien voulu juger ce travail : au Professeur Beldjilali Bouziane, président, ainsi qu aux Docteurs Nait Bahloul Safia et Atmani Baghdad, examinateurs.

5 «Chacun se trompe ici-bas : On voit courir après l'ombre Tant de fous qu'on ne sait pas, La plupart du temps, le nombre.» Jean de La Fontaine, extrait des Fables

6 Résumé Les systèmes d'information sont souvent caractérisés par une hétérogénéité et une distribution qui prennent de plus en plus d ampleur au fil du temps. Des données sont exportées et importées en permanence d un système vers l autre pour leur permettre de communiquer entre eux. Les données proviennent fréquemment aussi du monde extérieur. Les données sont très souvent contenues dans un fichier XML et le système cible est en général une base de données relationnelle, ou plus particulièrement un Data warehouse. Les données existantes dans les fichiers XML sous un nom et un format donnés doivent être quelquefois renommées ou reformatées pour pouvoir être stockées puis exploitées à un niveau local. Ce travail fastidieux de Matching se fait encore couramment de façon manuelle. Il s agit, dans le cadre de ce mémoire de Magister, d une part, de la conception et du développement d un système global de chargement de données XML dans un Data warehouse, d autre part de donner un aperçu des techniques et prototypes qui ont été proposés jusqu ici pour l automatisation du Schema Matching et en relever les spécificités. La conception du système - auquel nous avons donné le nom de OpenX2DW - de chargement de données XML dans la base de données cible, tient compte par ailleurs de cette automatisation. Abstract Information systems are often characterized by heterogeneity and distribution witch are becoming increasingly widespread over time. Data are exported and imported continuously from one system to another to enable them to communicate. The data come also frequently from outside the enterprise. The data are often contained in an XML file and the target system is typically a relational database, or more particularly a data warehouse. Existing data in XML files with a given name and format should be reformatted or sometimes renamed to be stored and operated on a local level. The tedious work of Matching is still commonly manually. It is, in the context of this Magister thesis, first, design an develop a global system to load XML data into a data warehouse, the other to give an overview of techniques and prototypes have been proposed so far for the automation of Schema Matching and identify their features. The design of the system - which we gave the name of OpenX2DW - to load XML data into the target database, also considers this automation. 6

7 TABLE DES MATIERES TABLE DES GRAPHIQUES...9 LEXIQUE DES TERMES LINGUISTIQUES ET ISSUS DE LA THEORIE DES GRAPHES UTILISES DANS CE MEMOIRE...10 INTRODUCTION GENERALE DESCRIPTION DU SYSTEME Architecture globale Les composants du système Le Trigger Le Matcher Le Loader Le Archiver La Rules engine Environnement de développement et de test Conclusion LE SYSTEME DANS UN PROCEDE ETL ET DANS UN «ENVIRONNEMENT DISTRIBUE» Data warehouse, définition et concepts OpenX2DW dans un procédé ETL OpenX2DW dans un «environnement distribué» Conclusion SCHEMA MATCHING «Matching» et «Mapping», définition Domaines d application du Matching Traitement manuel du Matching Difficultés rencontrées lors d un Matching manuel Dimension des schémas Complexité des schémas Problèmes linguistiques Cardinalité Redondance Absence d information

8 3.5 Matching automatique Les différentes sources d information Représentation interne Mode de fonctionnement d un opérateur de Matching Les différents types de Matcher Prototypes existants Conclusion CONCLUSION GENERALE ET PERSPECTIVES...69 BIBLIOGRAPHIE...71 ANNEXE 1 : SCRIPTS POUR LA GENERATION DE LA TABLE «RULES»...74 ANNEXE 2 : EXEMPLE DE SCRIPT POUR L INSERTION DE RULES...75 ANNEXE 3: EXEMPLE DE FICHIER MAPPING...76 ANNEXE 4: EXEMPLE DE TRIGGER...77 ANNEXE 5 : PROGRAMMES SOURCES

9 TABLE DES GRAPHIQUES FIG. 1 : ARCHITECTURE GLOBALE...17 FIG. 2 : LES TROIS COUCHES DU SYSTEME...22 FIG. 3 : EXEMPLE DE STRUCTURE HIERARCHIQUE CONSTRUITE PAR UN PARSEUR DOM...27 FIG. 4 : OPENX2DW DANS UN PROCESSUS ETL...48 FIG. 5 : OPENX2DW DANS UN «ENVIRONNEMENT DISTRIBUE»...50 FIG. 6 : EXEMPLE DE MATCHING...53 FIG. 7 : XMLSPY DE LA SOCIETE ALTOVA...54 FIG. 8 : CLASSIFICATION DES APPROCHES POUR UN SCHEMA MATCHING 59 FIG. 9 : DIFFERENTS ASPECTS D UN MATCHER...59 FIG. 10 : DEUX SCHEMAS XML «COMMANDE»

10 LEXIQUE DES TERMES LINGUISTIQUES ET ISSUS DE LA THEORIE DES GRAPHES UTILISES DANS CE MEMOIRE 1.Termes linguistiques Abréviation Raccourcissement d'un mot, représenté par une lettre ou un groupe de lettres issues de ce mot. Acronyme Abréviation d un groupe de mots, formée par les premières lettres de ces, se prononçant comme un mot normal. Homonyme Mot qui a la même forme orale ou écrite qu un autre mot, mais un sens différent. Il en est l homonyme. Hyperonyme Mot, dans le sens est superordonné par rapport à un second. Le premier est l hyperonyme du second. Synonyme Mot qui a une signification très semblable à un autre mot. Il en est le synonyme. 2. Termes issus de la théorie des graphes Arbre Structure de données représentant un arbre au sens mathématique. Cas particulier de graphe qui n'a qu'une seule source et aucun cycle. Arête Les nœuds (les pères avec leurs fils) sont reliés entre eux par une arête. Feuille Elément ne possédant pas de fils dans l'arbre. Nœud Un nœud est, suivant le contexte, interne ou externe. 10

11 Nœud externe Synonyme de feuille. Nœud interne Elément possédant des fils (sous-branches). Racine L'unique nœud ne possédant pas de parent. 11

12 Introduction Générale Les systèmes d information au sein des grandes entreprises sont caractérisés par une hétérogénéité, une distribution et une ouverture sur le monde extérieur, qui prennent au fil du temps de plus en plus d ampleur. D innombrables imports et exports ont lieu quotidiennement, ceux-ci étant sensés permettre aux différents systèmes implantés de communiquer entre eux. Les fichiers dits «plats», utilisés dans le passé pour ce genre d échange, ont cédé la place au format XML (Extensible Markup Language). La base de données cible est très souvent une base de données relationnelle. Des statistiques récentes estiment qu un tiers du budget, dans des projets informatiques nouveaux, est utilisé pour l intégration d applications. Jusqu à 60% du budget consacré à l informatique dans des petites et moyennes entreprises industrielles, va à la maintenance des interfaces entre les différents systèmes [ERPM] et [CSPC]. Le système, auquel nous avons donné le nom de «OpenX2DW», conçu et développé dans le cadre de ce Magister en Informatique, sert d interface entre des systèmes échangeant des données. Des données d entrée, contenues dans un fichier XML sont chargées, grâce à ce système, dans une base de données relationnelle. Les avantages de ce système sont : Les données d entrée sont contenues dans un fichier XML, XML étant la base d échanges des services web. Il suffit que le fichier XML soit simplement «well-formed». Il n est pas nécessaire qu il soit accompagné d un DTD (Document Type Definition) ou d un XSD (XML Schema Definition). La base de données cible est une base de données relationnelle. Les bases de données relationnelles sont les plus répandues. Il existe bien des bases de données XML natives, mais elles ne sont pas aussi performantes que les bases de données relationnelles quand il s agit d une grande quantité de données à charger. L expérience n est pas non plus très grande en ce qui concerne les bases de données XML natives, qui ne sont pas aussi «mures» que les bases de données relationnelles [WIKI]. Il s agit d un outil ETL (Extract, Transform, Load). Il dispose aussi bien d une composante «Extraction», que des composantes «Transformation» et «Chargement». 12

13 Utilisation de commandes SQL (Structured Query Language) pour les opérations de transformation et chargement. Le système permet à l utilisateur de réaliser simplement une interface entre deux systèmes en utilisant des commandes SQL de divers degrés de complexité et de pouvoir à travers des actions déterminées (commit, rollback, utilisation d une règle alternative) de parer à l éventualité de la non-exécution pour des raisons d intégrité, d une de ces commandes Matching automatique : La structure des données XML d entrée, qui proviennent souvent du monde extérieur, ne correspond pas toujours à la structure de la table transitoire. Le Matching, qui se fait ici manuellement, peut être fastidieux. Nous avons donc réservé la place dans l architecture globale du système à un Matcher automatique basé sur un algorithme qui fera l objet de recherches futures. Nous avons recensé dans ce mémoire les approches existantes pour un Schema Matching automatique ou semi-automatique et présenté les prototypes de Schema Matching les plus connus. La portabilité du système sur une autre plateforme (Système d exploitation et base de données) est assurée du fait que les programmes aient été écrits en Java et que la construction des requêtes SQL à l intérieur des programmes («hardcoded») pour la lecture et l exécution des Rules réponde au SQL Standard (SQL 92) [Date99]. OpenX2DW peut donc être implanté sur toute machine et il est compatible avec tout RDBMS, JDBC étant utilisé comme composant assurant la communication entre le système et le SGBD (Middelware). Notre but a donc été de développer un système de chargement de données XML dans un Data Warehouse, dont la portabilité est assurée et qui, par rapport aux outils existant : Intègre une «Rules engine» permettant d utiliser le langage SQL dans les opérations de chargement et de transformation prévoit un module de Matching dynamique Ceci a été motivé par le fait que : Les systèmes de chargement de données XML de fournisseurs indépendants ou open source tels que le Hibernate [HIBE], ne permettent pas l utilisation du langage SQL. Parmi les inconvénients de Hibernate, cités par par Phutela dans «Hibernate vs JDBC» [PHUT], nous relèverons : 13

14 «Use of Hibernate is an overhead for the applications which are: - simple and use one database that never change - need to put data to database tables, no further SQL queries - there are no objects which are mapped to two different tables - Hibernate increases extra layers and complexity. So for these types of applications JDBC is the best choice.» OpenX2DW utilise Hibernate et compense les inconvénients énumérés ci-dessus. Les systèmes opérationnels connus, propriétaires ou open source, ne prévoient pas de Matching automatique, cet aspect, encore à l état de la recherche, n étant encore que partiellement traitée par des prototypes tels que ceux présentés dans le troisième chapitre de ce mémoire. Les outils ETL existant sur le marché, proposés par des fournisseurs tels que Oracle (Oracle Warehouse Builder OWB [Dijc04]), vont de pair avec le SGBD proposé par le même fournisseur. De cette manière, la dépendance de l utilisateur vis-à-vis du fournisseur est renforcée. N.B.: Les citations à partir de la littérature allemande qu on trouvera dans ce mémoire ont été traduites au Français, celles en Anglais ont été reproduites en l état. 14

15 1 Description du système 1.1 Architecture globale L architecture globale du système est donnée dans la fig. 1. Les modules qui le constituent sont : Le Matcher, dont la fonction est de créer un fichier Mapping. Le Loader, dont la tâche est de charger le fichier XML dans une table transitoire. Pour ce, le Loader utilise les librairies du Framework Hibernate [HIBE]. Le Loader se basera sur le fichier Mapping, précédemment créé par le Matcher, pour charger les données XML dans les colonnes correspondantes de la table transitoire. L Archiver, dont le rôle est d archiver un fichier déjà traité par le Loader La «Rules engine», qui, sur la base de règles bien précises («Rules»), données sous forme de commandes SQL, insère les données contenues dans la table transitoire dans la base de données cible. Des données contenues dans un fichier au format XML, provenant d un serveur tiers ou du monde extérieur, par exemple dans le cadre d un service web, est mis à la disposition d un client. Le fichier XML est simplement «well formed» (les tags ouverts sont refermés); il n est pas nécessaire qu il soit accompagné d une description DTD ou XSD. Le fichier apparaîtra sur un serveur, dans un répertoire prévu à cet effet. Un «job» (Trigger), qui détectera l arrivée d un fichier sur le répertoire d accueil, que nous appellerons «Scan directory», est exécuté en permanence, avec une fréquence déterminée, sur ce serveur. Le traitement est lancé aussitôt que la présence d un fichier est détectée dans la Scan directory. Dans le cas où le fichier de données est un fichier comprimé, il devra d abord être décomprimé. Cette action peut être confiée à un programme de compression/décompression standard (zip, flam, winrar, etc.). Une conversion doit aussi avoir lieu si les normes utilisées par l expéditeur et le destinataire sont différentes (EBCDIC, ASCII). Le fichier XML est tout d abord chargé par un premier programme, appelé ici «Loader», dans une table dite transitoire. Cette appellation est due au fait que les données ne résident que de façon temporaire dans cette table. Le chargement se fait selon un Mapping généré par un programme, 15

16 appelé ici «Matcher» sur la base d un algorithme de Matching automatique qui fera l objet de recherches futures. Dans le fichier Mapping, créé pour le moment manuellement, est décrite la correspondance entre la structure du fichier XML et celle, connue, de la table transitoire. Un programme appelé «Archiver» renommera alors le fichier XML (le nom du fichier portera un «Timestamp») et l archivera dans un répertoire donné. Les données seront ensuite lues dans la table transitoire est réparties sur la base de données cible. Cette action est accomplie par le programme appelé «Rules engine». Cette répartition a lieu suivant des règles, qui ne sont autres que des commandes SQL, elles même auparavant saisies dans une table. La syntaxe SQL devra être celle du SQL correspondant à la base de données exploitée (Oracle, MySQL, Sybase, DB2, etc.). Pendant tout le processus, des informations et/ou messages d erreur sont consignés dans un fichier Log. Dans le cadre d une extension future, une interface graphique (GUI), qu on appellera «Designer», offrira plus de confort dans la saisie des Rules, la programmation du Trigger et la création des tables transitoires, voire de la base de données cible. Un programme d installation permettra aussi de copier les différents programmes sur le poste client et de créer leurs fichiers de paramètres (.ini). 16

17 Chargement de données XML dans un data warehouse MAPPING GENERATOR (generatemapping.java) TRIGGER (x2dw.bat/.sh) Algorithme α Fichier Log Base de données externe Fichier XML LOADER (loadxmlfile.java) Table transitoire Mapping (catalog.hbm.xml) RULES ENGINE (applyrule.java) Rules ARCHIVER (archivfile.java) Fichier Archive Base de données cible 1 Fig.1: Architecture globale 17

18 1.2 Les composants du système La fig. 2 décrit les composants du système, en les situant sur des plans fonctionnels. OpenX2DW possède une entrée, un fichier au format XML envoyé par un système source, et une sortie, qui pourrait être par exemple le résultat d une requête lancée à la base de données cible par le biais d un outil de Reporting ou de Queriying ou un Tool de Business Intelligence. OpenX2DW est constitué de trois couches: la couche supérieure est nommée «contrôle du processus». C est ici que se trouve le Trigger, donc le Job sensé démarré le processus, ainsi que les fichiers Log contenant les messages d informations ou d erreurs. La couche du milieu est l environnement «Runtime». Cette couche contient les éléments qui constituent la fonction véritable du système, qui est de charger des données XML dans une base de données relationnelle. La dernière des couches contient le Designer, qui prodiguera aux gestionnaires du système (le team ETL) plus de convivialité dans la saisie des Rules, la programmation du Trigger et la création des tables transitoires, voire de la base de données cible. Tous les programmes, que ce soit le Loader, le Matcher, l Archiver ou la Rules engine sont des programmes Java. Des commandes SQL sont incorporées dans la Rules engine. Ces commandes s adressent à la table contenant les Rules, aux tables transitoires ou à la base de données cible. Ces commandes sont strictement conformes au SQL-Standard ANSI. Ceci permet à l utilisateur du système d utiliser une base de données d un fournisseur quelconque. Les normes SQL existantes jusqu ici sont SQL-92, SQL-99 et SQL Nous avons utilisé ici le SQL-92, comme recommandé dans les Collected Java Practices [CJAP]: «Almost all relational databases extend the standard set of SQL commands. If these extensions are used, then portability rapidly degrades. In some applications, such portability may not be a concern. However, if portability is important, then it is clearly an advantage to use only the standard SQL-92 commands.» Ainsi, une table transitoire, est effacée dans le Loader de la manière suivante: DELETE FROM <table_name>; 18

19 Cette commande SQL est envoyée à la base de données contenant les tables transitoires, par le biais de JDBC, avec : executeupdate(commande) ; La Rules engine lit les Rules en vue de les exécuter avec : SELECT Rule_code, Rule_text, alternative_rule, if_rulefailure, if_alternativefailure, error_level, active_status FROM Rules WHERE Rule_code='"+args[0]+ +"'" Cette commande SQL est envoyée à la base de données contenant les Rules, par le biais de JDBC, avec : executequery(commande) args[0] est ici le code de la règle à appliquer, passé comme paramètre à la Rules engine. La règle est ensuite elle-même (c'est-à-dire ici le texte de la règle) exécutée comme commande SQL. executeupdate(rule_text); Ceci est aussi valable pour la règle alternative, dans le cas où celle-ci doit être exécutée en cas d échec de la règle. 19

20 1.2.1 Le Trigger Le Trigger permet d automatiser l ensemble du processus. Suivant le système d exploitation de la machine sur laquelle est installé le runtime OpenX2DW, il consiste en un «job» ou «daemon» et en une shell ou en un fichier de commandes Windows (.bat). On dispose sous Windows, par exemple, d un composant système appelé planificateur de tâches, qui permet de lancer l exécution d un programme avec une fréquence prédéfinie. Sous Windows, le système d exploitation de la machine sur laquelle a été installé le runtime OpenX2DW, le Trigger est composé d une tâche planifiée qui lance l exécution d un fichier de commandes (.bat). Le fichier de commandes.bat répond à la description suivante : IF EXIST <File name> ( ) ECHO generating Mapping file <File name>... Appel(s) du Matcher ECHO loading table <Table name>... Appel(s) du Loader ECHO archiving file <File name>... Appel(s) de l Archiver ECHO applying Rule <Rule code>... Appel(s) de la Rules engine La tâche planifiée lancera suivant la fréquence désirée le fichier.bat. La fréquence est choisie suivant les besoins. Le fichier.bat peut être exécuté plusieurs fois par jour comme il peut être exécuté une fois par mois. Matcher, Loader, Archiver et Rules engine ne sont exécutés que si vraiment le fichier <File name> est présent dans la Scan directory. Le fichier de données au format XML ayant atterri dans la Scan directory, c est d abord le Matcher qui est appelé. Le Loader, se basant sur le fichier Mapping généré par le Matcher, va ensuite être exécuté et charger les données dans les tables transitoires. L Archiver, qui déplacera le fichier traité vers un répertoire prévu à cet effet, puis la Rules engine, qui lira les données dans les tables transitoires et les distribuera sur la base de données cible, seront ensuite exécutés. L ordre suivant lequel l Archiver et la Rules engine 20

21 sont exécutés n est pas important, puisqu au moment de l exécution de l Archiver, les données ont déjà été chargées dans les tables transitoires. Pour un fichier XML à charger, le Loader est exécuté une seule fois. La Rules engine par contre peut être exécutée plusieurs fois. Le nombre de fois pendant lequel elle est exécutée dépend du modèle de données de la banque de données cible et de la formulation des commandes SQL que sont les Rules. L administrateur de bases de données peut décider, pour des raisons techniques, de rassembler plusieurs Rules en une seule ou inversement d éclater une Rule en plusieurs. Pour la bonne lecture des Rules et la maintenance du système, il est même souhaitable que soit appliqué ce dernier cas de figure. 21

22 Contrôle du processus TRIGGER (x2dw.bat/.sh) Fichier Log Mapping (catalog.hbm.xml ) MAPPING GENERATOR (generatemapping.java) RULES ENGINE (applyrule.java) Base de données externe Fichier XML LOADER (loadxmlfile.java) Table transitoire Rules Fichier Archive ARCHIVER (archivfile.java) Base de données cible Environnement Runtime Umgebung Design et paramétrage DESIGN CLIENT (GUI) Fig. 2: Les trois couches du système 22

23 1.2.2 Le Matcher Le rôle du Matcher est de créer, sur la base d un algorithme de Matching automatique, le fichier Mapping. Le Loader se basera sur ce fichier Mapping, lui-même au format XML, pour charger les données XML dans les colonnes correspondantes de la table transitoire. La création automatique du fichier Mapping, dont un exemple est donné ci-dessous, bien que prévue dans l architecture globale du système, a encore lieu manuellement. <?XML version="1.0"?><!doctype hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping> <class entity-name="catalog" node="catalog" table="catalog"> <id name="catalogid" node="catalogid" column="catalogid" type="string"/> <property name="journal" node="journal" column="journal" type="string"/> <property name="publisher" node="publisher" column="publisher" type="string"/> <property name="edition" node="edition" column="edition" type="string"/> <property name="title" node="title" column="title" type="string"/> <property name="author" node="author" column="author" type="string"/> </class> </hibernate-mapping> La syntaxe pour l appel du Matcher est la suivante: ECHO generate Mapping file... java -jar generatemapping.jar <File_name> <MappingFile_name> où: <File_name> est le nom du fichier XML à charger. <MappingFile_name> est le nom du fichier Mapping généré par le Matcher. Le Matcher est un programme Java qui a été packagé en un fichier Jar. generatemapping.jar est le nom de ce fichier. Le Matcher requiert le renseignement de certains paramètres contenus dans un fichier de configuration (fichier.ini). Cette action a lieu lors du lancement du programme d installation, sur la base des informations fournies par le team ETL. Parmi ces paramètres figurent le chemin pour la Scan Directory, le chemin pour le fichier Mapping généré par le Matcher ainsi que le nom, le chemin et la dimension maximale du fichier Log. Un exemple de fichier de configuration pour le Matcher est donné ci-dessous : 23

24 [Data File] Directory=C:\OpenX2DW\production\data Extension=XML [Mapping File] Directory=C:\OpenX2DW\production\Mapping Extension=XML [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.log Size=1000 [Mail] Server = mail.kit-consulting.net Address = bkahloula@yahoo.de Mail = S User = w006131b Password = xlglsnu09pq= Un protocole de l exécution du Matcher est tenu à travers l enregistrement de messages dans le fichier Log. On pourra trouver dans ce fichier des informations telles que le nom du fichier XML ainsi que le nom du fichier Mapping généré. Des messages d erreurs éventuelles sont écrits dans le fichier Log. Un enregistrement dans le fichier Log a la structure suivante : <Date> <Heure> <Type de message> <Texte du Message> Le type de message est = I pour Information = S pour sévère L exécution du Matcher a lieu suivant le schéma suivant: - Début de programme; Initialisation des variables; - Lecture des paramètres à partir du fichier.ini; - Ouverture du fichier Log s il existe, création d un fichier Log sinon; - Analyse du fichier XML; - Génération du fichier Mapping ; - Fermeture des fichiers ouverts; Fin de programme; 24

25 1.2.3 Le Loader La fonction du Loader est de charger des données XML dans une table transitoire d une base de données relationnelle d un fournisseur quelconque (Oracle, SQL-Server, DB2, mysql, etc.) Hibernate Le Loader conçu et développé dans le cadre de ce travail est basé sur le Framework open source Hibernate et utilise des librairies mises à la disposition des utilisateurs de ce système. Hibernate et sa capacité à charger des données XML dans une table est décrite par Deepak Vohra [JABO] comme suit : «Hibernate is an open source object/relational persistence and query service for Java. Hibernate's latest version, 3.x, introduces a new feature: XML-to-database Mapping, which allows you to map data representation in an XML document to a database (of which Hibernate supports several - including DB2, MySQL, Oracle, and PostgreSQL). With Hibernate, you map your XML document nodes to database columns. Only an XML Mapping file is required to map an XML document to a database table; a POJO is not required. Hibernate generates the required SQL to create, update, and delete database tables. You can also use it to generate tables from a Hibernate configuration file and add data to a database table from an XML document. You can retrieve database table data as an XML document and update it from that XML document. Further, Hibernate 3.x supports dom4j API for XML processing. Hibernate also provides classes for Ant build tasks.». Nous retiendrons donc de la citation ci-dessus qu avec le Framework Hibernate, seul est nécessaire, pour le chargement des données, un fichier Mapping, établissant la correspondance entre la structure du fichier XML d entrée et celle de la table destinée à recevoir les données (pour nous, la table transitoire). Un chargement de données XML vers une base de données relationnelle sans persistance nécessite un programme spécifique au fournisseur de la base de données tel que XML Extender ou une API telle que XML SQL Utility. JDBC 4.0 a introduit un nouveau type de données SQLXML pour charger un document XML dans la colonne de type XML. JDBC 4.0 n existe malheureusement pas encore pour l ensemble des bases de données. Hibernate s XML persistance offre cette possibilité. Les avantages de Hibernate par rapport à JDBC dans ce contexte sont énoncés par Phutela dans «Hibernate vs JDBC» [PHUT] : 25

26 «Working with both Object-Oriented software and Relational Database is complicated task with JDBC because there is mismatch between how data is represented in objects versus relational database. So with JDBC, developer has to write code to map an object model's data representation to a relational data model and its corresponding database schema. Hibernate is flexible and powerful ORM solution to map Java classes to database tables. Hibernate itself takes care of this mapping using XML files so developer does not need to write code for this.» Simple API for XML (SAX) Pour l analyse du document XML, Hibernate utilise un parseur SAX. SAX (Simple API for XML) est un standard de fait qui décrit une API (Application Programming Interface) pour l analyse de données XML. Un SAX-Parseur lit les données XML comme flux de données séquentiel et appelle des fonctions prédéfinies callback (callback function) pour les évènements définis dans le standard. Une application qui utilise SAX peut enregistrer ses propres sous-programmes comme fonctions callback et exploiter de cette manière les données XML. SAX, à l inverse de DOM, est évènementiel. SAX travaille suivant la notion de pipeline. Il définit un ensemble d évènements, qui peuvent apparaître lors de la lecture séquentielle du document XML. En reconnaissant une structure syntaxique, l analyseur syntaxique (parseur) lance une routine de traitement, qui exécute, le cas échéant une routine individuelle de l évènement. Ainsi l exploitation des données peut commencer dès la lecture des premiers caractères. Ceci a pour conséquence d écourter les temps d accès. SAX minimise en même temps les besoins en capacité de stockage, puisque en mémoire ne figurent, à coté de l élément lu, que les données explicitement sélectionnées par la routine de traitement. Les évènements sont injectés dans le parseur parallèlement à la lecture du document. Considérons le document suivant: <?XML version="1.0"?> <seminaire> <titre>dom, SAX et SOAP</titre> <contenu> <chapitre value="1">introduction</chapitre> <chapitre value="2">sujet</chapitre> <chapitre value="3">conclusion</chapitre> </contenu> </seminaire> 26

27 Les évènements générés par un parseur SAX seront, à la lecture du document ci-dessous, les suivants : startdocument() startelement("seminaire",[]) startelement("titre",[]) character("dom, SAX et SOAP") endelement("titre") startelement("contenu",[]) startelement("chapitre", ["value="1""]) character("introduction") endelement("chapitre")... Le parseur interrompt son travail à chaque évènement et attend que le programme appelant lui redonne la main. Celui-ci peut pendant ce temps lancer un traitement. DOM (Document Object Model), contrairement à SAX utilisé dans le Framework Hibernate, utilise une approche hiérarchique. Un parseur DOM construit une structure hiérarchique contenant des objets représentant les éléments du document. Le document donné ci-dessous serait décomposé suivant l arbre suivant : seminaire titre contenu chapitre Fig. 3: Exemple de structure hiérarchique construite par un parseur DOM Utilisation du Framework Hibernate dans le Loader La première action à entreprendre est de préciser dans le fichier de paramètres de Hibernate (hibernate.properties) la base de données, le driver JDBC et l URL de connexion utilisés. Dans l exemple ci-dessous, Hibernate est configuré pour utiliser une base de données Oracle 10g et charger les données dans une table du schéma «Scott» dont le mot de passe est 27

28 «tiger». Le nom de la base de données est «orcl», et elle est configurée pour recevoir les requêtes sur le port ## MySQL ##hibernate.dialect org.hibernate.dialect.mysqldialect #hibernate.dialect org.hibernate.dialect.mysqlinnodbdialect ##hibernate.dialect org.hibernate.dialect.mysqlmyisamdialect #hibernate.connection.driver_class com.mysql.jdbc.driver #hibernate.connection.url jdbc:mysql://poire:3306/x2dw #hibernate.connection.username root #hibernate.connection.password Amadeus ## Oracle #hibernate.dialect org.hibernate.dialect.oracledialect hibernate.dialect org.hibernate.dialect.oracle10gdialect hibernate.connection.driver_class oracle.jdbc.driver.oracledriver hibernate.connection.username scott hibernate.connection.password tiger hibernate.connection.url L utilisation de MySQL est donnée en commentaire. Le nom de l utilisateur aurait été «root» et le mot de passe «Amadeus». La base de donnée est x2dw et elle est configurée pour recevoir des données sur le port Pour pouvoir charger les données XML dans la table transitoire, Hibernate nécessite le fichier Mapping auparavant créé par le Matcher. Un exemple de fichier Mapping est donné page 24. Les packages jar de Hibernate nécessaires sont les suivants : JAR/Zip File <Hibernate3.1>/hibernate3.jar <Hibernate3.1>/lib/dom4j jar <Hibernate3.1>/lib/commons-logging jar <Hibernate3.1>/lib/commons-collections jar <Hibernate3.1>/lib/ehcache-1.1.jar <Hibernate3.1>/lib/cglib jar <Hibernate3.1>/lib/jta.jar <Hibernate3.1>/lib/asm.jar <Hibernate3.1>/lib/antlr-2.7.6rc1.jar <Hibernate3.1>/lib/jaxen-1.1-beta-7.jar Description Classes API Hibernate, y compris la classe org.hibernate.tool.hbm2ddl.schemae xport Classes Hibernate auxiliaires A ceci il faut rajouter le JDBC pour l accès à la base de données. Dans le cas d Oracle : 28

29 <Oracle10g>/jdbc/lib/ojdbc14.jar 29

30 La syntaxe pour l appel du Loader est la suivante: ECHO loading table CATALOG... java -jar loadxmlfile.jar <File_name> <MappingFile_name> Où: <File_name> est le nom du fichier XML à charger. <MappingFile_name> est le nom du fichier Mapping généré par le Matcher. Le Loader est un programme Java qui a été packagé en un fichier Jar. LoadXMLFile.jar est le nom de ce fichier. Un fichier Mapping est nécessaire pour pouvoir charger les données contenues dans le fichier XML dans une table transitoire. Le fichier Mapping porte le même nom que la table transitoire. Le Loader, tout comme les autres modules du système, requiert le renseignement de certains paramètres contenus dans un fichier de configuration (fichier.ini). Cette action a lieu lors du lancement du programme d installation, sur la base des informations fournies par le team ETL. Parmi ces paramètres figurent le chemin pour la Scan Directory, le chemin pour le fichier Mapping généré par le Matcher, les informations pour l accès à la base de données contenant les tables transitoires, le nom, le chemin et la dimension maximale du fichier Log. Le mot de passe pour l accès à la base de données est crypté. Le cryptage est pris en charge par le programme d installation. Le mot de passe est lu par le Loader dans le fichier de configuration et décrypté. Un exemple de fichier de configuration pour le Loader est donné ci-dessous : [Data File] Directory=C:\OpenX2DW\production\data Extension=XML [Configuration File] Directory=C:\OpenX2DW\production\Mapping Extension=XML [Transient Database] Database=mysql Host=poire Port=3306 SID=x2dw 30

31 User=root Password=6LMVoJ+x9QvWsSXArQ0ziw== [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.log Size=1000 [Mail] Server = mail.kit-consulting.net Address = bkahloula@yahoo.de Mail = S User = w006131b Password = xlglsnu09pq= Un protocole de l exécution du Loader est porté dans le fichier Log. On pourra trouver dans ce fichier des informations telles que le nom du fichier XML, le nom du fichier Mapping, et le nom de la table transitoire traités par le Loader. Des messages d erreurs éventuelles sont écrits dans le fichier Log, ainsi que les actions entreprises dans ce cas. Un enregistrement dans le fichier Log a la structure suivante : <Date> <Heure> <Type de message> <Texte du Message> Le type de message est = I pour Information = S pour sévère Le déroulement du programme a lieu suivant le schéma suivant: - Début de programme ; Initialisation des variables; - Lire des paramètres à partir du fichier.ini; - Ouvrir le fichier Log s il existe, création d un fichier Log sinon; - Décrypter le mot de passé pour l accès à la base de données; - Connexion à la base de données; - Supprimer le contenu de la table transitoire (DELETE et non pas DROP Table) ; - Appeler la classe Hibernate3.saveXMLDocument pour le chargement des données XML dans la table transitoire; Les deux paramètres passées à cette classe sont le nom du fichier XML à charger ainsi que le nom du fichier Mapping ; - Fermer les fichiers ouverts; Fin de programme; L appel de la classe Hibernate.saveXMLDocument se déroule suivant les étapes suivantes : 31

32 La création d un objet Configuration a d abord lieu. La classe org.hibernate.cfg.configuration est utilisée pour spécifier les propriétés de la configuration et les fichiers Mapping en vue de la création d une SessionFactory. Configuration config=new Configuration(); Le fichier Mapping, auparavant créé par le Matcher est ensuite ajouté à la configuration: config.addfile("<fichier_mapping>"); org.hibernate.session est l interface principale entre une application Java et Hibernate. Un objet Session est obtenu avec l appel de SessionFactory. L interface SessionFactory offre la methode opensession() pour la création d une connexion à la base de données et ouvre une session dans la connexion. SessionFactory sessionfactory=config.buildsessiofactory(); Session sess =sessionfactory.opensession(); Un objet Transaction est obtenu à partir de la Session en vue d insérer des données dans la table transitoire: org.hibernate.transaction tx = sess.begintransaction(); Une session est ouverte avec comme entity mode DOM4J. La session secondaire a la même connexion, transaction que la session primaire. DOM4J (DOM for Java) est une API Java permettant de travailler avec des documents XML. DOM4J est compatible avec les standards SAX, DOM et JAXP. Session dom4jsession = session.getsession(entitymode.dom4j); Un SAXReader est créé pour analyser (parse) le document XML qui doit être «persisté» à la base de données. L analyse du document XML a lieu à travers l utilisation de la méthode read(file): 32

33 SAXReader saxreader = new SAXReader(); Document document = saxreader.read(new File("c:/Hibernate/catalog.XML")); Une liste des noeuds de l objet document est obtenue, puis est créé un objet Iterator pour l objet List: List list = document.selectnodes("//catalog"); Iterator iter = list.iterator(); L objet List est parcouru dans une itération dans le but de récupérer les objets noeuds. Ceux-ci sont sauvegardés dans la base de données à travers l utilisation de la méthode save(string entityname, Object object). La méthode flush() est utilisée pour la synchronisation de la base de données avec les nœuds du document XML dans l objet Session: while (iter.hasnext()) { Object catalog = iter.next(); dom4jsession.save("catalog", catalog); } Un flush de la session a finalement lieu, ainsi qu un commit de la transaction. Après quoi la session est fermée: session.flush(); tx.commit(); session.close(); 33

34 1.2.4 Le Archiver La fonction de l Archiver est d archiver un fichier XML, déjà traité par le Loader, dans un répertoire prévu à cet effet. Le nom du fichier archivé porte un Timestamp. La syntaxe pour l appel de l Archiver est la suivante: java -jar archivfile.jar ARCHIV FILE <File_name> où: <File_name> est le nom du fichier XML à archiver. archivfile.jar est le nom du programme Java compacté, que nous avons appelé Archiver. Ici aussi des données de configuration sont stockées dans un fichier.ini qui sera créé par le programme d installation sur la base des informations fournies par le team ETL durant l installation. Parmi ces paramètres figurent: Chemin d accès à la Scan directory, chemin du répertoire d archivage, chemin et volume maximal autorisé du fichier Log. [Data File] Directory=C:\OpenX2DW\production\data Extension=XML [Archiv] Directory=C:\OpenX2DW\production\backup Extension=bak [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.log Size=1000 [Mail] Server = mail.kit-consulting.net Address = bkahloula@yahoo.de Mail = S User = w006131b Password = xlglsnu09pq= L archivage des fichiers de données a lieu, après leur traitement par le Matcher et le Loader, suivant le schéma suivant: 34

35 - Début de programme ; Initialisation des variables; - Lire les paramètres de configuration à partir du fichier.ini; - Ouvrir le fichier Log s il existe, créer un fichier Log sinon; - Déterminer le Timestamp; - Renommer le fichier XML: Le nouveau nom contient le Timestamp; - Copier le fichier XML renommé dans le répertoire archive; - Supprimer le fichier XML original; Dans le fichier Log, les étapes suivantes sont portées dans le protocole: Changement de nom du fichier, copie du fichier, suppression du fichier. La structure du fichier Log est identique à celle du fichier Log du Matcher ou du Loader. Le type de message est «I», si l action a abouti ou «E» dans le cas contraire. 35

36 1.2.5 La Rules engine Les données XML étant chargées dans les tables transitoires, les Rules peuvent être aussitôt exécutées. Une Rule est exécutée à travers l appel de la Rules Engine, à laquelle est transmis le code d une Rule: java -jar applyrule.jar <être code> où <être code> étant le code de la être à exécuter La Rule, c est à dire le texte de la commande SQL, est stockée dans la table des Rules. La structure de cette table est la suivante: Nom de colonne Type Longueur Valeurs possibles Default RULE_CODE Character 5 RULE_TEXT Text LONGTEXT/ CLOB ALTERNATIVE_RULE Text LONGTEXT/ CLOB IF_RULEFAILURE Character 1 R pour Rollback C pour Commit A pour Apply R alternative être IF_ALTERNATIVEFAILURE Character 1 R pour Rollback R C pour Commit ERROR_LEVEL Character 1 I pour Information W pour Warning E pour Error S pour Severe S COMMENTS Character 255 ACTIVE_STATUS Character 1 Y pour Yes N pour No Le script de création de cette table pour Oracle 10g par exemple, est le suivant: N CREATE TABLE rules ( rule_code VARCHAR2(5) NOT NULL, rule_text CLOB, alternative_rule CLOB, if_rulefailure CHAR(1) DEFAULT 'R', if_alternativefailure CHAR(1) DEFAULT 'R', error_level CHAR(1) DEFAULT 'S', 36

37 date_created DATE DEFAULT NULL, comments VARCHAR2(255) DEFAULT NULL, active_status CHAR(1) DEFAULT 'N', PRIMARY KEY(rule_code) ); Rule-Code est ici un identifiant (Primary key). Une Rule peut consister en une commande DML (Data Manipulation Language) quelconque. Le team ETL est responsable de sa formulation. C est à lui à veiller à sa logique, c'est-à-dire à ce que les informations soient écrites au bon endroit dans la base de données cible et dans la forme requise. Comme pour toute base de données relationnelle, les clés primaires (primary keys), les clés étrangères (foreign keys) ainsi que les autres contraintes d intégrité (check constraints) doivent être prévues partout où la nécessité s impose. Dans le cas où un enregistrement ne répond pas aux contraintes existantes, la Rules engine interceptera le message d erreur émis par la base de données et le transmettra au team ETL en l enregistrant dans le fichier Log. Aussi le team ETL doit s assurer du bon ordre d exécution des Rules. Dans le cas où une tentative d insertion d un enregistrement «fils» a lieu avant que ne le soit l enregistrement «parent», l insertion échoue. Il peut être indiqué, à titre d exemple, d utiliser lorsqu il s agit d une base de données MySQL la commande «REPLACE» au lieu de la commande «INSERT». Un «REPLACE» peut correspondre au désir des utilisateurs, d «écraser» (mettre à jour) un enregistrement existant déjà dans la base de données par un nouvel enregistrement comportant la même clé primaire que l enregistrement existant. Essayer dans ce cas là d insérer un enregistrement avec une commande «INSERT» mènerait à une erreur. Comme pour les autres éléments du système, les paramètres de configuration de la Rules engine sont stockés dans un fichier.ini, parmi ceux-ci les informations pour l accès à la base de données contenant la table Rules, et à celle contenant les tables transitoires et la base de données cible, sont renseignées Le fichier.ini sera créé par le programme d installation à partir des données fournies par le team ETL lors de l installation. Le mot de passe sera écrit dans le fichier.ini sous forme crypté. 37

38 [Target Database] Database=oracle Host=localhost Port=1521 SID=orcl User=scott Password=NJDBxORWkzY= [Rules Database] Database=oracle Host=localhost Port=1521 SID=orcl User=scott Password=NJDBxORWkzY= [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.Log Size=1000 [Mail] Server = mail.kit-consulting.net Address = bkahloula@yahoo.de Mail = S User = w006131b Password = xlglsnu09pq= Une Rule peut être désactivée. Sa mise en oeuvre n aura pas lieu, même si le code de cette Rule est transmis à la Rules engine pour exécution. Un message d erreur sera simplement écrit dans le fichier Log. Le team ETL a aussi la possibilité de préciser, dans le cas où l exécution de la Rule échoue, si un «Commit», un «Rollback» ou une Rule alternative doit être exécuté. Un «Commit» ou un «Rollback» pourront être de nouveau exécutés si la Rule alternative, n a pas pu être mise en œuvre à son tour. Le Pseudocode suivant décrit le déroulement de l exécution du programme. 38

39 - Début de programme; Initialisation des variables; - Lecture des paramètres de configuration à partir du fichier.ini; - Décryptage du mot de passe pour l accès à la base de données contenant la table Rules; - Connexion à la base de données contenant la table Rules; - Lecture de la table Rules pour le code Rule donné; - Fermeture de la connexion; - Décryptage du mot de passe pour l accès à la base de données cible; - Connexion à la base de données cible; - Désactivation de l option «Autocommit»; - Si la Rule est désactivée : Ecrire l information dans le fichier Log et quitter le programme; - Exécuter la Rule; - Si l exécution de la Rule est réussie { - Commit; - Quitter le programme; } - Si l exécution de la Rule n est pas réussie { - Si un Commit doit avoir lieu { - Commit; - Quitter le programme; } - Si un Rollback doit avoir lieu { - Rollback; - Quitter le programme; } - Si la Rule alternative doit être exécutée { - Rollback; - Exécuter la Rule Alternative; - Si l exécution de la Rule alternative est réussie { - Commit; - Quitter le programme; } - Si l exécution de la Rule alternative n est pas réussie { - Si un Commit doit avoir lieu { - Commit; - Quitter le programme; }- Si un Rollback doit avoir lieu { - Rollback; - Quitter le programme; } } } } 39

40 1.2.6 Environnement de développement et de test OpenX2DW a été développé sous Windows XP Pro et testé sous Windows XP Pro et Windows Server Le Trigger est ce qui est appelé sous Windows une «tâche planifiée» qui lance l exécution d un fichier de commandes MS- DOS (.bat). Ceci correspond sous Unix/Linux à un Dämon et une Shell. OpenX2DW est constitué de plusieurs programmes Java qui ont été packagé en fichiers Jar. Un environnement runtime j2re ou postérieur doit être installé Sur le poste client. Une classe Java pour la lecture/écriture de fichiers de paramètres (.ini), mise à la disposition comme freeware, des développeurs Java par son auteur [KHAN], a été téléchargée à partir de l Internet et utilisée. Les mots de passe pour la connexion aux bases de données cible et contenant les tables transitoires et les Rules sont stockés dans les fichiers de paramètres.ini. Ces mots de passe sont écrits par le programme d installation qui les crypte auparavant. Ils sont lus par les différents programmes et décryptés. Une classe du Java Developers Almanac 1.4 [TJDA] a été utilisée pour leur cryptage et décryptage. Le cryptage est basé sur le Data Encryption Standard (DES) avec utilisation d une «Pass Phrase». Parallèlement à l écriture des messages d informations ou d erreurs dans le fichier Log, OpenX2DW offre la possibilité de les envoyer à une adresse Mail donnée. L utilisateur peut saisir, lors du processus d installation, les informations permettant la connexion à un Serveur SMTP. Cette option a été réalisée à travers l importation des packages Java javax.mail et javax.mail.internet. Les paramètres mail.smtp.host et mail.smtp.auth étant définis, une Mail Session est ouverte, à l intérieur de laquelle un message est instancié. L ensemble des caractéristiques du message sont complétées avec les méthodes setrecipient, setcontent et setsubject. Le message est envoyé avec Transport.send(<myMessage>). Les paramètres de Mailing sont à donner lors de l installation des programmes ; ils figurent sur les fichiers de configuration créés par le programme d installation. Les paramètres de Mailing sont : le nom du serveur SMTP, l adresse mail du destinataire des messages, le type de messages qui doivent être envoyés ( sévères ou moins sévères) ainsi que le code-utilisateur et le mot de passe pour l accès au serveur SMTP. 40

41 [Mail] Server = mail.kit-consulting.net Address = bkahloula@yahoo.de Mail = S User = w006131b Password = xlglsnu09pq= NetBeans [NETB] a été utilisé comme environnement de développement Java. NetBeans est un produit distribué à titre bénévole par Sun Microsystems. Sun ONE Studio est une version payante de ce même produit. Les différents tests ont d abord eu lieu sur une base de données MySQL 5.0 puis sur une base de données Oracle 10g. MySQL dispose d une licence GPL ou commerciale [MYSD]. MySQL peut être exploité sous Windows, sur la plupart des variantes Unix, sur Mac OS X et OS/2. Pour la gestion des bases de données MySQL il est possible d utiliser l interpréteur de commandes (Commandes mysql et mysqladmin). Une alternative à cela est d utiliser l application Open Source phpmyadmin. Celle-ci nécessite l installation d un serveur Web et de PHP. Une autre alternative encore serait d utiliser les outils MySQL Administrator et MySQL Query Browser de la société MySQL AB [MSQA]. MySQL dispose de différents types de tables: MyISAM, InnoDB, Berkeley DB. Un procédé transactionnel n est possible qu avec des tables du type InnoDB. Etant donné que la Rules engine déclenche un COMMIT ou un ROLLBACK dans le cas de l échec de l application d une Rule, c est bien ce type de table qui a été choisi. Le texte des rules est stocké dans une colonne de type LONGTEXT. C est le JDBC MySQL de la société MySQL AB [MSQA] qui a été utilisé comme Middleware. Celui-ci est sous licence GPL. La connexion a lieu de la manière suivante: String url ="jdbc:mysql://localhost:3306/x2dw_target?user=root&password=bonjour "; /** * Connection to MySQL DB **/ try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (Exception e) { System.out.println ("ClassNotFoundException: "); System.out.println (e.getmessage()); } try { connect = DriverManager.getConnection(url); System.out.println ("Connection to DB successfull"); 41

42 } catch(sqlexception e) { System.out.println("SQLException: " + e.getmessage()); } Le Driver est tout d abord chargé avec Class.forName("com.mysql.jdbc.Driver").newInstance(). L instanciation du Driver a lieu avec l appel de Class.forName automatiquement. Le Driver se connecte ensuite avec DriverManager.getConnection(url) à l URL donnée. L URL contient les informations de connexion: Host, Port, User et Password. La connexion aux bases de données a été rendue possible grâce à l importation des packages Java java.net et sql.net. Oracle 10g, l autre base de données sur laquelle le système a été testé, soumis à une licence commerciale, existe aussi sous nombre de systèmes d exploitation, y compris sous Linux. Il est possible d utiliser pour la gestion de la base de données OEM (Oracle Enterprise Manager) ou des outils tiers, tels que Toad for Oracle de Quest Software. Le texte des Rules est stocké dans une colonne de type CLOB. Le JDBC est fourni par Oracle sous forme de.jar (ojdbc14.jar). Les classes permettant de charger le driver sont importés en début de programme. Comme donné ci-dessous, l instanciation de la source de données a lieu avec: OracleDataSource ods = new OracleDataSource(). La connection à la source de données a lieu avec : connect = ods.getconnection(). L URL contient les informations de connexion Host, Port et SID. Le nom d utilisateur et le mot de passe sont envoyés à la source de données comme paramètres avec les méthodes setuser et setpassword. String url ="jdbc:"+dbdatabase+":thin:@"+dbhost+":"+dbport+":"+dbsid; try { OracleDataSource ods = new OracleDataSource(); ods = new OracleDataSource(); ods.seturl(url); ods.setuser(dbuser); ods.setpassword(decryptedpass); connect = ods.getconnection(); System.out.println("connected to Oracle DB..."); } catch (ExceptionInInitializerError eie) { System.out.println eie.getmessage()+"\n")) { return; } 42

43 1.3 Conclusion Le système décrit ci-dessus est donc prêt à être implémenté. Des données XML peuvent être chargées dans un Data warehouse utilisant un SGBD Oracle 10g ou MySQL 5.0. Notre intention étant de faire de ce système un produit Open Source, le driver d un autre SGBD (SQL Server, Sybase, etc.) peut être facilement inclus dans les modules du système qui accèdent à la base de données, en l occurrence le Loader et la Rules Engine. Le fichier Mapping étant créé manuellement, le système ne peut toutefois être utilisé que si la structure des données XML en entrée est connue. Ceci est valable dans le cas par exemple d un abonnement à un service web externe fournissant un fichier XML dont la structure est invariable (éléments ayant toujours le même nom et le même type). 43

44 2 Le système dans un procédé ETL et dans un «environnement distribué» 2.1 Data warehouse, définition et concepts Un entrepôt de données (ou Data warehouse) «désigne une base de données utilisée pour collecter et stocker de manière définitive des informations volatiles provenant d'autres bases de données ( ). Les informations collectées serviront à faire des statistiques, des recherches et des rapports. Les entrepôts de données sont utilisés notamment en informatique décisionnelle» [WIKI]. Les données contenues dans un Data warehouse sont, contrairement aux données d un système de production : non volatiles : elles ne peuvent être ni modifiées ni effacées intégrées, dans la mesure où elles proviennent de diverses sources hétérogènes datées. Ceci permet une historisation de l information et offre la possibilité de suivi de l évolution des indicateurs à analyser. «En amont de l'entrepôt de données se place toute la logistique d'alimentation des données de l'entrepôt : extraction des données de production, transformations éventuelles et chargement de l'entrepôt (c'est l'etl ou Extract, Transform and Load ou encore datapumping)» [WIKI] alors qu «en aval de l'entrepôt de données ( ) se place tout l'outillage de restitution et d'analyse des données (en anglais : Business Intelligence) : outils de requêtage ou de reporting, cubes ou hypercubes multidimensionnels, data mining» [WIKI]. 2.2 OpenX2DW dans un procédé ETL Comme on peut le voir sur la Fig. 4, OpenX2DW possède, du point de vue du Data Warehousing, une composante d extraction, une de transformation et une de chargement. Les utilisateurs du système sont le team ETL, comme désigné dans la littérature [Kimb04]. «La découverte et l indication de modifications dans les différentes sources qui alimentent le Data Warehouse», désignées par Bauer et Günzel [Baue04] par «Monitoring», est confié ici aux systèmes sources. Ce que nous avons appelé dans OpenX2DW Loader, est un «Extractor». Les extracteurs sélectionnent et transportent les 44

45 données à partir des sources dans la zone de travail» [Baue04]. La zone de travail (Staging area) correspond dans X2DW aux tables transitoires. Le Loader sélectionne les données dans le fichier de données XML sur la base du fichier Mapping généré par le Matcher pour les transporter vers les tables transitoires correspondantes. Le Loader contribue ainsi au transport des données vers la zone de travail. La Rules engine est Transformator, puisqu elle intervient dans le traitement des clés primaires. «Le traitement des clés est une tâche importante. Des clés peuvent, lors du transfert de données à partir de plusieurs sources de données vers un Data- Warehouse, ne pas être prises en charge, étant donné qu elles doivent être uniques. Dans le cadre des transformations, des ersatz aux clés sources sont créées artificiellement» [Baue04]. La création d ersatz est confiée ici à la Rules engine. Une même pièce de rechange pouvant être stockée dans deux magasins différents, il sera tout indiqué de combiner le code de la pièce de rechange avec le code du magasin et construire ainsi pour la pièce de rechange un code unique. De cette manière l information concernant un même article et provenant d un même magasin (c'est-à-dire d une même source) sera reconnue et rejetée ou traitée. OpenX2DW devient ainsi multi-sites, dans ce cas donc multi-magasins. Une adaptation du format des données de type date, lors du transfert de données des tables transitoires vers la base de données cible est très souvent inévitable. La donnée issue d une colonne de type caractères d une table transitoire doit être transformée en une donnée de type date avant de pouvoir être stockée dans une colonne du même type dans une table de la base de données cible. Aussi des chiffres sont chargés à partir du fichier XML dans des colonnes des tables transitoires de type caractères. Ces chiffres peuvent contenir un point ou une virgule comme séparateur de décimales. Une transformation adéquate de la chaîne de caractères pour son stockage dans une colonne de type décimal, doit avoir lieu dans la Rule. D autres transformations peuvent avoir lieu : conversion de monnaie, conversion de mesures, mises à l échelle, agrégation. Tout type de commande SQL est permis pour cela, à condition que la commande SQL réponde à la syntaxe autorisé par le RDBMS en place et à la sémantique du modèle de données. La logique applicative doit être naturellement aussi observée. Contrairement aux erreurs syntaxiques et sémantiques, aucune erreur n est signalée dans ce cas là. 45

46 La Rules engine, qui est, suivant la définition précédente, Transformator, est en même temps un composant Loader du processus ETL. Les composants Loader «chargent des données transformées après achèvement du processus d acquisition, à partir de la zone de travail dans le Data Warehouse» [Baue04]. La composante analytique dans OpenX2DW consisterait en des outils externes standard de reporting et d analyse. Les composants analytiques «sont qualifiés pour l analyse et la présentation des données contenues dans le Data warehouse». Dans «Das Data Warehouse-Konzept» Mucksch et Behme [Muck00] recommandent : «Les règles résultant des processus d extraction, transformation, de correspondance et de définition doivent être stockées sous forme de Meta Data ; en cas de modification ou d extension des données sources, il ne sera pas nécessaire de modifier les programmes d interface, mais simplement d adapter les Meta Data» [Muck00]. Cette recommandation est prise en compte avec OpenX2DW étant donné qu en cas de changement dans la structure des données sources, les structures des tables transitoires ainsi que les Rules doivent être modifiées mais en aucun cas les programmes. En effet, la Rules engine se limite à «lire» les Rules - qui doivent tenir compte quand à elles des modifications de structure - et à les appliquer. Plus loin sont présentées les techniques et méthodes en rapport avec l extraction de données. Une différence est faite entre un Data refresh et un Data update. «S agissant d un Data refresh, les données du Data warehouse sont simplement «écrasées» par les données du système source, indépendamment du fait que celles-ci aient changées ou pas» [Muck00]. Par Data update «il s agit d un processus automatisé transportant des données à partir de l environnement source vers l environnement cible à des intervalles prédéfini. Il s agit de ne transporter que les données qui ont été modifiées dans le système source depuis le dernier Update» [Muck00]. Un Refresh peut avoir lieu dans OpenX2DW simplement à travers un INSERT ou un REPLACE. On peut imaginer un scénario dans lequel les enregistrements dans le fichier XML porteraient un Timestamp. Cette information existerait donc dans les fichiers transitoires. La Rule pour la sélection des données dans les tables transitoires et leur chargement dans le Data warehouse consisterait en une commande SQL comportant une clause WHERE: 46

47 WHERE <timestamp dans enregistrement de la table transitoire> > <timestamp dans enregistrement dans la base de données cible> «Des défauts aussi bien syntaxiques que sémantiques peuvent être reconnus dans le cadre de l assainissement de données» [Muck00]. Leur découverte et leur correction peuvent être automatisées ou manuelles. Ceci peut être réalisé dans OpenX2DW dans la formulation de la Rule. Il est concevable aussi que soient développés dans ce but des Triggers base de donnée réagissant à l insertion d enregistrements dans les tables transitoires. Les Triggers sont maintenant prévus dans tous les SGBD, y compris dans MySQL. Il est question dans «The Data Warehouse ETL Toolkit» [Kimb04] de renoncer aux tables transitoires (staging area). Les données contenues dans le document XML seraient écrites directement dans la base de données cible. Mais il est remarqué, dans un paragraphe intitulé «Arguments in favor of relational tables»: «When you read from a staging table in the ETL system, database storage is superior when filtering is anticipated and when joins between tables are performed. Dans notre conception du système OpenX2DW, nous utilisons cet avantage, étant donné qu une Rule en SQL peut avoir autant de joins que nécessaire. Dans OpenX2DW, comme il est dit dans Kimball und Caserta [Kimb04], «the data-staging area must be owned by the ETL- Team», les utilisateurs finaux ne sont pas autorisés à accéder aux tables transitoires. Il n est pas permis d établir des états ou rapports à partir de ces tables. Seul le processus ETL a le droit de lire ou écrire à partir de ces tables ou dans ces tables. 47

48 Base de données externe Fichier XML LOADER (loadxmlfile.java) Table transitoire RULES ENGINE (applyrule.java) Base de données cible Mapping (catalog.hbm.xml ) MAPPING GENERATOR (generatemapping.java) Rules Extract Transform Load Fig.4: OpenX2DW dans un processus ETL 48

49 2.3 OpenX2DW dans un «environnement distribué» Matcher, Loader, Archiver et Rules engine sont installés dans le même répertoire, étant donné qu ils sont tous lancés à partir du Trigger (cf ). Le répertoire est donné lors de l installation. Les bases de données contenant les Rules, les tables transitoires et la base de données cible peuvent être indépendantes l une de l autre (cf. Fig. 5). Nous utiliserons la terminologie «environnement distribué» dans le sens où les ressources les données en particulier - ne se trouvent pas au même endroit ou sur la même machine. Dans [Kimb04] les teams ETL sont avertis que le réseau peut être éventuellement encombré si le transfert de données entre les différentes composantes est volumineux : «Whenever you have to move data accross wires, the process is vulnerable to bootlenecking and performance degradation». Il est recommandé: «Depending on your infrastructure, it sometimes makes sense to run the ETL engine on the Data warehouse server to eliminate network traffic». La Rules engine n atteint les tables transitoires qu à travers la base de données cible. Les Rules sont exécutées comme unités encapsulées. Le Team ETL ou l administrateur base de données (DBA) doit prévoir les différents liens (Database Links) pour l accès aux tables transitoires et des synonymes (Synonyms) éventuels pour cela dans la base de données cible. 49

50 Tables transitoires Rules Scan directory Base de données cible Base de données source Client OpenX2DW Fig. 5: OpenX2DW dans un «environnement distribué» (exemple) 50

51 2.4 Conclusion Nous avons vu dans ce chapitre que le système est un bien outil ETL, dans le sens où il est apte à charger des données dans un Data warehouse. La Rules Engine permet de transformer et répartir les données sur les nombreuses tables que peut comporter un Data Warehouse et tenir compte des contraintes éventuelles liées à ces tables. La formulation des Rules revient au team ETL, qui est garant de la cohérence de la base de données. L utilisateur du Data warehouse ne doit avoir en aucun cas accès aux tables transitoires, celles-ci représentant un espace de travail temporaire (stagging area) et n étant destinées en aucun cas à être une base pour l établissement d états ou de rapports. Etant donné que nous avons généralement affaire en entreprise à un «environnement distribué», le système a aussi été conçu de manière à fonctionner dans un tel environnement. Chacun des modules dispose d un fichier de paramètres (.ini), qui lui permet de cibler et accéder aux fichiers et tables de base de données à traiter. 51

52 3 Schema Matching 3.1 «Matching» et «Mapping», définition Bien que les mots Matching et Mapping soient quelquefois confondus, la définition la plus courante dans la littérature est la suivante: le Matching est un processus de comparaison entre deux schémas et son résultat est un Mapping, c'est-àdire une correspondance faite entre les nœuds du premier schéma et ceux du deuxième schéma. Ce résultat est inscrit dans un fichier qu on appellera «Fichier Mapping». Ainsi la définition donnée par Madhavan, Bernstein et Rahm [MBR] est formulée de cette manière : «A schema consists of a set of related elements, such as tables, columns, classes, or XML elements or attributes. The result of a Match operation is a mapping. A mapping consists of a set of mapping elements, each of which indicates that certain elements of schema S1 are related to certain elements of schema S2». Il s agit dans notre cas d un Matching XML vers une base de données relationnelle, c'est-à-dire de tenter d effectuer un rapprochement entre les nœuds d un fichier XML de données et les colonnes d une table, en l occurrence la table transitoire, dans le but de charger les données contenues dans le fichier XML dans la table transitoire. 3.2 Domaines d application du Matching La problématique du Matching se pose d ailleurs dans bien d autres domaines que celui du Data warehousing. On la retrouve : Dans l intégration de schémas ; Lors de la construction d une vue globale d un ensemble de schémas de structures et terminologies différentes, un Matching a lieu pour pouvoir retrouver des relations entre les concepts dans les différents schémas et les unifier. Aussi dans le E-commerce, l échange de messages entre des partenaires commerciaux peut nécessiter un Matching si les messages échangés sont de formats différents. Dans le Query processing, les termes utilisés par un utilisateur dans la formulation de sa requête peuvent être différents de ceux de la base de données. Un Matching est utilisé dans ce cas là pour «mapper» les concepts spécifiés par l utilisateur avec les éléments du schéma de la base de données. 52

53 Matcher Fig. 6: Exemple de Matching 53

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Avant de commencer à travailler avec le produit, il est nécessaire de comprendre, à un haut niveau, les problèmes en réponse desquels l outil a été

Plus en détail

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Data Tier Application avec SQL Server 2008 R2

Data Tier Application avec SQL Server 2008 R2 Data Tier Application avec SQL Server 2008 R2 Article par David BARBARIN (MVP SQL Server) David BARBARIN est actuellement consultant en bases de données pour une entreprise Suisse GOLD Partner Microsoft

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Guide d installation de SugarCRM Open Source version 4.5.1

Guide d installation de SugarCRM Open Source version 4.5.1 Guide d installation de SugarCRM Open Source version 4.5.1 Version 1.0.2 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans notification. Disclaimer / Responsabilité

Plus en détail

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

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Introduction à la B.I. Avec SQL Server 2008

Introduction à la B.I. Avec SQL Server 2008 Introduction à la B.I. Avec SQL Server 2008 Version 1.0 VALENTIN Pauline 2 Introduction à la B.I. avec SQL Server 2008 Sommaire 1 Présentation de la B.I. et SQL Server 2008... 3 1.1 Présentation rapide

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

RAPID 3.34 - Prenez le contrôle sur vos données

RAPID 3.34 - Prenez le contrôle sur vos données RAPID 3.34 - Prenez le contrôle sur vos données Parmi les fonctions les plus demandées par nos utilisateurs, la navigation au clavier et la possibilité de disposer de champs supplémentaires arrivent aux

Plus en détail

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

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Open Source Job Scheduler. Installation(s)

Open Source Job Scheduler. Installation(s) Open Source Job Scheduler Installation(s) Installations Standard Configuration Superviseur Agent SOS-Paris 2 Pré-requis o Base de données o MySQL, MSACCESS, Oracle o JDBC ou ODBC o Connecteurs o Mysql

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

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

Le tout fichier Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique Introduction à l informatique : Information automatisée Le premier ordinateur Définition disque dure, mémoire, carte mémoire, carte mère etc Architecture d un ordinateur Les constructeurs leader du marché

Plus en détail

Préparation d un serveur Apache pour Zend Framework

Préparation d un serveur Apache pour Zend Framework Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion Copyright 2009 Alt-N Technologies. 3 allée de la Crabette Sommaire Résumé... 3 MDaemon

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

Déploiement de SAS 9.1.3 Foundation

Déploiement de SAS 9.1.3 Foundation Déploiement de SAS 9.1.3 Foundation I. Installation de SAS sur des postes en local à partir de Cédéroms 3 II. Phase de préparation au déploiement : Création des images disque 6 a) Pour une installation

Plus en détail

WDpStats Procédure d installation

WDpStats Procédure d installation WDpStats Procédure d installation Table de matières WDpStats... 1 Procédure d installation... 1 Table de matières... 1 Résumé... 2 Réquisits... 2 Installation... 2 Difficultés... 6 Lancement... 7 wdpstats_install_oracle_fr.xml

Plus en détail

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

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

L offre décisionnel IBM. Patrick COOLS Spécialiste Business Intelligence

L offre décisionnel IBM. Patrick COOLS Spécialiste Business Intelligence L offre décisionnel IBM Patrick COOLS Spécialiste Business Intelligence Le marché du Business Intelligence L enjeux actuel des entreprises : devenir plus «agiles» Elargir les marchés tout en maintenant

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

Architecture de la plateforme SBC

Architecture de la plateforme SBC Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

Création d une application JEE

Création d une application JEE Création d une application JEE Rédacteurs : Alexandre Baillif, Philippe Lacomme, Raksmey Phan et Michaël PLAN Date : juillet 2010 Mise à jour : Michaël PLAN Date : octobre 2014 Avertissement : - ce document

Plus en détail

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

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

Modélisation et Gestion des bases de données avec mysql workbench

Modélisation et Gestion des bases de données avec mysql workbench Modélisation et Gestion des bases de données avec mysql workbench par novembre 2011 Table des matières 1 Installation 3 1.1 Ecran de chargement 3 1.2 Page d accueil 3 2 Réalisation d une base de données

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

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

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP) Définition (G. Gardarin) Entrepôt : ensemble de données historisées variant

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux Distribué par Le Projet Documentation d'openoffice.org Table of Contents 1) Préambule...3 2) Télécharger

Plus en détail

EJBCA PKI Open Source

EJBCA PKI Open Source PKI Open Source http://www.auditiel.fr/docs/installation.pdf 1 SOMMAIRE 1Sommaire... 2 2Introduction... 3 2.1Pré requis...3 2.2Versions... 3 2.3Glossaire...3 3Installation...4 3.1Composants nécessaires...

Plus en détail

MYXTRACTION. 2009 La Business Intelligence en temps réel

MYXTRACTION. 2009 La Business Intelligence en temps réel MYXTRACTION 2009 La Business Intelligence en temps réel Administration Qui sommes nous? Administration et management des profils Connecteurs Base des données Gestion des variables et catégories de variables

Plus en détail

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement Introduction Phases du projet Les principales phases du projet sont les suivantes : La mise à disposition des sources Des fichiers Excel sont utilisés pour récolter nos informations L extraction des données

Plus en détail

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des

Plus en détail

Business Intelligence avec SQL Server 2012

Business Intelligence avec SQL Server 2012 Editions ENI Business Intelligence avec SQL Server 2012 Maîtrisez les concepts et réalisez un système décisionnel Collection Solutions Informatiques Extrait Alimenter l'entrepôt de données avec SSIS Business

Plus en détail

Notre Catalogue des Formations IT / 2015

Notre Catalogue des Formations IT / 2015 Notre Catalogue des Formations IT / 2015 Id Intitulé Durée Gestion de projets et méthodes I1101 I1102 I1103 I1104 I1105 I1106 I1107 I1108 I1109 I1110 I1111 I1112 I1113 I1114 I1115 I1116 I1117 I1118 I1119

Plus en détail

Acronymes et abréviations. Acronymes / Abbréviations. Signification

Acronymes et abréviations. Acronymes / Abbréviations. Signification Acronymes et abréviations Acronymes / Abbréviations Signification AD CS Active Directory Certificate Services CA Certification Authority CRL Certificate Revocation List CDP Certificate Distribution Points

Plus en détail

Installation et Mise en œuvre de MySQL

Installation et Mise en œuvre de MySQL T-GSI STAGE RENOVATION - SQL.Chapitre 2 - Installation et Mise en œuvre de MySQL Olivier Mondet http://unidentified-one.net A. Pourquoi choisir MySQL? A.1. MySQL, très controversé La base de données MySQL

Plus en détail

Utilisez Toucan portable pour vos sauvegardes

Utilisez Toucan portable pour vos sauvegardes Utilisez Toucan portable pour vos sauvegardes Préambule Toucan est un logiciel libre et gratuit, permettant de réaliser des sauvegardes ou synchronisation de vos données. Il est possible d automatiser

Plus en détail

SQL MAP. Etude d un logiciel SQL Injection

SQL MAP. Etude d un logiciel SQL Injection Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil

Plus en détail

Business & High Technology

Business & High Technology UNIVERSITE DE TUNIS INSTITUT SUPERIEUR DE GESTION DE TUNIS Département : Informatique Business & High Technology Chapitre 8 : ID : Informatique Décisionnelle BI : Business Intelligence Sommaire Introduction...

Plus en détail

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/

Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Cedric Dumoulin (C) The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Webographie The Java EE 7 Tutorial http://docs.oracle.com/javaee/7/tutorial/doc/ Les slides de cette présentation

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

TechSoftware Présentations

TechSoftware Présentations TechSoftware Présentations Philippe THOMAS Spécialiste Supervision chez Tivoli THOMAS1@FR.IBM.COM 2 Mes Sessions à TechSoftware TIV02 - Comment construire ses rapports avec BIRT pour les solutions Tivoli

Plus en détail

Jean-Philippe VIOLET Solutions Architect

Jean-Philippe VIOLET Solutions Architect Jean-Philippe VIOLET Solutions Architect IBM Cognos: L' Expertise de la Gestion de la Performance Acquis par IBM en Janvier 08 Rattaché au Brand Information Management Couverture Globale 23,000 clients

Plus en détail

BUSINESS INTELLIGENCE. Une vision cockpit : utilité et apport pour l'entreprise

BUSINESS INTELLIGENCE. Une vision cockpit : utilité et apport pour l'entreprise BUSINESS INTELLIGENCE Une vision cockpit : utilité et apport pour l'entreprise 1 Présentation PIERRE-YVES BONVIN, SOLVAXIS BERNARD BOIL, RESP. SI, GROUPE OROLUX 2 AGENDA Définitions Positionnement de la

Plus en détail

WINDOWS SHAREPOINT SERVICES 2007

WINDOWS SHAREPOINT SERVICES 2007 WINDOWS SHAREPOINT SERVICES 2007 I. TABLE DES MATIÈRES II. Présentation des «content types» (Type de contenu)... 2 III. La pratique... 4 A. Description du cas... 4 B. Création des colonnes... 6 C. Création

Plus en détail

FORMATION TALEND. Page 1 sur 9

FORMATION TALEND. Page 1 sur 9 FORMATION TALEND Ce livret contient et détaille les formulaires que vous devez nous retourner avec votre bon de commande. Vous y trouverez aussi toutes les informations susceptibles de vous aider à organiser

Plus en détail

X2BIRT : Mettez de l interactivité dans vos archives

X2BIRT : Mettez de l interactivité dans vos archives Présentation Produit Présentation Produit X2BIRT : Mettez de l interactivité dans vos archives L accès à l information est capital pour les affaires. X2BIRT, la dernière innovation d Actuate, prend le

Plus en détail

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)

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) 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) Module 1 : Programmer une application informatique Durée

Plus en détail

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Diffusé par Le Projet Documentation OpenOffice.org OpenOffice.org Documentation Project How-To Table des matières 1. Introduction...3

Plus en détail

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

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Gestion de stock pour un magasin

Gestion de stock pour un magasin Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire

Plus en détail

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

Plus en détail

Oracle Database SQL Developer Guide D'Installation Release 4.0 E38928-06

Oracle Database SQL Developer Guide D'Installation Release 4.0 E38928-06 Oracle Database SQL Developer Guide D'Installation Release 4.0 E38928-06 Pour accéder à la documentation détaillée de SQL Developer : voir Oracle Database SQL Developer Installation Guide Installer Oracle

Plus en détail

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

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...) Avant-propos 1. À qui s'adresse ce livre? 15 2. Pré-requis 15 3. Objectifs du livre 16 4. Notations 17 Introduction à la Business Intelligence 1. Du transactionnel au décisionnel 19 2. Business Intelligence

Plus en détail

UE 8 Systèmes d information de gestion Le programme

UE 8 Systèmes d information de gestion Le programme UE 8 Systèmes d information de gestion Le programme Légende : Modifications de l arrêté du 8 mars 2010 Suppressions de l arrêté du 8 mars 2010 Partie inchangée par rapport au programme antérieur Indications

Plus en détail

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement Cursus Outils & Développement Vous êtes Consultant, Chef de Projets, Directeur des Systèmes d Information, Directeur Administratif et Financier, Optez pour les «formations Produits» Nous vous proposons

Plus en détail

Installer un domaine DNS

Installer un domaine DNS Installer un domaine DNS Olivier Hoarau (olivier.hoarau@funix.org) V1.2 du 3.12.00 1 Historique... 2 2 Préambule... 2 3 Présentation... 2 4 Installation et configuration... 3 5 Lancement automatique de

Plus en détail

Configuration de plusieurs serveurs en Load Balancing

Configuration de plusieurs serveurs en Load Balancing Le serveur de communication IceWarp Configuration de plusieurs serveurs en Load Balancing Version 10.4 27 février 2013 Icewarp France / DARNIS Informatique i Sommaire Configuration de plusieurs serveurs

Plus en détail

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

WORKSHOP OBIEE 11g (version 11.1.1.5) PRE-REQUIS:

WORKSHOP OBIEE 11g (version 11.1.1.5) PRE-REQUIS: WORKSHOP OBIEE 11g (version 11.1.1.5) Durée du workshop: 2 jours Profil des participants du workshop: Profil fonctionnel ou technique Notions de modélisation multidimensionnelle et du décisionnel NB :

Plus en détail

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème Chapitre IX L intégration de données Le problème De façon très générale, le problème de l intégration de données (data integration) est de permettre un accès cohérent à des données d origine, de structuration

Plus en détail

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

Plus en détail