lava et les Bases de Données

Documents pareils
Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

LES ACCES ODBC AVEC LE SYSTEME SAS

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Java DataBaseConnectivity

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

Compte Rendu d intégration d application

Application web de gestion de comptes en banques

FileMaker 13. Guide ODBC et JDBC

Java et les bases de données

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

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)

Architectures web/bases de données

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Projet de Veille Technologique

TRANSFERT DE LA BASE DE DONNEES DE LA BIBLIOTHEQUE DU LSE VERS LE WEB

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

Module BD et sites WEB

Java pour le Web. Cours Java - F. Michel

1 Introduction. Business Intelligence avec SharePoint Server 2010

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Business Intelligence avec SQL Server 2012

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Logiciel Enterprise Guide Version 1.3 Windows

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

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

Logiciel de création de badges personnalisés.

Introduction à JDBC. Accès aux bases de données en Java

Présentation du PL/SQL

Qu est-ce que ArcGIS?

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

III. Contexte. Objectifs. Philippe HOUE, Ecole des Mines de Nantes

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

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

Le rôle Serveur NPS et Protection d accès réseau

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

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

Vulgarisation Java EE Java EE, c est quoi?

LE CHOIX DES GRANDES ENTREPRISES

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Refonte front-office / back-office - Architecture & Conception -

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

Oracle Database SQL Developer Guide D'Installation Release 4.0 E

Infrastructure RDS 2012

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

TP Programmation Java / JDBC / Oracle

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

Serveur d application WebDev

Bases de données relationnelles : Introduction

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

CA ARCserve Backup. Avantages. Vue d'ensemble. Pourquoi choisir CA

PHP 4 PARTIE : BASE DE DONNEES

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

RMI le langage Java XII-1 JMF

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Information utiles. webpage : Google+ : digiusto/

Comment booster vos applications SAP Hana avec SQLSCRIPT

Projet : PcAnywhere et Le contrôle à distance.

Fiche de l'awt Sites dynamiques et bases de données

ORACLE DATA INTEGRATOR ENTERPRISE EDITION - ODI EE

Clients et agents Symantec NetBackup 7

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

java : Langage et Environnement

Le Langage SQL version Oracle

PDO : PHP Data Object 1/13

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

SECURITE DES DONNEES 1/1. Copyright Nokia Corporation All rights reserved. Ver. 1.0

Nouvelles Plateformes Technologiques

Initiation à JAVA et à la programmation objet.

NatStar V8.00. Ce document présente la liste des nouvelles fonctionnalités de la 8.00, disponible à partir de septembre 2013.

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

et Groupe Eyrolles, 2006, ISBN :

Solutions informatiques (SI) Semestre 1

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Quick Start Installation de MDweb version 2.3

Évaluation et implémentation des langages

Marketing Update. Enabler / ENABLER aqua / Maestro II

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

PROCEDURE D'INSTALLATION OPENREPORTS

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)

Les bases de données Page 1 / 8

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

Qu'est-ce que le BPM?

Test de HSQLDB et Comparatif avec Sqlite

INTRODUCTION AUX BASES de DONNEES

Etude et conception d'une interface Web avec les SGBDs relationnels

contact@nqicorp.com - Web :

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

PTV MAP&GUIDE INTRANET QUELLES SONT LES NOUVEAUTÉS?

CA ARCserve Backup r12

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données avancées Introduction

Programmation Orientée Objet

Transcription:

lava et les Bases de Données Introduction r1 ^ arler de bases de données ou de SGBD, sous entend généralement le langage de requêtes SQL. Ce langage joue un rôle important dans la création, la manipulation et la gestion des bases de données relationnelles. SQL étant un langage spécifique à des applications manipulant des bases de données, ses commandes sont très expressives et peuvent donc invoquer des actions de très haut niveau tel que le tri d'une base de donnée. Bien qu'il soit simple, SQL fut standardisé en 1992, et ceci pour permettre aux développeurs d'écrire une seule application, à travers laquelle ils pourront communiquer avec la plupart des systèmes de bases de données sans changer leurs commandes SQL. Mais cela n'était pas suffisant parce que l'interrogation d'une base de données nécessite au préalable la connexion à cette dernière et malheureusement chaque SGBD possède sa propre interface permettant d'établir cette connexion, donc le problème de standardisation n'a pas été complètement résolu. Pour apporter une solution à cette restriction ou autrement dit, pour standardiser la manière de se connecter à une base de données, chaque constructeur d'un SGBD a développé une passerelle entre son système et les applications qui y accèdent, il s'agit de l'api ODBC, écrite en langage C et chargée d'effectuer toutes les opérations nécessaires pour établir la connexion à une base de données sans que le développeur sache comment cela se fait. Et donc, grâce à ODBC et SQL, on pouvait se connecter et manipuler une base de données d'une manière standard avec la plupart des SGBD. D'autre part, SQL est incomplet et exige de recourir à son intégration dans un langage de programmation de haut niveau tel que C et C++, et d'ailleurs de nombreux utilisateurs préféraient développer leurs interfaces indépendamment des moteurs des SGBD, car c'est sans doute la façon la plus rapide d'implémenter un accès étendu sur toutes les variétés de moteurs. Malgré cela et malheureusement, on ne pouvait écrire un programme qui puisse s'exécuter sur toutes les plates-formes, pour la simple raison que ces langages ne sont pas portables. apporte une solution à ce problème, étant donné qu'un programme peut facilement s'exécuter sur n'importe quelle plate-forme. RIST Vol. 7 N ()2 Année 1997 61

