オブジェクトデータベースの鉄則に向けて

どうやら、ERDなどに慣れてデータモデリングをやっていると、UMLを使ってドメインモデリングをしても、オブジェクトデータベースの設計で致命的なミスを犯可能性があります。「RDBMSの設計をしていると、論理モデルは物理モデルではない。実際にはデータベースはアプリケーションとは別に存在しているという安心感がある。ところがオブジェクトデータベースでは、論理モデルは物理モデルであり、なおかつそれがソフトウェアコンポーネントであることに注意しなければならない」これって非常に重要な考え方ですね。

つまりオブジェクトデータベースでは、データモデルの段階から、ソフトウェアコンポーネントとして設計する必要があるということです。そしてソフトウェアコンポーネントは依存性について十分に検討しなくてはなりません。データモデルのある2つのクラスが、双方向のリレーションを持つというだけで、それらはお互いに依存するようになり、別々に取り扱うことはできなくなります。

また、クエリを実行したり更新をしたり、データベースのロジックをどう実装したらよいか、ということもソフトウェアコンポーネントとして十分に検討する必要があります。

ところがこれらのパターンについていろいろ皆で検討してみると、様々なアプローチが出てくるのも事実で、これと決めるのは非常に困難であるばかりでなく、むしろ良くないことであるように思えます。データの共有方法やアプリケーションの種類などに応じてパターンを抽出するとともに、それらのパターンをコミュニティで共有し、新陳代謝を高めていくことが必要であると思います。

私たちは、v5で実装予定の透過的アクティベーションの実装を待って、これらのパターンを提供していこうと考えています。


javaと.NETにネイティブなオープンソースのオブジェクトデータベース
db4o日本コミュニティポータル
http://www.db4o.com/japan/
japan@db4o.com