È disponibile la versione del DBMS AlaSQL 4.0, destinata all'uso in applicazioni web nel browser, in applicazioni mobili basate su tecnologie web o in gestori server basati sulla piattaforma Node.js. Il DBMS è presentato come una libreria JavaScript e consente l'uso del linguaggio SQL. È supportata la memorizzazione dei dati in tradizionali tabelle relazionali o sotto forma di strutture JSON annidate, senza richiedere una definizione rigida dello schema di memorizzazione. Per la manipolazione dei dati dalla riga di comando è fornuto uno strumento chiamato alasql. Il codice del progetto è scritto in JavaScript e distribuito con licenza MIT.
In AlaSQL è supportata la maggior parte del linguaggio SQL-99, e sono forniti ampliamenti per la manipolazione in stile NoSQL (senza definizione dello schema di memorizzazione) e per la manipolazione dei grafi. Nelle query SQL è possibile eseguire operazioni di join, grouping, union, utilizzare subquery e espressioni come ANY, ALL e IN, applicare funzioni ROLLUP(), CUBE() e GROUPING SETS(). C'è un supporto limitato per le transazioni. È supportata la definizione di funzioni personalizzate che possono essere utilizzate nelle query SQL. Per una rapida chiamata, le funzioni e le espressioni SQL possono essere compilate (simile all'operatore SQL PREPARE).
Il DBMS AlaSQL è progettato per utilizzare la filosofia ETL (Extract, Transform, Load) e per la manipolazione dei dati nella forma importazione/processamento/esportazione. Per la memorizzazione, esportazione e importazione possono essere utilizzati formati come localStorage, IndexedDB, CSV, TAB, TXT, JSON, SQLite e Excel (.xls e .xlsx); si presuppone che siano possibili query dirette sui dati memorizzati nei formati indicati o sull'importazione e l'esportazione dei dati. È inoltre possibile eseguire operazioni SELECT su qualsiasi dato negli oggetti JavaScript.
La libreria è inizialmente progettata per un'elaborazione rapida dei dati in memoria per applicazioni di business analytics e supporta ottimizzazioni come la memorizzazione nella cache delle richieste sotto forma di funzioni compilate, l'indicizzazione predittiva delle tabelle unite e il filtraggio delle espressioni WHERE prima delle operazioni di unione. Rispetto ad altri progetti simili, AlaSQL si è dimostrata tre volte più veloce di SQL.js nelle query con operazioni di SUM, JOIN e GROUP BY, due volte più veloce di Linq nell'uso di GROUP BY e circa allo stesso livello dell'API WebSQL (una sovrastruttura su SQLite, che sarà presto rimossa da Chrome) nelle query con operazioni di SUM, JOIN e GROUP BY.
Fonte: opennet.ru