est donc un langage excellent pour des applications de base de données, il a suffit seulement qu'il intégre un moyen pour qu'il puisse communiquer avec une variété de bases de données différentes, c'est le mécanisme assuré par l'api JDBC. Pourquoi JDBC? Au début de 1995, la première version de Development Kit (JDK) n'avait intégré aucun support pour accéder aux bases de données. D'autre part, les fonctionnalités de permettaient facilement de construire des outils pour l'accès aux bases de données mais aucune prescription n'a été indiquée sur la façon dont vont fonctionner de tels drivers. Plusieurs constructeurs ont déjà développé des outils pour l'accès aux bases de données mais aucun guide général sur l'écriture de ces outils n'a été spécifié. En présence de ce chaos, Soft a construit la première version de Databasc Connectivitv en mai 1996. JDBC est une API de bas niveau, représentant pour les vendeurs un cadre neutre et universel qui va leur servir pour construire leurs propres drivers pour l'accès aux différentes bases de données. L'API JDBC n'est donc qu'une collection d'interfaces et de classes abstraites que chaque vendeur doit implémenter pour développer son propre JDBC-driver. Sun a donc construit JDBC en partant du travail du groupe X/OPEN qui a également servi de base à l'interface ODBC de Microsoft. Etant donné que plusieurs réseaux de PC utilisent ODBC pour leurs applications es en C ou C++, Soft et Intersolv ont construit ensemble le driver JDBC-ODBC bridge, une couche ou une abstraction offrant un accès aux bases de données relationnelles. étant un langage de choix pour les applications d'internet et d'intranet, le nombre de choix des drivers JDBC ne cesse d'augmenter. Les caractéristiques de JDBC L'API ODBC de Microsoft est largement utilisée pour accéder aux bases de données relationnelles. Elle offre la possibilité de se connecter à la plupart des bases de données sur la plupart des plates-formes. La question qu'on se pose est que : pourquoi ne pas juste utiliser ODBC à partir de? La solution est que cela est possible mais avec l'aide de JDBC sous forme de JDBC-ODBC bridge. La question devient alors "pourquoi le besoin de JDBC"? On peut répondre à cette question par plusieurs réponses : #ODBC n'est pas approprié pour être utilisé directement à partir de, car il est écrit en C, et les appels du code natif C à partir de pose des problèmes de sécurité, de robustesse et de probabilité automatique des applications. 62 RIST l'ol. 7 N 02 Année 1997

ODBC est difficile à apprendre, il combine des caractéristiques aussi simples qui avancées et possède des options trop complexes même s'il s'agit de simples requêtes. Une API tel que JDBC est nécessaire dans le but d'assurer une solution "pure java". Les fonctionnalités de JDBC JDBC utilise une simple hiérarchie de classes pour les objets de base de données. Ces classes sont contenues dans le package java.sql.* à partir de la version 1.1 de JDK. JDBC n'est en réalité qu'une spécification c'est à dire que ses classes ne sont que des descriptions de classes et de méthodes qui doivent être surdéfinies pour produire un driver JDBC. Une session d'une base de données, à partir de la connexion jusqu'à la disconnexion, se fait de la manière suivante : Etablir une connexion Il existe trois classes nécessaires pour établir une connexion à une base de données..sql.drivermanager : pouvant supporter des drivers multiples pour se connecter à différentes bases de données. Sa fonction principale est de charger le driver le plus approprié à une source de données..sql.connection : représente l'objet Connection..sql.DatabaseMctaData : retourne des informations sur la connexion et des informations nécessaires sur la base de données. Exécuter des commandes SQL Après connexion à une base de données, le exécutera un ensemble de requêtes SQL (sélection, insertion, update ou delete). Deux classes sont nécessaires pour exécuter ces commandes SQL sur une base de données..sql.statment : Compose et exécute un ensemble de requêtes SQL..sql.ResultSet : objet contenant les résultats des requêtes. RIST Vot.7N 02 Année 1997 63

