関係データベース
■ 関係データベース。Relational Database。
データベースの1種。
データをすべて2次元の表形式で表現し、
これらを互いに関係付けることで、全体としてのデータベースを構成するもの。
関係データベースの表(テーブル)は、行と列で構成される。
列(カラム)には、
商品コード・商品名・販売数量などの属性(アトリビュート)が定義される。
属性とは、表の列の名前である。
列に複数のデータを入れることはできない。
一方、各行(ロー)は、こうした属性値の組合せになる。
この組合せのことを、とくにタプルと呼ぶ。
■ 主キー。Primary Key。
主キーとは、対象とする表の中で、
行を一意に識別することができる属性のことである。
主キーは複数のキーの組合せによって構成されることもある。
例えば、学生の氏名は同姓同名の場合があるので、通常は主キーには用いない。
この場合、学籍番号を主キーとして識別するのが適切である。
また、科目名も、同じものが存在することがあり得るので、
主キーとしては不適切である。科目番号などを用いるべきである。
なお、列の中で、キーとなりうる列のことを候補キーと呼ぶ。
■ 正規化。Normalization。
関係データベースのテーブルを設計する際、データの冗長性を排除して、
データの一貫性と整合性を図ったデータベースを作成する作業。
例えば、1つの属性に複数のデータが格納されている場合に行を分割したり、
同じ値の主キーが複数行にわたる場合に表を分割したりして、
最小限のアクセスでデータの検索や更新ができるようにすることを指す。
正規化は、第1〜第5正規化があるが、一般には第3正規化までが使用される。
(1) 第1正規形。First Normal Form。
特定の列において、単一の行に複数のデータが含まれることを排除すること。
または、同質の列(商品1,単価1,商品2,単価2,…など)の繰り返しを排除すること。
行を分離することで。
(2) 第2正規形。Second Normal Form。
対象とする表の中で、主キーとなる列だけに着目したとき、
同一の表の中で複数の行に渡って同じ値が繰り返すことを排除すること。
具体的には表を分離する。
(3) 第3正規形。Third Normal Form。
主キー以外の列に着目して、同一の表中での繰り返しを排除すること。
表の分離。
■ インデックスキー。
関係データベースにおいて、
データの検索速度を速めるために使用する特別なキーのこと。
データ定義のときに特定の属性をインデックスキーに定めるとともに、
専用のインデックスファイルを設けて、インデックスキーの値と
本体のデータの入っている場所(レコードID)をマッピングしておく。
たいていの場合は、インデックスをつけることで検索が速くなる。
ただしデータ件数が少ない場合には、全文検索の方が速くなるので、
万能というわけではない。
また、データの追加・更新が頻繁な場合には、
データ更新のたびに、インデックスファイルも併せて更新することとなり、
かえって遅くなることがある。
■ RDBMS。Relational Database Management System。
関係データベースに適用されるDBMS。
ユーザーやプログラムは、
直接データにアクセスすることはできず、
RDBMS経由でデータベース言語(主にSQL)を実行することにより、
データを検索したり、読み書きしたりする。
代表的な商用RDBMSには、Oracle、DB2、SQL Serverなどがある。
フリーウェアとしてはPostgreSQL(ポストグレスエスキューエル)などがある。
■ 検索方法。
RDBMSがデータを検索するとき、
インデックスを利用して検索するか、全文検索を行なうか、
自動的に判断する機能をもっている。
(1) コストベースの最適化。
DBMSがこれまでの検索コストの統計情報を保持していて、
この情報に基づいて判断する方法。
(2) ルールベースの最適化。
DBMSが使う検索方法を、あらかじめルールとして定めておく方法。
通常はインデックス検索を優先する。
以上。
2004/03/10 pm