185

我正在.NET 中使用 C# 开发一个小型应用程序,并且我想要一个不使用太多资源的小型轻量级数据库。

您能否列出一些最著名的轻量级数据库软件

4

11 回答 11

202

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 开发。

于 2011-07-19T15:18:22.367 回答
60

我推荐SQLite。我们在我工作的地方开发的几乎所有应用程序都使用它。

它小巧紧凑。它确实需要一个 DLL 位于 app 目录中,但您不必安装其他软件,如 Access 或 SQL Server。此外,正如下面 danielkza 所述,“SQLite 是公共领域,因此您完全不必担心许可问题。” 这真的可以产生很大的不同。

您可以使用System.Data.SQLitecsharp-sqlite在 C# 应用程序中使用与 SQL 或 OleDB 相同的方法来访问它。

您还需要一个应用程序来编辑/管理数据库。我认为最好的一个是SQLite Studio。这里还有更多:
SQLite Admin
SQLite 2009 Pro(页面底部)
更新 - 2011 年 7 月 25 日 -更多 SQLite 应用程序(SO 上的问题)

这里有更多关于 SQLite 的信息:
维基百科上的 SQLite
使用 SQLite 的公司

自定义函数:此外,如果您正在查看SQLite 核心函数并且没有看到您喜欢的函数,您可以创建自己的自定义函数。以下是几个示例:
来自 SO
Anter 示例

于 2011-07-19T15:22:49.420 回答
11

Firebird 嵌入式可能是一个不错的选择

嵌入式版本是服务器的惊人变体。它是一个功能齐全的 Firebird 服务器,仅包含几个文件。它很容易部署,因为不需要安装服务器。

有一些非常好的点网驱动程序

于 2011-07-19T18:41:02.603 回答
9

SQL Server Compact 如果你想使用官方的微软解决方案。如果您需要这种东西,这具有能够使用 SQL Server 进行复制的优势。

SQLite 如果你想要一些非常简单的小而免费的东西。这是 android 用于其内部数据库的内容,因此它得到了很好的支持,并且有非常好的 .NET 绑定可用。

SQLite 的一个显着优势是它是跨平台的。因此,如果您想将应用程序移植到 Mono.NET,那么您无需对数据库实现进行任何修改。

我不喜欢这个解决方案的 MS Access,但很多人都将它包含在他们的答案中。由于专有格式和平台依赖性,它受到限制。不过它确实有它的优点。如果您有 MS Access 的副本,您可以轻松地操作数据,您可以以图形方式构建查询并创建宏。您可以轻松地将其与 MS Office 的其余部分集成。

在所有这些 SQLite 中,我推荐它,因为它非常紧凑、有据可查,并且得到了越来越多的开发人员的支持,无论平台如何。

编辑

我意识到这里的每个人都忘了提到另一种选择

只要您不需要关系表,您就可以通过 ADO.NET 使用 CSV 文件作为数据集读取。(更多的是 lulz 建议,但在某些情况下是合适的,并且不需要额外的库来进行 MS 部署。

于 2011-07-19T22:16:20.910 回答
8

如果您正在使用 .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(堆栈溢出)

于 2012-10-25T22:44:58.097 回答
7

http://en.wikipedia.org/wiki/NoSQL_(RDBMS)怎么样?

特别是 .Net 的 MongoDB

http://www.mongodb.org/display/DOCS/Home

于 2011-07-19T15:19:37.937 回答
4

您可以Sql Server Express Edition免费使用它,并且功能同样强大,除非您想要诸如此类mirroring的功能。看看这个

于 2011-07-19T15:21:00.527 回答
2

我已经成功使用了 db4o。
基于文件,大型社区,易于使用。

http://www.db4o.com/

许可详情

免费通用公共许可证 db4o 默认在 GPL 下获得许可。

如果您计划在内部使用 db4o,或者您还计划在 GPL 下将自己的衍生作品作为自由软件开发和分发,那么 GPL 许可证是理想的选择。

商业许可证 如果要将 db4o 嵌入商业非 GPL 产品中,则需要商业许可证。商业被许可人可以获得优质服务和支持。

于 2011-07-19T18:54:52.427 回答
2

如果您不要求它是免费数据库,则未提及的替代方案是 VistaDB。它都是托管代码,为嵌入式数据库提供大量功能,并提供相当不错的性能。SQL CE 和 SQL Server Express 之间的一个很好的桥梁,因为您的大部分 VistaDB 存储过程无需修改即可在 SQL Server Express 中运行。在这一点上,我对客户服务也很满意。我一直在工作中使用它。没有服务可以启动。一个空的 DB 大约 1MB,而 DLL 也非常轻量级。有 ADO.NET 提供者之类的东西。我很喜欢它。

维斯塔数据库

于 2011-07-20T02:42:44.870 回答
1

SQL server Compact Edition 最好,因为它是免费的,体积轻巧且集成良好

于 2011-07-19T20:07:19.437 回答
0

SQL Server Express 或 MS Access

于 2011-07-19T15:18:56.597 回答