![見出し画像](https://assets.st-note.com/production/uploads/images/99675746/rectangle_large_type_2_178eead9fc63b68727a1391f95cecfa6.jpeg?width=1200)
正規化:データベース設計の基本:その5&別件その2
REV16
ブログ投稿しています。複数画像付き等最終版は此方から、ご覧ください。
基本に立ち返る意味で、正規化の手順を先ず記して、幾つかの正規化手順について纏めて複数回の分けて、ご説明したいと思います。
先ずは正規化の手順ですが、以下の通りと言われています。
第一正規化手順
第二正規化手順
第三正規化手順
ボイスコッド正規化手順
第四正規化手順
第五正規化手順
第六正規化手順
第六正規化手順は正確に存在するかは?です。(説明は無しにするかもしれません)
以下、具体的な正規化手順の説明です。(前回からの続きで第四正規化手順から説明します)
第四正規化手順
第四正規化手順は、複数の多値従属を分離する・無くす事、要するに3つ以上の主キーのみで構成されたテーブルから、さらに主キーを分解する事を実行します。ここで言う多値従属性というのは、ある項目について別なある項目群が主従関係にあることを指しています。
例えば、学校での学習学科で国語には現代文・漢文・古文と有ったような気がします。これに学生のクラスがあり、先生がそれぞれ存在します。要するにキーになる可能性のあるデータが三種は存在するという事です。特に学科は国語の中に専門学科である三種の科目:群が存在するデータになり得ます。
国語ー>現代文・古文・漢文
クラス(1年Aクラス等)
教師(東京太郎・大阪次郎・名古屋三郎等)
第五正規化手順
第五正規化手順は、ある表がその候補キー内で結合従属性が満足されている場合を言います。結合従属性とは、分解によって得られる表が結合によって、もとの表に戻ることが可能である性質のことを指します。
単純に、複数に分割されたデータテーブルを、主キーを中心に、第四正規化手順で生成したデータに戻せるという事です。
第六正規化手順
第六正規化手順は、第四正規化手順を満たしていたテーブルが、元の表に復元できない場合、表現しきれていないリレーションを追加表現する作業と言える様です。この様な事が起こる原因は、テーブル内のデータの構成条件が途中で変わる事が考えられます。
第六正規化手順までこうして振り返ってみると、やはり、正規化手順の第三手順までで大概は対応は可能な様に思えます。
第三手順までで分割したテーブルに三個以上のマスターキーの存在するテーブルがある場合は、ボイスコッド正規化手順及び第四正規化手順&以降の手順を適用する事を考えるのが良いと思えます。
尚、以前講師が独学で正規化を学んだ時にあったか・無かったか?不明な第六正規化手順はどうやら正規化を行った後の収集データの意味の変化などに対応する為の、分割から結合を行う為の手順の様で、他の正規化手順とは経路が異なる様に感じました。
一応、全正規化手順の説明を終えましたので、講師の覚えた別な違和感をコメントしたいと思います。
それは、正規化を行うと最終的に元のデータに戻す結合が必要という事です。
正規化に関連した有料のコンテンツ販売を予定している為、これ以上コメントしませんが、これ迄投稿した内容の中にも、実は違和感を連想させるものがちりばめられています。
もし、正規化の功罪の”罪”の内容・意味が不明の方は、有料コンテンツの購入検討をお願い致します。
皆さんは、WEBシステムを使われていると思いますが、背後でこの様に設計されたデータが動いているという事になりますが、大変さを少しは感じて頂けましたでしょうか?
講師の経験が、皆様のお役に立てれば幸いです。