私は、メインフレームで実行される特定のDB2データベースのサブセットとしてDerbyを使用したいと考えています。DerbyとDB2の間の移植可能なスキーマ
2つのデータベースの間で最大(少なくともDML)になるようにデータベースを設計する際に役立つヒントとヒントを教えてください。
私は、メインフレームで実行される特定のDB2データベースのサブセットとしてDerbyを使用したいと考えています。DerbyとDB2の間の移植可能なスキーマ
2つのデータベースの間で最大(少なくともDML)になるようにデータベースを設計する際に役立つヒントとヒントを教えてください。
私はあなたの質問に「たいてい」あなたは「ほとんどの互換性」を意味すると思いますか? 一般的に、私はあなたがDerbyで正しい選択をしたと思います。これは私が知っている唯一のデータベースであり、DB2のような強力な型付けを強制します。ダービーのdual
テーブルのバージョンがSYSIBM.SYSDUMMY1
であることは偶然ではないと思います。
DMLの非互換性の問題を回避する最も良い方法は、アプリケーションでデータベース抽象化の手段を使用することです。 Javaを使用している場合は、HibernateまたはjOOQがそのようなオプションを提供します。データベースを抽象化することができない場合は、自動統合テストで大量のサンプルクエリを書くことをお勧めします。そのテストでは、DerbyとDB2の両方に対して動作し、動作が同一であることを確認します(レコードの挿入、JOIN、ネストされたSELECTSなどを使用した再読み込みなど)。
jOOQの開発者として、自分自身で統合テストを書くことは、特にDerbyとDB2の場合、非常に難しいでしょう。 :-)