Finally, someone with a deeper understanding of the value of normlisation. Halelujah !
Yeah, a word of warning, be careful, there are a few here who have their own private definitions of standard terms.
For starters, I would say 4NF or BCNF is minimal these days, 3NF is no longer the minimum acceptable for large corporations, DoD, govt departments. Most of them demand IDEF1X as well.
Yes, I have implemented a few pure data warehouses (sourcing the data from OLTP, so there is no OLTP requirement) as well as a few DSS on top of OLTP; one example
here being discussed in a recent thread. Star or Snowflake on top of OLTP. Strictly BCNF. The standout benefit was ease of reporting, the users number in the thousands, and use many different report tools. I personally would not find an unnormalised design acceptable for a data warehouse (I have worked on more than a few, and the pain is unforgettable). It is not only reasonable, I would say it is a commercial minimum (supplied for a fee by a qualified outside professional, as opposed to supplied by a salaried internal person).
Maintaining the dimension tables (and table clusters in a Snowflake) are dead easy. Simple and straight-forward, as are reference tables in a normalised OLTP database.
One more point. The absence of natural relational keys in a BCNF database cripples it; it cripples a warehouse as well, the data volumes are just larger, and the effort required to correct it thusly larger. If there are more than a few Fact tables, and they are not related by migrated relational keys (they are related by surrogate keys alone), then Dimension-Fact reporting is also crippled, limited to the single parent Fact table. Migrated relational keys allow the Fact table to have children; and those child Fact tables can be reported on directly from the Dimensions, without being forced to go through the parent Fact table. The linked example does demonstrate that capability, in simple terms. The alternative (and I have seen warehouses undergo this correction), is massive data duplication: every Fact table has to have every Dimesion possible as an FK.