我在。net中使用c#开发一个小型应用程序,我希望有一个小型的轻量级数据库,它不使用太多资源。
请列出一些最著名的轻量级数据库软件。
14/06/2016 是的…还在获得支持:-/
17/03/2014我仍然收到这个问题的好评,注意这个问题最初回答的日期。虽然列出的主要三项仍然完全可行,但该清单将趋于陈旧。还有其他可用的数据库技术未列出。
您有几个立即可识别和免费的选项:
- SQL Server Express LocalDB SQL Server精简版
- SQLite
SQL Server Compact随ADO一起下载。. NET提供程序,您将需要在代码中引用它。SQLite下载可能没有,所以这里有一个链接:
http://sqlite.phxsoftware.com/这三个都使用SQL,尽管可能有一些限制/怪癖。Management Studio适用于Compact和LocalDB,而对于SQLite,您将需要另一个UI工具,如SQLite Administrator:
http://sqliteadmin.orbmu2k.de/有NoSQL替代方案,例如:
- 英镑
- RavenDb
我个人会避免使用MS Access面对其他免费的选择。使用LocalDB、Compact或SQLite不会出错。它们都是可爱的小数据库,在很小的内存中运行相对较快——我想个人偏好是喜欢微软产品的宗教方面:-)
我使用Sterling进行Windows Phone编程,因为它是为使用隔离存储而构建的。我只看过关于RavenDb的文章,但我可以告诉你,它是一个基于JSON的文档存储框架。
不要混淆情况(使用SQLite, SQL Server Express LocalDB或SQL Server Compact Edition),但是还有其他嵌入式/本地数据库,有些是关系数据库,有些是面向对象的:
- 嵌入式火鸟db4o
- VistaDb
- SharpHSQL
- Berkeley DB
- Eloquera
- SiaqoDb
并非所有这些都是免费的。对SQL/LINQ/进程内的支持各不相同。这个列表只是为了好奇。
现在也有Karvonite,但是代码库链接被破坏了。当它再次上线时,我将在WP7开发中研究它。
我推荐SQLite。我们在我工作的地方开发的几乎所有应用程序都使用它。
它小而紧凑。它确实需要一个DLL在应用程序目录中,但你不需要安装其他软件,如Access或SQL Server。此外,正如danielkza下面所说的,"SQLite是公共领域的,所以你完全不必担心许可问题。"这真的会有很大的不同。
您可以使用System.Data.SQLite或csharp-sqlite在c#应用程序中使用与SQL或OleDB相同的方法访问它。
您还需要一个应用程序来编辑/管理数据库。在我看来最好的是SQLite Studio。这里还有一些:
SQLite管理
SQLite 2009 Pro(页面底部)
更新- 11年7月25日-更多SQLite应用程序(这里有关于SO的问题)
关于SQLite的更多信息:
维基百科上的SQLite
使用SQLite的公司
自定义函数:另外,如果你在SQLite核心函数中找不到你喜欢的,你可以创建自己的自定义函数。下面是几个例子:
从SO
另一个例子
火鸟嵌入可以是一个不错的选择
嵌入式版本是服务器的一个惊人的变化。这是一个功能齐全的Firebird服务器打包在几个文件中。它非常。易于部署,因为不需要安装服务器。
有一些非常好的点网驱动程序
SQL Server Compact,如果您想使用microsoft官方解决方案。这样做的好处是,如果需要的话,可以在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的可编程性。也就是说,与Compact Edition不同,LocalDB不需要安装单独的ADO。. NET提供程序与SQL通信。
查看更多详细信息:
SQL Express v LocalDB v SQL Compact Edition (MSDN Blogs)
SQL LocalDB vs SQL Server CE (Stack Overflow)
http://en.wikipedia.org/wiki/NoSQL_(RDBMS怎么样?
特别是MongoDB for .Net
http://www.mongodb.org/display/DOCS/Home
你可以使用Sql Server Express Edition
,因为它是免费的,同样强大,除非你想要mirroring
等功能。看看这个。
我曾经成功地使用过db40。
基于文件,大型社区,简单易用。
授权详情
自由通用公共许可证db40默认使用GPL许可。
如果您计划在内部使用db40或者您计划使用db40,那么GPL许可证是理想的作为自由软件开发和分发您自己的衍生作品
商用License需要使用商用License在商业非gpl产品中嵌入db40。商业持牌人收益获得高级服务和支持。
如果您不要求它是一个免费数据库,则没有提到的另一种选择是VistaDB。它都是托管代码,为嵌入式数据库提供了大量特性,并提供了相当好的性能。这是SQL CE和SQL Server Express之间的一个很好的桥梁,因为您的大多数VistaDB存储过程将在SQL Server Express中无需修改即可运行。在这一点上,我对客户服务也很满意。我一直在工作中使用它。没有服务要启动。一个空的DB大约是1MB, DLL也非常轻量级。ADO。NET提供程序之类的东西。我很喜欢它。
visastadb
SQL server精简版最佳,因为它是免费的,大小轻,集成良好
SQL server Express或MS Access