Die Veröffentlichung der Datenbank AlaSQL 4.0 ist jetzt verfügbar, die für den Einsatz in Webanwendungen im Browser, in mobilen Anwendungen auf Basis von Webtechnologien oder in serverseitigen Prozessoren auf der Node.js-Plattform entwickelt wurde. Die Datenbank liegt als JavaScript-Bibliothek vor und ermöglicht die Verwendung der SQL-Sprache. Sie unterstützt die Speicherung von Daten in traditionellen relationalen Tabellen oder in Form von verschachtelten JSON-Strukturen, die keine strikte Definition des Speicherschemas erfordern. Um mit den Daten über die Befehlszeile zu interagieren, steht das Utility alasql zur Verfügung. Der Code des Projekts ist in JavaScript geschrieben und wird unter der MIT-Lizenz veröffentlicht.
AlaSQL unterstützt einen Großteil der SQL-99-Sprache und bietet Ergänzungen für die Verarbeitung im NoSQL-Stil (ohne festgelegtes Speicherschema) sowie zur Manipulation von Graphen. In SQL-Abfragen können Sie JOIN-, GROUP-, UNION-Operationen ausführen, Unterabfragen und Ausdrücke wie ANY, ALL und IN verwenden und Funktionen wie ROLLUP(), CUBE() und GROUPING SETS() anwenden. Es gibt eine begrenzte Unterstützung für Transaktionen. Benutzerdefinierte Funktionen können definiert werden, die in SQL-Abfragen verwendet werden können. Für einen schnellen Funktionsaufruf können SQL-Ausdrücke kompiliert werden (analog zum SQL-Befehl PREPARE).
Die Datenbank AlaSQL ist für die Verwendung des ETL-Paradigmas (Extract, Transform, Load) und die Manipulation von Daten in Form von Import/Verarbeitung/Export konzipiert. Zum Speichern, Exportieren und Importieren können die Formate localStorage, IndexedDB, CSV, TAB, TXT, JSON, SQLite und Excel (.xls und .xlsx) verwendet werden. Es wird angenommen, dass direkte Abfragen aus den in diesen Formaten gespeicherten Daten ausgeführt oder Daten importiert und exportiert werden können. Auch die Ausführung von SELECT-Operationen über beliebige Daten in JavaScript-Objekten ist möglich.
Die Bibliothek wurde ursprünglich für die schnelle Verarbeitung von Daten im Arbeitsspeicher für Business-Analytikanwendungen entwickelt und unterstützt Optimierungen wie das Caching von Abfragen in Form von kompilierten Funktionen, vorab durchgeführte Indizes bei Tabellenverknüpfungen und das Filtern von WHERE-Ausdrücken vor den Verknüpfungsoperationen. Im Vergleich zu anderen ähnlichen Projekten erwies sich AlaSQL als dreimal schneller als SQL.js bei Abfragen mit SUM-, JOIN- und GROUP BY-Operationen, als doppelt so schnell wie Linq bei GROUP BY und ungefähr auf dem gleichen Niveau wie die API WebSQL (eine Erweiterung über SQLite, die bald aus Chrome entfernt wird) bei Abfragen mit SUM-, JOIN- und GROUP BY-Operationen.
Quelle: opennet.ru
