NewSQL: overcoming limitations of relational and NoSQL databases

The beginning of database technologies

The first significant class of technologies explicitly thought to support data management is traditionally considered the Information Management Systems (IMS). It was originally developed by IBM to support the Apollo program and the Saturn V moon rocket and it consisted on a very simple data structuring, based on a tree-shaped structure.

  • relational databases allow for easily modeling data
  • a high number of clients have been developed for interacting with such databases, in turn contributing to the wide adoption of such a model — which also means a big community of users
  • RDBMS implement ACID transactions. This means that every transaction is: atomic (transactions are either success or failure), consistent (only valid data is saved), isolated (concurrent transactions do not affect each other), durable (committed data is persisted on disk)

Web 2.0 and the emerging of NoSQL

These features were immediately perceived as tremendously useful in the ’90s. However, the 2000s is the era of Web 2.0, with several new needs. A very large volume of data (in the order of petabytes) need to be managed and systems must scale. The availability of faster networks and devices is also an important leverage to exploit.

  • key-values stores: in such databases, data is represented as part of a big “dictionary”, stored in the form of key-value entries. These databases are commonly used for user session data, component configuration, or to provide fast access by caching data. However, queries can be very complex to build in some cases, due to the specific structure of the DB. Examples of key-values stores are Redis, Amazon DynamoDB and Riak
  • column-oriented DB: this class of databases is particularly suited for real time analytics, since it allows us to easily (and effectively) aggregate a lot of of data. However, column-oriented DBs do not perform well in cases of queries against a few rows. Moreover, they do not allow for flexible data schemas. Cassandra, Hypertable and Apache Hbase are probably the most representative instances of column-oriented databases
  • document-oriented DB: these databases store data in the form of documents, which are often parts of sets known as collections. Documents allow for storing unstructured data and to represent models with many layers. Drawbacks in this case are the difficulties in making joins of such heterogeneous data. For similar reasons, queries can generally be not very flexible. The most representative database of this class is of course MongoDB, although there are other examples, such as Couchbase or RavenDB
_id: <ObjectId1>,
username: "123xyz",
contact: {
phone: "123-456-7890",
email: ""
access: {
level: 5,
group: "dev"
  • graph DB: these databases are particularly useful when the original connections among data can be mapped into a graph structure. This is the case for social networks data, or for those cases where algorithms based on routing or fraud/disease spreading detection need to be run. The main drawbacks of such approach are the difficulties in aggregating data, as well as in performing analytics. Examples of graph databases are Neo4j, ArangoDB and OrientDB


In addition to the above, there is another issue that currently applies to any distributed database, which is represented by the CAP theorem. Formulated by Eric Brewer, it states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees:

  • consistency: every read receives the most recent write or an error
  • availability: every request receives a (non-error) response — without the guarantee that it contains the most recent write
  • partition tolerance: the system continues to operate despite an arbitrary number of messages being dropped (or delayed) by the network between nodes



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store



We help tech communities to grow worldwide, providing top-notch tools and unparalleled networking opportunities.