Dostępna jest wersja bazy danych AlaSQL 4.0, przeznaczona do użytku w aplikacjach internetowych działających w przeglądarkach, w mobilnych aplikacjach opartych na technologiach webowych lub w serwerowych procesorach na platformie Node.js. Baza danych jest udostępniana jako biblioteka JavaScript i pozwala na użycie języka SQL. Obsługiwane jest przechowywanie danych w tradycyjnych relacyjnych tabelach lub w formie zagnieżdżonych struktur JSON, które nie wymagają sztywnego określenia schematu przechowywania. Do manipulacji danymi z linii poleceń dostępne jest narzędzie alasql. Kod projektu został napisany w JavaScript i jest rozpowszechniany na licencji MIT.
W AlaSQL wspierana jest większość języka SQL-99, a także oferowane są rozszerzenia do obsługi w stylu NoSQL (bez określania schematu przechowywania) oraz manipulacji grafami. W zapytaniach SQL można wykonywać operacje łączenia (JOIN), grupowania (GROUP), łączenia (UNION), korzystać z podzapytania i wyrażeń typu ANY, ALL oraz IN, stosować funkcje ROLLUP(), CUBE() i GROUPING SETS(). Jest ograniczona obsługa transakcji. Możliwe jest definiowanie funkcji użytkownika, które można wykorzystać w zapytaniach SQL. Dla szybkiego wywołania funkcji, wyrażenia SQL mogą być kompilowane (jak polecenie SQL PREPARE).
Baza danych AlaSQL została zaprojektowana w celu wykorzystania paradygmy ETL (Extract, Transform, Load) i manipulacji danymi w formie importu/obróbki/eksportu. Do przechowywania, eksportu i importu mogą być używane formaty localStorage, IndexedDB, CSV, TAB, TXT, JSON, SQLite i Excel (.xls oraz .xlsx), zakładając, że możliwe jest bezpośrednie wykonywanie zapytań na danych przechowywanych w oznaczonych formatach lub importowanie i eksportowanie danych. Możliwe jest również wykonywanie operacji SELECT na dowolnych danych w obiektach JavaScript.
Biblioteka pierwotnie zaprojektowana do szybkiego przetwarzania danych w pamięci operacyjnej dla aplikacji analizy biznesowej wspiera takie optymalizacje, jak buforowanie zapytań w formie skompilowanych funkcji, proaktywna indeksacja złączeń tabel oraz filtrowanie wyrażeń WHERE przed operacjami złączenia. W porównaniu do innych podobnych projektów, AlaSQL okazało się trzy razy szybsze od SQL.js w przypadku zapytań z operacjami SUM, JOIN i GROUP BY, dwa razy szybsze od Linq przy użyciu GROUP BY oraz mniej więcej na tym samym poziomie, co API WebSQL (nakładka na SQLite, która wkrótce zostanie usunięta z Chrome) przy zapytaniach z operacjami SUM, JOIN i GROUP BY.
Źródło: opennet.ru
