2005年01月14日

[ テクニカルエンジニア(データベース)/ちょいメモ ]

午後I 基礎理論関係メモ

【第1正規形の条件】
 繰り返し項目がない
 繰り返しグループがない
 非単純定義域がない


【第2正規形の条件】
 部分関数従属性がない
 (第1正規形でかつ 非キー属性が候補キーに完全関数従属する)

◆第1正規形だが第2正規形ではない理由
 部分関数従属の存在を指摘
 ・非キー属性の【 】は,候補キー【 】の一部である【 】に関数従属するため。
 ・非キー属性の【 】は,候補キー【 】に完全関数従属しないため。
 ・候補キー【 】の一部である【 】に非キー属性の【 】が関数従属し,部分関数従属性が存在するため。
  ※お好み&字数に余裕があれば第1正規形の条件を満たすことも書く。

◆部分関数従属の更新時異常の指摘
 R(,C,D)
 {A,B}→D, B→Cの場合
 ・既に{B,C}の組合せを登録していても,重複登録しなければならない。
 ・{B,C}の組合せが複数のタプルにあるとき,B,Cを重複更新しなければならない。
 ・Aの値が決まっていない(NULL)ため,事前にB→Cを登録できない。


【第3正規形の条件】
 推移関数従属性がない
 (第2正規形でかつ 非キー属性がどの候補キーにも推移関数従属しない)

◆第3正規形である理由
 ・部分関数従属が存在せず,非キー属性がどの候補キーにも推移関数従属しないため

◆推移的関数従属の指摘
 {候補キー} → {候補キー以外} → {非キー属性}を 指摘する。

◆推移的関数従属の更新時異常
 R(,C,D)
 {A,B}→C→Dの場合
 ・既に{C,D}の組合せを登録していても,重複登録しなければならない。
 ・{C,D}の組合せが複数のタプルにあるとき,C→Dを重複更新しなければならない。
 ・{A,B}の値が決まっていないので,事前にC→Dを登録することができない。


【ボイスコッド正規形の条件】
 ・第3正規形の条件を満たしている。
 ・すべての属性が候補キーに完全関数従属している。


【第4正規形の条件】
 R(X,Y)
 ・X→→Yは自明な多値従属である。
 ・Xは関係Rのスーパーキーである。

◆ボイスコッド正規形だが第4正規形ではない理由
 A→→X|{Y,Z}の場合
 ・自明でない多値従属性が存在し,かつ,Aは候補キー【 】のスーパーキーではない。


