提问



我正在用.NET开发一个带有C#的小应用程序,我希望有一个小的轻量级数据库,它不会占用太多资源。


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

最佳参考


14/06/2016 是的......仍然得到了投票: - /





17/03/2014 我仍然接受这方面的投票,请注意最初回答的日期。尽管列出的主要三项仍然完全可行,但该列表将趋于变得陈旧。还有其他未列出的数据库技术。





您有几个可立即识别和免费的选项:



  • SQL Server Express LocalDB

  • SQL Server Compact Edition

  • SQLite的



SQL Server Compact下载附带ADO.NET提供程序,您需要在代码中引用它。 SQLite下载可能没有它,所以这里有一个链接:[3] [4] [5]


http://sqlite.phxsoftware.com/[6]


这三个都使用SQL,但可能有一些限制/怪癖。 Management Studio适用于Compact和LocalDB,而使用SQLite则需要另一个UI工具,例如SQLite Administrator:


http://sqliteadmin.orbmu2k.de/[7]


有NoSQL替代品,例如:



  • 925

  • RavenDb



就个人而言,我会避免在面对其他免费选项时使用MS Access。 LocalDB,Compact或SQLite不会出错。它们都是可爱的小型数据库,在相对较快的RAM中运行 - 个人偏好关于喜欢微软产品的宗教方面我认为: - )[8] [9]


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


不要混淆情况(与SQLite,SQL Server Express LocalDB或SQL Server Compact Edition一起使用),但还有其他嵌入式/本地数据库,其中一些是关系的,另一些是面向对象的:



  • 嵌入式Firebird

  • db4o的

  • VistaDB的

  • SharpHSQL

  • Berkeley DB

  • Eloquera

  • SiaqoDb



并非所有这些都是免费的。 SQL/LINQ/in-proc支持各有不同。这份清单只是为了好奇。[10] [11] [12] [13] [14] [15] [16]


现在还有Karvonite,但代码库链接已损坏。当它再次活着的时候,我将在WP7开发中研究这个。[17]

其它参考1


我推荐SQLite。我们在我工作的几乎所有应用程序中使用它。[18]


它小而紧凑。它确实需要DLL在app目录中,但你不必安装其他软件,如Access或SQL Server。另外,正如danielkza所述,SQLite是公共领域,所以你不必担心许可。这真的可以产生很大的不同。


您可以使用System.Data.SQLite或csharp-sqlite在C#应用程序中使用与SQL或OleDB相同的方法访问它。[19] [20]


您还需要一个应用程序来编辑/管理数据库。我认为最好的是SQLite Studio。这里有几个:

SQLite管理员
SQLite 2009 Pro(页面底部)

更新 - 2011年7月25日 - 更多SQLite应用程序(关于SO的问题)[21] [22] [23]


这里有更多关于SQLite的信息:

维基百科上的SQLite

使用SQLite的公司[25] [26]


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

来自SO
Anoter的例子[27] [29]

其它参考2


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



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



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

其它参考3


SQL Server Compact如果要使用官方的Microsoft软件解决方案。如果您需要这样的东西,这具有能够与SQL服务器一起使用复制的优点。


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


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


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


所有这些SQLite都是我的推荐,因为它非常紧凑,文档齐全,并且得到越来越多的开发人员支持,无论平台如何。


修改


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


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

其它参考4


如果要使用.NET 4.0.2或更高版本构建项目并希望获得嵌入式数据库支持,请考虑使用SQL Server Express LocalDB。 [32]


它是Express系列的一个相对较新的附加功能,它具有较小的安装空间和较低的管理开销(与其他版本的Express相比),但它维护了SQL Server的可编程性方面。也就是说,与Compact Edition不同,LocalDB没有需要安装单独的ADO.NET提供程序才能与SQL通信。


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


SQL Express v LocalDB v SQL Compact Edition(MSDN博客)

SQL LocalDB与SQL Server CE(堆栈溢出)[33]

其它参考5


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


特别是MongoDB for .Net


http://www.mongodb.org/display/DOCS/Home[36]

其它参考6


你可以使用Sql Server Express Edition作为它的自由并且同样强大,除非你想要mirroring等功能。看看这个。[37]

其它参考7


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


http://www.db4o.com/[38]


许可详细信息



  免费通用公共许可证db4o默认使用GPL许可。

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

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


其它参考8


如果你不要求它成为一个免费的数据库,那么没有提到的替代方案是VistaDB。它是所有托管代码,为嵌入式数据库提供了大量功能,并提供了相当好的性能.SQL CE和SQL Server Express之间的良好桥梁,因为大多数VistaDB存储过程将在SQL Server Express中无需修改即可运行。此时我对客户服务也非常满意。我一直在工作中使用它。没有服务可以启动。空数据库大约1MB,DLL也非常轻量级。有ADO.NET提供商等等。我非常喜欢它。


VistaDB的[39]

其它参考9


SQL Server Compact Edition最好,因为它是免费的,并且大小轻薄并且集成良好

其它参考10


SQL Server Express或MS Access