This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Lanzamiento inicial | 2001 (2001) |
---|---|
Versión estable | 2.7.2 / 1 de junio de 2023 (1 June 2023) |
Repositorio |
|
Escrito en | Java |
Sistema operativo | Multiplataforma |
Tamaño | 10,8 MB (archivo ZIP 2.6.0) [1] |
Tipo | Sistema de gestión de bases de datos relacionales (RDBMS) |
Licencia | BSD |
Sitio web | es:hsqldb.org |
HSQLDB ( H yper SQL Database ) es un sistema de gestión de bases de datos relacionales escrito en Java . Tiene un controlador JDBC y es compatible con un gran subconjunto de los estándares SQL-92 , SQL:2008 , SQL:2011 y SQL:2016 . [2] Ofrece un motor de base de datos rápido, [3] pequeño (alrededor de 1300 kilobytes en la versión 2.2) que ofrece tablas tanto en memoria como en disco. Están disponibles tanto los modos integrado como de servidor.
Además, incluye herramientas como un servidor web mínimo , herramientas de gestión de línea de comandos y de interfaz gráfica de usuario (pueden ejecutarse como applets) y una serie de ejemplos de demostración. Puede ejecutarse en entornos de ejecución de Java a partir de la versión 1.1, incluidas implementaciones de Java gratuitas como Kaffe .
HSQLDB está disponible bajo una licencia BSD . Se utiliza como base de datos y motor de persistencia en muchos proyectos de software de código abierto , como los descendientes de OpenOffice.org Base (es decir, Apache OpenOffice Base , LibreOffice Base , etc.) y el cliente de videoconferencia y VoIP Jitsi desde la versión 2.6. [4] También se utiliza en productos comerciales, como Mathematica e InstallAnywhere (a partir de la versión 8.0). [5]
La versión 2.0 de HSQLDB tiene tres modos de control de transacciones. Admite niveles de aislamiento de transacciones serializables y confirmadas de lectura con bloqueos de nivel de tabla o con control de concurrencia multiversión (MVCC), o una combinación de bloqueos y MVCC. La versión 1.8.1 admite únicamente el nivel de aislamiento de transacciones 0 (lectura no confirmada). [6]
HSQLDB tiene dos tipos de tablas principales que se utilizan para el almacenamiento duradero de datos de lectura y escritura, es decir, si una transacción se ha confirmado correctamente, se garantiza que los datos sobrevivirán a una falla del sistema y mantendrán su integridad.
El tipo de MEMORIA predeterminado almacena todos los cambios de datos en el disco en forma de secuencia de comandos SQL . Durante el arranque del motor, se ejecutan estos comandos y los datos se reconstruyen en la memoria.
Otro tipo de tabla es CACHED, que permite almacenar más datos, a costa de un rendimiento más lento. El motor HSQLDB las carga solo parcialmente y sincroniza los datos con el disco en las confirmaciones de transacciones. Sin embargo, el motor siempre carga en la memoria todas las filas afectadas durante una actualización. Esto hace que las actualizaciones muy grandes sean imposibles sin dividir el trabajo en partes más pequeñas. [7]
Otros tipos de tablas permiten acceder a archivos de valores separados por comas (CSV). Estas tablas pueden participar, por ejemplo, en consultas con JOIN y simplificar el procesamiento de hojas de cálculo y el almacenamiento de datos no duraderos en memoria de lectura y escritura.
HSQLDB 2.0 admite todas las características principales y muchas características opcionales de SQL:2008 . Las características avanzadas incluyen procedimientos y funciones SQL definidos por el usuario, esquemas, intervalos de fecha y hora, vistas actualizables, matrices, lobs, uniones laterales y completas y operaciones de conjuntos . También se admiten muchas funciones no estándar, como TO_CHAR y DECODE. Las extensiones de SQL estándar incluyen funciones agregadas definidas por el usuario .
Desde 2001 se han publicado varias versiones de HSQLDB. Las primeras versiones se basaban en el motor de base de datos HypersonicSQL, que ya no se fabrica. La versión 2.0, publicada en 2010, está compuesta principalmente por código nuevo, escrito para cumplir con las especificaciones SQL estándar y JDBC 4. [8]
La versión 2.3.2 (lanzada en 2014) es totalmente multiproceso y admite modelos de control de transacciones MVCC (control de concurrencia multiversión) y bloqueo de dos fases de alto rendimiento .