Is NoSQL an option?
Attended Baltimore CMAP User Group meeting tonight.
There was a great speaker David Makogon (www.davidmakogon.com, @dmakogon).
David did a presentation called "Polyglot Persistence!" about NoSQL Databases.
He covered mostly MongoDB and Neo4j, also mentioning other NoSQL database engines such as Cassandra, RavenDB and others.
His presentation wasn't actually about NoSQL engines, he pointed that we have to shift from a paradigm: one system - one database to a paradigm: one need - one database. So, in his paradigm we can have up to 4-5 database engines running for the same project.
He gave very illustrative examples as Neo4j bits MySQL in performance. Also he emphasize other advantages of NoSQL databases such as lover price and ability to easily solve problems that SQL can't easily do.
However, I haven't seen any example when you can do something by NoSQL and can't do by SQL Server.
Also, the weak point of his paradigm is an integration between databases. Instead of having the ONE DB developer you have to have 4 or even 5, or that one must have skills for all used DB engines. You need C# or Java developer to build connections between these instances, not mentioning the nightmare of putting these data together.
Generally speaking in SQL server you can have XML or TEXT which can be structured as NoSQL and you will have a nice combination of RDBMS and any other NoXML structure. Moreover, you can index these structures in regular SQL tables to gain better performance.
So, on one plate we have strong SQL skills, on another we have multiple skilled individual, but with not very deep knowledge of tools he/she is using.
At the end I want to tell one of my favorite stories:
Once in a forest fox met a wild cat. Fox started bulling cat by saying: I know 100 ways how to escape from a hunter and you full know only one way - climbing on a tree... and then hunters arrived. While fox was thinking which of 100 ways of escape to choose cat was already on a tree.