- ベストアンサー
リンク先が、それぞれ第何正規化に該当するか教えて
- リンク先で回答されているケースは、それぞれ第何正規化に該当するのか調べています。
- 個人IDを主キーとするテーブルの作成について、第1正規化に該当するか疑問があります。
- 個人IDを主キーとするテーブルを分割すると、どの正規化に該当するのかも知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
元のテーブルの主キーが「個人ID」単独だったと仮定すると正規化では有りません。単にテーブルを分けているだけです。 考えにくいですが、元のテーブルが複合主キーだった場合は第2正規化ともいえます。そうだとしても、主キーが「個人ID」だけのテーブルを作り、そこに「郵便番号」「都道府県」などの属性を移せば良いだけです。「郵便番号」「都道府県」などで分割する必要は無いです。 第2正規化は部分関数従属性の解消、つまり、複合主キーの中の一部にカラムだけで確定する属性を、単一の属性の主キーを持つテーブルに分割することです。 憶測ですが、下記の様に書こうとして書き間違えたのではないでしょうか? ・郵便番号IDを主キーとする「郵便番号テーブル」を作る ・都道府県IDを主キーとする「都道府県テーブル」を作る ・ ・ ・ これだと、郵便番号IDなどを導入した上で、第3正規化を行ったという事になります。 ともあれ、「DB 正規化」などで検索すると参考となるページが多数ヒットしますので、これらを参考にご自身で検討されると良いかと。 http://www.techscore.com/tech/sql/SQL16/16_02.html/#sql163 http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/db_enginer03_1.html http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E6%AD%A3%E8%A6%8F%E5%8C%96 なお、この文章の中で主キーと書いたところは、厳密に言うと候補キーとなります。主キーは候補キーの一つですが、主キーで無い候補キーも有ります。気になったら「候補キー」などで検索して下さい。
その他の回答 (2)
- Siegrune
- ベストアンサー率35% (316/895)
第1正規化は、繰り返しの排除を行います。 第2正規化は、複数のレコードで共通の値をとる項目をキーをつけて別テーブルにします。 第3正規化は、第2正規化した結果のテーブルに対して第2正規化を行います。 といった感じでどうでしょう。 以下のURLの説明がわかりやすいかと。 http://www.kogures.com/hitoshi/webtext/db-seikika/ >個人IDを主キーとする「郵便番号テーブル」を作る >個人IDを主キーとする「都道府県テーブル」を作る >個人IDを主キーとする「市区町村テーブル」を作る ・これは第1正規化ですか? >個人IDを主キーとする「番地テーブル」を作る >個人IDを主キーとする「電話番号テーブル」を作る >個人IDを主キーとする「メールアドレステーブル」を作る ・この内容は重複しないと思うのですが、分けると、正規化したことになるのでしょうか? ・また、その場合は、第何正規化に該当するのでしょうか? 全部、第2正規化です。 補足: >・この内容は重複しないと思うのですが、分けると、正規化したことになるのでしょうか? 重複しないのならば、正規化したことにはなりません。 ですが、この元ネタは、重複しそうです。 すべて、「個人IDを主キーとする」ので、 「住所情報テーブル」:キー項目、個人ID、・・・ 「郵便番号テーブル」:個人ID、郵便番号 「都道府県テーブル」:個人ID、都道府県 ・・・ 「メールアドレステーブル」:個人ID、メールアドレス (一番左の項目が主キー) と考えられるので重複はあるでしょう。 ## 正規化したときのデメリットを例示するという意図なので、 ## 第2正規化間違ってないか? という疑問は置いておいて。 ## (単純ミスなのかもしれませんが。) ということで第2正規化になります。
お礼
回答ありがとうございました。 >## 第2正規化間違ってないか? という疑問は置いておいて ・No.3さんの回答見て、ようやく理解できました ・質問に挙げた例が悪かったですね。何しろ、よく分かっていないもので… ・説明自体は大変分かりやすく、参考になりましたー
- notnot
- ベストアンサー率47% (4900/10358)
>・これは第1正規化ですか? 違います。 >・この内容は重複しないと思うのですが、分けると、正規化したことになるのでしょうか? この場合は、正規化では無いです。
お礼
回答ありがとうございましたー
お礼
回答ありがとうございました。 大変参考になりましたー