作成日 2008/3/9
最終更新日 2008/6/15
[ Japanese | English ]

クラスの正規化

 ここではクラス(特にエンティティクラス)の正規化(※1、※2)について説明します(※3)。

 エンティティクラスとはデータを管理するためのクラスです。
 クラス図を作成する際、クラスの凝集度やクラス間の結合度 に注意を払いながら、クラス図を作成すると思いますが、正規化することにより新たにクラスが抽出されることもあります。

※1:ここで言っている「正規化」とはリレーショナルデータベースにおけるデータの正規化とほとんど同じ意味です。
※2:正規化については情報処理技術者試験 の基本情報技術者、ソフトウェア開発技術者やテクニカルエンジニア(データベース)の出題範囲です。取得を考えている人は勉強した方が良いです。
※3:オブジェクト指向関連の書籍やサイトでデータの正規化について説明しているページはとにかく少ないです。本当にオブジェクト指向を理解しているのかと言いたいです。

1.正規化とは
2.正規化の例
3.参考文献など


1.正規化とは

 データの正規化とは、データの一元化、統合化を行うことです。
 データの正規化を行うことにより、データの不整合を防いだり、冗長性をなくしたりできます。
 
 肝心の正規化の詳細ですが、それについては参考文献の4番を参照してください。(もちろん他のサイトでも良いです。)
 正規化は第1正規化から第5正規化までありますが、第3正規化まで理解しておけば十分です。

 データベースにおけるデータの持たせ方とオブジェクト指向によるデータの持たせ方は少し違いがありますので注意してください。例えば、クラス間(データベースではテーブル間)の関連のさせ方が異なります。それと、クラスは属性だけでなく、操作も持っているのでそれにも注意が必要です。

このページのトップへ

2.正規化の例

 正規化の例を挙げます。ただし、だるまの勘違いである可能性もあるので注意してください(※1)。 
  1. 集約、コンポジション
     集約(aggregation)、コンポジション(composition)は第1正規化を行った結果により抽出されると思います。
  2. 仕様クラス
     仕様クラスとは組み込みシステムを設計する際に出てくるクラスです。
     詳しいことは「組込みシステムのモデリングテクニック」というページを参照してください。
     上記のリンクにある仕様《spec》の説明と、リンクの少し上にあるクラス図を見る限りでは第2正規化か第3正規化を行った結果により抽出されたクラスという気がします。
  3. フライウェイトパターン
     フライウェイトパターンとはデザインパターンの1つで、クラスのインスタンスを再利用する方法です。このパターンを適用するクラスが第2正規化か第3正規化によって抽出される気がします。
-----
※1:特に数字の部分(第*正規化の*の部分)は怪しいです。
このページのトップへ

3.参考文献など

 このページでは、データの正規化に関して本当に簡単にしか説明していません。
できれば、下のページも読んでほしいです。
 最低でも第3正規化までは理解しておくと良いと思います。

番号

リンク先の名称

リンク先の説明

リンクした日

1

リレーションの正規化 - Wikipedia データの正規化について書かれていますが、初心者には難しいかもしれません。 2008/3/9

2

AgileData.org in Japanese - オブジェクト指向基礎 クラスの正規化について書かれている本当に貴重なページ。 2008/3/9

3

正規化 データベースにおけるデータの正規化についての解説があります。 2008/3/9

番号

著者名

書籍名

ISBN

1 日高 哲郎 情報処理教科書 ソフトウェア開発技術者 2007年度版 (情報処理教科書) 978-4798112343
2 水岡 祥二 テクニカルエンジニア試験 データベース完全教本〈2006年版〉 978-4532403577

 
Prev Up Next  Top
このページのトップへ

このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。