第二正規形がつくれない

[戻る]
たか 2002/02/28(木) 08:50:50
たかといいます。

関係データベースの第一〜第三正規化についてですが
第一正規化はわかるのですが、
それ以降がどうにも理解できません。

第一正規化は、1つの行の中に項目が複数入らないこと。

第三正規化は、主キーによって一意になる表に分けて
それらの表が外部キーによって関係している状態?ですよね。

でもなんで第二正規形ってあるのでしょう。
第一正規形から、第三正規形は作れそうですが
第二正規形がどうにも作れそうにありません。
普通に考えると第一正規形→第三正規形にいきなりなってしまいます。

そもそも第二正規形の定義がいまいちわかりません。
また、HP,書籍等を見てもやっぱりよくわからないんです。
それで、かならず受注番号が出てきて複雑な表をひょいひょいと出して
こんがらがります。

こんなオバカな私にどなたか教えてくださいませ。

TAKA 2002/02/28(木) 10:22:54
テーブル
NO  NAME  SKILL  POST  JOB
--------------------------
001 aaa   abc    AAA   ABC
          def    
002 bbb   abc    AAA   ABC
003 ccc   abc    BBB   DEF
004 ddd   abc    BBB   DEF

第一正規形      
NO  NAME  SKILL  POST  JOB
--------------------------
001 aaa   abc    AAA   ABC
001 aaa   def    AAA   ABC 
002 bbb   abc    AAA   ABC
003 ccc   abc    BBB   DEF
004 ddd   abc    BBB   DEF

第二正規形    (主キーに対するデータが固定)
NO  NAME  POST  JOB
-------------------
001 aaa   AAA   ABC
002 bbb   AAA   ABC
003 ccc   BBB   DEF
004 ddd   BBB   DEF

第三正規形  (テーブル別では第二正規化ともいえる)
NO  NAME  POST  
--------------
001 aaa   AAA 
002 bbb   AAA 
003 ccc   BBB 
004 ddd   BBB 

POST  JOB
---------
AAA   ABC
BBB   DEF

多分これであっていると思います・・・間違ってたらごめんなさい。

たか 2002/02/28(木) 10:34:08
もう、レスがついてる〜!ありがとうございます。TAKAさん。
ん?、あれ、たかが、TAKAさんにレスをもらっている〜。

まず、第一正規化まではわかります。

>第二正規形    (主キーに対するデータが固定)
>NO  NAME  POST  JOB
>-------------------
>001 aaa   AAA   ABC
>002 bbb   AAA   ABC
>003 ccc   BBB   DEF
>004 ddd   BBB   DEF
すいません。SKILLはどこへ?
SKILLはSKILLで別表にわけるのでしょうか。
とんちんかな質問だったらすいません。

TAKA 2002/02/28(木) 11:09:16
> ん?、あれ、たかが、TAKAさんにレスをもらっている〜。
(笑)

それはさておき、

NO  SKILL (第一正規形された表)
---------
001 abc  
001 def   
002 abc  
003 abc  
004 abc  

という、別表ですね。
今回、この表は説明には必要ないと思ったので省いてました。

たか 2002/02/28(木) 11:26:05
ご回答ありがとうございます。

>NO  SKILL (第一正規形された表)
>---------
>001 abc  
>001 def   
>002 abc  
>003 abc  
>004 abc  
この表は、第三正規形でもこのままでしょうか。
この表は主キーがないのではないでしょうか。

また、やはり第二正規系というのがわかりません。
>第二正規形    (主キーに対するデータが固定)
>NO  NAME  POST  JOB
>-------------------
>001 aaa   AAA   ABC
>002 bbb   AAA   ABC
>003 ccc   BBB   DEF
>004 ddd   BBB   DEF
「主キーに対するデータが固定」とありますので
主キーで一意に判別できる表に分割するということでしょうか。
でもどこまで、それを行うのが第二正規系でしょうか。

>第三正規形  (テーブル別では第二正規化ともいえる)
>NO  NAME  POST  
>--------------
>001 aaa   AAA 
>002 bbb   AAA 
>003 ccc   BBB 
>004 ddd   BBB 

>POST  JOB
>---------
>AAA   ABC
>BBB   DEF
「テーブル別では第二正規化ともいえる」ですが
1番目の表、2番目の表ともに主キー「no」「POST」でひとつの
レコードをさがせますよね。ということは完全に冗長ではないと思うのですが
もしかして、SKILLの表があるから、まだ第二正規化なのでしょうか。

たか 2002/02/28(木) 11:27:39
すいません。書き間違えました。
>レコードをさがせますよね。ということは完全に冗長ではないと思うのですが>レコードをさがせますよね。ということは完全に冗長だと思うのですが

TAKA 2002/02/28(木) 11:40:46
>この表は、第三正規形でもこのままでしょうか。
第三正規形でもあります。

また、テーブル別にいっているのであって
全体をいっているのではありません。

>NO  NAME  POST  
>--------------
>001 aaa   AAA 
>002 bbb   AAA 
>003 ccc   BBB 
>004 ddd   BBB 
これも

>POST  JOB
>---------
>AAA   ABC
>BBB   DEF
これも

どっちも第三正規形です。
又、NOを主キーと考えると上の表は第二正規形であります。
同様に下の表もそうですね。

> 「主キーに対するデータが固定」とありますので
> 主キーで一意に判別できる表に分割するということでしょうか。
> でもどこまで、それを行うのが第二正規系でしょうか
どこまでおこなっても同じです。
主キーが分かるとそれに対するデータが分かるテーブルが第二正規形です。

(まちがってないはず・・・)

たか 2002/02/28(木) 11:45:36
何度もありがとうございます。

>主キーが分かるとそれに対するデータが分かるテーブルが第二正規形です。
私、↑を第三正規系だと思っていました。

ということは第三正規系とは何をするものなのでしょうか。

>又、NOを主キーと考えると上の表は第二正規形であります。
↑の表現もよくわからないです。見方によって第二だったり第三だったり
するものなのでしょうか。
(しつこくてすみません)

TAKA 2002/02/28(木) 11:49:12
> ↑の表現もよくわからないです。見方によって第二だったり第三だったり
> するものなのでしょうか。

はい、そうです。

えっとこっちを見てみるといいかも?
http://www.wakhok.ac.jp/DB/section2.7.6.html

たか 2002/02/28(木) 12:12:24
[[解決]]
「データベースの論理設計」より抜粋。
>こうした、「第二正規形」の、キー項目以外の項目が相互に依存関係を持たない
>ようにすることを、「第三正規化」という。別の言い方をすれば、
>「第三正規形」とは、キー項目以外の全ての項目が、主キーに間接的でなく、
>直接に従属している「第二正規形」である。 
http://www.wakhok.ac.jp/DB/section2.7.9.html

↑で目からウロコでした。
実はこれが何年もわからず、今日思い立って質問したところ
上記のようなサイトを教えていただき、かつ私のわけわからない質問に
答えて頂いて本当に感謝です。ありがとうございました。

古いスレッドには追加発言できません。