リレーショナルデータベース設計で忘れてはいけないこと

Architecting

SQLアンチパターン

Amazon.co.jp: SQLアンチパターン : Bill Karwin, 和田 卓人, 和田 省二, 児島 修: 本
Amazon.co.jp: SQLアンチパターン : Bill Karwin, 和田 卓人, 和田 省二, 児島 修: 本
  • ジェイウォーク
  • ナイーブツリー
  • IDリクワイアド
  • キーレスエントリ
  • EAV(エンティティ・アトリビュート・バリュー)
  • ポリモーフィック関連
  • マルチカラムアトリビュート
  • メタデータトリブル
  • ラウンディングエラー
  • サーティワンフレーバー
  • ファントムファイル
  • インデックスショットガン
  • フィア・オブ・ジ・アンノウン
  • アンビギュアスグループ
  • ランダムセレクション
  • プアマンズ・サーチエンジン
  • スパゲッティクエリ
  • インプリシットカラム
  • リーダブルパスワード
  • SQLインジェクション
  • シュードキー・ニートフリーク
  • シー・ノー・エビル
  • ディプロマティック・イミュニティ
  • マジックビーンズ
  • 砂の城

データベースの不吉な臭い

Amazon.co.jp
  • 複数の目的に使われるカラム
  • 複数の目的に使われるテーブル
  • 冗長なデータ
  • カラムの多すぎるテーブル
  • 行の多すぎるテーブル
  • 「スマート」カラム
  • 変更の恐怖

追加のアンチパタン

  • OTLT(One True Lookup Table)
  • 複合主キーのまま物理テーブル(人工主キーをつけるのがよい)

ER図

  • リソースエンティティは固いものから軟らかいものの順に、最上段に左から右に向けて並べる
  • イベントエンティティは、業務の流れにそってレコードが発生する順に左上から右下に向けてならべる
  • どんなに大きな紙に小さな文字になっても、1枚にする

思うところ

  • 「正規化」「直交化」を正しく行う
  • 「正規化」「直交化」できないものもあることを認識する
  • 業務に対する本質的な理解をデータモデルに込める
  • 業務の本質的な理解に基づいたデータモデルなら、画面とのインピーダンスミスマッチは発生しない
  • カラム名は英語にする(ローマ字はやだ)
タイトルとURLをコピーしました