geo michaelm
Accueil du site > rubrique 6 > La base de données H2

La base de données H2

samedi 25 septembre 2010, par michaelm

H2 est un système de gestion de base de données développé en java par Thomas Mueller.

T. Mueller n’en est pas à son premier coup d’essai puisqu’il est à l’origine du développement d’HSQLDB, le SGBD aujourd’hui inclus dans OpenOffice.

Principales caractéristiques d’H2

- Très rapide, gratuit pour tous, code source inclus
- Ecrit en java ; compilable avec GCJ (Linux)
- Trois modes : embarqué, serveur et cluster
- API JDBC et ODBC (partiel) ; application web cliente

Les autres logiciels de même catégorie

En java :
- Derby (ou Java DB, maintenant inclus dans le SDK)
- HSQLDB

En C ou C++
- Firebird
- SQLite (et son extension spatiale SpatiaLite)

Quelques points particuliers d’H2

La gestion de tables liées : H2 est capable d’intégrer dans une base de données des tables distantes (hébergées par un autre sgbd, par exemple PostgreSQL). CREATE LINKED TABLE PUBLIC.MATABLE( 'org.postgresql.Driver', 'jdbc:postgresql:postgis', 'user', 'password', 'public.PGTABLE') ;

L’interrogation d’une table distante se fait de manière transparente, comme s’il s’agissait d’une table locale.

Malheureusement, l’interrogation d’une table distante semble assez consommatrice en temps (4 fois plus lent qu’une table locale) et surtout en mémoire : l’interrogation d’une trop grosse table ne se termine jamais et ne renvoie aucun message d’erreur, obligeant à tuer le processus.

Les indexes multi-dimensionels H2 ne possède pas d’indexes spatiaux au sens habituel (ni Quad-tree, ni R-tree ni Gist), mais un indexe multidimensionnel basé sur l’entrelacement des données. Sur cette page, D. Blasby discute de l’intégration d’indexes spatiaux dans H2. En 2009, Peter Yuill crée le projet Hatbox sur sourceforge. HatBox permet d’ajouter un index spatial (R-Tree) à H2 ou Derby. Ce projet fera l’objet d’un prochain article.

Ajout de fonctions spatiales

D. Blasby, un développeur à l’origine du désormais célèbre module spatial PostGIS, explique dans un article->http://docs.codehaus.org/display/GE... comment adapter une base de données quelconque en lui ajoutant des fonctions spatiales. Adaptation pour H2

E. Bocher, du projet SIGLE, a implémenté les fonctions spatiales standard dans H2 en suivant l’idée originale de D. Blasby : H2 spatial

Le projet JASPA a publié en juillet 2010 la première version alpha d’un projet 100% java permettant d’ajouter à H2 ou à PostgreSQL des fonctionnalités équivalentes à celles offertes par PostGIS. Le projet n’ajoute toutefois pas la gestion des indexes spatiaux à la base de données H2 qui n’en a pas.

5 Messages de forum

  • La base de données H2 1er octobre 2012 15:15, par soidri

    Tout d’abord je remercie l’auteur de cet article qui selon moi est enrichissant .
    cependant j’aimerais bien connaitre comment intégrer H2 dans une application java les étapes surtout .
    vous remerciant d’avance veuillez accepter mes salutation !

    • La base de données H2 30 novembre 2012 12:56

      Il suffit de déclarer la bibliothèque H2 dans le projet Java.
      Ensuite la déclaration de la base se fait de la façon suivante :
      J’utilise une classe dédiée (AccesDonneesBase) avec un constructeur
      public AccesDonneesBase (String chemRepDonnees)

      // Mémoriser les paramètres
      this.nomClassePiloteJDBC = NOM_CLASSE_PILOTE_JBDC ;
      this.urlBase = PROTOCOLE_BASE
      + new File(chemRepDonnees).getAbsolutePath().replace (File.separator, "/")
      + "/"
      + NOM_BASE
      + " ;"
      + OPTIONS_BASE ;
      this.nomUtilisateur = NOM_UTILISATEUR ;
      this.motDePasse = MOT_DE_PASSE ;

      // Vérifier que le pilote JDBC est bien disponible
      try

      Class.forName (this.nomClassePiloteJDBC) ;

      catch (ClassNotFoundException e)

      throw new RuntimeException ("Pilote JDBC non trouvé : " + this.nomClassePiloteJDBC) ;

      // Vérifier que la connexion à la base est bien initialisée
      try

      creerConnexion (this.urlBase, this.nomUtilisateur, this.motDePasse) ;

      catch (SQLException e)

      throw new ExceptionConnexionBaseDonnees ("Impossible de créer la connexion à la base de données", e) ;

      // Créee la connexion à la base
      protected static synchronized void creerConnexion (String urlBase, String nomUtilisateur, String motDePasse) throws SQLException

      if (connexionCourante == null)
      connexionCourante = DriverManager.getConnection (urlBase, nomUtilisateur, motDePasse) ;

  • La base de données H2 23 octobre 2013 09:19, par ad24833DET

    Der junge Hund is, der nicht geht zu sein, zu be so besorgt wenn it, den is in einer vertrauten Stelle as als es ist, versorgt für durch acquainted Gesichter. ?.Es gibt viele Filipinoeinzel options, um from, und Sie werden bestimmt have ein Filipinoeinzelzimmer that, ist zu be richtig für Sie. ?.A superb lawyer würde Ihnen Fragen stellen in zu betreffen, unterstützt of louis vuitton online shop der Fall that ist vielleicht erzählt zu das situations das Umgeben des Mißgeschickes..

  • La base de données H2 23 octobre 2013 09:46, par ad21142cjp

    Für customized Kleider, Sie haben dazu take ein position die Gebühren des Stoffes als well..Your number sieben stellen dar das ten chakras oder sieben Farben of Ihr Regenbogen. ?.Essentially der most extravagant besondere befehlen Sie, Stücke waren extra gemachte Brust legte ein maple und Ebenholzholz and even louis vuitton tasche gedeckt in geschmeidig leatherette das ungefähr $21, 000, kostete..

  • La base de données H2 23 octobre 2013 10:41, par ad24615i9F

    It’s, das a die Pflicht von Elternteil zu aim to louis vuitton taschen machen Sie, sie träumt become ein erkannter reality..Also, es gibt Kleid booties ", Koppelstiefel, West as gesunder as Cowboystiefel..In der Ereignis that er ist streng das inside Ihr eigener home Hausschuhart betrachtet in account eine Einschätzung durch all the Produzent neuer UGG Graduate-Hausschuh with den Wein benutzt, ist gutaussehender Kordsamt uppers. ?.

SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0