📝

【SQL入門】データベース設計の大まかな流れについて整理してみた

に公開

システムとデータベース

システム化と要件

データベースをうまく作れない理由

【例】家計簿

理由1. 要件を知らない

  • どのような家計管理をしたいのか
  • 現在どのように管理しているのか

家計に関するどんな情報を管理すれば要件を満たせるのかがわかっていないため、
「どんなテーブルを作ればいいのか」決めることができない

理由2. 要件をテーブル設計に落とし込む方法を知らない

要件を聞いただけでは「具体的にどのようなテーブルを作ればよいか」までは明らかにならない。
要件を意識しながらなんとなくテーブルを作ってみる方法もあるが、しっかりとした根拠がないまま経験や勘に頼るのは危険。

◎データベースを用いたシステムを開発するには、要件をしっかり理解し、その要件をデータベース設計に適切に落とし込むための方法論を活用しなければならない

データベース設計の流れ

データベースを作るときに明確にすること

  • 使える材料(INPUT)
  • 作るべきもの(OUTPUT)

データベース構築のINPUT・OUTPUT

  • INPUT: 要件の一覧表(お客様から聴取したもの)
  • OUTPUT: 一連のDDL文(実行すれば必要十分なテーブルが生成されるもの)

データベース設計の大まかな流れ

1. 概念設計

管理すべき情報はどのようなものなのかを整理する
データベースやシステムに関することは考えず、要件に登場する情報だけをざっくり把握する。
扱うべき情報を明確にし、情報間の関連があれば、どのような関係があるかを整理する。

2. 論理設計

概念設計で明らかになった各情報について、RDBを使う前提で構造を整理して詳しく具体化
論理設計では、「どのようなテーブルを作り、それぞれのテーブルにどのような列を作るか」まで明らかにすれば十分。
型や制約など、付随的な部分については考えない。

3. 物理設計

特定のDBMS製品を使う前提に立ち、論理設計で明らかになった各テーブルについて、型・インデックス・制約・デフォルト値など、テーブル作成に必要なすべての要素を確定させる。

この物理設計に基づいて、CREATE TABLE 文などを含む一連のDDL文を作成し、最終的にデータベース内にテーブルを作成することができる。

参考図書

『スッキリわかるSQL入門 第2版』

Discussion