lunes, 21 de junio de 2010

H2: una base de datos matona

En esta ocasión vamos a darle una oportunidad a una base de datos muy poco conocida, pero que tiene un potencial bastante grande. H2 es una base de datos relacional, que poco tiene que envidiar a sus hermanas mayores, aunque hay que tener en cuenta que en entornos de alta disponibilidad, con una una operatividad crítica, será recomendable una base de datos más especializada, como MySQL, PostgreSQL, SQL Server u Oracle.

Está escrita íntegramente en Java. Pero este aspecto no nos tiene que echar para atrás, pues es muy rápida gracias a su optimización basada en costes que, en muchos aspectos, supera a las bases de datos más populares. Además, al estar escrito en Java, se ejecuta sin problemas en cualquier sistema operativo.

Lo primero que sorprende es su tamaño, apenas 5MB, en el que el fichero jar apenas ocupa 1MB. En estos 5MB se incluye también un servidor de aplicaciones con una consola web muy rica para poder administrar la base de datos, y poder ejecutar consultas. Dicha consola incluye autocompletado y ayuda completa.

H2 opera en dos modos: embebido y “en memoria”. El modo embebido es el tradicional, en el que el servidor gestiona los datos en archivos, teniendo una pequeña parte en memoria. El modo “en memoria”, aloja todos los datos en memoria, con lo que se consigue una velocidad increíble en el acceso a los datos. También es posible combinar los dos modos.

Al estar escrito en Java puro, la integración con aplicaciones escritas en Java se hace de forma natural y sencilla. Evidentemente, utiliza una API JDBC, pero también soporta ODBC, por lo que puede ser utilizada en otros lenguajes de programación y otras aplicaciones, tales como Office, Business Intelligence, etc.

Otras características a reseñar son:
- Aíslamiento de trasacciones
- Encriptación de la base de datos
- SQL estándar
- Búsqueda de texto completo
- Concurrencia multiversión
- Plan explicativo de la ejecución de operaciones
- Clustering
- Tablas enlazadas
- Tipos de datos definidos por el usuario
- Bloqueo a nivel de fila y de tabla
- Seguridad basada en roles
- Secuencias
- Resultsets actualizables
- Información de esquema
- Columnas computadas
- Funciones agregadas personalizadas
- Limit y Offset
- Tablas temporales
- Alto rendimiento
- Triggers mediante clases Java
- Procedimientos almacenados en Java
- Almacenamiento de objetos grandes (CLOB y BLOB)
- Commit en dos fases
- Acceso desde .NET mediante JDBC (IKVM.NET) o mediante ADO.NET
- ACID
- Ejecución como servicio Windows
- Incluye herramienta de recuperación
- Soporte para conexiones seguras (SSL/TLS)

A todo lo anterior cabe añadir que esta base de datos cuenta con una documentación muy detallada y sencilla, en la que nunca estaremos perdidos.

Los casos de uso más frecuentes son aplicaciones de escritorio y aplicaciones Web en las que no se requiera de una enorme base de datos. Para páginas web en las que imperen las consultas sobre las actualizaciones, también es un escenario ideal. Para aplicaciones pequeñas también es recomendable, en lugar utilizar bases de datos pesadas que consuman muchos recursos innecesariamente.

Enlaces:
Página principal de H2
Tutorial
Descarga

miércoles, 16 de junio de 2010

La frase del día

A Limewire le reclaman las discográficas 1.000 millones de dólares, a BP el gobierno 69 millones. Debe ser porque compartir música es 14,5 veces más dañino que la catástrofe de un vertido de crudo. @tjhilton

miércoles, 2 de junio de 2010

MongoDB y la NoSQL Summer Madrid 2010

Durante los meses de Junio, Julio, Agosto y Septiembre tendrá lugar charlas sobre las bases de datos NoSQL en ciudades de todo el planeta. En Madrid tendremos la oportunidad de poder compartir momentos interesantes, donde podremos discutir sobre el movimiento NoSQL, conocer más a fondo este escenario y diferentes bases de datos, tales como MongoDB (entre otras).

Aún no tenemos fechas para los eventos, pero os iremos informando en esta comunidad y desde el site:

http://nosqlsummer.org/city/madrid

A medida que vayamos organizando las charlas os informaremos en más detalle de las agendas, de los participantes y de los temas.

Os esperamos!!!