【見直しポイント】
 ・図の表題に「“主な”関数従属性」,「未完成」がある場合は,再度,属性の意味と制約を確認する。
 ・非キー属性の列記に{ }はいらない。
 ・非キー属性を例示する必要があって かつ 非キー属性が多い場合,後の記述でAA~DD もしくは AA等 と省略できる。
 ・当該スキーマの属性で,複数の属性を囲っている四角は,候補キーかもしれない。疑え。
 ・関数従属性の図がない場合は,とりあえず余白に書いとけ。
 ・第○正規形の「第」を忘れない(w

【関係スキーマに主キー,外部キーを明示するのか?】
 ・図○と同様な関係スキーマの形式で → 図に合せる
 ・図○のように関係スキーマの形式で → 図に合せる
 ・関係スキーマ○について・・・適切な関係に分割した結果を示せ → 図に合せる
 ・関係スキーマで示せ → 関係スキーマと題した図があれば図に合せる。(無ければ明示する)

【候補キーと主キーの使い分け(基本)】
 ・基礎理論だったら候補キー
 ・データベース設計だったら主キー

Posted by g@kko at 2005/01/14 22:34 | 個別記事表示 | コメントを見る (17) |
この記事をLicWikiに埋め込む:
コメント
2 :g@kko:05/04/03 00:01:51 [RES]

アイテック模試の採点基準を受けて,見直しポイントに消し線を入れました。


3 :9:05/04/03 02:10:35 [RES]

確かに「具体的に」ってあったら属性も明示しないとダメだろうな


4 :前スレ973:05/04/03 07:43:18 [RES]

>◆第1正規形だが第2正規形ではない理由
の、
> 非キー属性の【 】は,候補キー【 】の一部である【 】に関数従属するため。
これは、「関数従属」の前に「部分」を入れなくても大丈夫?「一部に関数従属」=「部分関数従属」だから、できれば入れたくないんだけど、いつも怖くて入れている。

>・第○正規形の「第」を忘れない(w
これは、「○○法第○条の第を忘れるな」って職場の先輩に習ったよ。第がつけば、first,second,third,・・・、つかなければ、one,two,three,・・・で意味が全然違うとね。

>【関係スキーマに主キー,外部キーを明示するのか?】
これも結構間違えるね。「とりあえずつけておく」ってえのはまずいのかな?
あと、なぜか多値従属性を聞かれると、関数従属図で答えてしまう。


5 :9:05/04/03 08:33:03 [RES]

> 「とりあえずつけておく」ってえのはまずいのかな?
まずい。gakkoが例示するように、その基にするものに倣うべし
主キーはとにかく。外部キーはたいがい示すこととか示さなくてよいとか書いてある
なぜまずいかって、もし示さなくていいのに示してかつ外部キーが間違ってた場合、減点されるかもしれないって嫌な汗がでるだろw


6 :g@kko:05/04/03 09:46:55 [RES]

>>4
>第1正規形だが第2正規形ではない理由
 H16の公式解答例に順ずるのが最も安全ですね。
 候補キー【 】の一部である【 】に,非キー属性【 】が,部分関数従属しているため
 候補キー【 】に,非キー属性【 】が完全関数従属していないため

>第○正規形の「第」を忘れない
 「第」は解答用紙に書いてあるっぽいですね。。。

>とりあえずつけておく
 >>5 の9氏の指摘のとおり,「示さなくていいのに示してかつ外部キーが間違ってた場合」
 も,そうですし,
 候補キーが複数ある場合とか困るのでは?


7 :前スレ973:05/04/03 20:37:54 [RES]

アイッテクの模試では、主キーの下線をつけるべきところをつけなかった場合、属性名がすべてあっていたとしても部分点無しの0点だとよ。


8 :g@kko:05/04/03 20:44:13 [RES]

>>7
 本番でも「主キーを示せ」と書いてある設問では当然でしょうね。
 理解をしていないという判断でしょうから。


 ところで,とりあえずの話は
 「表記法を明示していない問題での話」だったんですよね?


9 :9:05/04/03 20:47:16 [RES]

>>8
> ところで,とりあえずの話は
>  「表記法を明示していない問題での話」だったんですよね?
禿同。しかも俺が挙げたのは明治がない場合の外部キーの話しだし
いつの間に明示がある場合の主キーの欠如による部分点なしの0点なんていう極例に挿げ替えられたんだ?


10 :前スレ973:05/04/03 21:04:19 [RES]

いや、今回のアイテックの模試の午後Ⅱ問1は、穴埋めだったせいもあってか下線なし答案が続出だったそうだよ。ちなみに、主キー・外部キーについては、「巻頭の表記ルールに従うこと」という注意が、問題の最初(設問1の前)に太字で記載されているパターンでした。


11 :前スレ973:05/04/03 21:05:42 [RES]

>◆第2正規形でない場合の不具合
> ・更新異常(重複登録,重複更新)を指摘する。
これって違ってるの?
俺は合ってると思うけど。
第1も第2も更新異常については同じパターンと思う。


12 :9:05/04/03 21:10:04 [RES]

>>11
正確には「第1,2正規形でない場合の不具合」とすべき
あるいは過去問のパターンから、せめて第1を挙げるべし(過去問では第一の不具合を指摘させる場合がほとんど)


13 :g@kko:05/04/03 21:11:04 [RES]

>>10
 午後IIであれば,問題にもよりますが最近4年で
  H16午後II 問1,問2
  H15午後II 問1,問2
  H13午後II 問1
 は,問題の最初(設問1の前)に書いてあります。


14 :前スレ973:05/04/03 21:21:48 [RES]

そうね、不注意だよね。講師も嘆いていたよ。
なんにしても、午後Ⅱは問1の方がまったく点が低かったようだ。
まあ、講師の嘆きは、半分は「俺の問題の作り方が悪かったのかなぁ」っていう思いもあるのかも知れんが。


15 :g@kko:05/04/03 21:48:10 [RES]

>>11-12
 昔の記事なんで。。。
 過去問分析をまとめてから修正したいと思っていたら,すっかり放置にw

 試験直前までに見直しが必要かなと思って,とりあえず>>2のコメントを入れた次第であります。


16 :9:05/04/04 11:43:11 [RES]

て結局「第1,2正規形でない場合の不具合」に直さないのかよっΣ(;ノ゚ω゚)ノ


17 :前スレ973:05/04/04 22:42:44 [RES]

>・図の表題に「“主な”関数従属性」,「未完成」がある場合は,再度,属性の意味と制約を確認する。
候補キーを問われたら、必ず、関係従属図から導き出すものと「意味と制約」から導き出すものがあるって考えていた方が良いだろうね。


18 :g@kko:05/04/08 00:18:20 [RES]

とりあえず更新。
更新時異常は業務要件によりけりで。
(あんまり深く考察していないので間違いがあるかも)