データの正規化|【医療統計学・統計解析】
データの正規化
事業所の住所といったデータが変更になった場合にテーブルだけが作成されている場合,該当する全てのデータを同じように変更する必要がある.
これは複数回の単純な繰り返し作業を要求することになり,意図的ではないにせよ修正の誤りを引き起こす危険性が増加する.
もし,一部のデータに直し忘れなどが生じた場合には一貫性がなくなってしまい「更新不整合」と呼ばれる問題が生じることになる.
また,リレーショナルデータベースではテーブルの構築が容易で様々な形態が許されるが故に,時として冗長なデータ構造を持ってしまう可能性がある.
とくにパーソナルコンピュータなどで利用されるカード型と呼ばれるようなデータベースシステムを利用してきたユーザーが設計したデータベース構造において,このようなケースがしばしば見受けられる.
冗長なデータ構造は,無駄なディスク領域を使用することにもなり,決して望ましいことではない.
さらに,一つのテーブルには関連性の強いデータを集める方がデータへのアクセスが容易になる.
このため,リレーショナルデータベース内のデータ構造については「正規化(Normalize)」と呼ばれるプロセスが考えられており,理論的には第1〜5正規化の5種類が考えられているが,事実上は以下に示した第1〜3正規化の3種類を実現すればよいと考えて問題ない.
つまり,正規化とは「データの重複をなくし,理解しやすく,更新や削除を容易に行えるデータ構造にすること」と言うことができる.
各段階の正規化を完了したものを「正規形(Normal Form)」と呼ぶ.
ただし,一般的に正規化を行うことによりテーブルの追加が必要となることが多く,正規化をどこまでのレベルで行うかについては,アプリケーションで発生する可能性のある問題点を考慮した上で個別に判断する必要がある.
とくに第3正規形については理論上望ましいとしても,あまりに多くのテーブルを作成するとパフォーマンス低下に繋がる可能性があるため,常に実用性があるとは限らない.
このような意味からも第4正規形,第5正規形については実用上ほとんど考慮する必要がないと言える.
正規化の手順を理論だけで説明することは不可能ではないが,なかなか実感として理解しがたい.
そこで,表を作成する場合に一般的に見受けられる,社員の所属と担当製品の一覧をデータベース化する過程を通じて,データの正規化を考えてみるとよい.
関連記事