電子書籍の厳選無料作品が豊富!

ボイスコッドを必要とする条件で
「自明でない関数従属性が成立する場合」がわからず困っております。

以下の表があります。
備品グループ  社員氏名 承認者
パソコン類  櫻井忠雄 山田課長
パソコン類   伊藤隆  佐藤課長
パソコン類   福永達也 山田課長
プロジェクタ類 櫻井忠雄 鈴木課長

<ルール>
・備品グループと社員ごとに承認者が決まっている。 {備品グループ、社員}→承認者
・承認者は一つのグループしか承認できない。 承認者→備品グループ

とあるとき、挿入、削除、更新異状が発生することはわかったのですが
「承認者→備品グループという自明でない関数従属性が成立している。」
よって、「ボイスコッド正規化をする必要がある」とありました。

「承認者→備品グループ」は自明に思える(佐藤課長(ほかの課長も)は、パソコン類(承認するものは1つ)のみで、
プロジェクタ類の承認はしてないので自明だと思う)のですが

この考えは間違っているのでしょうか?

A 回答 (1件)

 ボイスコッド正規形(BCNF)の成立条件は、


1.すべての関数従属性が自明であること
 または、
2.関数従属性の決定項(X→YのXのこと)がすべてスーパーキーであること
 の二つになります。

 まず、1.の「自明である」ことについて念のため説明します。
 自明な関数従属性というのは、X→Yの時、YがXの部分集合になっている場合のことを言います。
 つまり、{備品グループ,社員氏名}→備品グループ というのが自明な関数従属です。
 そして2.の「スーパーキー」ですが、これは全ての属性に関数従属性を持ったキーのことをいいます。候補キーと同義と思ってください。

 これを踏まえてあなたが挙げた例を見ると、承認者→備品グループは明らかに自明ではありません。備品グループは承認者の部分集合ではないためです。
 承認者を決まれば備品グループが決まる、という関係は完全関数従属といえますが、自明な関数従属ではないのです。

 また、承認者はスーパーキーでもありません。
 "承認者"が決まっても、"社員氏名"はわかりませんよね。

 よって、自明でない関数従属性{承認者→備品グループ}が存在し、決定項"承認者"がスーパーキーではないこの関係表はBCNFではありません。
    • good
    • 0
この回答へのお礼

とてもわかりやすく解説していただき
ありがとうございます。

すっきりしました。

お礼日時:2009/04/16 10:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!