データベースの設計は論理設計と物理設計に分けられますが、今回は論理設計について説明します。論理設計は物理的なハードウェアの制約を考慮しないで良いというのが事前のポイントです。
論理設計の4つのタスク
エンティティの抽出
エンティティは、日本語で実体という意味です。現実世界のデータの集合体を指す言葉で、具体的には顧客や社員、店舗、車といった、物理的実体を伴ったものであれば、税、会社、注文履歴のように物理的実体を伴わないものも含まれます。
システムのためにどのようなエンティティが必要になるか抽出することが、データベースの論理設計の第一ステップであり、一部これはシステムの要件定義にも該当します。
エンティティの定義
各エンティティがどのようなデータを保持するかを決める必要があります。エンティティは、データを属性という形で保持します。これは二次元表における列のようなものです。リレーショナルデータベースでは、二次元表に近いテーブルというフォーマットでエンティティを保持しますが、各表がどのような列を持つか、ということを定義するのがエンティティの定義というやつです。
ここで重要なのはキーという列を定義すること。キーとは、ある特定の列の値を決定するための列のことで、例えばユーザーIDのような属性が該当します。ユーザーIDが決まれば、その人のメールアドレス等が決まりますよね。
正規化
正規化は、エンティティについて、システムでの利用がスムーズに行えるように整理する作業です。特に正規化はデータの登録、変更、削除を含む更新作業が整合的に行えるように、エンティティのフォーマットを整理することが重要な目的です。論理設計の中でも最も重要な土台と言われています。
ER図の作成
ER図はEntiti-Relational Diagramの略です。基本的に正規化を行うとエンティティの数は増えます。エンティティ同士の関係を表現するためにER図を作成します。
コメント