H2 es un sistema de gestión de bases de datos relacionales escrito en Java . Puede utilizarse como base de datos integrada en aplicaciones Java o ejecutarse en modo cliente-servidor . [ 1 ]
El software está disponible como software de código abierto bajo la Licencia Pública de Mozilla 2.0 o la Licencia Pública de Eclipse original .
Historia
El desarrollo del motor de base de datos H2 comenzó en mayo de 2004 y se publicó por primera vez en diciembre de 2005. El motor de base de datos fue escrito por Thomas Mueller, quien también desarrolló el motor de base de datos Java Hypersonic SQL. [ 2 ] En 2001, el proyecto Hypersonic SQL se detuvo y se formó el Grupo HSQLDB para continuar trabajando en el código de Hypersonic SQL. El nombre H2 significa Hypersonic 2; sin embargo, H2 no comparte código con Hypersonic SQL ni con HSQLDB. H2 se construyó desde cero. [ 3 ]
La versión 2.0.x se lanzó en enero de 2022.
Características
Se admite un subconjunto del estándar SQL (Structured Query Language). Las principales API de programación son SQL y JDBC ; sin embargo, la base de datos también admite el uso del controlador ODBC de PostgreSQL , funcionando como un servidor PostgreSQL. [ 4 ]
Es posible crear tablas tanto en memoria como en disco. Las tablas pueden ser persistentes o temporales. Los tipos de índice son tabla hash y árbol para tablas en memoria, y árbol B para tablas en disco. Todas las operaciones de manipulación de datos son transaccionales . Se implementan el bloqueo a nivel de tabla y el control de concurrencia multiversión . También se admite el protocolo de confirmación en dos fases , pero no se implementa una API estándar para transacciones distribuidas.
Las características de seguridad de la base de datos incluyen: derechos de acceso basados en roles , cifrado de contraseñas mediante SHA-256 y de datos mediante AES o el algoritmo de cifrado XTEA . Las funciones criptográficas también están disponibles como funciones integradas en la base de datos. Se admiten conexiones SSL / TLS tanto en el modo cliente-servidor como al usar la aplicación de consola.
La base de datos admite protección contra la inyección SQL al exigir el uso de sentencias parametrizadas. En H2, esta característica se denomina "deshabilitación de literales". [ 5 ]
Se incluyen dos implementaciones de búsqueda de texto completo : una implementación nativa y otra que utiliza Lucene .
Se implementa una forma sencilla de alta disponibilidad: cuando se utiliza en modo cliente-servidor, el motor de base de datos admite la conmutación por error en caliente (lo que se conoce comúnmente como clustering). Sin embargo, el modo clustering debe habilitarse manualmente después de un fallo. [ 6 ]
Desde la versión 1.1.111, la base de datos en memoria H2 puede ejecutarse dentro de Google App Engine . [ 7 ]
Véase también
Referencias
- ↑ "Presentación y uso del motor de base de datos H2" . 6 de agosto de 2010.
- ↑ Página del proyecto Hypersonic SQL en SourceForge
- ↑ "Escribe tu propia base de datos, otra vez" . thecodist.com . Archivado del original el 7 de marzo de 2019. Consultado el 27 de abril de 2011 .
- ↑ "H2 Database admite el controlador ODBC de PostgreSQL" . Archivado del original el 9 de diciembre de 2016. Consultado el 24 de agosto de 2010 .
- ↑ "Inyecciones SQL: Cómo no quedarse atascado" . Archivado del original el 16 de julio de 2011. Consultado el 24 de agosto de 2010 .
- ↑ "Agrupamiento H2" . Archivado del original el 24 de septiembre de 2010.
- ↑ "Base de datos H2 en GAE" . gaevfs.
Enlaces externos
- Software libre multiplataforma
- Bases de datos integradas
- Bibliotecas informáticas gratuitas
- Sistemas de gestión de bases de datos gratuitos
- Bibliotecas de Java (lenguaje de programación)
- Software de gestión de bases de datos relacionales para Linux
- Sistemas de gestión de bases de datos relacionales
- Sistemas de gestión de bases de datos sin servidor
- Software que utiliza la Licencia Pública de Mozilla.