Whether you pronounce it “S-Q-L” or “sequel,” we interact with SQL, NoSQL, or NewSQL in one way or another everyday, but what exactly is the difference between them? The fact of the matter is that, although they’re all types of databases, each one is very different from the other. Not only are the features and functions different, but each type of database comes with it’s own unique history.
Some Background on SQL, NoSQL, and NewSQL
The programming language, Structured query language (SQL), itself was first developed in the mid-1970s by IBM researchers. Influenced heavily by computer scientist Edgar Frank Codd’s work on the relational model for database management, IBM began developing System R, a project to create the first relational database management system (RDBMS). System R was a successful prototype, but the first commercially available SQL database was released in 1979 by Relational Software, now Oracle.
With NoSQL, the history doesn’t go as far back, but it’s just as dense. With the rise of internet popularity in the mid-1990s, relational databases were being heavily overloaded with the immense amounts of data and information flow produced by worldwide users. The rigidness of SQL RDBMSs just could not handle it. Thus, the development of non-relational databases began. In 1998, Carlo Strozzi dubbed the term “NoSQL,” meaning either “No SQL” system or “Not only SQL” system. By 2009, NoSQL had evolved to primarily refer to non-relational databases like CouchDB, MongoDB, and Redis.
As the name implies, NewSQL is the newest class of RDBMS, but it’s also the most versatile of the three. Birthed in the same way of SQL — with a research paper — the term “NewSQL” was first used by computer analyst Matthew Aslett in 2011 to describe the new generation of database. In his paper, he describes a database that maintains transactional atomicity, consistency, isolation, and durability (ACID), but also gives users the scalability for online transaction processing (OLTP) workloads that NoSQL systems employ.
SQL, NoSQL, and NewSQL Features
You’re probably starting to see the difference, but that’s just the tip of the iceberg. In function and use, these databases offer very specific features for businesses and organizations of all sorts. Here are some of their defining characteristics:
- Relies solely on relational tables for storing and accessing transactional data.
- Relies on basic SQL as its primary query language.
- Employs rigid and highly defined data schema.
- Minimizes redundancies via normalization.
- Utilizes traditional vertical scalability (up, not out).
- Popular SQL Databases: IBM Db2, Informix, MariaDB, Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL, and SQLite.
- Relies on different models, such as key-value, document, wide-column, or graph.
- Relies on high performance writes and huge, horizontal scalability for big data.
- Does not rely on a defined schema for writing data.
- Supports a large variety of modern programming languages, tools, and applications.
- Lacks strong consistency (instead, relies on a default “eventual consistency” for higher availability).
- Popular NoSQL Databases: Amazon DynamoDB, Cassandra, Couchbase Server, CouchDB, Hbase, MongoDB, Oracle NoSQL, and Redis.
- Combines relational model of SQL databases with the versatile scalability and speed of NoSQL databases.
- Uses cluster-native and shared-nothing architecture to provide low latency, high read/write performance.
- Favors consistency over availability (though configurations can be tuned for better balance).
- Variety in schema management, depending on the vendor.
- Popular NewSQL Databases: Apache Trafodion, Altibuse, ClusterixDB, CockroachDB, MemSQL, VoltDB, NuoDB, and TIBCO ActiveSpaces.
Basically, where SQL fails, NoSQL databases try to pick up the slack (and vice versa). On the other hand, NewSQL is the up-and-comer trying to make up for both of their shortcomings, taking database management systems to the next level. That being said, NewSQL systems are still somewhat in beta; their development, though fast, is still in its early phases, but the future is looking bright for NewSQL.
Whether you’re on SQL, NoSQL, or NewSQL, the Virtual-DBA team supports a number of these databases and we offer a variety of managed services. If you have any questions or need any help servicing your database, reach out to us at [email protected].