第二正規形がつくれない – 情報処理技術者試験 – Home

通知
すべてクリア

[解決済] 第二正規形がつくれない


たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

たかといいます。

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

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

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

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

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

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


引用未解決
トピックタグ
TAKA
 TAKA
(@TAKA)
ゲスト
結合: 23年前
投稿: 117
 

テーブル
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

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


返信引用
たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

もう、レスがついてる~!ありがとうございます。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
 TAKA
(@TAKA)
ゲスト
結合: 23年前
投稿: 117
 

> ん?、あれ、たかが、TAKAさんにレスをもらっている~。
(笑)

それはさておき、

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

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


返信引用
たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

ご回答ありがとうございます。

>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の表があるから、まだ第二正規化なのでしょうか。


返信引用
たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

すいません。書き間違えました。
>レコードをさがせますよね。ということは完全に冗長ではないと思うのですが

>レコードをさがせますよね。ということは完全に冗長だと思うのですが


返信引用
TAKA
 TAKA
(@TAKA)
ゲスト
結合: 23年前
投稿: 117
 

>この表は、第三正規形でもこのままでしょうか。
第三正規形でもあります。

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

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

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

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

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

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


返信引用
たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

何度もありがとうございます。

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

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

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


返信引用
TAKA
 TAKA
(@TAKA)
ゲスト
結合: 23年前
投稿: 117
 

> ↑の表現もよくわからないです。見方によって第二だったり第三だったり
> するものなのでしょうか。

はい、そうです。

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


返信引用
たか
 たか
(@たか)
ゲスト
結合: 25年前
投稿: 73
Topic starter  

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました