哪个本地数据库适合我的情况?
Posted
技术标签:
【中文标题】哪个本地数据库适合我的情况?【英文标题】:Which local database fits my situation? 【发布时间】:2009-01-27 05:54:51 【问题描述】:我将构建一组应用程序。其中一个应用程序是无人值守的应用程序(用 VB6 编写),它将从各种来源接收到的数据写入本地数据库。所有其他应用程序(将在 VS 2008/c# 3.0 中编写)将读取此数据,主要是出于报告原因。
我不想要 SQL Server/mysql/Sybase 甚至它的 express 版本,因为分发它是一个问题(例如,需要单独安装等...)。我正在寻找一个本地数据库,它具有 VB6(如果我必须接受它,可能是 OLEDB 或 ODBC)和 ADO.NET 的驱动程序。如果数据库支持 ORM(如 NHibernate)或至少 1 对 1 的映射器(如 Subsonic),那就太好了,但这不会破坏交易。但我的主要要求是数据库应该非常稳固,这样我就不必浪费时间摆弄它,恢复丢失的数据等等......
我从前就有使用 MS Access 的经验,没有太多美好的回忆(也不是坏事)。我听说过 SQLite、SQL Server Compact Edition、VistaDB 等……但对它们的经验为零,我不知道有谁实际使用过它。
什么最适合我的情况?
【问题讨论】:
【参考方案1】:SQLite 可能正好符合要求。确保你也check out all the available wrappers。
【讨论】:
【参考方案2】:你想过FireBird SQL吗?
【讨论】:
+1。查看标记为 firebird 的 SO 问题,其中有一些专门处理使用 Firebird 作为嵌入式数据库的问题。您可以将其集成到您自己的设置中,它绝对应该足够稳定以满足您的需求。【参考方案3】:除非数据库,否则我会推荐 SQLite。我有使用它的经验,我和你一样。 System.Data.Sqlite 项目非常好,它们支持 ADO.net 2.0 和所有这些花哨的东西。他们目前也在努力在包装器上获得完整的 Linq 支持。我推荐它的原因如下。
-
低占用空间 - 引擎只有 700 KB 或更少。
可扩展 - 它可以处理相当大的数据库。 GB 的顺序。任何比这更大的东西都可能需要具有大量 RAM 的基于服务器的数据库引擎。
经久耐用 - 他们的测试套件覆盖了大部分代码,并已被证明适用于 iPhone 等许多商业应用程序
快速 - 此引擎的开销非常小。
当前 - .NET 项目与 Microsoft 提出的最新 .NET 3.5 技术保持同步。
便携式 - 可以在嵌入式系统或桌面上使用。
在此处查看 System.Data.Sqlite 项目http://sqlite.phxsoftware.com/
【讨论】:
【参考方案4】:查看 Advantage 数据库服务器。它具有静音安装选项,占地面积小,易于维护。它有很多客户端支持:ODBC、OLE DB、.net 数据提供程序、jdbc、dbi、php 等。 免版税本地引擎(只是与您的应用程序在进程中运行的 dll)、廉价的客户端/服务器、SQL和直接导航表访问。
The DevZone
【讨论】:
【参考方案5】:SQL Server Compact Edition 是进程内的,所以没有单独的安装。
【讨论】:
【参考方案6】:我也没有太多使用SQLite 的经验,但我用过一点。它用于LOT 的情况和应用程序。确实有 100 多个小数据库,但我建议至少将 SQLite 作为起点。
【讨论】:
【参考方案7】:我可以担保 VistaDB。您可能想查看的另一个数据库是 Blackfish
【讨论】:
【参考方案8】:SQLite 的影响非常小,而且写得非常好。它非常适合本地客户端数据库
【讨论】:
【参考方案9】:SQLite 正如其他人提到的 SQLite.net ADO.net 提供程序,以便 .NET 访问它。
【讨论】:
【参考方案10】:我使用了 ScimoreDB,并为我的应用程序编写了 log4net 的 appender。结果好坏参半,花了很多时间试图通过文档来让事情按照需要工作。
我正在转向 SqlLite,并且有一个关于将 SubSonic 与 SqlLite 结合使用的链接。
【讨论】:
【参考方案11】:可以将 SQL Server 用作直接连接到数据库文件的本地数据库。但这需要您安装 sql server express。
查看带有 Membership Provider 的 ASP.Net 的默认设置。它将为网站创建一个基于本地文件的数据库。
使用这种方法可能没问题,因为您可以在开发时使用所有熟悉的工具。
编辑: 我刚刚注意到嵌入的标签。如果您想在 Windows CE 设备上运行该应用程序,您可以选择SQL Server Compact。它不支持存储过程 AFAIK,但它支持 SQL Server 的大多数其他功能。
【讨论】:
能否详细说明如何在本地运行SQL Server而无需安装? 我做了更多检查,发现您需要 sql express 才能使用它。然后,您可以启动直接连接到数据库文件的数据库的“用户实例”。所以不完全是你所追求的。我会修改我的答案。以上是关于哪个本地数据库适合我的情况?的主要内容,如果未能解决你的问题,请参考以下文章