A社の佐伯さんがのらりくらりと

A社の佐伯さんがのらりくらりと。インターネットと少しだけ生活のこと。

うろ覚えだった知識をまとめてみたよ【データベース編①】

学習エントリ。 全体的な知識の底上げをすべく、復習も兼ねてまとめてみる。

データベースの目的

データを一元管理すること。一元管理することで以下の利点がある。 * 独立性の確保:アプリケーションごとにデータを保つ必要がない。アプリケーションを変更してもデータへの影響は無い * 整合性の確保:様々なアプリケーションの間でデータを共有することが出来る。旧データ・新データの混合を防ぐ。 * データの機密保持:一貫したアクセス制御を行える

三層スキーマアーキテクチャ

データの独立性を保つための構造。スキーマとは表の項目を決めるもの。三層のスキーマとは * 概念スキーマ:データベースに登録されているデータすべてを表す * 外部スキーマ:アプリケーションから見えるデータ構造。概念スキーマの一部を抜粋したり、加工したりして作る。 * 内部スキーマ:記憶装置上でのデータ構造。レコード形式や、インデックス形式など内部的なもの。

関係データベース

表形式でデータを管理するもの。用語は以下。 * 表、リレーション、関係:表全体のこと * 行、タプル:位置レコード、一件分のデータ * 列、属性:表の項目のこと * ドメイン、定義域:属性の値として、とり得る範囲のこと * 主キー:行を一行に特定出来る属性。複数の属性の組み合わせで主キーとなっているものを複合キーという。主キーの制約はUNIQUE(同じ値を取らない)とNOT NULL(NULLをとってはならない)のみ。 * 外部キー:複数の表がある時に、他の表で主キーとつながっている属性のこと。外部キーの値は参照先の値に必ず存在しなければならない(参照制約)。 * 実表:概念スキーマのこと * ビュー:外部スキーマのこと

E-R図

業務で扱うデータのモデル化を目的とする。Eはエンティティ(実体)、Rはリレーションシップ(関連)を用いて表現する。エンティティはひとまとまりに出来る属性を指す(学生番号、氏名、学科名など)。リレーションシップはエンティティ間の関連を表す。例えば「学生」は「学科」に所属という関係がある。リレーションシップは多重度を定める。多重度とはエンティティの数値的な関係のこと。

例 学生エンティティと学科エンティティは多対1である。つまり * 学生は一つの学科を持ち * 学科は複数の学生を持つ ということである。常に両方向から考える。

E-R図と関係データベース

大まかなルールは以下 * E-R図のエンティティを表とする * エンティティの属性は表の属性 * 1対1の関係であれば一方の主キーを、他方の主キーとする * 1対多の関係であれば、1の主キーを多の側で外部キーに設定する * 多対多の関係では、連関エンティティを用いて1対多の関係に変形する

連関エンティティ

多対多関係を1対多関係に変形するためのもの。多対多関係の中間に挟むエンティティ。連関エンティティの名前はリレーション名にするとよさ気。

参考

www.amazon.co.jp