5-3 冗長性とパフォーマンスのトレードオフ
非正規化に更新不整合のリスクがあることはすでに学んだ
ここではそれ以外のリスクについて整理する
リスクは大きく3つに分類できる
1️⃣ 更新のパフォーマンス低下
2️⃣ データのリアルタイム性の低下
3️⃣ 後続の工程で設計変更すると、手戻りが大きい
更新時のパフォーマンス
商品数というサマリーデータを保持しているカラムがあったとする
https://scrapbox.io/files/687774c859cd808b6859c603.png
注文が増える度に、同じ受注日の商品数カラムも更新する必要がある
定期的に商品数カラムを更新処理が発生するので、DBへの負荷も考慮しないといけない
データのリアルタイム性
定期的に商品数カラムを更新処理が発生する
どのタイミングで反映するのかといった話になる
1日1回、30分に1回、即時などなど
反映頻度が少ないほど、データのリアルタイム性が失われる
一方でDBへの負荷は少なくなる
反省頻度が多いほど、データのリアルタイム性がある
一方でDBへの負荷は大きくなる
トレードオフが発生する
改修コストの大きさ
データモデルの変更は、ソースコードの改修に比べると、遥かにコストが大きい
それはDOAの大原則によるもの
テーブル構成を変更したいと言っても、ソースコード改修が大変なため、受け入れられないこともしばしばある