Byla vydaná verze databázového systému AlaSQL 4.0, určená pro použití ve webových aplikacích v prohlížeči, v mobilních aplikacích založených na webových technologiích nebo na serverových zpracovatelích založených na platformě Node.js. Databázový systém je formou JavaScriptové knihovny a umožňuje použití jazyka SQL. Podporuje ukládání dat v tradičních relačních tabulkách nebo ve formě vložených JSON struktur, které nevyžadují přísné definice schémat pro ukládání. Pro manipulaci s daty z příkazového řádku je k dispozici nástroj alasql. Kód projektu je napsán v JavaScriptu a je distribuován pod licencí MIT.
AlaSQL podporuje většinu jazyka SQL-99, a navíc nabízí rozšíření pro zpracování v stylu NoSQL (bez definice schématu pro ukládání) a manipulaci s grafy. V SQL dotazech lze provádět operace spojení (JOIN), seskupování (GROUP), unie (UNION), používat poddotazy a výrazy typu ANY, ALL a IN, aplikovat funkce ROLLUP(), CUBE() a GROUPING SETS(). Existuje omezená podpora transakcí. Podporuje se definice uživatelských funkcí, které lze používat v SQL dotazech. Pro rychlé volání funkcí a SQL výrazů mohou být zkompilovány (analog SQL příkazu PREPARE).
Databázový systém AlaSQL je navržen pro použití paradigmy ETL (Extract, Transform, Load) a manipulaci s daty ve formě importu/zpracování/exportu. Pro ukládání, export a import mohou být použity formáty localStorage, IndexedDB, CSV, TAB, TXT, JSON, SQLite a Excel (.xls a .xlsx), přičemž se předpokládá, že lze přímo provádět dotazy na data uložená v uvedených formátech, nebo importovat a exportovat data. Také je možné provádět operaci SELECT nad jakýmikoli daty v objektech JavaScript.
Knihovna je navržena pro rychlé zpracování dat v paměti pro aplikace obchodní analytiky a podporuje optimalizace, jako je mezipaměť dotazů ve formě zkompilovaných funkcí, proaktivní indexace sloučení tabulek a filtrování výrazů WHERE před operacemi sloučení. V porovnání s jinými podobnými projekty, AlaSQL ukázala být třikrát rychlejší než SQL.js při vybírání s operacemi SUM, JOIN a GROUP BY, dvakrát rychlejší než Linq při použití GROUP BY a přibližně na stejné úrovni jako API WebSQL (vrstva nad SQLite, která bude brzy odstraněna z prohlížeče Chrome) při vyhledávání s operacemi SUM, JOIN a GROUP BY.
Zdroj: opennet.ru
