Estoy pensando en usar/implementar algún tipo de almacén de valor-clave (o documento) incrustado para mi aplicación de escritorio de Windows. Quiero poder almacenar varios tipos de datos (las pistas de GPS serían un ejemplo) y, por supuesto, poder consultar estos datos. La cantidad de datos sería tal que no podría ser cargada en la memoria al mismo tiempo.Almacén de datos incrustado no relacional (nosql)
Estoy pensando en usar sqlite como motor de almacenamiento para una tienda de valores-clave, algo así como y-serial, pero escrito en .NET. También he leído sobre FriendFeed's usage of MySQL to store schema-less data, que es un buen puntero sobre cómo usar RDBMS para datos no relacionales. sqlite parece ser una buena opción debido a su simplicidad, portabilidad y tamaño de biblioteca.
Mi pregunta es si hay otras opciones para una tienda incrustada no relacional? No necesita ser distribuible y no tiene que admitir transacciones, pero tiene que ser accesible desde .NET y debe tener un tamaño de descarga pequeño.
ACTUALIZACIÓN: He encontrado un artículo titulado SQLite as a Key-Value Database que compara sqlite con Berkeley DB, que es una biblioteca de almacenamiento de clave-valor incorporada.
Pero quería una tienda sin esquema ... –
Astor tiene razón: quiero evitar el modelo relacional. Quiero poder almacenar prácticamente cualquier tipo de datos sin tener que preparar primero el esquema de la base de datos. Además, tener un modelo relacional estricto puede ser problemático si la estructura de datos cambia más tarde. Tendría que escribir scripts de cambios SQL para los datos existentes en la tienda. –
Sé lo que está buscando, pero herramientas como NHibernate con generación de esquema ocultan el aspecto relacional casi por completo. No necesita definir ningún esquema, sino solo el mapeo para sus clases (lo que es realmente directo con Fluidez NHibernate) y cuando cambien sus clases, necesitará hacer algún tipo de actualización en cualquier estrategia de persistencia. –