概念データモデル
対象世界の情報要件をモデル化したもの
エンテティ、リレーションシップ、スーパータイプ、サブタイプなどで表される。
ER図
データベース設計手法
エンティティ(テーブル)、アトリビュート(テーブルのカラム)、リレーション(テーブルごとの関連)、カーディナリティ(1対1、1対多などリレーションの詳細)で表される。
強エンティティと弱エンティティ
エンティティとは、テーブルのこと
強エンティティとは、他のインスタンスに関係なく存在できるもの、弱エンティティは、対応するほかのエンティティが存在するときだけ存在可能なもの。
「売上ヘッダ」と、「売上明細」の関係がこれにあたる。
3層スキーマアーキテクチャ
外部スキーマ
ユーザがアクセスするスキーマ、論理データ独立性を持つ。
SQLのビューなど
概念スキーマ
現実世界のデータ全体を定義する。
テーブル全体のこと
内部スキーマ
DBの物理ファイルそのもののこと。物理データ独立性を持つ。
GROUP BY HAVINGの例
select 受注番号, sum(数量) as 合計
from 受注明細
group by 受注番号
having count(*) >= 3
ログ先書き(Write Ahead Logging)
1.更新前イメージのログファイルへの書き出し、ロールバックで利用される。
2.更新後イメージのログファイルへの書き出し、ロールフォワードで使用される。
3.データベースの更新。
4.コミット
チェックポイント
トランザクション処理、(データベース更新、コミット)はメモリ上で行われる。
メモリのバッファと2次記憶上のデータベースの内容を一致させるタイミングをチェックポイントと言う。
ACID特性
原子性(Atomicity)
トランザクションは、完全に実行されるか、まったく実行されないかのどちらかでなければならない
一貫性(Consistency)
トランザクションはデータベース内部で整合性が保たれなければならない
独立性(Isolation)
トランザクションは並列実行しても、単独で実行しているときと同じ結果を返さなければならない
耐久性(Durability)
トランザクションの結果は障害が発生した場合も、失われないようにしなければならない
データベースの透過性
移動(位置)に対する透過性
データベースの場所や移動先を意識しなくてよい
重複(複製)に対する透過性
データベースが複数サイトに重複して登録されていても、それを意識しなくても良い
分散(分割)に対する透過性
テーブルが分割され複数のデータベースに格納されていてもそのことを意識しなくてもよい。
アクセスに対する透過性
アクセス方法を意識しなくてもよい
障害に対する透過性
1つのサイトで障害が発生しても、適切なリカバリ処理が施され意識しなくてもよい
データモデルに対する透過性
データベースのデータモデルがサイトごとに異なっていても意識しなくてもよい
規模に対する透過性
分散データベースの規模を変更しても、環境に影響を与えないこと
Joinの種類
INNER JOIN
2つのテーブル両方にあるものが抽出対象
LEFT JOIN
主テーブルにあるものが抽出対象
(従のテーブルだけにあるものは対象外
RIGHT JOIN
従テーブルにあるものが抽出対象
(主のテーブルだけにあるものは対象外)