2005年03月10日

[ テクニカルエンジニア(データベース)/H10以前 ]

平成8年 午前 問28 メモ

 関係:人名録(氏名,社名,役職)を射影によって分解して,関係:A(氏名,社名),関係:B(氏名,役職),関係:C(社名,役職)を作った。これら三つの関係から元の関係”人名録”を復元するための方法はどれか。ここで下線の付いた項目は主キーである。

ア A とB とC との直積を作る。
イ A とB との集合和を求める。
ウ A とB とを氏名で等値結合する。
エ A とC とを社名で等値結合する。
オ B とC とを役職で自然結合する。

正解:エ

元の関係AとB、AとCのどちらに分解しても 自然結合により元の関係"人名録"を再現できるので 損失なしの分解という点ではどちらも正しいといえるが、 次のような問題がある。

ア.元の関係をAとBに分解した場合(不適切な分解)
社名→役職の関数従属性が関係間の制約となっているため、
ある人が特定の社名、役職を持たないと、
特定の社名と役職との関係を挿入できない。
あるいは複数の人が同じ社名を持っている場合は、
その人たちが同じ役職を持つように監視しなければならないという
問題がある。この分解は不適切な分解といわれる。

イ.元の関係をAとCに分解した場合(適切な分解)
社名→役職の関係従属性が関係Cの中に含まれ、あらかじめ
特定の社名と役職の関係を挿入でき、上のような問題は生じない。
この分解は適切な分解と呼ばれる。


関連記事
iTAC > テクニカルエンジニア(データベース) > 2004.01.01-2004.04.03までのログ > 理解不能です
http://www.mirai.ne.jp/~suehiro/am/h0804/db-h8.htm
http://school4.2ch.net/test/read.cgi/lic/1108469078/331-


解決記事
http://www.itac.gr.jp/dsp/bbs/log11.asp#0204210103

Posted by g@kko at 2005/03/10 20:56 | 個別記事表示 | コメントを見る (3) |
この記事をLicWikiに埋め込む:
コメント
2 :9:05/03/10 21:17:16 [RES]

これ有名な悪問だよねw
午前の1問にここまで手間を割いたのは午後にも応用できるとの判断(´・∀・)?


3 :g@kko:05/03/10 21:25:37 [RES]

>>2
ホント悪問w
午後I の正規化理論に応用できないかな?
「属性名に惑わされて提示してある関係を見失うな」とか。

普通, 社名→役職 なんて思わないし。


4 :g@kko:05/03/12 01:20:26 [RES]

参照
 新版 データベース技術 P60 (5) 適切な分解と不適切な分解