まつもと ゆきひろです

In message "[ruby-list:5082] Re: Rubyで OODB"
    on 97/10/21, 石塚圭樹 <keiju / rational.com> writes:

|けいじゅ@日本ラショナルソフトウェアです.

|# get_root/set_rootは何か他のものを思い出すので, db[root_name]が良いの
|# ではないかなと思いますが.

そうなんですか?

|そうすると機能的には:
|
|1. データベースのオープン/クローズ/削除
|2. トランザクション(begin/commit/abort)
|3. データベースのルートの設定/参照
|4. パーシステントなオブジェクトの外延を永続化(セーブ)する機能
|
|ぐらいですか...

1は不要なような気がするのですが.というのもデータベースは所
詮ファイルですから,削除などの操作はFileクラスのメソッドで実
現できると思いますし.あって行けないわけではないですが.

また,オープンとクローズは上記のインターフェースを採用するな
らトランザクション開始時と終了時に自動的に行われるのではない
かと思います.

ところで「外延」ってなに?

|>今のmarshalはData(Cで定義されたデータ構造,IOとかDirとか
|>Threadとか)を書き出すことが出来ません.クラスもダメです.場
|>合によってはMLFを使って自分でmarshalを定義する必要があるかも….
|
|あれ? marshal用にメソッドが用意されていませんでした? ファイルセーブを
|独自に定義したいような時用の...

ええ,でもそれでも問題はあります.

  * ビルトインクラスのインスタンスはこのメソッドを使えない.
  * このメソッドを定義してしまうとPSEだけでなくmarshal全てに
    影響してしまう.
  * IO(Socket)やThreadなど本質的にプロセスを越えられないデー
    タをどうやって扱うかはいずれにしても問題.

もうちょっと考えないといけないでしょうね.

                                まつもと ゆきひろ /:|)