H2 (base de données)

système de gestion de base de données relationnelle écrit en Java.
H2
Description de l'image H2 logo.png.

Informations
Créateur Thomas Mueller (d)Voir et modifier les données sur Wikidata
Première version [1]Voir et modifier les données sur Wikidata
Dernière version 2.2.224 ()[2]Voir et modifier les données sur Wikidata
Dépôt github.com/h2database/h2databaseVoir et modifier les données sur Wikidata
Écrit en JavaVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Environnement Machine virtuelle JavaVoir et modifier les données sur Wikidata
Type Système de gestion de base de données
Projet informatique (d)Voir et modifier les données sur Wikidata
Licence Eclipse Public License 1.0 et MPL-2.0Voir et modifier les données sur Wikidata
Site web www.h2database.comVoir et modifier les données sur Wikidata

H2 est un système de gestion de base de données relationnelles écrit en Java. Il peut être intégré à une application Java ou bien fonctionner en mode client-serveur[3]. Son fichier jar est petit : environ 1 Mo[4].

C'est un logiciel open source distribué en licences Mozilla Public License (version modifiée[5]) ou Eclipse Public License.

Description modifier

H2 supporte un sous-ensemble du standard SQL[6]. Il propose des interfaces de programmation (APIs) SQL et JDBC ; toutefois il peut aussi utiliser le pilote ODBC PostgreSQL et se comporter en serveur PostgreSQL[7].

Les tables peuvent être créées en mémoire vive ou sur disque. Elles peuvent être persistantes ou temporaires. Les index sont des tables de hachage et des arbres pour les tables en mémoire, et des arbres B pour les tables sur disque[8]. Toutes les manipulations de données sont transactionnelles. Le verrouillage au niveau table, ainsi que la concurrence multiversion sont implémentés. Le protocole de Commit en 2 phases est aussi supporté, mais les APIs standard de transactions distribuées ne sont pas implémentées. La sécurité est assurée par : contrôle d'accès basé sur les rôles, hachage SHA-256 des mots de passe, chiffrement des données avec AES ou XTEA. Les connexions SSL / TLS sont supportées en mode client-serveur ainsi que via l'application en ligne de commande (console)[9].

Deux systèmes de recherche plein texte sont inclus : une implémentation native, et une autre utilisant Apache Lucene[10].

La base de données se protège des injections SQL avec l'utilisation d'expressions avec paramètres formels. Cette fonctionnalité est appelée disabling literals (désactivation des valeurs littérales)[11].

Depuis la version 1.1.111, la base en mémoire H2 peut tourner au sein de Google App Engine[12].

Utilitaires modifier

Sont inclus :

  • Un serveur web intégré
  • Une console web
  • Des outils en ligne de commande pour
    • démarrer ou arrêter un serveur
    • sauvegarder ou restaurer une base[13]
  • Une console en ligne de commande[14].

Historique modifier

Le développement de H2 a débuté en , et fut publié en . L'auteur du moteur est Thomas Mueller. Il a également développé le SGBD Java Hypersonic SQL[15] avant d’arrêter son développement qui a été repris par le HSQLDB Group[16]. Le nom H2 signifie Hypersonic 2 ; toutefois H2 a été écrit à partir de zéro[17],[18] et n'a pas de code commun avec Hypersonic ou HSQLDB.

Voir aussi modifier

Articles connexes modifier

Références modifier

  1. « https://www.h2database.com/html/history.html »
  2. « Release 2.2.224 », (consulté le )
  3. (en) « Connection Modes », h2database.com
  4. (en) « Jar File Download », h2database.com
  5. La modification de la MPL consiste en un en-tête de fichier plus court, et le nom de la licence : voir (en) « License », h2database.com
  6. (en) « SQL Grammar », h2database.com
  7. (en) « ODBC Driver », h2database.com
  8. (en) « Creating tables », h2database.com
  9. (en) « Security Protocols », h2database.com
  10. (en) « Fulltext Search », h2database.com
  11. (en) « Protection against SQL Injection », h2database.com
  12. (en) « H2 Database on GAE », gaevfs
  13. (en) « Command Line Tools », h2database.com
  14. (en) « The Shell Tool », h2database.com
  15. (en) [1]
  16. (en) « History »(Archive.orgWikiwixArchive.isGoogleQue faire ?)
  17. (en) « History of the H2 Database Engine », h2database.com
  18. (en) « Write Your Own Database, Again », thecodist.com

Liens externes modifier