ITエンジニア向け 情報館  
   

 

データベース

このページでは、データベースの一般的な事項についてまとめている。
データベースソフトSQLServerに特化した内容については、SQLServerのページにまとめている。

DB正規化

第1正規形→第3正規形までの実例
http://sql.main.jp/cont/norm/map.html
http://www.atmarkit.co.jp/fdb/rensai/db_enginer03/...

データベース設計

データ容量設計

参考:[データベース設計編]レコード長×件数でデータ容量を決めてはいけない

データベースのデータ容量は、論理レコード長、物理レコード長、「ブロック」によっても影響を受けます。
DBデータを圧縮したり、特殊な条件があったりする場合にも、データ容量に変化がありますね。

制約設計

参考:[データベース設計編]参照整合性制約機能を多用してはいけない

参照整合性をDBに設定していると、データ移行時にデータの挿入ができなかったり、また特殊な状況下でのデータ変更が実現できなくなるという弊害もあります。
参照整合性は、DBだけで実現できるものではなく、アプリ側でも実現が可能とも書かれています。

DBで実現するほうが、参照整合性を永続化した状態でデータを保存できますが、アプリ側での対応だとある瞬間のみしか整合性を保証できない点に気をつけましょう。
ですので私は、基本的に可能な限りDB上で参照整合性を保つようにしています。

移行のパフォーマンス劣化は確かにありますが、頻繁にデータ移行を行うわけでもありませんし。
またパフォーマンス劣化を前提にして、業務の流れを構築していきますから、その点をクリアできれば、DBでの参照整合性のほうがいろいろ便利だな〜と思っています。