database00

El software está en constante revisión y siempre hay quien busca nuevas ideas sobre los temas que parecieran ya agotados incluso. Este es el caso de Lovefield, una biblioteca de código abierto escrita en Javascript que permite hacer consultas sobre una base de datos, orientada a los desarrolladores web. El código está disponible en GitHub (ver referencias).

Lovefield es un motor de consultas (queries) de bases de datos, usando IndexedDB como backend, lo que da al sistema un toque declarativo tipo SQL pero que parece ser más fácil de aprender para los desarrolladores. Se consulta la base de datos llamando a funciones en Javascript,. La biblioteca ofrece soporte cruzado para Chrome, Firefox e Internet Explorer 10.

El desarrollo para quienes trabajan en la web resulta interesante. Los desarrolladores pueden hacer uso del almacenamiento web (Web Storage), pero éste está limitado a un valor por llave. Una alternativa es usar Indexed DB, pero éste no ofrece las características típicas de las bases de datos relacionales. Las primeras versiones de Google Chrome soportaban el API del W3C WebSQL Database, pero el trabajo en este sentido se detuvo porque todas las implementaciones que usaban WebSQL usaban SQLite como backend y el W3C dijo que “necesitamos muchas implementaciones independientes para proceder a una estandarización”.

El lenguaje de Lovefield es limitado. Es de hecho un subconjunto de SQL que permite seleccionar, escribir, insertar, actualizar y borrar las consultas. Provee atomicidad para las transacciones. Se puede hacer uso de constantes de integridad usando llaves primarias, valores únicos y especificar cuando se tienen columnas nulas o no. Los operadores incluidos son count, min, max, sum, avg, stddev, y distinct.

Google dice que Lovefield incluye un optimizador de consultas que evaluarán diferentes planes de ejecución y eligirá el que prometa más. En el blog de Google Demetrios Papadopoulos del equipo de Chrome dice: “Estamos confiados de que el desempeño actual satisficirá a la mayoría de los casos de los usuarios (menos de 50 mil filas) pero planeamos mejorar el desempeño para grandes bases de datos en el futuro”.

Papadopoulos también indica que Google está trabajando en dar más características avanzadas tales como llaves foráneas, actualizaciones y eliminación en cascada, unión de tablas, entre otras, para el futuro cercano. No hay planes para añadir características avanzadas en SQL como vistas, cursores, disparadores y subconsultas.

De acuerdo al blog, Lovefield es usado ya en un par de servicios de Google, incluyendo la app de Chrome Google Play Movies. El equipo espera que liberando la biblioteca a otros desarrolladores, estos serán capaces de desarrollar aplicaciones poderosas y podrían atraer el interés y la retroalimentación de los propios desarrolladores.  La retroalimentación es importante porque será quien guíe el futuro de este desarrollo.

Referencias:

Lovefield
Lovefield en GitHub
i-programmer

Enlaces Patrocinados
Comentarios