我正在.NET 中使用 C# 开发一个小型应用程序,并且我想要一个不使用太多资源的小型轻量级数据库。
您能否列出一些最著名的轻量级数据库软件。
2016年 6 月 14 日是的......仍然得到支持:-/
2014年 3 月 17 日我仍然收到对此的支持,请注意最初回答的日期。尽管列出的主要三个项目仍然完全可行,但该列表将趋于陈旧。还有其他未列出的可用数据库技术。
您有几个立即可识别且免费的选项:
SQL Server Compact 下载附带您需要在代码中引用的 ADO.NET 提供程序。SQLite 下载可能没有它,所以这里是一个链接:
http://sqlite.phxsoftware.com/
这三个都使用 SQL,尽管可能有一些限制/怪癖。Management Studio 可与 Compact 和 LocalDB 一起使用,而使用 SQLite 您将需要另一个 UI 工具,例如 SQLite Administrator:
http://sqliteadmin.orbmu2k.de/
有 NoSQL 替代方案,例如:
就我个人而言,面对其他免费选项,我会避免使用 MS Access。LocalDB、Compact 或 SQLite 不会出错。它们都是可爱的小型数据库,在小 RAM 中运行速度相对较快——我想个人偏好关于喜欢微软产品的宗教方面的偏好 :-)
我使用 Sterling 进行 Windows Phone 编程,因为它是为使用独立存储而构建的。我只看过关于 RavenDb 的文章,但我可以告诉你,它是一个基于 JSON 的文档存储框架。
不要混淆这种情况(使用 SQLite、SQL Server Express LocalDB 或 SQL Server Compact Edition),但还有其他嵌入式/本地数据库,有些是关系数据库,有些是面向对象的:
并非所有这些都是免费的。SQL / LINQ / in-proc 支持在它们之间有所不同。这个列表只是为了好奇。
现在还有Karvonite,但是代码库链接已损坏。当它再次上线时,我将研究这个用于 WP7 开发。
我推荐SQLite。我们在我工作的地方开发的几乎所有应用程序都使用它。
它小巧紧凑。它确实需要一个 DLL 位于 app 目录中,但您不必安装其他软件,如 Access 或 SQL Server。此外,正如下面 danielkza 所述,“SQLite 是公共领域,因此您完全不必担心许可问题。” 这真的可以产生很大的不同。
您可以使用System.Data.SQLite或csharp-sqlite在 C# 应用程序中使用与 SQL 或 OleDB 相同的方法来访问它。
您还需要一个应用程序来编辑/管理数据库。我认为最好的一个是SQLite Studio。这里还有更多:
SQLite Admin
SQLite 2009 Pro(页面底部)
更新 - 2011 年 7 月 25 日 -更多 SQLite 应用程序(SO 上的问题)
这里有更多关于 SQLite 的信息:
维基百科上的 SQLite
使用 SQLite 的公司
自定义函数:此外,如果您正在查看SQLite 核心函数并且没有看到您喜欢的函数,您可以创建自己的自定义函数。以下是几个示例:
来自 SO
Anter 示例
Firebird 嵌入式可能是一个不错的选择
嵌入式版本是服务器的惊人变体。它是一个功能齐全的 Firebird 服务器,仅包含几个文件。它很容易部署,因为不需要安装服务器。
有一些非常好的点网驱动程序
SQL Server Compact 如果你想使用官方的微软解决方案。如果您需要这种东西,这具有能够使用 SQL Server 进行复制的优势。
SQLite 如果你想要一些非常简单的小而免费的东西。这是 android 用于其内部数据库的内容,因此它得到了很好的支持,并且有非常好的 .NET 绑定可用。
SQLite 的一个显着优势是它是跨平台的。因此,如果您想将应用程序移植到 Mono.NET,那么您无需对数据库实现进行任何修改。
我不喜欢这个解决方案的 MS Access,但很多人都将它包含在他们的答案中。由于专有格式和平台依赖性,它受到限制。不过它确实有它的优点。如果您有 MS Access 的副本,您可以轻松地操作数据,您可以以图形方式构建查询并创建宏。您可以轻松地将其与 MS Office 的其余部分集成。
在所有这些 SQLite 中,我推荐它,因为它非常紧凑、有据可查,并且得到了越来越多的开发人员的支持,无论平台如何。
编辑
我意识到这里的每个人都忘了提到另一种选择
只要您不需要关系表,您就可以通过 ADO.NET 使用 CSV 文件作为数据集读取。(更多的是 lulz 建议,但在某些情况下是合适的,并且不需要额外的库来进行 MS 部署。
如果您正在使用 .NET 4.0.2 或更高版本构建项目并需要嵌入式数据库支持,请考虑使用SQL Server Express LocalDB。
它是 Express 系列的一个相对较新的补充,具有更小的安装空间和更少的管理开销(与 Express 的其他版本相比),但它保持了 SQL Server 的可编程性方面。也就是说,与精简版不同,LocalDB 不需要安装单独的 ADO.NET 提供程序来与 SQL 进行通信。
有关详细信息,请参阅以下内容:
SQL Express v LocalDB v SQL Compact Edition(MSDN 博客)
SQL LocalDB 与 SQL Server CE(堆栈溢出)
http://en.wikipedia.org/wiki/NoSQL_(RDBMS)怎么样?
特别是 .Net 的 MongoDB
您可以Sql Server Express Edition
免费使用它,并且功能同样强大,除非您想要诸如此类mirroring
的功能。看看这个。
我已经成功使用了 db4o。
基于文件,大型社区,易于使用。
许可详情
免费通用公共许可证 db4o 默认在 GPL 下获得许可。
如果您计划在内部使用 db4o,或者您还计划在 GPL 下将自己的衍生作品作为自由软件开发和分发,那么 GPL 许可证是理想的选择。
商业许可证 如果要将 db4o 嵌入商业非 GPL 产品中,则需要商业许可证。商业被许可人可以获得优质服务和支持。
如果您不要求它是免费数据库,则未提及的替代方案是 VistaDB。它都是托管代码,为嵌入式数据库提供大量功能,并提供相当不错的性能。SQL CE 和 SQL Server Express 之间的一个很好的桥梁,因为您的大部分 VistaDB 存储过程无需修改即可在 SQL Server Express 中运行。在这一点上,我对客户服务也很满意。我一直在工作中使用它。没有服务可以启动。一个空的 DB 大约 1MB,而 DLL 也非常轻量级。有 ADO.NET 提供者之类的东西。我很喜欢它。
SQL server Compact Edition 最好,因为它是免费的,体积轻巧且集成良好
SQL Server Express 或 MS Access