2009-08-21 8 views
4

今日はプログラミングの仕事をしているうちに見たいと思っていることですが、まだそのようなアプリケーションは見たことがありません。あなたは非常に高く評価されます。別のデータベースエンジンの実行中に特定のデータベースエンジンを偽装する方法はありますか?

DBMSとしてMSSQLサーバーを必要とするアプリケーションがあるとします。そして、それをインストールして何かする必要があるとします。 (つまり、実動サーバーなどでそれを無効にするつもりはありません)

この場合、MSSQLを最初にインストールするとオーバーヘッドになる可能性があります。私は、別のDBMSを使用してデータを格納できるソフトウェアブリッジのようなものを推奨しています。言い換えれば、アプリケーションはMSSQLインスタンスを「見」ますが、その下にはAccessが存在する可能性があります。橋の砂利はある種の変換を行います。

別の例:MSSQLがありますが、特定のアプリケーションにOracleが必要です。その後、Oracleを購入する必要があります。しかし、ブリッジのようなものでは、MSSQL DBMSに情報を入れることができます。ブリッジはオラクルのようにポート1521を待ち受けるので、アプリケーションには「オラクルのインストールがあります」と考えられます。

  1. 実装できないアイデアはありますか?

  2. このようなアプリケーションはありますか?

  3. もしそうなら、それは何ですか?

おかげで... :)

が明確化の追加:アプリケーションはサードパーティからかもしれません。あなたはその内部アーキテクチャについての知識がありません。特定のDBMSを使用していることが分かります。私はサードパーティのソフトウェアのニーズ以外の別のDBMSを使用しようとしています。

+0

あなたが探しているものをよりよく反映するようにタイトルを編集しました。 –

+0

あなたは私の考えを持っていることを願っています:) Thanks buddy –

答えて

4

通常、アプリケーションは特定のデータベースサーバーに依存しないか、または理由によってアプリケーションに依存します。

アプリケーションがoracleまたはsqlサーバーなどを要求するのは、SQL、ストアドプロシージャなどを実行する特定のベンダーの実装の詳細に依存しているからです。これをエミュレートする方法はありません...

アプリケーションが非常に単純なSQL(つまり基本的な挿入/選択文)を実行するだけであれば、おそらく標準のドライバ(odbc、adoなど)とそのドライバすべての主要なSQLデータベースエンジンに対応できます。私の経験では、「シンプルなアプリケーション」は特定のデータベースベンダーを求めていません。

+0

アイデアは「アプリケーションが単純な場合、なぜアプリケーションが必要とするのと同じDBMSが必要なのですか? –

+0

特定のアプリケーションを念頭に置いていますか?よく書かれていれば、おそらく標準のドライバを使ってSQLデータベースにアクセスします... – Brann

+0

@ Brann - いくつかのアプリケーションはそれを行います..しかし、すべてのアプリケーションではありません:( –

3

これはODBCが解決するはずだった問題です:-)。

しかし、あなたの質問に応答した:

は、それを実現することができないという考えますか?

これを実装できます。

これは面倒であり、感謝していません。あなたは非常に限定された監査を受けるでしょう。私の意見では、それは価値のあることではありません。

このようなアプリケーションはありますか?

私が知っていることはありません。

もしそうなら、何ですか?

私が知っていることはありません。

......

コメント欄にChandrasekarのノートの持ち込み:

スーパーユーザーの視点で見てください...彼は素敵なアプリケーションを持っているが、彼はできませんいくつかのDBMSなしでそれを使用してください。しかし、彼はまだ何かをするプログラマーではありません。だから彼らはそのような製品が必要です

私はそれがアプリケーションを持っていることに同意しますが、それは非常に限定された監査です:)。

あなたが提案しているのは、Firefoxのプラグイン 'ietab'のようなものです。あなただけがインストールされているわけではありません。つまり、埋め込みの代わりに、つまりFirefoxのレンダリングウィンドウを使って完全に再実装する必要があります。

私の意見では、あまりにも多くの努力が... 2番目のデータベースをインストールするだけで簡単です。

+1

スーパーユーザーの視点で見てください..彼は素敵なアプリケーションを持っていますが、DBMSなしでは使えませんが、まだプログラマではないので、そのような製品が必要です –

+0

"2番目のデータベースをインストールする方が簡単です。いくつかの他の懸念があります..組織のポリシー、コスト要因、ETAsとの対処..多くのもの他:) –

0

このアプリケーションがADOを使用してSQL Serverに接続し、接続文字列を変更できる場合は、別のデータベースを使用するのは非常に簡単です。ただし、もう一方のデータベースはSQL Serverのすべての機能をサポートできる必要があります。さらに、このソフトウェアは他のデータベースでテストされていないため、アプリケーションがクラッシュする可能性があります。& Burn。

接続文字列を変更できない場合、またはアプリケーションがADOを使用しない場合は、状況がより複雑になり、不可能に近づきます。

私は以前、データベースに依存しない合理的なプロジェクトが必要でした。データベースはストアドプロシージャをサポートする必要がありましたが、その他の制限はありませんでした。デフォルトでは、SQL ServerとOracleの両方をサポートしようとしました。 (私たちはInterbaseもサポートしていましたが、これを宣伝していませんでした)。ほとんどの場合、データベースに依存しませんでしたが、かなりのマイナーな問題を回避する必要がありました。特にクエリの結合には、ストアドプロシージャにもっと多くのロジックを追加するだけで解決した厄介な問題がありました。

0

"これはODBCが解決するはずの問題です:-)。"

また、SQLも解決することが非常に同じ問題です。

この問題が存在する理由は、データ操作言語/インターフェイスがどのようなものであるべきかについて、世界が一義的には同意しないようだということです。

私は、これが解決できれば、既に完了していると考えます。

0

私が聞いたことのあるところは、Postgresの上にレイヤーを構築したので、Oracleとよく似ています。

しかし、これらのデータベースには特許と著作権の対象となる機能があるので、競合他社製品が真実を模倣できるかどうかには限界があります。

「ダウン」を真似するのはおそらく簡単です。たとえば、MS-AccessはOracleやSQL Serverの多くの機能を真似ることができませんが、SQL ServerがAccessのような単純なDBを模倣する可能性は非常に高いです。

0

通常、アプリケーションは特定のデータベースサーバーに依存します。すべてのデータベースは、共通の祖先を持つMSSQLとSybaseでさえ、少し異なります。

いずれのブリッジも、違いを抽象化しようとしますが、いくつかの露出を残してしまいます。これらはアプリケーションに微妙なバグを発生させる可能性がありますが、最初は正常に動作しているように見えますが、データが破損したり、悪化したりします。

さらに、アプリケーションベンダーはこのようなケースではサポートしません。単にそのユースケースをサポートしていないと言って、ブリッジを削除して、意図したデータベース。

要するに、アプリケーションが特に重要ではないとしても、アプリケーションが微妙に誤動作したり、サポートなしで残ったりするリスクはありません。アプリケーションが使用する基礎となるデータベースが嫌な場合は、別のアプリケーションを選択してください。

関連する問題