Version 4.0 av databasystemet AlaSQL är nu tillgängligt, avsett för användning i webbaserade applikationer i webbläsare, i mobila applikationer baserade på webteknik eller i serverbehandlare baserade på Node.js-plattformen. Databasen är utformad som ett JavaScript-bibliotek och tillåter användning av SQL-språket. Det stöder lagring av data i traditionella relations-tabeller eller i form av inbäddade JSON-strukturer, som inte kräver strikt definition av lagringsschema. För att manipulera data från kommandoraden finns ett verktyg som heter alasql. Projektets kod är skriven i JavaScript och distribueras under MIT-licensen.
AlaSQL stöder en stor del av SQL-99-språket och erbjuder även tillägg för bearbetning i NoSQL-stil (utan lagringsschema) och manipulation av grafer. I SQL-frågor kan man utföra sammanslagningsoperationer (JOIN), gruppering (GROUP), föreningar (UNION), använda underfrågor och uttryck som ANY, ALL och IN, samt tillämpa funktioner som ROLLUP(), CUBE() och GROUPING SETS(). Det finns begränsat stöd för transaktioner. Användardefinierade funktioner kan definieras och användas i SQL-frågor. För snabb anropning kan funktioner och SQL-uttryck kompileras (motsvarande SQL-kommandot PREPARE).
Databasystemet AlaSQL är designat för att använda ETL-paradigmet (Extract, Transform, Load) och manipulera data i formen av import/bearbetning/export. För lagring, export och import kan format som localStorage, IndexedDB, CSV, TAB, TXT, JSON, SQLite och Excel (.xls och .xlsx) användas, och det antas att direktfrågor kan utföras på data som lagras i dessa format, eller data kan importeras och exporteras. Det är också möjligt att utföra SELECT-operationer på alla data i JavaScript-objekt.
Biblioteket är ursprungligen utformat för snabb bearbetning av data i minnet för applikationer inom affärsanalys och stöder optimeringar såsom cachning av förfrågningar i form av kompilering av funktioner, förhandsindexering av tabellföreningar och filtrering av WHERE-uttryck före föreningsoperationer. Jämfört med andra liknande projekt visade sig AlaSQL vara tre gånger snabbare än SQL.js vid hämtningar med SUM-, JOIN- och GROUP BY-operationer, två gånger snabbare än Linq vid användning av GROUP BY, och ungefär på samma nivå som API WebSQL (ett lager ovanpå SQLite som snart kommer att tas bort från Chrome) vid hämtningar med SUM-, JOIN- och GROUP BY-operationer.
Källa: opennet.ru
