1

透過的な持続性により、データベースの代わりに通常のオブジェクトを使用できます。オブジェクトは、ディスクから自動的に読み取られ、ディスクに書き込まれます。そのようなシステムの例は、Gemstone と Rucksack (一般的な Lisp 用) です。

それらが行うことの簡略化されたバージョン: アクセスfoo.barして bar がメモリ内にない場合、ディスクからロードされます。そうする場合foo.bar = bazfooオブジェクトはディスク上で更新されます。ほとんどのシステムには何らかの形式のトランザクションもあり、プログラム間、さらにはネットワーク間でのオブジェクトの共有をサポートしている場合があります。

私の質問は、これらの種類のシステムを実装するためのさまざまな手法と、これらの実装アプローチ間のトレードオフは何ですか?

4

1 に答える 1

1

私はこのようなシステム (ObjectStore) をいくつかのプロジェクトで使用してきましたが、最も注目すべきは商業信用リスク システムと、石油パイプライン ネットワークの流れを最適化するためのシステムです。実装に関する問題は複雑すぎてここで議論することはできませんが、そのようなシステムとリレーショナル データベースとの間のトレードオフについては:

オブジェクト DB の利点:

  • 非常に高速 - 一部のクエリでは、リレーショナル データベースよりも 100 倍から 1000 倍高速です。実際、私が設計したリスク システムは (Sybase 自身によると) SQL データベースに実装できませんでした。

  • C++ コードとの統合が非常に簡単 - インピーダンス整合層は必要ありません。

  • パンとバターの CRUD アプリで利用できる限られた数の GUI ライブラリ

関係の利点:

  • アドホック クエリは、オブジェクト DB よりもはるかに簡単かつ高速です。

  • データベースを管理するための約 100 万のツール

  • 非常に簡単に GUI アプリを作成できます

  • 多くの人がRDBMSの経験を持っています

もちろん、すべてのツールと同様に、1 つを選択する必要はありません。私が作成したリスク アプリは、Sybase データベースからデータをインポートし、パイプラインは Oracle からインポートしました。

于 2010-06-14T18:55:44.623 に答える