Which embedded database has maximum SQL compliance

2019-02-06 01:16发布

My application at present uses Microsoft Access, but now may be hosted on Linux boxes. Additionally while being accessed from multiple computers, one of these may update the records (when its being read by other users).

I also require that the embedded database should support complex SQL queries - like inner SQL, Joins, etc.

I tried SQLite, but many of the existing queries fail, or need to be fixed (like in a simple query using inner join the brackets after FROM was not acceptable to SQLite, and had to be removed). Right join too is not supported.

I came to know about Apache Derby and H2, but would first prefer your valuable opinion.

Edit:

I forgot to mention that my application is entirely written in Java.

Edit:

At preset I use Microsoft Access mdb, shared on network drive, making DSN-less connection from remote computers.

Update

I did trials with Firebird, and it really does seem very good, zero admin, and SQL compliant. It is fast, and I had no problems in any of the typical queries I could try on it. I am very satisfied with it, and hopefully will use it for the project for which I raised this question.

Hopefully Advantage Server too will be good, but could not get time to review it. After reviewing/using Firebird do not feel any need to try anything else.

6条回答
干净又极端
2楼-- · 2019-02-06 01:53

This might be helpful in your research: Comparison of relational database management systems.

I personally would suggest taking a serious look at Firebird. It is cross-platform, has a native .NET provider and supports the joins you mention.

查看更多
SAY GOODBYE
3楼-- · 2019-02-06 02:00

I would take a look at the Advantage Database Server (sybase.com). It runs on Windows, Linux, and NetWare. We have a commercial accounting / project management application for the construction industry and switched to Advantage 6 or 7 years ago. We have been extremly pleased with the performance and support. Customers are very happy too.

查看更多
爱情/是我丢掉的垃圾
4楼-- · 2019-02-06 02:00

You can find a fairly detailed description of Derby's SQL Standards compliance here: http://wiki.apache.org/db-derby/SQLvsDerbyFeatures

查看更多
贼婆χ
5楼-- · 2019-02-06 02:10

Firebird is the most "comptible to SQL" embedded database. The engine of the embedded version is the same as the server edition.

Pay attention that with Firebird embedded only one client at a time can connect to the database, so you can span multiple connection from the same process but not connect from different processes. This issue is fixed in Firebird 2.5 and above.

查看更多
走好不送
6楼-- · 2019-02-06 02:14

I think it's Firebird.

Even Cte's are supported in Firebird 2.1 !

Firebird works on Windows, Linux, Mac OS...

Jaybird driver for Java.

There are some good migration tools from Access to Firebird:

查看更多
Root(大扎)
7楼-- · 2019-02-06 02:14

Our company is using Advantage as well. We came at it from an XBase background, but have since embraced its SQL nature. It runs on a lot of platforms (Windows, Linux, NetWare) and has a bunch of drivers (PHP, ADO, JDBC, ODBC, Crystal) so that it works in just about any environment in which you might program.

查看更多
登录 后发表回答