正規化は、データの一元管理を行うために、データベース設計で行うべき手順です。
正規化とは、データを一元管理するための理論です。
1データ1箇所の原則を実現するために、1970年にE.F.Codd氏がリレーショナルモデルの理論として提案しました。正規化の理論は、データの冗長性を排除し、更新時の整合性を維持しやすくすることを目指しています。
具体的には、属性間の関連性を分析し、属性の最適なグループ化を図ることを目的としています。 一般には第3正規化まで行えば十分といわれていますが、本来は、あてはまる場合にはきちんと第5正規化まで行う必要があります。 まず、正規化の処理をする際によく出てくる関数従属という用語の意味を復習しておきましょう。
◎ 関数従属とは
ある属性Aの値が決まると他の属性Bの値が一意に決まるとき、「属性Bは、属性Aに関数従属である」(A→B)といいます。
完全従属とは、2の属性A、Bの間でA→Bが成立し、Aが複数の属性の集合で成り立っている場合、Aのいかなる部分集合も関数従属が成立しない状態を表します。
部分従属とは、関数従属が成立しているが、完全従属ではない状態を表します。
推移従属とは、エンティティの3つの属性A、B、Cにおいて、「A→BかつB≠>AそしてB→Cである」とき「A→C」が得られ、既存の関数従属から新たな関数従属が得られる状態を表します。
正規化の手順を、ある受注伝票を例にとって説明します。 まず、実際の業務で目に触れているデータは、非正規形といわれる状態で管理されています。
非正規形
現実の世界では、データは属性の集合として存在しています。
つまり注文伝票や納品伝票などの形で存在しているデータは、属性の集合ということができます。 通常、これらの属性は正規化されていません。 これを非正規形といいます。
導出属性
導出属性は、正規化の作業を行う場合、取り除くのが原則です。
ただし、実際の設計では、管理項目を上流工程で削除してしまうと、元々管理されていた属性を失ってしまい、後で復活させることは難しくなります。 そこで、導出属性である旨明記した上でER図には残しておきます。 この非正規形のデータ集合を表の形に成形します。
表の形に成形する際、表の定義として以下の2点に留意してください。
非正規形のデータを、これから正規化していく前準備として表の形に成形しました。 次のように表すことができます。
それでは、この形を基に、正規化の作業を順次、進めていきましょう。
第1正規化では、同一の情報のグループが繰り返し出現している部分を分離します。その結果、第1正規形は、繰り返しの配列構造が排除された構造になります。
第1正規化の手順
受注伝表の第1正規化をしてみよう
Copyright © ITmedia, Inc. All Rights Reserved.