0LINEはじめにデータベースの正規化練習をデータベーススペシャリストの過去問で行いました。過去問を解く過程で、どのように第3正規化にしていくのかについて情報の整理や分析のやり方についてまとめています。必要な方はこちらご覧ください。データベースの正規化の目的とは??|非正規形〜第3正規形の正規化のやり方データベースの正規化練習の題材確認まずは正規化対象の題材を確認していきましょう。今回は、こちらを題材にしています。>>データベーススペシャリスト過去問(2021年(令和3年度)午後I題材の内容で、ポイントとなる箇所をピックアップして見ていきます。テータベーススペシャリスト午後I問題このテーブルを第3正規形にしていきます。”の候補キーを全て答えよ。部分関数従属性,推移的関数従属性の有無を,答案用紙のあり・なしのいずれかを○で囲んで示せ。“あり”の場合は,次の表記法に従って,その関数従属性の具体例を一つ示せ。それぞれあるか??を整理する必要があります。必要な方はご覧ください。”の候補キーのうち,主キーとして採用できないものはどれか答えよ。字以内で具体的に述べよ。候補キーの項目にnullが入る可能性があるケースです。必要な方はご覧ください。まで正規化されているか答えよ。し,関係スキーマを示せ。本文中の用語を用いること。主キーを構成する属性の場合は実線の下線を,外部キーを構成する属性の場合は破線の下線を付けること。テータベーススペシャリスト午後I問題この設問でいよいよ加盟店企業商品テーブルを第3正規形にしていきます。企業コードで識別する。レストランチェーンなど様々な業種の企業がある。同じ加盟企業と複数回の契約をすることはない。加盟企業は複数の店舗をもつ。店舗は,加盟企業コードと店舗コードで識別する。加盟企業が販売する商品を,B社から見て加盟企業商品と呼ぶ。盟企業商品コードで識別する。コードは再利用されることがある。コードが設定されない商品もある。一意になるとは限らない。横断分析用商品コードの設定には,加盟企業商品の登録から数日を要する場合がある。長い、、、ざっくりと説明文書のポイントをまとめるとこんな感じです。「一意に特定」「一旦空で登録」「〇〇毎に」この辺りのキーワードは重要になります。現場では、今回の題材のように丁寧に文章でまとめられていることはないでしょうが、この辺りに注意してビジネス側の人にヒアリングする必要があります。Bの商品××は名前が違うだけで分析するときには同じ商品■■として扱いたい。そんなイメージです!!現状が第○正規形か見極めるには??ここから加盟企業商品テーブルを第3正規形に指定きたいのですが、その前に現状加盟企業商品テーブルは第1正規形なのか??第2正規形なのか??それ以外なのか??について見ていきます。候補キーについて考えます。加盟企業商品を一意に特定できるキーは・・・{加盟企業コード、加盟企業商品コード}、{加盟企業コード、横断分析商品コード}(1の解答)が挙げられます。加盟企業との組み合わせで考えると一意に特定できます。加盟企業名が決まるので部分関数従属性有りということで現状は第1正規形です。横断分析商品名が決まる。推移的関数従属性もあります。第3正規形に分解していきます。テーブルを分解してもキー同士を紐付けて、テーブルを結合することで今の第1正規形の状態に戻せなければなりません。(情報が欠落するようにテーブルを分解してはダメです)最終的にはこんな感じに分解できます。コード)横断分析商品情報(横断分析商品コード、横断分析商品名)(3の回答)(本当なら部分関数従属のみ排除した第2正規形の状態を見せたかったですが、、、この例だと推移的関数従属性だけの形が残せない。)慣れないうちはテーブルを分解する際は、テーブル同士を外部キーを利用して結合して問題なく元の状態を再現できるか確認しながら第3正規化するのがいいと思います。取り除いて第3正規形にしていく流れを具体例で確認しました。基本的にはテーブル設計はこの第3正規形になるように設計することが多いです。個人的には一番理解度を深める方法だと思います。必要な情報をビジネスサイドから漏れなく集めるヒアリングをする訓練もしてみるといいと思います。今回の課題のように丁寧に事前に情報がまとめられていてそこからテーブル設計する現場はないと思うので、ヒアリングのスキルは重要です。重要だと考えるデータベース周りの知識をまとめた記事を作りました。そちらもご覧ください。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。