The traditional SQL database evolved from file systems. It assumes that all data can be expressed in scalar values in the columns of the rows of a table, just as file systems used fields in records of files. But the truth is that not all data fits into a traditional SQL model.
The storage models have changed. Columnar databases have no rows, but keep tables as columns which can be assembled into rows if needed. This means that query optimizations are very different. The MapReduce Model and Key-Value Stores do not have tables at all. Cloud storage is not like traditional, local file systems. Parallel processing and brute force replace clever indexing optimization.
Traditional SQL assumes that the data is static; think about common business applications like accounting and transaction processing. Changes to the data are explicit actions done by the database. Actions against the data are taken in other tiers of the application. But Streaming Databases (also known as Complex Event models) assume that data is constantly changing on its own. This would include sensor monitoring, stocks, commodity trades, and so forth. These events occur so fast that responses have to be built into the database.
Graph Databases do not have a table concept at all! They model pure relationships, expressed as a graph structure. SQL assumes that we know the relationships in the data. Graph databases discover the relationships. They are used for social network analysis, patterns in various kinds of flows. Think about a SQL query to find the minimal set of “the cool kids” in a social network whose adoption of a product makes it into the next trend.
Textbases or document databases have no concept of structured data. Instead of syntax, they get meaning from semantics. For example, Nexis, Lexis and Westlaw are used by researchers and lawyers to locate documents. Think about trying to write an SQL query to determine if a TV dinner meets the contractual obligation of a company to provide off-site employees with a meal equivalent to a fast-food order.
One of Dr. Codd’s 12 rules for RDBMS systems was that there must be a linear language to control and access the database. But Geographical Data (GIS) deal with maps, so they are 2 or 3 dimensional by nature. Their query languages are often graphic tools. For example, you can draw a polygon on a map and then ask how many people live inside it.
SQL is not always the right answer; it depends on the question!
This session was recorded live at Data Modeling Zone (www.DataModelingZone.com).