SQLに最大限準拠し、同時実行性をサポートしている埋め込みデータベースはどれですか?
-
08-07-2019 - |
質問
現在、私のアプリケーションはMicrosoft Accessを使用していますが、現在はLinuxボックスでホストされている場合があります。さらに、複数のコンピューターからアクセスされている間、これらのコンピューターの1つがレコードを更新する可能性があります(他のユーザーが読み取っている場合)。
また、埋め込みデータベースが内部SQL、結合などの複雑なSQLクエリをサポートする必要があります。
SQLite を試しましたが、既存のクエリの多くが失敗するか、修正する必要があります( FROMがSQLiteに受け入れられなかったため、内部結合を使用した単純なクエリのように角かっこを削除する必要がありました)。右結合もサポートされていません。
Apache Derby および H2 ですが、最初はあなたの貴重な意見を好むでしょう。
編集:
アプリケーションがすべてJavaで記述されていることを忘れていました。
編集:
事前設定では、ネットワークドライブで共有されているMicrosoft Access mdbを使用して、リモートコンピューターからDSNなしで接続します。
更新
Firebirdで試用しましたが、管理者がいなくて、SQLに準拠しているようです。それは高速であり、試してみた典型的なクエリのいずれにも問題はありませんでした。私はこれに非常に満足しており、この質問を提起したプロジェクトでそれを使用することを願っています。
うまくいけばAdvantage Serverも良いでしょうが、それをレビューする時間が取れませんでした。 Firebirdを確認または使用した後、他に何かを試す必要はありません。
解決
Firebird だと思います。
CteのもFirebird 2.1でサポートされています!
FirebirdはWindows、Linux、Mac OSで動作します...
Jaybird Java用ドライバー
AccessからFirebirdへの優れた移行ツールがいくつかあります。
- IBDatapump
- FirebirdデータベースコンバーターへのMicrosoft Access( MDB2FDB )
他のヒント
Advantage Database Server(sybase.com)を確認します。 Windows、Linux、および NetWare で実行されます。建設業界向けの商用会計/プロジェクト管理アプリケーションがあり、6年または7年前にAdvantageに切り替えました。パフォーマンスとサポートに非常に満足しています。顧客も非常に満足しています。
ここで、DerbyのSQL標準への準拠に関するかなり詳細な説明を見つけることができます: http:// wiki .apache.org / db-derby / SQLvsDerbyFeatures
当社もアドバンテージを使用しています。 XBase のバックグラウンドから来ましたが、それ以来SQLの性質を受け入れてきました。多くのプラットフォーム(Windows、Linux、NetWare)で動作し、多数のドライバー(PHP、ADO、JDBC、ODBC、Crystal)を備えているため、プログラムを作成できるほぼすべての環境で動作します。
これはあなたの研究に役立つかもしれません:リレーショナルデータベース管理システムの比較。
個人的には、Firebirdを真剣に検討することをお勧めします。クロスプラットフォームであり、ネイティブの .NETプロバイダーをサポートしますあなたが言及した結合。
Firebird は、「SQLに互換性があります」組み込みデータベース。埋め込みバージョンのエンジンはサーバーエディションと同じです。
Firebirdが埋め込まれていると、一度に1つのクライアントのみがデータベースに接続できるため、同じプロセスから複数の接続をスパンできますが、異なるプロセスからは接続できないことに注意してください。この問題は、Firebird 2.5以降で修正されています。