データベースの複雑さとコードの複雑さ

データベースを使うアプリについて。
エンティティ定義をてきとーにして冗長なテーブルを設計したら、その分コードが複雑になる。
なぜか?
冗長なテーブルはナントカ区分・ナントカ分類をいっぱいカラムにもってたり、NULLのカラムがいっぱいもってたりする。すると、コードで条件判定が必要となる。IF文がネストする。そんなのコードでなんとでもできるし、ポリモーフィズムやNULLオブジェクト使えばイイじゃん!というのはナシで。
なぜか?
コードが増えればコードが見にくくなる。バグが発生する確率が高まる。変更しにくくなる。もともとデータ構造が最適化されていれば書かなくていいコードだったはず。
データ構造を研ぎ済ませていくとデータベースが複雑になる(多数による複雑化)が、その分コードはシンプルになる。
データベースの複雑さとコードの複雑さはトレードオフ。最適化したデータベースは安定したアプリに貢献してくれるはず。
とか思ってる。