Editorials

SQL in NoSQL

When NoSql data stores begin to support SQL queries, are now considered Not NoSQL? In other words, what does a database have to do in order to be considered an SQL database? Because SQL has been highly defined by different ANSI standards, the answer to the question is fairly clear. Even so, the current popular data engines aligning themselves with the SQL moniker all have certain degrees of compliance and enhancement.

You could ask the question, “What is SQL?” If my data store is capable of retrieving data using standard SQL syntax, could it be considered SQL? Does a data store have to support tables? Does it have to support declarative relational integrity (DRI)? Do we have to support constraints, indexes, etc. in order to be considered an SQL Engine?

I don’t know if the answer to these questions is critically relevant. Any data store you select is going to have inherent strengths and weaknesses. They each have compromises targeted at solving specific data scenarios. At the end of the day, we need a data store upon which we can depend to be accurate in a timely manner, not lose data, and work with multiple simultaneous processes and transactions.

I’ve been asked for my take on NoSQL engines implementing SQL queries. I think this is great. It doesn’t make an No-SQL engine into an SQL engine unless they implement more than just queries. The thing that is most valuable about SQL is the fact that it has become quite ubiquitous. I’ve take queries I used in SQL Server and run them directly in DB 2, Oracle, and MySql. So, there are hundreds of thousands of users able to use SQL to interact with your data store if it supports SQL. The more your data store can be made to look like tables with relationships, the more powerful the integration becomes. If you are able to support data manipulation such as insert, update, and delete, you have an even better chance of integration.

I find tools such as Python, PowerShell, Linq Pad or even R to be interesting alternatives. As long as your data can be defined as enumerable sets, there is a lot of script based data mining that becomes possible. Still, if you want to implement something that many people understand, SQL probably provides the greatest reach. It increases your audience of users dramatically.

What’s your thought on this matter? Are NoSql engines being corrupted with SQL Integration? Leave a comment with your opinion.

Cheers,

Ben