【问题标题】:Which embedded database has maximum SQL compliance, and concurrency support?哪个嵌入式数据库具有最大的 SQL 合规性和并发支持?
【发布时间】:2010-11-29 03:46:15
【问题描述】:

我的应用程序目前使用 Microsoft Access,但现在可能托管在 Linux 机器上。此外,当从多台计算机访问时,其中一台可能会更新记录(当其他用户读取时)。

我还要求嵌入式数据库应该支持复杂的 SQL 查询——比如内部 SQL、Join 等。

我尝试了SQLite,但是许多现有的查询都失败了,或者需要修复(比如在一个简单的查询中,在 FROM 之后使用内连接括号是 SQLite 不接受的,必须删除)。也不支持右连接。

我知道Apache DerbyH2,但首先希望得到您的宝贵意见。

编辑:

我忘了提到我的应用程序完全是用 Java 编写的。

编辑:

在预设中,我使用 Microsoft Access mdb,在网络驱动器上共享,从远程计算机建立无 DSN 连接。

更新

我用 Firebird 进行了试验,它确实看起来非常好,零管理,并且符合 SQL。它很快,而且我可以尝试的任何典型查询都没有问题。我对它非常满意,并希望将它用于我提出这个问题的项目。

希望 Advantage Server 也不错,但没有时间查看它。在查看/使用 Firebird 后,觉得没有必要尝试其他任何东西。

【问题讨论】:

  • 根据HSqlDb,它们支持所有开源RDBMS中最广泛的SQL标准功能。

标签: database sqlite firebird derby embedded-database


【解决方案1】:

我想是Firebird

Firebird 2.1 甚至支持 Cte's

Firebird 适用于 Windows、Linux、Mac OS...

Jaybird Java 驱动程序。

有一些很好的从 Access 到 Firebird 的迁移工具:

【讨论】:

  • 感谢您提醒有关 Firebird。看起来不错。然而,许多评论/比较提到,尽管是一个成熟的数据库,但大多数 firebird 开发人员工具都是第三方商业产品。
  • - IBExpert (www.ibExpert.com) 有个人版 - Database Workbench (www.upscene.com) 也有个人版 你也可以使用 FlameRobin (www.flamerobin.org)
  • 要从多台计算机访问/连接数据库,并从其托管的系统进行更新 - 似乎需要在非嵌入式(即服务器模式)下进行设置。这需要相当多的管理吗?实际上,我一直在寻找嵌入式数据库,因为它们的管理简单性为零。
  • @vikramsjn:即使在服务器模式下,Firebird 在大多数情况下也是零管理。
  • 我将支持零管理员。我们以非嵌入式模式使用 Firebird 作为后台数据库。我们已经运行了多年,没有人在数百次安装中接触过它。
【解决方案2】:

我会看看 Advantage 数据库服务器 (sybase.com)。它在 Windows、Linux 和 NetWare 上运行。我们有一个用于建筑行业的商业会计/项目管理应用程序,并在 6 或 7 年前切换到 Advantage。我们对性能和支持感到非常满意。客户也很高兴。

【讨论】:

  • 我要补充一点,Advantage 有一个 Type 4 JDBC 驱动程序,提供了很好的 Java 支持。此外,Advantage 具有出色的查询优化工具,GUI 数据库实用程序具有 SQL 调试器!其他驱动程序包括 ODBC、PHP、.NET、Delphi 和 OLE DB。
【解决方案3】:

您可以在此处找到关于 Derby 的 SQL 标准合规性的相当详细的说明:http://wiki.apache.org/db-derby/SQLvsDerbyFeatures

【讨论】:

    【解决方案4】:

    我们公司也在使用 Advantage。我们来自 XBase 背景,但后来接受了它的 SQL 特性。它可以在许多平台(Windows、Linux、NetWare)上运行,并且有一堆驱动程序(PHP、ADO、JDBC、ODBC、Crystal),因此它几乎可以在您可能编程的任何环境中工作。

    【讨论】:

      【解决方案5】:

      这可能对您的研究有所帮助:Comparison of relational database management systems

      我个人建议认真看看 Firebird。它是跨平台的,有一个原生的.NET provider 并支持你提到的连接。

      【讨论】:

        【解决方案6】:

        Firebird 是最“兼容 SQL”的嵌入式数据库。嵌入式版本的引擎与服务器版相同。

        请注意,使用 Firebird 嵌入式时,一次只能连接一个客户端到数据库,因此您可以跨越来自同一进程的多个连接,但不能连接来自不同进程的连接。此问题已在 Firebird 2.5 及更高版本中修复。

        【讨论】:

          猜你喜欢
          • 2019-08-02
          • 1970-01-01
          • 2011-05-12
          • 1970-01-01
          • 2012-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-28
          相关资源
          最近更新 更多