Many database professionals have historically worked with traditional relational database management systems (DBMS) such as Microsoft SQL Server, DB2, Sybase, and Oracle which use the Structured Query Language (SQL) language. In fact, relational databases and SQL have been around for over 30 years now. They are well entrenched and will be around for many years to come. However, over roughly the most recent decade there have been numerous developments in the database market. You most likely have wondered about NoSQL and big data. You also probably have heard of names such a MongoDB, Neo4j, Cassandra, and Hadoop. Exactly how does this new database market bear out?
Let’s start by simply organizing the world of database types into five basic categories shown in Figure 1. And believe it or not, the examples shown under each category are far from exhaustive. A few of the major cloud vendors have introduced proprietary databases within some of these categories. So this list is by no means complete. But it has enough “meat on the bones” to clearly delineate the categories for our purposes. Also, note that several of the relational database vendors such as SQL Server and Oracle are adding features which clearly fall into these other categories (e.g. key value and graph support).
Figure 1: Database Type Categories
So do the databases which fall under the four NoSQL categories just not use SQL, is that what they are named as such? The answer is no. While some may have initially only supported application program interfaces (APIs), many now offer some level of support for SQL. What NoSQL really means is that the data is not stored in a tabular relation or spreadsheet-like structure possessing rows and columns.
We’ll examine in more detail the technical internal differences between these four NoSQL categories in the next blog. Right now we need to understand what each NoSQL database category is commonly used for and which particular NoSQL database is popular for that category. That’s shown in Figure 2.
Figure 2: NoSQL Categories and Their Usages
The document store and graph database categories are pretty much what their names say: working with document-oriented information vs. graph structures, respectively. Column stores are also fairly easy to describe: they store data tables as columns rather than rows. Think of it as sort of flipping a table’s rows and columns, sort of like a spreadsheet pivot table. For data warehouses, business intelligence, and data analytics column store databases are highly efficient both in terms of space required (i.e. compression) and retrieval performance.
With this general understanding of the NoSQL database offerings, we can now see how they fit into the overall world of databases as shown in Figure 3. So why did this new pie slice for NoSQL databases come into existence? The answer is actually rather simple; relational databases were designed to handle data which is structured and nicely fits into relations (i.e. Tables with rows and columns). When you try to use them for unstructured data, they tend to have scalability limitations. However, today’s data warehouses and “data lakes” tend to collect hordes of unstructured data which has given rise to the concept of “big data”: a term used to refer to the study and applications of data sets that are so big and complex that traditional data-processing application software are inadequate to deal with them.
Figure 3: The Complete World of Databases
You might logically ask, “Is there really that big a need that we need all these new databases?” Look at Figure 4 which shows the overall growth of data by 2020. Unstructured data has been and will continue growing at a larger rate than traditional structured data. So yes, the market needs justified and drove the emergence of all these new databases. Furthermore, this change in data growth patterns is why the traditional relational database vendors are now working hard to offer NoSQL features and capabilities.
Figure 4: The Growth of Unstructured Data
Now that we’ve covered what a NoSQL database is, the next logical question is what tool can one use to work with these newer NoSQL databases? Moreover, are there any tools which can also work with my traditional relational databases as well? The good news is yes, there is one tool which can work with over two dozen database platforms, including the NoSQL databases. That one tool Idera’s Aqua Data Studio is shown below. As you can see in this screen snapshot not only does Aqua Data Studio work with all the relational databases, it also works with all the popular NoSQL databases including MongoDB and Cassandra (Datastax). Truly one tool to rule them all.
This only looks good at the beginning of a project and also when you are working solo. I would hate to be on a team and have the rug being pulled from under my feet. Don't get me wrong here, i am not anti-no-sql but i am a big fan of custom dissertation rethinkdb and I think in a team situation, it's best to have some meetings with your team about how you're going to model your data.