I work on a pretty old application which was converted from DOS and flat files for storing information to Paradox tables using the BDE then to MySQL relational database.
The older devs say that the reason they have no idea how to properly create a table in 3nf is because their code predates relational databases and they never learned about them in school.
So, within actual programs, when did a majority of programmers adopt a decent method for creating tables in their databases? If you look at the databases in open source CMS's, those tables look well normalized - are successful ones initiated that way or do they get normalized over time (or denormalized for pragmatic reasons)?