对于小型.NET 应用程序来说,什么是数据库的好选择?

我正在用 C # in 开发一个小应用程序。NET 和我想有一个小的 轻量级数据库轻量级数据库,不使用太多的资源。

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

79767 次浏览

14/06/2016 是的... 仍然得到赞同票:-/


17/03/2014 我仍然收到这个问题的赞扬,请注意这个问题最初被回答的日期。虽然列出的三个主要项目仍然是完全可行的,列表将趋向于变得陈旧。还有一些未列出的可用数据库技术。


你有两个立即被认可的免费选择:

SQLServerCompactdownload 附带了需要在代码中引用的 ADO.NET 提供程序。SQLite 下载可能没有,所以这里有一个链接:

Http://sqlite.phxsoftware.com/

这三种方法都使用 SQL,尽管可能有一些限制/怪癖。ManagementStudio 使用 CompactandLocalDB,而使用 SQLite 则需要另一个 UI 工具,比如 SQLite Administrator:

Http://sqliteadmin.orbmu2k.de/

NoSQL 还有其他选择,比如:

就个人而言,我会避免使用微软访问在面对其他免费选项。使用 LocalDB、 Compactor SQLite 不会出错。它们都是可爱的小型数据库,在小内存中运行速度相对较快——我猜想,在喜欢微软产品的宗教方面,个人偏好如下: -)

我使用 Sterling for Windows Phone 编程,因为它是用独立存储构建的。我只看过关于 RavenDb 的文章,但是我可以告诉你,它是一个基于 JSON 的文档存储框架。

不要混淆这种情况(使用 SQLite、 SQL Server Express 本地数据库(localDB)或 SQL Server CompactEdition) ,但是还有其他的嵌入式/本地数据库,有些是关系型的,有些是面向对象的:

不是所有的都是免费的。SQL/LINQ/in-proc 支持在它们之间都是不同的。这份名单只是出于好奇。

现在也有 Karvonite,但是代码库链接被打破。当它再次上线时,我将会为 WP7的开发研究这一个。

SQL Server Express 或多媒体接达

你可以使用 Sql Server Express Edition作为它的免费和同样强大,直到和除非你想要的功能,如 mirroring等。看看 这个

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

又小又紧凑。它确实要求应用程序目录中有一个 DLL,但是您不必安装其他软件,如 Access 或 SQLServer。另外,正如 danielkza 下面所说,“ SQLite 是公共领域,所以您根本不必担心授权问题。”那真的会有很大的不同。

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

您还需要一个应用程序来编辑/管理数据库。我认为最好的是 SQLite Studio。这里还有一些:
SQLite 管理
SQLite 2009 Pro (页面底部)
更新-7/25/11-< a href = “ https://stackoverflow. com/questions/1507506/what-are-good-open-source-gui-SQLite-database-manager”> More SQLite apps (questions here on SO)

以下是关于 SQLite 的更多信息:
维基百科上的 SQLite
使用 SQLite 的公司

定制功能: 另外,如果在 SQLite 核心函数中找不到喜欢的函数,可以创建自己的自定义函数。下面是一些例子:
从 SO < br/> 再举个例子

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

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

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

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

Http://www.db4o.com/

牌照详情

默认情况下,Free General Public License db4o 是根据 GPL 授权的。

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

商业许可证如果您愿意,需要商业许可证 将 db4o 嵌入到商业非 GPL 产品中 获得优质服务和支持。

SQL 服务器紧凑版最好,因为它是免费的,轻的大小和集成良好

如果要使用官方微软解决方案,请使用 SQLServerCompact。这样做的好处是,如果您需要使用 SQL 服务器,可以使用复制。

如果你想要一些非常简单的小和免费的 SQLite。这就是 android 使用的内部数据库,因此它得到了很好的支持。NET 绑定可用。

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

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

在所有这些 SQLite 中,我建议使用它,因为它是如此紧凑,有良好的文档记录,并且得到了越来越多的开发人员的支持,而不管平台如何。

剪辑

我意识到还有一个选择大家都忘了提

只要不需要关系表,就可以通过 ADO.NET 将 CSV 文件读取为数据集。(比起其他任何建议,更多的是一种诱惑,但在某些情况下是合适的,并且不需要为 MS 部署额外的库。

如果你不需要免费的数据库,VistaDB 是另一个没有被提及的选择。这些都是托管代码,为嵌入式数据库提供了大量的特性,并且提供了非常好的性能。在 SQL CE 和 SQL Server Express 之间架起了一座很好的桥梁,因为你的 VistaDB 大部分存储过程不需要修改 SQL Server Express 就可以运行。我对目前的客户服务也很满意。我工作的时候一直在用。没有服务可以启动。一个空数据库大约有1MB,而且 DLL 也非常轻量级。有 ADO.NET 提供程序之类的东西。我挺喜欢的。

VistaDB

如果您正在构建具有.NET 4.0.2或更高版本的项目并希望获得嵌入式数据库支持,请考虑使用 SQL Server Express 本地数据库

它是对 Express 系列的一个相对较新的补充,具有较小的安装占用和减少的管理开销(与其他版本的 Express 相比) ,但是它维护了 SQL Server 的可编程性方面。也就是说,与 CompactEdition 不同,LocalDB 不需要安装单独的 ADO.NET 提供程序来与 SQL 通信。

有关详细信息,请参阅以下内容:

SQL Express v LocalDB v SQL CompactEdition (MSDN Blog)
SQL LocalDB vs SQL Server CE (堆栈溢出)