1. you need to store some sort of historical value (see example above
about what the current price was on the date the order was placed,
perhaps not today's price)
In which case it's not calculatable...
Due to
rounding problems (and additional math steps too complex to mention
here) the data is stored in a rollup table and monthly/quarterly/annual
averages are computed from it.
Ditto, if you mean that the final values cannot be reliably reconstructed
from the original data every time.
The problem for me is that there is nothing in R theory that talks about
"calculated" or "repeated" or "redundant". The theory relies on definitions
like "functional dependency", and when the questions above are cast in this
light, then they become very easy to answer. If a particular attribute is
dependent only on the whole of the primary key, then it should be included.
Otherwise it shouldn't. Therefore, Rect.SurfaceArea is not dependent on
RectNumber, but on Rect.Height and Rect.Width; Order.TotalAmount is
dependent on a set of records in OrderDetails; but OrderDetails.AgreedPrice
is dependent only on (OrderDetails.OrderNumber, OrderDetails.OrderItem)
because it cannot be recovered from the Prices table if that value is
likely to change. Similarly, if the end result of your roll up calculations
is no longer functionally dependent on the base data, then it needs to be
stored appropriately.
As seen above, once the theory is properly understood, there is no
conflict. The logical solution is always going to be the right one, and you
will find that R theory is way ahead of you if you think you have found an
exception.
There are better ways in terms of database theory and design to do this
but Access crashes if the calculations are all done when the monthly
much less quarterly reports are printed.
The difficulty is, indeed, in the move to the physical solution, and the
errors that inadequate hardware forces on you. But at least the compromises
are made explicit.
Tip: try to be aware of what shortcuts you are taking and why,
hundred per cent agree.
B Wishes
Tim F