情報処理技術者試験(データベーススペシャリスト)のキーワードメモ(四)

■インデックス

B木:多分木、根から葉までの高さが同じバランス木です。
B+木:B木の応用です。葉には全てのデータを持つ。
B*木:ノードに含まれるデータの最低数は最大値の2/3以上です。
B木インデックスで検索する時に主キーが良く使われる。検索条件が一つしかなく、複数検索条件が使えない。 ANDとORも使えない。
ビットマップ:値の数が少なく、データウェアハウスの複雑な検索に良く使われる。ANDとORが使える。
ハッシュ:ハッシュ値の重複が起こりづらい場合に使われる。

■テーブルの結合

  • セミジョイン法
  • 分散DBシステムの結合演算の【通信量を減らす】ための仕組み。結合対象となるデータがある2つのサイトにおいて、一方のサイトにある表の【結合対象列のみ】を他方のサイトへ送って結合演算を行い、その結合結果を返送して再び結合演算を行う。
  • 入れ子ループ法
  • 一方のサイトから1行ずつデータを送信し、他方の受信側サイトにてその各行に対し結合演算を行う。
  • マージジョイン法
  • 両方のサイトでデータのソートを行い、一方から他方へその結果を送信し結合演算を行う。
  • ハッシュジョイン法
  • あらかじめ結合列の値に対してハッシュ関数を用いて生成したハッシュ値を比較して高速化できる。

排他制御

  • ロック方式
  • リソースにロックをかけて、あるリソースにアクセスしているトランザクション以外のトランザクションを待たせて、排他制御を行う方式。デッドロック発生の可能性がある。
  • 楽観的方式
  • 更新前データを取って、実際にデータを更新するタイミングになってから、そのタイミングでのデータと保持しておいたデータの比較を行い、他のトランザクションによってデータが更新されていなければコミット、更新されていた場合はロールバックを行う方式。リソースにアクセスする頻度が非常に少ない場合に使用される方式であるが、デッドロックは発生しない
  • 時刻印方式
  • トランザクション開始の時刻印をトランザクションごとに保持しておき、アクセス競合時には先に開始したほうを有効とし、後に開始したほうを取り消す方式。分散DBで有効。ロックを用いないので、デッドロックは発生しない