Disconnexion et traitement des résultats Architectures de JDBC JDBC supporte deux architectures pour l'accès aux bases de données. 1. Architecture 2 tiers 2. Architecture 3 tiers Architecture 2 Tiers Application JDBC HTTP Client SGBC Base de Données Application () i i i ' SGBC Base de Données Comment JDBC a été implémenté par les constructeurs? Les implémentations de l'architecture 2 tiers 1. Driver JDBC-ODBC bridge et ODBC Actuellement, la plupart des implémentations de l'api JDBC qui sont disponibles reposent sur l'api ODBC et le driver JDBC-ODBC bridge. Dans ce cas, ODBC agit comme une couche intermédiaire entre le driver JDBC et les librairies du constructeur du SGBD. L'avantage de cette approche est ressenti lorsqu'il s'agit d'une application nécessitant l'accès à une base de données pour laquelle il n'existe pas un driver JDBC (pour le moment). 64 RIST Vol. 7 N 02 Année 1997

Client ' O flp D ^ B c "^ LIBRARY F=^ gg fcl SGDB 2. Drivers JDBC utilisant les librairies du SGBD Dans cette architecture, l'accès à une base de données se fait par l'intermédiaire de librairies fournies avec le SGBD. Ces API natives sont appelées des driverspartiellement-java, elles sont généralement écrites en C ou en C++. L'implémentation de JDBC doit utiliser une couche de C ou de C++ pour pouvoir invoquer les routines des librairies. Par conséquent, chaque doit avoir une copie locale de librairie.dll contenant la couche C/C++ permettant de communiquer avec ces librairies. Ces drivers JDBC utilisant des méthodes natives ne peuvent pas pour le moment être utilisés dans le cas des applets pour des raisons de sécurité. Client C LIBRARY "SGD 3. Drivers -only Les drivers de cette catégorie sont appelés des drivers-pures-java qui ne font aucun appel aux librairies de SGBD. Client RIST Vol. 7 N 02Année 1997 65

Les implémentations de l'architecture 3 tiers l. Accès JDBC via un serveur HTTP intermédiaire L'accès à une base de données se fait par l'intermédiaire d'un serveur HTTP acceptant des requêtes au port 80 pour les diriger vers le SGBD. Avantage : facile à implémenter car il ne suffit d'écrire que le programme (applet). Inconvénient : problème de performance (temps de réponse trop lent) vu que le serveur HTTP est désigné pour servir des pages Web plutôt qu'un serveur de bases de données intermédiaires. HTTP ^SGD ^ J intermédiaire 2. Accès JDBC via un serveur C++ et ODBC Dans ce cas le serveur intermédiaire est écrit en C ou en C++ nécessitant l'utilisation d'odbc. TC P/IP C++ ODBC SGI) intermédiaire 66 RIST Vol. 7 N 02 Année 1997

3. Accès JDBC via un serveur intermédiaire Dans cette architecture le serveur intermédiaire est entièrement écrit en. C'est la solution idéale dans le cas des applets. J il Vil JDBC intermédiaire Conclusion JDBC est une API de bas niveau permettant d'interroger très facilement et de manière virtuelle n'importe quelle base de données relationnelle. De même, il n'est pas nécessaire d'écrire un programme pour accéder à une base de données Sybase, un autre programme pour accéder à une base de données Oracle et un autre pour accéder à une base de données Informix, etc. Un seul programme est écrit une seule fois et pouvant s'exécuter partout. JDBC étend les possibilités de. En effet, il est très possible de publier une page Web contenant une applet qui utilise de l'information acquise à partir d'une base de données distante. Ou par exemple, dans le cas d'une entreprise, elle peut utiliser JDBC pour connecter tous ses employés (même s'ils sont sur des machines différentes) à une ou plusieurs bases de données internes via un Intranet. De même, pour les administrateurs de bases de données, grâce à et JDBC, ils peuvent propager de l'information d'une manière facile et économique : Le temps de développement pour de nouvelles applications est nettement court, l'installation et le contrôle des différentes versions sont plus simples. RIST Val.7 N 02 Année 1997 67

L^ii^'"''*'*'"'' Références Bibliographiques I "Choosinga Database Connectivity driver", 1997 http://www.weblogic.com/vvhitcpapers/jdbc.html "JDBC Guide : Getting Started", Mars 1997 JDK1.1.3 Documentation "The JDBC connection" David S. Linthicom, Octobre 1996 DBMS "-boost your databases" Gutierrez, Dan D., Novembre 1996 Data Based Advisor " database class libraries" Ewbank, Kay, Mai 1997 DBMS 68 RIST Vol. 7 N 02 Année 1997