我在考虑使用/实施某种形式的嵌入式键值(或文件)店为我的Windows桌面应用程序。我希望能够存储各种类型的数据(GPS轨道将是一个例子),当然也能够查询这些数据。数据量可能不会全部同时加载到内存中。嵌入式非关系型(NoSQL的)数据存储
我考虑使用SQLite作为一个键值存储的存储引擎,像y-serial东西,但.NET编写。我还阅读了关于FriendFeed's usage of MySQL to store schema-less data,这是一个很好的指示如何使用RDBMS的非关系数据。由于其简单性,可移植性和库大小,sqlite似乎是一个不错的选择。
我的问题是,是否有一个嵌入式非关系存储任何其他的选择吗?它不需要分发,也不需要支持事务,但它必须能够从.NET访问,并且它应该有一个小的下载大小。
更新:我发现了一篇名为SQLite as a Key-Value Database的文章,它将sqlite与Berkeley DB进行了比较,Berkeley DB是嵌入式键值存储库。
但他想要一个无模式存储.... – 2010-01-17 15:46:37
阿斯特是正确的:我想避免关系模型。我希望能够存储几乎任何类型的数据,而无需首先为其准备数据库模式。另外,如果数据结构稍后改变,那么拥有严格的关系模型可能会产生问题 - 我需要为存储中的现有数据编写SQL更改脚本。 – 2010-01-17 16:03:44
我知道他在找什么,但像NHibernate这样的工具在模式生成中几乎完全隐藏了关系方面。您不需要定义任何模式,只需要为您定义类的映射(这对Fluent NHibernate来说非常简单),当您的类更改时,您需要在任何持久性策略中进行某种更新。 – 2010-01-17 16:25:53