あるシステムにDB(データベース)を実装しようとする場合、RDBMSにOracleを使うかMySQLにするかPostgreSQLを選択するかってのもあるけど、まず実際どういうDBにするのか設計すると思う。Sig.の場合、設計時のコンセプトは次の2つ。
- 重複を避ける
- 求めるデータを「特定できる」ようにする
DB設計を厳密に行う手法には「リレーションの正規化」というものがある。これはデータの一貫性を維持し、不整合と冗長性を避け、効率的なアクセスを可能にするための設計手法。単に正規化ともいう。正規化には幾つか段階があるけど、実務の際には第三正規形までに止めて、それで十分とする場合が多い。その場合のポイントは、大まかに3つ。
- 繰り返しを避け、分割する
- キーと非キーに分ける
- キーとなりうる項目を分割する
あらかじめSQLでデータを取得することに慣れていると、設計から入るより楽に覚えられると思う。