データベース設計の考え方
要点と定義
データベース設計では、対象業務に必要なデータとその関係を整理し、概念・論理・物理の各段階で適切な形にします。提示されたシラバス範囲には、データ分析、概念・論理設計、正規化、性能を考慮した設計、物理設計、作成手順、評価・運用が含まれます。
概念データモデルは、対象世界にある情報の構造を抽象化したものです。業務の処理手順や、導入するデータベース管理システムの構成を表すものではありません。概念設計では情報とその関係を整理し、論理設計では表、キー、制約などに具体化します。物理設計ではアクセス効率と記憶効率の両面から、配置や容量などを検討します。
正規化は、データの重複や矛盾、更新時の不都合を抑えるために、属性間の従属関係を整理する方法です。第3正規形を目指す際は、キー以外の属性に対する部分関数従属や推移的な従属が残らないかを確認します。過去の出題で扱った補足として、受注に関する属性を受注・顧客・商品・明細に分ける設計が問われています。
過去の出題で扱った補足として、ある属性値に対して、互いに独立した二つの値の集合が決まる場合は、多値従属として捉えられます。その集合をそれぞれ別の関係に分けることで、元の情報を失わない分解が可能な場合があります。関数従属の有無だけでなく、独立した集合として扱えるかが判断の要点です。
複合キーが扱いにくい場合、識別用の列を追加して主キーとする代理キーを使えます。業務上の複合キーも必要なら一意性制約などで一意性を保ちます。代理キーを導入しただけで、元のキー候補が不要になるとは限りません。これは過去の出題で扱った補足です。
適用条件と例
分析では、必要な情報が表の属性として記録されているかを確かめます。たとえば、商品の販売数量を日ごとに比べたいなら、対象となる販売記録に日付が必要です。購入記録に日付がなければ、その記録だけから購入者数の日別推移は集計できません。集計の可否は、表の名前ではなく、必要な属性と結合に使えるキーがそろっているかで判断します。
インデックスは検索を助けるデータ構造です。過去の出題で扱った補足として、B⁺木の葉を分割したときは、分割後の葉を親から参照でき、葉同士の順序も保つ必要があります。転置インデックスは、単語からその単語を含む文書を引く仕組みです。たとえば「火山」を含む報告書を探す用途に使えます。
物理設計では、検索対象や更新頻度などのワークロードと容量制約を踏まえ、アクセス効率と記憶効率を評価して設計を選びます。索引の追加は検索を速めることがありますが、索引自体が記憶領域を使う場合があります。両方の効率が常に同時に改善するとは限りません。容量見積りでは、対象に含めるデータと除外する管理情報などを先に定めます。たとえば固定長レコードのデータ部だけなら、件数に1件当たりのサイズを掛けます。
この節の続き
- 誤りやすい点
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む