哪个嵌入式数据库具有最大的 SQL 合规性和并发支持?

Posted

技术标签:

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

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

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

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

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

编辑:

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

编辑:

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

更新

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

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

【问题讨论】:

根据HSqlDb,它们支持所有开源RDBMS中最广泛的SQL标准功能。 【参考方案1】:

我想是Firebird。

Firebird 2.1 甚至支持 Cte's!

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

Jaybird Java 驱动程序。

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

IBDatapump Microsoft Access 到 Firebird 数据库转换器 (MDB2FDB)

【讨论】:

感谢您提醒有关 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 及更高版本中修复。

【讨论】:

以上是关于哪个嵌入式数据库具有最大的 SQL 合规性和并发支持?的主要内容,如果未能解决你的问题,请参考以下文章

一天中每小时的 SQL 最大并发会话数

YouTube 嵌入具有最小和最大尺寸的动态尺寸

具有加密功能的嵌入式 SQL 数据库?

Sql CE 3.5 的最大并发连接数是多少?

哪个数据库(嵌入式或规范化)在可扩展性方面更好?

审计 SQL Server - 谁在啥时候改变啥? SOX 合规性