lunes, 29 de noviembre de 2010

Comparativa MongoDB con otras Bases de datos NoSQL

He encontrado en myNoSQL algunas tablas comparativas de MongoDB con respecto a otras bases de datos NoSQL, creadas por Alex Popescu.

Bases de datos orientadas a documento
La primera tabla compara tres bases de datos orientadas a documento: MongoDB, CouchDB y RavenDB (echo en falta una columna para OrientDB).

  MongoDB CouchDB RavenDB
Documentos
FormatoBSONJSONJSON
MetadataNoSistemaSistema + personalizado
VersionadoNoPlugin incluído
AdjuntosGridFS
Map/ReduceJavaScript + otrosJavaScriptLINQ
Carga masivamongoimport
Consulta AdhocNoNo
Almacenamiento
Fragmentación
DurabilidadServidor simple v1.8Diseño "crash-only"Escritura previa trazabilidad y aislamiento de instantáneas para garantizar recuperación vía ESE
TransaccionesNoNo
ConcurrenciaActualización in-placeMVCC (Multi-Version Concurrency Control)Concurrencia optimista
ConsistenciaMaestro fuerte / Esclavo eventualNodo fuerte / Cluster eventualEventual
ReplicaciónMaestro-Maestro con funciones de resolución personalizadasMaestro-EsclavoPlugin incluído
Interfaz
ProtocoloPersonalizado sobre TCP/IPHTTP/RESTHTTP/REST
.NET APIProyectos de tercerosProyectos de tercerosIncluído
Otros
TriggersNoValidación de actualización, Seguridad
SeguridadBásicaBásicaNinguna
Escrito enC++ErlangC#

Lenguajes de programación
La siguiente tabla muestra el uso de lenguajes de programación en varias bases de datos NoSQL. Yo hubiera añadido también Perl, C/C++, Erlang ó Go, que son lenguajes populares que también comprende MongoDB (entre otros muchos).

  BBDD Modo durabilidad java ruby python php .net http
documento mongodb basado en réplica x x x x x x
  couchdb nodo simple x x x x x x
  ravendb nodo simple - - - - x x
clave-valor redis en memoria, serializado en disco x x x x x -
  riak basado en réplica x x x x x x
tabular cassandra basado en réplica x x x x x -
grafo neo4j nodo simple x x x x - x
  sones nodo simple - - - - x x


Fuentes
http://nosql.mypopescu.com/post/1016366403/nosql-guide-for-beginners
http://nosql.mypopescu.com/post/978742866/document-databases-compared-couchdb-mongodb-ravendb