Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I'm answering this with CouchDB in the back of my mind, but I would presume most would be true for other DBs also. We looked at using CouchDB, but finally decided against it since our data access is not known beforehand and scalability is not the issue.</p> <p>Harder:</p> <ul> <li>Takes rethinking on conceptual level so it's 'harder' since it is just different. Since you have to know your data access patterns in advance, no automatic translation can be applied. You would need to add the access pattern at least.</li> <li>Consistency is not handled by the database but must be dealt with in the application. Less guarantees means easier migration, fail-over and better scalability at the cost of a more complicated application. An application has to deal with conflicts and inconsistencies.</li> <li>Links which cross documents (or key/value) have to be dealt with on application level also.</li> <li>SQL type of databases have IDEs which are much more mature. You get a lot of support libraries (although the layering of those libraries make things much more complex than needed for SQL).</li> </ul> <p>Easier:</p> <ul> <li>Faster if you know your data access patterns.</li> <li>Migration / Fail-over is easier for the database since no promises are made to you as an application programmer. Although you get eventual consistency. Probably. Finally. Some time.</li> <li>One key / value is much easier to understand than one row from a table. All the (tree) relations are already in, and complete objects can be recognized.</li> </ul> <p>The modeling should be about the same but you have to be careful about what you put in one document: UML can also be used for both OO modeling as well as DB modeling, which are two different beasts already.</p> <p>I would have liked to see a good open OO database nicely integrated with C# / Silverlight. Just to make the choice even more difficult. :)</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload