pulpul 日本の試験

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

データベース論理設計と正規化

要点と定義

論理設計では、主キーで行を識別し、外部キーで表同士の参照関係を表します。一意性制約は指定した値の重複を防ぎ、参照制約は参照先との整合性を保ち、検査制約は値が定めた条件を満たすかを確認します。

正規化は、データの重複や矛盾を抑えることを目的に表を整理する手順です。設計案は更新のしやすさに加え、利用時の性能も考慮して評価します。

適用条件と例

有効で即時に検査する条件を「数量 > 0」とします。新規行の数量が0なら条件を満たさないため、その行は受け入れられません。

過去の出題で扱った補足として、商品情報を管理項目ごとに行にする表では、商品IDと項目名の組を一意にすると、同じ商品に同じ項目名の行を重ねずに済みます。値まで一意性の対象に含めると、値の違う行を登録でき、異なる商品名の複数登録を防ぐ目的に合いません。

過去の出題で扱った補足として、B+木の葉が分割され、親ノードに空きがある場合、親は分割後の二つの葉をキー順に子として参照します。葉同士の連結も同じ順序に保ちます。

過去の出題で扱った補足として、参照制約を満たし、外部キーの値がNULLでない行は、参照先の一行と対応します。NULLを許す場合には対応先がない行もあります。過去の設問では、外部キーを持つ側を確認して多重度を読み取ります。

過去の出題で扱った補足として、履修を学生・授業科目・学期の三者の組として表すと、同じ学生と科目でも学期が異なる履修を区別できます。三者を一つの関連に結び付けることが要点です。

過去の出題で扱った補足として、標準的な合成法で第3正規形へ分解すると、分解後の表を結合して元の関係を復元でき、関数従属性も保てます。この性質を、すべての正規化分解に一般化することはできません。

過去の出題で扱った補足として、第3正規形では、関数従属の右辺が素属性、つまり少なくとも一つのキーの一部を成す属性であれば、その従属と両立する場合があります。右辺が素属性かどうかが判断の手掛かりです。

この節の続き

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

アプリでこの節を読む