General (7)

What is SequelSphere?

SequelSphere is a relational database management system written in JavaScript that runs within a web browser (IE, Firefox, Chrome, Safari, etc). It provides a robust mechanism for managing data at the client-side of web applications, and also provides web application developers the ability to use SQL against relational tables for retrieving and manipulating data.  It is intended for Rich Internet Applications that target mobile phones or run within cloud computing environments.

How can it help my Web Applications?

SequelSphere will manage the structured data within your web application at the point of the browser, providing SQL access to the data.

Does it require additional software to be installed on the client?

No.  And that is the power of SequelSphere.  Since it is written 100% in JavaScript, it is downloaded to the client from your website as part of your web application.

What browsers are supported?

All JavaScript compliant browsers are supported, including IE 6+, Firefox, Safari, and Chrome.  Features that require HTML 5 standards (such as storing data within the browser) require browsers that support the HTML 5 standards.

Which Platforms are supported?

Since SequelSphere was written in JavaScript, it will run on every platform that has a JavaScript compliant browser. This includes Mobile Phones (Android, iPhone, Windows, …), Tablets (iPad, Android, Windows, …), PCs (Apple, Mac, Linux, …). As long as the web browser/platform supports JavaScript, SequelSphere will work.

Which RIA JavaScript Frameworks are supported?

SequelSphere was written to be a companion product to most, if not all JavaScript frameworks.  For some of the most common frameworks, additional libraries can be utilized to help integrate SequelSphere.

Is it fast?

SequelSphere is very fast.  Since most of the data is stored in memory within the browser and most browsers pre-compile the JavaScript into native code, the speed of SequelSphere is perhaps the most surprising benefit.  I urge you to test-drive SequelSphere to see how quickly it responds to even the most complex SQL.

SQL Support (4)

Which SQL statements are supported?

Currently, only the SELECT SQL statement is supported.  There are JavaScript methods available for inserting , updating , and deleting rows (please see the API documentation for full details). The INSERT, UPDATE, and DELETE SQL statements are on the early roadmap for implementation.  DDL statements, such as ‘CREATE TABLE’ and ‘DROP TABLE’ will be implemented only if there is sufficient demand.  For these DDL statements, their JavaScript counterparts createTable and dropTable accept JSON objects to create and drop tables respectively.

How much of the SELECT statement is supported?

The SELECT statement is the key ingredient of any good relational database systems.  As such, great care has been taken to fully support the ANSI standard SELECT statement including all major clauses and features.  Everything from outer joins, to many layered sub-selects, to complex grouping sets are supported.  To see the full set of supported SELECT functionality, please read SequelSphere Support for the SELECT Statement .

Can I write my own SQL functions?

Yes.  You can write both scalar and aggregate functions, include them in the database’s catalog, and then reference them from your SQL statements. See the Installation and Usage Notes for more information.

Can I create an index on a table?

Indexes are not currently supported, but are on the roadmap for implementation.  SequelSphere has been sufficiently fast (and the client-side data sufficiently small) such that indexes are not required for speed.  If indexes are desired for enforcing uniqueness, developers will need to guarantee uniqueness within their code instead (until indexes are officially supported).

Technical (6)

How big is the SequelSphere library?

Small, especially when comparing against other JavaScript libraries needed for RIA applications.  The downloaded file size is currently <70Kb.

How can SequelSphere store data “locally” within the browser?

Yes! Utilizing the latest HTML 5 standards ( local storage , IndexedDB , ), SequelSphere will persist the data stored onto the client’s machine to be accessed across browser restarts.

Can it really work in a disconnected state?

Yup.  To make it work in a disconnected state, your entire web application must utilize an HTML 5 “manifest”.  To find out more about this, try the following URL:

How much data can SequelSphere manage?

SequelSphere is a client-side database, and thus not intended to store large amounts of data.  Furthermore, each browser places a limit (normally 5 megabytes) on how much data it will allow websites to store locally on the hard-drive.  Never the less, SequelSphere does not place restrictions on the amount of data loaded at runtime, and thus will support whatever the client machine’s browser will allow.

How many database column types are supported?

SequelSphere takes a JavaScript approach to types, and allows columns to be loosely typed.  As such, you can store any JavaScript type within a column, and SequelSphere will treat it in a manner consistent with that type.

Can I use a different manner of storing data, and still use SequelSphere?

Yes!  One of the powerful elements of SequelSphere is the ability to switch-out the mechanism for storing data in tables.  As long as your JavaScript “table” objects implement the correct methods, the SequelSphere engine can execute SQL statements against them.  Documentation for this feature will be coming soon.