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

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

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

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

Q&A

解決済

2回答

5786閲覧

「第二正規化」は、複合キーが存在するテーブルのみで行うのでしょうか

退会済みユーザー

退会済みユーザー

総合スコア0

データベース

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

0グッド

0クリップ

投稿2019/03/28 14:19

編集2019/04/04 22:54

RDBでのテーブルの「第二正規形」は、「テーブル内で部分関数従属を解消し、完全関数従属のみのテーブルを作ること」と定義されています(「達人に学ぶDB設計徹底指南書」より)。

「部分関数従属」という言葉は、「複数の主キーが存在する場合に、その中の一部の主キーが関数従属をしているから」こそ「部分」という接頭語がついていると理解しています。

となると、「第二正規化」というのは、主キーが一つのカラムのときには行う必要がない(行うことができない)という認識でよろしいでしょうか?「第二正規化」と「複合キー」という二つのキーワードを絡めた説明が全く見当たらなかったため、ご質問させていただきます。

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

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

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

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

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

guest

回答2

0

ベストアンサー

「第二正規化」というのは、主キーが一つのカラムのときには行う必要がない(行うことができない)という認識でよろしいでしょうか?

「主キーが一つ」の時は、非キー項目は部分関数従属はしてないと言えるので、正しい認識です。

また、「複合主キー」という表現は、第二正規化が済んだものを組み合わせた結果として捉えられるので、正規化を検討する段階では、「複数の候補キー」という表現が宜しいかと思います。
※正規化の段階では「主キー」ではなく「候補キー」なので、検索して該当が無いのはそういうわけです。

投稿2019/03/28 14:46

編集2019/03/28 14:49
sazi

総合スコア25357

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

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

退会済みユーザー

退会済みユーザー

2019/03/29 05:33

ご回答ありがとうございます。 もやもやしていたものが解消しました。 実際に自分で手を動かして設計すれば、最初から主キーありきではないですね。 大変勉強になりました。
guest

0

「部分関数従属」という言葉は、「複数の主キーが存在する場合に、その中の一部の主キーが関数従属をしているから」こそ「部分」という接頭語がついていると理解しています。

「主キー」ではなく「候補キー」です。

となると、「第二正規化」というのは、主キーが一つのカラムのときには行う必要がない(行うことができない)という認識でよろしいでしょうか?

候補キーが複数組あるテーブルについては第二正規化が必要な場合があります。

投稿2019/03/28 14:33

maisumakun

総合スコア146469

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

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

退会済みユーザー

退会済みユーザー

2019/03/29 05:31

端的かつ明瞭な回答ありがとうございます。 書籍やWebページを読んで頭の中だけで考えていたこともあり、実際の設計手順を考えると納得できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.32%

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

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

質問する

関連した質問