What is NoSQL?

Cogs overlaid on a purple data-bank.

NoSQL (not only SQL) databases are an alternative to SQL (relational) databases, created to get around the rigid and ageing rules of SQL. Purpose-built to cope with the demands of the altering data-landscape, NoSQL provides the scalability essential to help businesses keep pace with the web applications they are surrounded by, turning vast amounts of data into analytical insight. To fully understand NoSQL, it is helpful to firstly become familiar with what a relational database actually is.

Relational databases such as SQL categorise data in the form of tables filled with rows and columns. A query contacts the database, which responds by providing an answer. Relational bases follow a database schema; and herein lies the problem. Modern networking applications are constantly updating, with each altered state necessitating a paralleled altered schema. Considering the sheer volume of updates, the drain on resources to maintain the database would be troublesome, to say the least.

The need for an alternative

Reaching back to the 1970s, the history of databases began with the introduction of the relational database. For many years these databases were perfectly adequate and, in many scenarios, still are today, giving data a definite structure by organising it into tables supported by rows. In the time since the inception of this database, however, the internet was born.

Rising from modest beginnings, the internet is presently ubiquitous, producing incremental and differing forms of data which traditional relational databases struggle to manage. Indeed, an estimated 2.5 exabytes of data can be found in a daily snapshot of the rapidly altering data-landscape, according to Stratecasts recent report Time to Say Yes to NoSQL'. In short, the very same data which can add value to businesses is being wasted. To record and draw insightful analytics from such vast quantities, an alternative is needed.

As a mechanism, NoSQL is far less rigid and much more scalable through its use of simpler horizontal scaling. NoSQL is schema-free, allowing its databases to manage vast amounts of unstructured and semi-structured data such as web content, multimedia, email, images and so on, the types which SQL relational databases cannot effectively store. NoSQL can also respond to changing business needs due to its agility, with new types of data able to be added at a moment's notice.

Crumbling barriers to adoption

As previously mentioned, relational databases can still provide solutions, yet they are now considered obsolete for many businesses. So why aren't said businesses jumping on the NoSQL bandwagon? The mere questions suggest a degree of caution should be exercised before downing SQL tools.

Certain barriers to adoption have so far prevented universal implementation of NoSQL. These can be categorised into technology and people factors.

The main area in which NoSQL is lacking is in ACID (atomicity, consistency, isolation, durability) compliance. Of the four characteristics that form ACID, it is the C' - consistency - which causes NoSQL trouble. Some NoSQL databases do offer eventual data consistency if enough time passes without an update; however, relational databases are able to maintain full consistency.

Historically, it was thought data consistency was unattainable for NoSQL due to the CAP theorem - the concept that distributed databases can only have two out of three of: consistency, availability and partition tolerance. Partition tolerance, however, most often refers to a network failure, and so, in reality, there is no choice to make. We can pick two options out of two: availability and consistency. NoSQL providers which capitalise on this are able to provide full consistency of data, removing this barrier to adoption.

Exiting the virtual realm and looking into people factors, IT departments (and people in general) can be resistant to change, preferring to use legacy systems, given their familiarity. Providers and companies may even exaggerate the capabilities of a system to avoid deep-rooted change. For instance, companies wielding Apache Hadoop tend to skirt around the point that this is still a relational database style with various limitations.

Yet as awareness of NoSQL's suitability spreads, it's becoming difficult to ignore the advantages that evolving to a new system carries. The limitations of legacy systems are becoming more apparent as companies transform digitally in order to keep up with web-based oligarchies such as Amazon and AirBNB. In response, IT Directors of enterprises large and small are unlocking the shackles of relational databases and are migrating to NoSQL to keep-pace with competition.

NoSQL database types

Of the plethora of NoSQL options available, there are four main database categories:

Key-value stores are the simplest. An item is stored with its value as a key'. These key-value pairs represent new fields.

Document orientated databases are essentially a subclass of key-value stores, pairing each key with data structures known as a document.

Graph stores use edges and nodes to represent and store information about networks of data.

Column-based stores use columns of data, instead of rows.

Which NoSQL provider to choose

The most widely deployed NoSQL solutions are presented by Stratecast's report: MongoDB, Couchbase Data Platform, Neo4j to name a few.

But what is the difference between all these providers? And more importantly, do you have time to investigate? Too many conflicting NoSQL choices are leading to market confusion. Companies are in danger of selecting the wrong provider to suit their needs, devaluing the migration. The market needs simplicity.

Stratecast's report claims Couchbase to be one of the best commercially available options on the market, pointing to its coverage of multiple NoSQL bases in its platform: a key-value store and a document store. The ability for a platform to span across NoSQL bases is where the market is headed, a destination which should eliminate guesswork from the selection process and infiltrate the last barrier to adoption.