AlaSQL / alasql

AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.
http://alasql.org
MIT License
7.03k stars 656 forks source link

Make a complete Server #881

Open neimanpinchas opened 7 years ago

neimanpinchas commented 7 years ago

I decided that alasql is the best Database engine in the world for analyses

It supports a wide SQL language, links to many files, functions are easy addable, and the whole thing is extensible, its very fast++

Three things are missing.

  1. Authentication
  2. Parallelism
  3. connect ODBC to it
  4. Support for MS Access

I think that adding those 3 will make it the database.

Authentication is really simple.

Parallelism is not so hard but requires to be able to use asynchronous functions in the whole query length, so we can transfer huge parts to another core.

We can maybe wrap the whole alasql object in a big sync.fiber and then use sync.await in the small functions.

With the mysql2 library its possible to simulate a mysql server and be able to get the data thorough the mysql odbc driver,

MDBTools could be converted to javascript and then used for msacces DB reading.

Please respond if anything there is possible and i want to implement them and start using them .

mathiasrw commented 7 years ago

Thank you for the kind words and good input.

This is a great idea.

We have to look into how to ensure persistent data in a good way (as the speed comes from data being in memory)

Are you thinking of wrapping it within an ionic setup?

neimanpinchas commented 7 years ago

Hello

I did'nt thought yet of a specific packaging method, in reality i think of some thing more like embedding a http server that will serve a graphical interface for the database.

About persistence, for analysis its good enough without any storage, in any case we can use Object.observe to keep a updated permanent copy on disk.

On Tue, May 23, 2017 at 2:15 AM, Mathias Rangel Wulff < notifications@github.com> wrote:

Thank you for the kind words and good input.

This is a great idea.

We have to look into how to ensure persistent data in a good way (as the speed comes from data being in memory)

Are you thinking of wrapping it within an ionic setup?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/agershun/alasql/issues/881#issuecomment-303300529, or mute the thread https://github.com/notifications/unsubscribe-auth/AQJ0reRuTp4x91CnOf5Zdf5M7ZqIwuvMks5r8nlugaJpZM4Ni6ek .

-- Pinchas S. Neiman 845.213.1229 #2

mathiasrw commented 7 years ago

"About persistence, for analysis its good enough without any storage, in any case we can use Object.observe to keep a updated permanent copy on disk."

That sounds great.

The HTTP server is easy.

The hard part is to make a graphical interface that is suitable and flexible.

Any ideas of the layout philosophy of such an interface?

Agershun made an attempt to structure an interface at http://alasql.org/codex/ (code at https://github.com/agershun/alasql-codex ) - not sure if the implementation made the use super intuitive for new users

neimanpinchas commented 7 years ago

First of all, the concept of dry SQL views.

I posted for a while ago an idea of dry views meaning view that the sql is saved and not the structure, this will easyfy a lot in the GUI subject.

A database is in concept a serial collection of objects of many types where each one takes its own viewers and editors.

So something with 3 panes will cover this logic.

  1. list/tree of all Databases/Database objects.
  2. list of commands dynamically updated for each type of object.
  3. The result of the command.
mathiasrw commented 7 years ago

That sounds good.

I am really looking forward to see how you visualize the:

  1. list of commands dynamically updated for each type of object.
neimanpinchas commented 7 years ago

The treeview component used by the current left side pane looks good,

On Fri, Jun 9, 2017 at 8:27 AM, Mathias Rangel Wulff < notifications@github.com> wrote:

That sounds good.

I am really looking forward to see how you visualize the:

  1. list of commands dynamically updated for each type of object.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/agershun/alasql/issues/881#issuecomment-307375237, or mute the thread https://github.com/notifications/unsubscribe-auth/AQJ0rSDvHw02vl80ySt1TQWGeckqpx8pks5sCToxgaJpZM4Ni6ek .

-- Pinchas S. Neiman 845.213.1229 #2

ivansglazunov commented 7 years ago

We can use it https://github.com/AncientSouls/Cursor for sync server-client structures. How about multi db languages adapter, for example for posgreesql? It helps make queries from client to server, and use alasql as cache on client with one language. We with the team are now doing a prototype that is 100% consistent with the described.