Database preliminaries
A few years ago, discussing databases was simple. We spoke of relational databases such as Oracle, MySQL, and SQL Server and that was pretty much it. There were some exceptions, such as databases involved in Lightweight Directory Access Protocol (LDAP) and some configuration databases based on XML, when the whole world was relational. Even products that were not purely relational, such as Microsoft Access, tried to present a relational face to the user.
We usually use the terms relational and SQL database interchangeably, although the latter more correctly refers to the method of querying the database than to its architecture. What changed was the explosion of large databases from sources such as Google, Facebook, and Twitter, which could not be accommodated by scaling up the existing SQL databases of the time, and indeed such databases still cannot.
Relational databases consist of a set of tables, normally linked with a main (termed primary) key and related...