web-dev-qa-db-ja.com

複数のデータベースタイプに対して単一のDDLおよびDMLセットを維持するための最良のアプローチ

このアプリケーションでは、OracleIBM DB2 (both UDB and ZOS)postgresqlなどの複数のタイプのデータベースをサポートしています。現在、これらの異なるデータベースごとに個別のDDLとDMLを維持しています。

これらの複数のDDL/DMLのセットを維持することは困難であり、さらに将来的には、アプリケーションがさらにいくつかのデータベースタイプをサポートする可能性があります。

DDL/DMLの単一のセットを維持したい場合、最良のアプローチは何でしょうか?

1
musibs

複数のデータベースタイプをサポートする最良の方法は、それぞれのデータベースタイプのSQLステートメントを最適化することです。そうしないと、いつの日か、いずれかのデータベースタイプで大きなパフォーマンスの問題が発生することになります。

それに加えて、顧客が「私はOracle、DB2、MSSQLなどをサポートしています)と言って、それぞれのSQLを最適化しないのは不公平です。なぜですか?顧客はデータベースに多額の費用を支払い、アプリケーションはそうではないからです。データベースが提供する利点と機能を使用します。

4
user56901

ここでは、開発のバックグラウンドから来た別のオプションをリストします。ある時点で、クライアント/サーバーアプリケーションを開発しました。そこでは、DDL(ほとんどの部分)をクライアントとサーバーの間で同じにする必要がありました。課題は、クライアントとサーバーが異なるデータベースエンジンを使用することでした。

つまり、XMLを使用することでした。すべてのテーブルを定義しました(さらにはXML内でアップグレードしました)。次に、さまざまなXSLスタイルシートを使用して、クライアントまたはサーバーに対して実行する特定の作成(またはアップグレード)スクリプトを(正しいDBエンジンのDDLダイアレクトを使用して)作成しました。そこで彼らはXMLからSQLに移行しました。また、異なるSQL定義を維持する必要はありませんでした。たった1つのXMLファイル。

今、私はこのオプションがいくつかの頭を回すかもしれないことを知っています、しかしそれはうまくいきました。そして、私はあなたがこのオプションを追求すべきだと言っているのではありません。それはオプションです。

1
Chris Aldrich