データベース データモデリングについて
Categories: MCA Database
1.データモデリング
データモデルはデータベースがデータがどのような形式で蓄えられるか、データベースの構造がどのようになるかを決める雛形であり、データモデルには概念データモデル、論理データモデルの二種類があります。
(1)概念データモデル
概念データモデルはデータベース化の対象となる現実世界のことがらがどのようになっているかを絵や記号を使って表したものです。ERD(Entity Relationship Diagram)とは概念データモデルに使用される記号系の代表例であり概念データモデルはDBMSに依存しません。
(2)論理データモデル
論理データモデルはデータベースをどのDBMSで運用するかを意識して作成し、データベースを具体的にどのように作成すればよいかを示したものです。概念データモデルとは異なり、DBMSに依存しています。
論理データモデルは階層型データモデル、ネットワーク型データモデル、リレーショナルデータモデルの3つのタイプに大別できます。
階層型データモデルは銀行勘定システムに使用され、ネットワーク型データモデルは航空会社の座席予約システムに使用されています。
(3)現実世界からのデータベースフロー
現実世界のものを例にとってデータベースフローを作る場合、現実世界から概念データモデル、そして論理データモデル作成しデータベースの構築していきます。
2.正規化
(1)正規化
テーブルをリレーショナルモデルの規則に従った正しい形にすることを正規化と呼びます。段階により第一正規化、第二正規化、第三正規化と三段階に分かれます。
また正規化されていない状態のテーブルを非正規化と呼びます。
①第一正規形
非正規形から繰り返し項目を排除した状態のことであり、繰り返し項目が存在する状態とは一つのテーブルの中に同じ属性の列が複数存在する状態です。
②第二正規形
第一正規形の条件を満たし、更に部分関数従属(部分的関数従属性)が排除されている状態を第二正規形とよびます。関数従属とはテーブル中のある列のデータが決まると他の列のデータも決まるという関係をよび、この部分関数従属の状態を排除するためには複合キーを分割しテーブルを分割します。この操作を第二正規形と呼ばれています。
③第三正規形
第三正規形にするには、第二正規形を満たしその上で推移的関数従属を排除する必要があります。推移的関数従属とはA列のデータとB列のデータが決まればC列のデータも同時に決まるということであり、この状態を排除しテーブルを分割する操作を第三正規化と呼ばれています。
(2)正規化をしないことによる弊害
①枠組み変更の問題
繰り返し項目が枠組み以上ある場合にデータ欠落ができてしまい枠組み変更に耐えられない状態となることです。
②挿入異常
データを新たに挿入する際に発生する場合であり、主キー制約に違反が起こってしまう状態です。
③削除異常
データ削除の際に発生する問題であり単一のデータを削除することにより、他のデータの主キー制約に違反してしまう状態です。
④修正異常
データ修正に関する問題であり、単一データを修正する場合に同時に大量のデータ修正が発生してしまう状態です。挿入異常、削除異常、修正異常をまとめて更新異常とよび、この状態は第二正規化、第三正規化を行うことで解決されていきます。
3.ERD(Entity Relationship Diagram)
ERDは(Entity Relationship Diagram)の略であり、概念データモデル作成に使用される代表的な記号系の一つです。ERD構成要素は次の通りです。
(1)ERD構成要素
①エンティティ(実体)
データベースに反映させる現実世界に存在する人や実体のことです。
②リレーションシップ(関連)
エンティティ間の結びつきです。
③アトリビュート(属性)
エンティティの性質、特性を現すデータのことです。
(2)リレーションシップの関係
データベースを構築する上でデータの関係を理解することが必要です。その関係は 1対1 1対多 多対多があります。連関エンティティでは二つのエンティティの主キーを組み合わせたものを主キーとしています。またERD記法にはその他代表的なバックマン記法の他、鳥の脚記法、IDEF1X記法などがあります。
(3)スーパータイプとサブタイプ
①ISAリレーションシップについて
リレーションシップには1対1、1対多、多対多の3種類の分類以外に上下のリレーションシップがあります。上位のエンティティをスーパータイプエンティティ、下位のエンティティをサブタイプエンティティと呼びこの上下関係をISAリレーションシップと呼ばれています。
②特化と汎化について
上位エンティティを定義する作業を汎化と呼び、下位エンティティを定義することを特化と呼びます。
4.まとめ
■概念データモデルとは?
データベース化の対象となる現実世界のことがらがどのようになっているかを絵や記号を使って表したものです。
■論理データモデルとは?
データベースをDBMSを意識し具体的にどのように作成するかを示したものです。
■記号系とは?
概念データモデルを作成するためにデータの様子を絵や記号で表示したもので主にERDがあります。
■三層スキーマモデルとは?
データモデルを3つに分類する考え方であり、1978年ANSI/SPARKによって提案されたものです。3層スキーマモデルのスキーマは概念スキーマ、外部スキーマ、内部スキーマの3種類あり、概念スキーマは論理データモデルのことで、外部スキーマはコンピュータ上での表示画面などエンドユーザーから見た目を定めるスキーマ、内部スキーマはデータベースの物理的な構造を定めるスキーマのことです。
概念スキーマと外部スキーマ間のデータ独立性を論理的データ独立性といい、概念スキーマと内部スキーマ間の独立性を論理的データ独立性とよばれています。
■ボイスコット正規形とは?
第三正規形までの正規化段階です。
■関数従属とは?
従属列が主キーの一部分ではなく主キー全体にのみ従属することでこの状態を完全関数従属とよばれています。
■更新異常とは?
非正規化による挿入異常、削除異常、修正異常がおこる状態です。
■拡張ERDとは?
長方形と実勢のみでエンティティ、リレーションシップ、アトリビュートを表すERDのことです。
■エンティティタイプとは?
データベースに反映させる現実世界に存在する人や物の実体のことです。
■リレーションタイプとは?
エンティティ間の結びつきや関係のことです。
■インスタンスとは?
個々のエンティティ、リレーションシップのことをよびます。