Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

AlaSQL: DB in-memory scritto in Javascript

AlaSQL è un DB scritto in JavaScript, utilizzabile direttamente su browser. Opera sia su dati strutturati (approccio relazionale) che schema-less (NoSQL).
AlaSQL è un DB scritto in JavaScript, utilizzabile direttamente su browser. Opera sia su dati strutturati (approccio relazionale) che schema-less (NoSQL).
Link copiato negli appunti

AlaSQL è un database in-memory, interamente sviluppato in linguaggio

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

. Si dicono in-memory tutti quei database che gestiscono i loro dati nella memoria centrale del computer (la RAM), invece che nel disco rigido, come invece fanno la maggior parte dei database che conosciamo. Tali database stanno trovando spazio in un numero crescente di contesti applicativi, grazie proprio alle loro performance in fase di esecuzione (di gran lunga superiori a quelle dei database tradizionali). La possibilità di poter accedere a informazioni tramite l'uso della memoria volatile, infatti, risulta utile in tutte quelle applicazioni dove la velocità risulta essere un fattore determinante.

Tra i database in-memory più famosi, non possiamo fare a meno di citare Redis, di cui si è parlato in un'

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

.

Le origini

AlaSQL era stato prevalentemente pensato per poter gestire in modo efficace e veloce i dati delle applicazioni

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

. La sua leggerezza e le sue performance ne hanno ben presto favorito l'uso su qualsiasi tecnologia basata su JavaScript (anche senza l'uso di framework particolari). Questo perché l'unica cosa di cui ha veramente bisogno per funzionare è semplicemente un browser per la navigazione web, dotato ovviamente di un interprete JavaScript.

AlaSQL è open source e rilasciato sotto licenza MIT. È compatibile con la maggior parte dei browser più comuni, come

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

e

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

. Stesso discorso vale per i browser presenti sui sistemi operativi

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

e

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

.

Le principali peculiarità di AlaSQL sono la velocità di esecuzione delle query, e la flessibilità di gestione sia per i dati relazionali che per i dati schema-less (ovvero di quei dati non strutturati, che non rappresentano informazioni omogenee e quindi non strutturabili, che sono spesso gestiti mediante

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

). Inoltre, AlaSQL si contraddistingue per la sua capacità di effettuare operazioni ETL ed eventualmente di applicare la persistenza dei dati, esportandoli in diversi formati.

Qualche esempio pratico

Per poter utilizzare AlaSQL all'interno di una pagina

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

, dobbiamo innanzitutto includerlo in essa.
Possiamo farlo linkando direttamente la libreria su CDN, sfruttando questo link:

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

. In alternativa, possiamo scaricare il file .js, ed includerlo nel nostro progetto in locale.

Per poterla includere nella nostra pagina web, non dovremo far altro che aggiungere il seguente tag <script> all'interno dell'<head> della pagina:

<script src="
[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

"></script>

Una volta inclusa la libreria, sarà possibile definire le query da eseguire tramite il comando alasql()

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

più comuni, tra cui

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

,

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

, e molti altri. La lista completa dei comandi disponibili è reperibile nella

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

.

Per mostrare un esempio semplice ed intuitivo, creeremo una pagina HTML in cui sarà inclusa la libreria AlaSQL.
Fatto ciò, proveremo ad eseguire una semplice query di selezione (

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

). Per farlo, però, dovremo prima creare una tabella con qualche dato di prova, da poter successivamente interrogare. Tuttavia, poiché AlaSQL permette di gestire anche dati

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

(in puro stile NoSQL), vedremo sia l'uso di una tabella (approccio relazionale), che quello di una struttura dati definita in JSON (approccio NoSQL).

Prima di ogni cosa creiamo un nuovo database:

var mio_database = new alasql.Database('nuovoDB');

Usiamo quindi la variabile mio_database

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

), popolarla (tramite

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

) ed eseguire la query di selezione:

mio_database.exec("CREATE TABLE persone (nome string, eta number)");
mio_database.exec("INSERT INTO persone VALUES ('Mario', 18),('Elisabetta', 22)");
var res = mio_database.exec("SELECT * FROM persone WHERE eta < 20");

Il codice è abbastanza intuitivo e si commenta da solo; il risultato di suddetta query sarà la persona di nome Mario.

Per testare il tutto, utilizziamo una pagina HTML con il seguente <div> (che fungerà da contenitore per i dati da visualizzare):

<div id="lista"></div>

Aggiungiamo quindi lo script precedente alla pagina, con qualche altra riga che popoli il <div>

<script src="https://cdn.jsdelivr.net/alasql/0.3/alasql.min.js">
    var mio_database = new alasql.Database('nuovoDB');
    mio_database.exec("CREATE TABLE persone (nome string, eta number)");
    mio_database.exec("INSERT INTO persone VALUES ('Mario', 18),('Elisabetta', 22)");
    var res = mio_database.exec("SELECT * FROM persone WHERE eta < 20");
    document.getElementById("lista").innerHTML = JSON.stringify(res);
</script>

Una volta compreso come creare ed utilizzare le tabelle, ripetiamo l'operazione di SELECT

var persone = [{ nome: 'Mario', eta: 18 },{ name: 'Elisabetta', eta: 22 },];
var res = alasql("SELECT * FROM ? persone WHERE eta < 22", [persone]);
document.getElementById("lista").innerHTML = JSON.stringify(res);

La prima riga ha creato un

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

di oggetti JSON (che in questo semplice esempio hanno tutti la stessa struttura, sebbene questo non rappresenti in alcun modo un vincolo), memorizzato nella variabile persone. Abbiamo quindi utilizzato queste informazioni come base di dati su cui eseguire una query SQL, sempre mediante la funzione alasql().

Conclusioni

La possibilità di adoperare un database client-side, leggero e performante, permette l'implementazione di un'infinità di casi d'uso, facilitando potenzialmente la gestione di app e servizi. La flessibilità d'uso delle strutture per la memorizzazione dei dati, sia intese in senso relazionale che NoSQL, allargano ancora di più gli orizzonti applicativi e facilitano la creazione di applicazioni web moderne ed innovative.

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico

Ti consigliamo anche