ここであまりにも明白な質問をしないことを願っています。計算カラムの非正規化時のトレードオフは何ですか?
私の現在のプロジェクトでは、SQL Server 2008を使用して比較的単純なデータベースを設計しています。テーブルの1つとして、「計算列」(永続化されていない)を導入することに決めました。その表現は単純に2つの他の数値列の積であり、その唯一の存在理由は便利です(私はウェブページにいくつかの一方向データバインディングを行っています)。
しかし、計算された列を使用すると、最初の正規形に違反することがわかりました。これは私に不思議に思った:ワットはトレードオフですか?私の計算カラムの唯一の理由が便利なのであれば、それは非正規化より重要ですか?
明らかに、他の層で計算できるものを計算し、追加の列を返すことによってネットワークトラフィックをわずかに追加すると、データベースサーバーにわずかなCPUオーバーヘッドがあります。永続化されていない場合は、CUD操作のための追加のオーバーヘッドはなく、ディスク容量は必要ないため、追加のI/Oは発生しません。 –
SQLテーブルが少なくとも1つのキーを持ち、一意の列名を持ち、すべての列がnull値ではない場合、SQLテーブルは1NFにあります。永続化されていないか、計算された列が1NFに違反しない – sqlvogel