Achilleus,
> In other words, with surrogate keys, you eliminate the chance
> that your original design was flawed due to lack of important
> initial knowledge.
Well, you don't *eliminate* it, but you do decrease it.
I'd say, yes, this is an important 4th reason:
4) Your spec may be incorrect and surrogate keys make it easier to make design
changes in production.
Once again, though, this is an *implementation* issue and not a *logic* issue,
as I asserted ...
--
-Josh Berkus
Aglio Database Solutions
San Francisco