A nova versão do SGBD AlaSQL 4.0 está disponível, destinada ao uso em aplicativos web em navegadores, em aplicativos móveis baseados em tecnologias web ou em processadores de servidor baseados na plataforma Node.js. O SGBD é apresentado como uma biblioteca JavaScript e permite o uso da linguagem SQL. Suporta o armazenamento de dados em tabelas relacionais tradicionais ou na forma de estruturas JSON aninhadas, que não exigem uma definição rígida do esquema de armazenamento. Para manipulação de dados a partir da linha de comando, está disponível a ferramenta alasql. O código do projeto é escrito em JavaScript e é distribuído sob a licença MIT.
No AlaSQL, a maior parte da linguagem SQL-99 é suportada, além de fornecer extensões para manipulação no estilo NoSQL (sem definição de esquema de armazenamento) e manipulação de grafos. É possível realizar operações de mesclagem (JOIN), agrupamento (GROUP), união (UNION) em consultas SQL, usar subconsultas e expressões do tipo ANY, ALL e IN, além de aplicar funções como ROLLUP(), CUBE() e GROUPING SETS(). Existe suporte limitado a transações. É possível definir funções personalizadas que podem ser utilizadas em consultas SQL. Para chamada rápida, funções e expressões SQL podem ser compiladas (semelhante ao operador SQL PREPARE).
O SGBD AlaSQL foi projetado para usar a paradigmas ETL (Extract, Transform, Load) e manipulação de dados na forma de importação/processamento/exportação. Para armazenamento, exportação e importação, podem ser utilizados formatos como localStorage, IndexedDB, CSV, TAB, TXT, JSON, SQLite e Excel (.xls e .xlsx), sendo que é assumido que é possível realizar consultas diretamente nos dados armazenados nos formatos mencionados, ou importar e exportar dados. Também é possível executar operações SELECT sobre quaisquer dados em objetos JavaScript.
A biblioteca foi projetada para um processamento rápido de dados na memória para aplicativos de análise de negócios e suporta otimizações como cache de consultas na forma de funções compiladas, indexação preditiva de junções de tabelas e filtragem de expressões WHERE antes das operações de junção. Em comparação com outros projetos semelhantes, a AlaSQL se mostrou três vezes mais rápida que o SQL.js em operações de seleção com SUM, JOIN e GROUP BY, duas vezes mais rápida que o Linq ao usar GROUP BY, e aproximadamente no mesmo nível do API WebSQL (uma camada sobre o SQLite que será removida em breve do Chrome) nas operações de seleção com SUM, JOIN e GROUP BY.
Fonte: opennet.ru
