AlaSQL, une base de données SQL et NoSQL écrite en JavaScript

Par:
fredericmazue

jeu, 17/01/2019 - 17:49

AlaSQL est un système de base de données open source conçu pour la rapidité des requêtes et le traitement des données en mémoire avec la flexibilité au niveau des sources de données. Ainsi AlaSQL permet de travailler avec des données relationnelles et des données sans schéma (NoSQL). Ecrit en JavaScript, AlaSQL fonctionne aussi bien dans un navigateur web qu'avec node.js ou des applications mobiles. En outre AlaSQL peut importer des données depuis localStorage, IndexedDB ou des fichiers Excel.

Bien que le projet n'en soit qu'à ses débuts, il nous paraît déjà très intéressant, au regard de ses possibilités. En outre, l'équipe de développement assure qu’elle travaille sur un moteur de base de données complet qui sera conforme à la plupart des langages SQL-99 agrémenté d'une syntaxe supplémentaire pour les réseaux de données et de graphes NoSQL.

Voici quelques exemples des possibilités de AlaSQL :

Travail avec SQL classique :

/* create SQL Table and add data */
alasql("CREATE TABLE cities (city string, pop number)");
alasql("INSERT INTO cities VALUES ('Paris',2249975),('Berlin',3517424),('Madrid',3041579)");

/* execute query */
var res = alasql("SELECT * FROM cities WHERE pop < 3500000 ORDER BY pop DESC");

// res = [ { "city": "Madrid", "pop": 3041579 }, { "city": "Paris", "pop": 2249975 } ]

Travail avec un tableau d'objets :

var data = [ {a: 1, b: 10}, {a: 2, b: 20}, {a: 1, b: 30} ];

var res = alasql('SELECT a, SUM(b) AS b FROM ? GROUP BY a',[data]);

// res = [ { "a": 1, "b": 40},{ "a": 2, "b": 20 } ]

Travail avec un fichier Excel

// file is read asynchronously (Promise returned when SQL given as array)
alasql(['SELECT * FROM XLS("./data/mydata") WHERE lastname LIKE "A%" and city = "London" GROUP BY name '])
    .then(function(res){
        console.log(res); // output depends on mydata.xls
    }).catch(function(err){
        console.log('Does the file exist? There was an error:', err);
    });

Vous pouvez bénéficier des atouts de SQL et de JavaScript ensemble en définissant vos propres fonctions que vous ajoutez alors à l'objet alasql.fn :

alasql.fn.myfn = function(a,b) {
    return a*b+1;
};

var res = alasql('SELECT myfn(a,b) FROM one');

AlaSQL est un logiciel libre sous licence MIT, disponible sur GitHub.

Site : http://alasql.org

Commentaires

Bravo, merci pour l'article et de l'info