目次
▼ メタデータ管理
データとメタデータ(データの付帯情報が記載されたデータ)を管理する。
▼ クエリ管理
データベースに対して処理要求(問合わせ)を行うクエリ(SQL)を管理する。
▼ トランザクション管理
排他制御や障害回復など複数のトランザクションを管理する。
▼ 階層型データベース
データを親ノードと子ノードから成るツリー状(階層型)で表現する手法。
子ノードを重複登録しない限り、子ノードが複数の親ノードを持つことはできないが、対象データ(ノード)までのルートが限定的となるため、処理速度が速い。
▼ ネットワーク型データベース
データを親ノードと子ノードから成る網状構成で表現する手法。
網状構成なため、重複登録が不要で子ノードが複数の親ノードを持つことができるが、データの抽出や特定手段がデータ構造に依存するため、データ構造について熟知していないとデータアクセスが難しい。
▼ 関係型データベース (リレーショナルデータベース:RDB)
レコード(行)、フィールド(列)から成るテーブル同士の関連付けでデータを表現する手法。
柔軟なデータの取扱いができ、複雑な関係性を表現できるが、大規模なテーブル構造になるとデータの抽出や特定方法が複雑になり、処理速度が遅くなる傾向がある。
▼ オブジェクト指向データベース
オブジェクト指向に対応し、データそのものとデータの処理方法を1つのオブジェクトとしてデータを表現した手法。
複雑なデータ構造を高速に処理でき、多様なデータ形式を束ねて管理する場合に適している。
▼ 1 対 1
1つのデータ に対する関連データが ただ1つ である場合のリレーションシップ。
▼ 1 対 多
1つのデータ に対する関連データが 複数 ある場合のリレーションシップ。
▼ 多 対 1
複数データ に対応するデータが ただ1つ である場合のリレーションシップ。
▼ 多 対 多
複数データ に対応するデータが 複数 ある場合のリレーションシップ。
| 多重度表記 | 意味 |
|---|---|
| * | 0以上の整数すべて |
| 1..* | 1以上の整数すべて |
| 0..1 | 0 または、1 |
| 1 | 1のみ |
| a..b | a から b までの整数 |
▼ 概念データモデル
データの定義とデータ同士の関係性を表したデータモデルのことで E-R図 ようなデータ設計を指す。
▼ 論理データモデル (外部モデル)
ユーザーや外部システム向けにデータを収集する対象とその関係性を論理的に記述したデータモデルを指す。
▼ 物理データモデル (内部モデル)
論理データを内部(主にサーバー)向けに実際のデータ構造を視覚的に表現したデータモデルを指す。
▼ 概念スキーマ
概念データモデル のデータ定義を要素や関係性についてより詳細に表現したもの。
▼ 論理スキーマ (外部スキーマ)
ユーザーや外部システム向けに特定のデータ管理をする目的を前提として、概念スキーマ のデータを外部参照用データ(ビュー)として表現したもの。
▼ 物理スキーマ (内部スキーマ)
概念スキーマ で定義された論理データをDBMS内部にどう格納するか具体的なデータ構成やデータ型を定義して表現したもの。
▼ トップダウンアプローチ
利用者の要望を基にシステム要件からデータモデルを作成し設計する手法で大別して以下の流れとなる。
\((1)\) システム要件からエンティティを洗い出し、リレーションシップを定義し、E-R図 を作成する。
\((2)\) それぞれのエンティティが持つ各データの属性を洗い出し、リレーションシップを考慮して 主キー を決定する。
\((3)\) 正規化(以下「7. データベースの正規化」に記載) を実施し、多対多のリレーションシップを排除する。
▼ ボトムアップアプローチ
現行システム または、次期システムで使用する画面や帳票などを基にデータモデルを作成し、設計する手法で大別して以下の流れとなる。
\((1)\) 画面仕様や帳票仕様からデータ属性の洗い出し、リレーションシップを定義する。
\((2)\) リレーションシップを基に 主キー を定義し、テーブルの 正規化(以下「7. データベースの正規化」に記載) を実施する。
\((3)\) テーブル構成から E-R図 を作成する。
▼ 第1正規形:冗長性の排除
データ不整合の原因となる冗長性を無くすため、同類の属性を排除し、フィールド単位で定義されるデータの最小単位(ドメイン) が単一でない場合、ドメインを分割して正規化する。
(例えば、2つのデータを結合した ドメイン がある場合、ドメイン を2つに分け、それぞれが単一データとなるように正規化する。)
▼ 第2正規形:部分関数従属の排除
※ 第1正規形であることが前提。
すべての 非キー属性 を 各候補キー に 完全関数従属(※2) させる正規化で、部分関数従属(※3)している属性を抜き出して排除し、別テーブルにする。
※1 関数従属とは、ある属性Aが決まったら別属性Bも一意に決まる状態を指す。
※2 完全関数従属とは、テーブル内の各属性が全候補キーに関数従属している状態を指す。
※3 部分関数従属とは、テーブル内の各属性が一部の候補キーに関数従属している状態を指す。
▼ 第3正規形:推移的関数従属の排除
※ 第2正規形であることが前提。
非キー属性 をどの 候補キー にも 推移的な関数従属(※) させないようにする正規化で、候補キー以外の属性に関数従属している属性を抜き出して排除し、別テーブルにする。
※ 推移的な関数従属 とは、属性A→B、属性B→Cのように関数従属の連鎖関係を指し、このとき、属性Aが 候補キー、属性Bが 候補キー以外、属性Cが 非キー属性 となる。
▼ 一意制約 (ユニーク制約)
テーブルの登録・更新時に既存レコードのフィールド設定値と重複する値は、許容しない制約。
▼ NOT NULL制約 (非ナル制約)
テーブルの登録・更新時のフィールド設定にNULLを許容しない制約。
▼ 主キー制約
一意制約 と NOT NULL制約 を合わせた制約。
▼ 参照制約 (外部キー制約)
テーブルの登録・更新時に他テーブルの特定フィールドの指定された値のみ許容する制約。
▼ ドメイン制約
フィールド単位に指定した条件を満たしたデータのみ許容する制約。
▼ 検査制約 (CHECK制約、形式制約)
ドメイン制約 のうち、設定する値がとる範囲の条件や形式に関する制限をかけた制約。
▼ データベース設計の変更
パフォーマンスが向上するようテーブル構造やリレーションシップを変更する。
代表例として、正規化をあえて崩す、非正規化 がある。
例えば、第1正規形 の 同類属性の排除 をせず、テーブルの分割を避け、参照テーブルを減らすことでデータ抽出や登録・更新の処理速度を改善する。
▼ SQLのパフォーマンスチューニング
テーブル結合の順序変更やEXISTS句を用いた判断の簡略化などSQLを効率良く処理できるようにチューニングする。
▼ DBMSの機能を利用
インデックスの設定やデータベースの再編成によるアクセス効率アップ、インメモリーデータベース
(※) などDBMSの機能を利用して高速化する。
※ DBMSのデータすべてをメモリ上に展開し、ディスクの入出力を無くすことで高速化を実現する。