哪个本地数据库适合我的情况?

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 才能使用它。然后,您可以启动直接连接到数据库文件的数据库的“用户实例”。所以不完全是你所追求的。我会修改我的答案。

以上是关于哪个本地数据库适合我的情况?的主要内容,如果未能解决你的问题,请参考以下文章

如何连接到本地 MySQL 数据库 [重复]

本地数据库的数据库 ORM

哪个库用于 iOS 中本地存储的 JSON 文件?

什么是在本地为 iOS/Android 存储大数据的最佳方式

.Net 最好使用的 sql 服务器

如何从本地 JSON 文件将数据加载到 ViewController [关闭]