ちょっと土日シリーズの番外編の話。
RDBにおける正規化理論というのはあるが、じゃあ、XMLDBにおいて、正規化する必要はあるのか?RDBと同じで良いかという問題を考える。
■XMLDBは、正規化する必要があるか?
これは、正規化の目的は、1事実を1箇所にかくことによって、その事実(データ)を利用している箇所を、いっぺんに更新するためってことなので、XMLだろうが、RDBだろうが、必要になってくると思う。
具体的に言うと、藤原紀香さんが結婚して、藤原から陣内に名前が変わったとすると(あ、芸名かえないかも。。。って、その辺の話はおいておく。変わったと、仮にする)、どのアプリケーションでも、結婚以降、藤原紀香から陣内紀香にかわんないといけない。
そー考えると、XMLDBでも、氏名は1箇所にもっておき、各アプリケーションでは、IDを持っているようにしたほうがいいだろう。
てことで、その1箇所にあつめて、IDを振る作業は必要だ。
■じゃ、正規化する必要があるとして、RDBと同じ手順でいいのか?
ここで問題になるのは、第一正規形だ。
繰り返しを除いているが、必ずしも除かなくてもいいかもしれない。
たとえば、受注と受注明細に関して言えば、別に受注データの中に明細があっても、あんまり困らない。。。かもしれない(^^;)(仕様によっては、こまる)
つまり、XMLの場合は、ファイル構造内に繰り返しがもてるので、繰り返しを排除しなくてもいいかもしれない。
でも、排除した場合のほうがいいこともあるかもしれない
とにかく、繰り返しを、一番初めに排除しちゃうことはない。
繰り返しがあっても、問題ない場合もあるのだから。
■そういう意味では、佐藤正美氏の方法論のほうが、適切かも。。
そうやって考えると、佐藤正美氏の、T字型ER手法における手法
つまり、
基準編-2 「T字形ER手法」の体系
http://www.sdi-net.co.jp/blackbook-03.htm
にある(以下斜体は上記サイトより引用:詳しい説明は上記サイトを参照)
(1) データの認知
(2) データの類別
(3) データの関係
(4) データの周延
(5) データの多義
(6) 「みなし」概念
のほうが、適切かもしれない。佐藤氏のこの手法は、(1)、(2)でいわゆる第二正規形を行い、(3)は、ER図のR(関係)を導く(正規化理論ではここはあんまし考えない)。その後、(4)、(5)で繰り返し項目を排除するのだが。。
。。。おいおい、昔、習ったことがかわってるじゃん(-_-;)
ちょっとタイム。読み直さなきゃ(^^;)