データベースのモデル
関係データモデル
データを表で管理。
主キーは重複とNULLがダメ。
外気キーを定義し、参照一貫性を保つ。
正規化
データが重複したり、データ更新の際に矛盾が生じたりしないようにすること
関係従属とは、ある属性の値が決まると、他の属性の値も一意にきまること。
正規化のゴールは全ての矢印(関係従属)が主キーから出るまで、表を分割すること。
階層データモデル
ネットワークデータモデル
インデックス
データベースに格納されているデータの検索を高速に行うための仕組み。
データベース内のテーブルや列に関する特定のキー値を格納し、その値を元にデータの高速な検索や並替えを可能にします。
B+木インデックス
木構造を使ってデータを管理する方式。
RDBMSで最も一般的に使用されている。 節ごとにキー値の範囲とその子要素へのポインタを保持しているので、範囲検索をスムーズに行えるほか次のような性質がある。
木構造の深さが一定になっているので、どのようなキー値であっても探索コストが大きく変わらない
大量のデータに対する操作であっても、ある程度の速度が期待できる
インデックスノードはソートされた状態になっているので整列処理が高速に行える
ハッシュインデックス
ハッシュ関数を使用してキー値とレコードの格納位置を直接関連つける方式。
キー値をもとにレコードの格納位置を一意に特定できるので、B+木インデックスより高速なアクセスが可能。その反面、範囲検索やキー値を順番に読み込んで処理を行う用途には使用できない。
![](https://r2.sizu.me/users/201/post-images/02thn5on5um036otv8ox.png)