2008年12月21日日曜日

木構造に基づく編成法と動的ハッシュによる編成法

2008年度技術士二次試験を見直しています。
情報工学部門(午後) 情報システムデータ工学のI-1-2は以下の様な問題でした。

I-1-2 関係データベースにおいて、ある関係の属性に索引を設ける場合に、編成法として、木構造にもとづく編成法(B+Treeなど)と動的ハッシュによる編成法(リニアハッシュなど)が選べるとする。それぞれの方法について、他方より有利と予測できる応用例を示し、その理由を述べよ。

実際の答案では、木構造やHashに関して、あまり深く書く紙面はありませんから、以下を参考に特徴的な部分を記述することになるのでしょう...
http://objectmaniacgallery.blogspot.com/2008/12/btree.html
http://objectmaniacgallery.blogspot.com/2008/12/linear-hash.html

そして、Pros & Consですが思うに以下のようなことでしょうか...
動的Hash:

  • 圧倒的に検索速度が速い=O(1)。(Synonymによる多少の低下はあっても、Hash空間を拡大することで改善可能でしょう。)
  • Indexの更新が起こりにくいので、頻繁にTransactionのある状況でもPerformanceの低下が少ない。(Linear HashではHash空間の拡張の際に多少のCostは掛かるが...)
木構造:

  • 検索条件で、範囲指定がされた場合に有利(<や>等)。HashだとIndexの意味が殆どなくなってしまうのでは?
応用例として、あまりすばらしいのは考え付かないけれど、動的Hashであれば、IDなどでPin Pointに検索をかける場合は威力を発揮し、木構造であれば、IDが何らかの順番を意味している場合などに、範囲指定して検索を書ける場面が多ければ威力を発揮すると言うところなのかなぁ?

0 件のコメント: