質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

1回答

2099閲覧

ボイスコッド正規形、第4正規形、第5正規形について

退会済みユーザー

退会済みユーザー

総合スコア0

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2020/02/06 06:15

ボイスコッド正規化 - Qiita https://qiita.com/gooddoog/items/f40a7f0602bbe6afa1cf

第四正規化・第五正規化・ボイスコッド正規化がややこしいので、備忘録として自分なりにまとめてみた(データベーススペシャリストの勉強) | メサイア・ワークスhttps://www.messiahworks.com/archives/3399

上記のサイトで表題の正規形について学んでいますが、正直、どのページを見てもきちんと理解できている気がしません。そこで、理解度の確認をしたく、質問をさせていただきました。
疑問点をQ1~Q6で記載していますので、部分的にでもご教示いただければ幸いです。

■ボイスコッド正規形

  • どんなときにこの正規形が必要か?

主キー属性から非キー属性への関数従属以外に、非キー属性から主キー属性への関数う従属もあるとき

  • どうすればよいか?

上記の非キー属性→主キー属性の関数従属を切り離す

■第4正規形
- どんなときにこの正規形が必要か?
自明でない多値従属性が1つのリレーションに複数含まれているとき

※ここでいう「自明でない多値従属」とはX→Y(複数の値)の関数従属があったとき、YがXの部分集合でないことを言っていると認識していますが認識齟齬ないでしょうか【Q1】 - 正規化にあたっての制約 業務ルールに則って正規化を行うため、業務ルールがある前提(ほんとに?)【Q2】 - どうすればよいか? 上記の多値従属をそれぞれ切り離す - その他 自明の多値従属性が含まれている場合は第4正規形を満たしていることになると思うが、「自明の多値従属性が含まれている」テーブルがどのようなものなのか理解できていない【Q3】

■第5正規形
- どんなときに正規形が必要か?
属性間にすべて多値従属性がある場合(ほんとに?)【Q4】
- 正規化にあたっての制約
第4正規形と同じく業務ルールが必要(ほんとに?)【Q5】
- どうすればよいか?
すべての多値従属を切り離す

【Q6】上記3つの正規形について、すべて無損失分解を前提としているが、損失分解でもよいというDB設計(または設計上、運用上の判断?)はあり得るのか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

普段正規化を特段意識している訳ではありませんが、なかなか回答が付かないようなので、回答してみます。
なので、試験対策向きの回答ではない事は念頭に置いておいて下さい。

【Q1】:
「自明でない多値従属」とはその言葉通り、関係が明らかになっていないという事だけです。
それを明らかにする必要がある場合に、第4正規形を適用します。

【Q2】【Q4】【Q5】:
本当です。
ボイスコッド正規形にしても、その要件(候補キーの単位を管理する)必要が無ければ、正規化する事によって、業務上で必要の無い負荷を強いるだけになります。
第4正規形、第5正規形を適用できるデータは存在していても、そこまで正規化するかどうかは要求があるかどうかです。

【Q3】:
色んな例を目にされていると思うので、どういうところが理解できないのか分かりませんので参考になるか分かりませんが、以下を紹介しておきます。
「特殊な正規形」を理解する (1/2)

【Q6】:
そもそも、「無損失分解」の対比となるのは「復元できない」事でありそれは、多:多の関係に分解された時です。
ですので、それを許すのは、復元しなくて良い記録を目的としたデータ(例えば取引の結果やログ)です。

投稿2020/02/09 04:38

編集2020/02/09 04:43
sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/02/11 02:32

ご回答ありがとうございます。業務上、理解の必要に迫られているわけではないのですが知っておきたかったというところです^^; 「自明でない多値従属性」についてはまだきちんと理解できたわけではない気がします。 これは、「一見すると2つの属性間に多値従属性があるかは不明」だが、業務上は従属性がある、ということなのでしょうか。業務上は従属性があることがわかっているから、その従属関係を切り離す、と理解ています。
sazi

2020/02/11 03:46

「「一見すると2つの属性間に多値従属性があるかは不明」だが、業務上は従属性がある」ではありません。 多値従属性がある事は分かっているが、自明にする(正規化する)のは要件的に(業務上)必要がどうかで決定するのです。
退会済みユーザー

退会済みユーザー

2020/02/11 13:32

あーなるほど! やっと理解できました。 すいません、度々、ご丁寧にどうもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問