Top 9 Cool SequelSphere Features

SequelSphere's Incredible SQL Engine

#1: It’s Amazing SQL Engine

The most impressive feature of SequelSphere has to be its revolutionary SQL parsing and execution engine. It handles all normal SELECT features and expressions, and then goes beyond handling LEFT, RIGHT, and FULL outer joins. It not only boasts of handling unlimited nesting of Sub-queries, it handles them in every major clause (SELECT, FROM, WHERE, JOIN, ON, HAVING, even GROUP BY!). Speaking of grouping, it also handles grouping sets, rollup, cube, and grand-total grouping functions. It even gracefully handles complex conditional expressions such as:

(a,b) not in ((1, 2), (3, 4), (select c, d from tab))

Add into this the ability AT RUNTIME to mix in custom, user-defined functions and third party tables (two cool features in their own right), and the SQL engine is truly extraordinary. No other SQL engine can do these things, let alone do it 100% in JavaScript across all major browsers and platforms. And, let’s not forget that it does all this with blazingly fast speed: parsing, planning, and optimizing all occurring sub-millisecond.

#2: Integration with 3rd Party RIA Frameworks

SequelSphere easily connects to any RIA Library

SequelSphere has no dependencies on any RIA framework, yet its simple and flexible API makes it easy to integrate with any RIA framework out-of-the-box. Populating edit screens, grids, charts and graphs is simple. And when more advanced integrations (such as using the RIA framework’s own data stores in SQL queries) are required, SequelSphere provides “connectors” to the most common RIA frameworks (such as jQuery, Ext JS, YUI, etc.). But SequelSphere’s true power lies in the flexible and dynamic query results that make it easy to integrate with any RIA framework. As such, connectors are rarely required. And when they are required, they are easy to create.

#3: Synchronization Support Using Change Trackers

SequelSphere Empowers Synchronization using Change Trackers

Refreshing a SequelSphere database from a remote source and then accessing and updating the data locally is a breeze; the real difficulty lies in synching local updates back to the remote source. To support this, SequelSphere provides “Change Trackers” to track client-side data changes and report them in transaction order. This makes upwards synchronization a simple and manageable process. The application programmer can create a “Change Tracker” for any combination of tables that track inserts, updates, and deletes. The tracker even respectively follows transaction commits and rollbacks, reporting changes as arrays or JSON objects. And, since the changes are persisted intelligently, “Change Trackers” work when used “offline” and across browser restarts. When the application is network connected and ready to sync up data, the trackers intelligently report prior changes when the application is back on-line. That is truly remarkable assistance for synchronizing offline activity.

#4: Uses IndexedDB or LocalStorage to Persist Data Locally

SequelSphere Uses LocalStorage or IndexedDB to Persist Data Locally

SequelSphere uses the latest in HTML5 data persistence technologies to provide local storage of data across most modern browsers. That makes SequelSphere perfect for managing data for offline applications, and making the data available across browser restarts. SequelSphere abstracts the data management details away from the application, providing the app with a single Relational manner of managing the data. As such, the application can remain browser agnostic and let SequelSphere do the work of determining which storage mechanism works best for each client. Furthermore, SequelSphere deftly handles transactional commits and rollbacks, requiring the data be written and read from the storage mechanisms as necessary.

#5: User-Defined Functions

SequelSphere provides the ability to add application-provided SQL functions

SequelSphere’s powerful and flexible SQL Engine allows the application programmer to define custom SQL functions at runtime, and use them in SQL queries. This extensibility makes SequelSphere perfect for handling an application’s complex data transformation needs. And, it’s just as simple to add aggregate functions (works on groups of rows) as scalar (per row). Since SequelSphere is 100% JavaScript, user-defined SQL functions can be added, swapped, or removed at any time.

#6: Cross-Browser Support

Due to SequelSphere’s 100% JavaScript solution, it works for every major Browser across every major platform. That makes SequelSphere an ideal candidate for managing application data.

#7: Web Service- & JSON-Friendly

Web Service- & JSON-Friendly

SequelSphere was built with ease-of-use in mind. As such, creating tables and manipulating data can be performed using few JavaScript calls passing simple JSON objects. This makes SequelSphere web-service friendly, and enables database setup and refresh to be performed with a few simple lines of code rather than much more complex coding methods.

#8: SequelSphere’s Simplified API

Simple, Easy-to-Use API

Every interaction with the SequelSphere database was designed to be simple. The programmers at SequelSphere believe whole heartedly in the “Keep It Simple” principle, and that the simplest code is the most robust code. Consequently, performing queries and retrieving results is simple. Getting the results in a variety of formats is simple. Manipulating the data, managing transactions, creating tables… every aspect was designed to be simple.

#9: Easy 3rd Party Table Integration

Integrate 3rd party tables into SQL queries

A unique testament to the power and flexibility of SequelSphere is its incredibly cool ability to incorporate other products’ data tables into SQL queries. By implementing the “TableProvider” interface, any external tabular data source can be queried using SQL. Furthermore, any of the tables, SequelSphere or externally provided, can be used side-by-side in the same SQL statements with all features of the SELECT statement continuing to work. Now that’s awesome.