データの設計
- 求められることを実現するために、データやデータベースを設計する
① 業務:業務やシステムに求められることを整理する
② データ:将来を踏まえて必要なデータを整理する
③ データベース:データをどのように保管するかを決める
※これらの設計は一般的に「データベース設計」または「データモデリング」と言われる
システム開発とデータベース設計
- データベース設計はシステム開発の初期段階で行う
- データベースは、システムのリリース後に変更することが難しい
データベースやデータ構造を変更することが難しい理由
- データを使っているすべてのアプリケーションに影響が出る可能性がある
- 既存データとの整合性を保つ必要がある
- 新しいデータベースへの移行に手間と時間がかかる
データベース設計の流れ
| 流れ | 概念設計 | 論理設計 | 物理設計 |
|---|---|---|---|
| 概要 | 業務やシステムに求められる要件を元にデータを整理する | データベースの種類に合わせてデータ構造を設計する | データベースの物理配置や設置値を設計する |
| データベースの設計 | 関係しない | 関係する | 関係する |
| 代表的な成果物 | ER図 | データ構造 | データベースの構成情報 |
ER図の基本
ER図とは?
○ データとデータ同士の関係を視覚化するための図
【特徴】
- Entity Relationship Diagramのことで、日本語では実体関連図とも言える
- システム開発に関わる関係者で、データについて共通理解を築ける
- データベースの概念設計のアウトプットとなる
ER図の構成要素
| 要素 | 別名 | 概要 |
|---|---|---|
| エンティティ | 実体 | ・処理や管理の対象となる物や事 ・属性となる情報を持つ |
| 属性 | アトリ ビュート |
・エンティティが持つ情報のこと ・一部は主キーや外部キーになり得る |
| リレーション シップ |
関連 | ・エンティティ間の関係のこと ・業務上のルールなどを数と要否で表現する |
| ER図 | リレーショナルデータベース |
|---|---|
| エンティティ | テーブル |
| 属性 | 列 |
| リレーションシップ | リレーションシップ、制約 |
エンティティとは
○ 処理や管理の対象となるもの・こと。属性となる情報をもつ。
代表的なエンティティの書き方
○ 属性(エンティティが持つ情報)を表示する場合、いくつかの書き方がある
属性を表示①
| 社員 |
|---|
| 社員コード |
| 社員名 生年月日 部署コード(FK) |
属性を表示②
| 社員 | |
|---|---|
| 社員コード | PK |
| 社員名 | |
| 生年月日 | |
| 部署コード | FK |
属性を表示③
社員
| 社員コード |
|---|
| 社員名 生年月日 部署コード(FK) |
属性とは?
○ エンティティが持つ情報のこと。一部は主キーや外部キーになり得る
属性の表現
| 社員 |
|---|
| 社員コード |
| 社員名 生年月日 部署コード(FK) |
※ 社員コードと社員名と生年月日と部署コード(FK)は、属性
| 社員 | |
|---|---|
| 社員コード | PK |
| 社員名 | |
| 生年月日 | |
| 部署コード | FK |
主キーと外部キー
○ 主キーは1件のデータを特定できる。外部キーは主キーを暗唱する
主キー(Primary key : PK)
- 重複はなく、1件のデータを一意に特定できる属性
- 複数の属性で組み合わせても良い
- 空の値(Null)は入れられない
外部キー(Foreign key : FK)
- 他のエンティティの主キーを参照する属性
リレーションシップとは?
○ エンティティ間の関係のこと。業務上のルールなどを数と要否で表現する。
リレーションシップの要素
| 関係 | 用語 | 種類 |
|---|---|---|
| 数 | カーディナルティ | 1 / 多 |
| 要否 | オプショナリティ | 必須 / 任意 |
数の関係(カーディナリティ)とは?
要否の関係(オプショナリティ)とは?
○ 他方のエンティティが必須か任意か表現するもの
参考サイト
[データ活用]データ設計初心者のための初めてのER図入門|ER図(IE記法)によるデータモデリング・概念設計
ER図とは?意味や書き方をわかりやすく解説【データベース】
ER図の書き方完全ガイド|作成順序から無料作成ツールまで紹介


