tags:

views:

319

answers:

3

I'm a .NET programmer and want to have a look at a alternative to RDBMS. What is the moste mature choice at the moment (most mature drivers and most functionality in the database)?

I have looked at MongoDB and I'm pleased with it.

+2  A: 

I think this is not the right question. The question "which NoSQL DBMS is most X ..." is not of th same form as "which RDBMS is most X on ..."

Why? Well, NoSQL is not really clearly defined. There are a few recurring characteristics (distributed, large volume, map/reduce processing, scaleable, redundant, not-relational, schemaless) but none of these are defining characteristics. To put it bluntly, NoSQL is a bucket of techniques and products, each with their own special underlying design goals and applicability.

With traditional RDBMS-es the similarities are much clearer.

So I guess you should ask yourself, what do you want to achieve? Then look for a product/technique to match it.

Roland Bouman
I'm not looking for a spesific type of database. I have looked at document-oriented databases and objcet databases. I don't want to acheve something spesific, but I want to learn about a "new" way to persist data. If I'm going to learn about a new database, I want to learn about the one that is most mature at the moment.
Fossmo
That's kind of my point though...mature to what purpose?
Roland Bouman
MongoDb, for example, supports indexes and has some functionality that can't be found in couchdb. I might be wrong, but I consider MongoDB to be more mature that couchdb. When looking at the .NET drivers for MongoDB they are still under development, and I consider them to not be that mature. For simplicities’ sake I can rephrase the question to; what is the best choice when going for document-oriented databases on the windows platform?
Fossmo
Thanks for bearing with me. Indeed, confining the question to document databases is much more helpful then using the generic NoSQL tag. Thanks :)You mention that MongoDB has indexes and some functionality that can't be found in Couchdb. But Couchdb has more advanced replication, ACID compliance and javascript views. So again, it's a matter of what you want to do that determines your choice. I don't want to hold you longer than necessary. I mean, I am not a NoSQL/doc database expert. My point is just, refine your question, get better answers
Roland Bouman
A: 

You absolutely must gather your requirements and evaluate as many options as you can.

As you're likely to be deploying a massive system that will need to be maintained for years, the cost of a poor choice is very high; try to get your entire development team's input on it, as it will matter (it's them who will need to maintain it, after all).

Operations is as important as development; get your operations team's input too if at all possible. As a "nosql" based system is likely to involve many physical machines, it may require a lot of effort to maintain by ops engineers if problems are frequent. It is important that your ops team understand how such a system works.

Maturity of drivers (aka client library or whatever) clearly might be a factor, but I rather suspect that its actual features are more of an issue. None of these systems behave the same, and all offer different feature sets with incompatible interfaces which are not similar to those offered by a traditional RDBMS.

MarkR