pulpul 日本の試験

データベーススペシャリスト 概念書 · データベース

データベース設計

要点と定義

データベース設計では、対象業務に必要なデータとその意味・関連を分析し、概念データモデルから論理データモデルへ具体化します。概念設計ではエンティティ、属性、関連、多重度を整理し、論理設計では表、主キー、外部キー、一意性などの制約に対応させます。

多重度は、あるデータ一件に相手のデータが最小何件、最大何件対応するかを表します。最小値が0なら対応がない状態も許され、1以上なら対応が必要です。商品と在庫場所の例では、同じ商品を複数の場所に置くと場所ごとに在庫商品を記録する、という対応をモデル化できます。過去の出題で扱った補足として、出庫が0件以上の多重度なら出庫実績のない在庫商品も存在できます。多重度の読み取りが、存在しうるデータ件数の判断に必要です。

論理設計では、主キーや外部キー、一意性制約などで表間の対応と識別条件を表します。一対多なら、多側の表に一側の主キーを外部キーとして置く方法があります。一対一ではどちら側に置くかを選べ、多対多では両側のキーを持つ中間表を設けます。これは多重度を表構造へ写す判断に必要な考え方です。過去の出題で扱った補足として、外部キーの配置から関連の向きを読み取る例や、複数の外部キーを持つ診察記録の例があります。

正規化は、データの重複や矛盾を抑え、更新しやすい表を設計するための手順です。シラバスでは第1から第3正規形や、完全・部分・推移関数従属が扱われます。過去の出題で扱った補足として、候補キーは行を一意に識別する最小の属性集合であり、主キーは候補キーの一つを選んだものです。また、関数従属では左辺から右辺が決まる向きを確認し、逆向きに推論できるとは限りません。

過去の出題で扱った補足として、分解後の表を結合して元の情報を過不足なく復元できる性質を情報無損失性、分解後の表で関数従属を確認できる性質を関数従属性保存と呼びます。第3正規形では、両方を満たす分解を構成できます。正規形の名称だけでは分解の性質を判断できないため、この二つを分けて考えます。

適用条件と例

表を設計するときは、まず一行が何を表すかを定めます。たとえば申込表の一行を「受講者一人が講座一つに申し込む記録」とします。受講者番号と講座番号の組で一行を識別できるかを確認し、同じ受講者が同じ講座に複数回申し込めるなら、開催回なども識別に必要か検討します。候補キーに関するこの確認は、過去の出題で扱った補足です。

関連を表に写す際は、最大多重度に応じて外部キーの置き場所を選び、最小多重度に応じて関連が任意か必須かを検討します。たとえば一つの支店に複数の職員が所属し、職員は一つの支店に所属するモデルなら、職員表に支店番号を持たせられます。職員が必ず支店に所属するかは別の条件であり、列を必須にするかなどを含めて確認します。外部キーの配置と関連の読み取りは、過去の出題で扱った補足です。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む