我正在使用.NET的C#语言开发一个小应用程序,我想要一个不占用过多资源的小型轻量级数据库。
请列举一些最为知名的轻量级数据库软件。
2016年6月14日 是的...仍在得到投票 :-/
2014年3月17日 我仍然收到此问题的投票,请注意这个答案最初的回答时间。尽管列出的三个项目仍然完全可行,但清单很可能会变得过时。还有其他未列出的数据库技术可用。
以下是一些可以立即识别并且免费的选项:
SQL Server Compact下载附带了您将需要在代码中引用的ADO.NET提供程序。 SQLite下载可能没有它,所以这里是一个链接:
http://sqlite.phxsoftware.com/
所有三个使用SQL,但可能有一些限制/怪癖。管理工具与紧凑型和LocalDB一起使用,而对于SQLite,您将需要另一个UI工具,例如SQLite管理员:
http://sqliteadmin.orbmu2k.de/
还有NoSQL选项,例如:
个人而言,我会避免使用MS Access,转向其他免费选项。你可以选择LocalDB、Compact或SQLite,它们都是小巧可爱的数据库,并且在很少的内存中运行相对较快-关于喜欢微软产品的宗教方面问题,这只是个人偏好 :-)
我在Windows Phone编程中使用Sterling,因为它构建于孤立存储之上。我只看过RavenDb的文章,但我可以告诉你,它是一个基于JSON的文档存储框架。
还有一些其他的嵌入式/本地数据库,有些是关系型的,有些是面向对象的(不要混淆SQLite、SQL Server Express LocalDB或SQL Server Compact Edition):
并非所有这些都是免费的,支持SQL/LINQ/进程内(In-proc)的支持在它们之间也有所不同。这个列表只是出于好奇而列举。
现在还有Karvonite,但是代码库链接已经失效了。当它重新上线时,我将考虑在WP7开发中使用它。
我建议使用SQLite。我们在工作中开发的几乎所有应用程序都在使用它。
它小巧紧凑。它需要一个DLL文件放在应用程序目录中,但是您不必像访问或SQL Server那样安装其他软件。此外,正如danielkza所说,"SQLite是公共领域的,因此您根本不必担心许可问题"。这可能真的会产生很大的影响。
您可以使用System.Data.SQLite或csharp-sqlite以与SQL或OleDB相同的方法在C#应用程序中访问它。
您还需要一个应用程序来编辑/管理数据库。我认为最好的是SQLite Studio。这里还有一些:
SQLite Admin
SQLite 2009 Pro(页面底部)
更新-7/25/11-更多SQLite应用程序(此处有问题)
这里有更多关于SQLite的信息:
Wikipedia上的SQLite
使用SQLite的公司
自定义函数:
另外,如果您在查看SQLite核心函数时没有找到合适的函数,您可以创建自己的自定义函数。以下是一些示例:
来自SO
另一个例子
Firebird embedded 可以是一个不错的选择。
嵌入式版本是服务器的一种精简变体。它是一个完整功能的 Firebird 服务器,只需几个文件即可打包。由于无需安装服务器,因此非常易于部署。
有一些非常好的.net驱动程序。
SQL Server Compact Edition是最好的选择,因为它免费、体积小且集成性良好。