[SML 8199] Re: Pharoとデータベース

Narita @ TOPPA narita_takaoki @ hb.tp1.jp
2018年 8月 3日 (金) 12:53:48 JST


ML に返信したつもりで、ご本人様直接に返してました。

On 2018/07/31 19:29, 五十嵐雅哉 wrote:
 > 初心者質問です。
 >
 > リレーショナル・データベース(RB)とPharoのコラボを考えていますが、RBで 
できことはPharoでは容易なような気もします。
 > 想定しているRBが大規模なものではないのですが、Collection系で間に合いそう 
な気もします。RBも基本、何らかの言語で開発されているとも思うのですが、 
Pharoでできればそれでいいのでしょうか?

RB というよりはデータベース(DB)ソフトウェアを使う理由ですが、データ
量的な問題は別とすると、データの永続化を考えなければ現状使う意味はあ
まり無いと思います。

永続化を前提として、一貫性等の整合性を維持しようとすると結構面倒なこ
とが生じるので、そこらへんを DB などに押し付けて済ますというのが一つ
の解決法だと思います。

なので結局のところ、この永続化にまつわる厄介ごとを全部自分で解決つけ
られ、実行時効率の要求にも応えられ、信頼性を保証するためのエンジニア
リングプロセスも問題にしないなら、自分でやってしまうのはアリでしょう。

もしくは永続化は考えないし、途中で問題があってプログラムが止まったり
したときも、そこまでのデータ操作は全て捨てて問題ないですよ、みたいな
状況なら、異種のアーキテクチャの DB と協調するようにするコストが無駄
ですから DB を使わないとなるでしょう。

別な言い方をすると、MVC モデルの M の部分を RB にやらせる方が要求に
対応したシステムの構築が楽なら RB を使った方が良いし、そうじゃなくて
M の部分は最低限単に実行中のデータを保持していれば十分にすぎないなら
RB をわざわざ使う理由が無いと思います。

安直に、永続化が必要としても、「データを書き込んでいるときにプログラ
ムが何らかの理由で止まる※」という状況を考え、それでも大して困らない
と言えるなら DB はいらないと言っても良いかもしれません。

※もちろん最悪書き込み中のファイル等の中身は破壊されるわけです。

もちろん永続化がいらないなら DB はいらないでしょうし。

大筋はそんな感じではなかろうかと思います。データ量や実行時効率の問題
が絡んだ実際的な判断は、また別になるでしょうけれど。

-- 
近江屋  成田 隆興


SML メーリングリストの案内