データベーススペシャリスト試験攻略のツボ(2)
「正規化」に関する問題
西沢直木
2008/6/25
本連載では、テクニカルエンジニア(データベース)試験に対応できる知識を確認していきます。多岐にわたる知識が問われる試験ですので、受験する方はもちろん、日常業務ではあまり使うことのない技術知識の確認にも役立ててください。
|
問2-2 適正なレベルの正規化を行う
次の表を、第3正規形まで正規化を行った場合、幾つの表に分割されるか。ここで、顧客の1回の注文に対して1枚の受注伝票が作られ、顧客は1回の注文で1つ以上の商品を注文できるものとする。
ア | 2 | イ | 3 | ウ | 4 | エ | 5 |
(19年-午前問題-問25)
答え
解説
顧客が1回の注文に複数の商品を含めることができるので、「受注番号、商品コード」の組み合わせで主キーになると考えられます。受注番号と商品コードに関数従属する属性がないか調べて分割していきます。
・第2正規形への変換(部分関数従属する属性の取り除き)
受注番号が決まると、注文した顧客と受注日が決まるので、問題文の図に示された属性を次のように分割できます。
1:受注番号、顧客コード、顧客名、受注日
2:受注番号、商品コード、商品名、単価、受注数、受注金額
また、商品コードが決まると商品名と単価が決まるので、次のように分割できます。
1:受注番号、顧客コード、顧客名、受注日
2:受注番号、商品コード、受注数、受注金額
3:商品コード、商品名、単価
・第3正規形への変換(推移的関数従属する属性の取り除き)
「受注番号、顧客コード、顧客名、受注日」には、{顧客コード→顧客名}という関数従属が含まれます。{受注番号→顧客コード}という関係と合わせて考えると、顧客名は受注番号と推移的関数従属の関係にあるので分割します。
1:受注番号、顧客コード、受注日
2:受注番号、商品コード、受注数、受注金額
3:商品コード、商品名、単価
4:顧客コード、顧客名
結果として、第3正規形まで分割すると4つの表に分割されることになります。従って、「ウ」が正解です。この問題は特によく出題されます。覚えておきましょう。
2/3 |
Index | |
データベーススペシャリスト試験攻略のツボ(2) 「正規化」に関する問題 |
|
Page 1 ・問2-1 素早く正規形を見抜く |
|
Page 2 ・問2-2 適正なレベルの正規化を行う |
|
Page 3 ・問2-3 表から正規化の段階を見極める コラム:選択する問題の数が減る午後I問題は楽になる? |
データベーススペシャリスト試験攻略のツボ |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|