History of Normalized Relational Databases – When Did Developers Start?

databasehistorynormalization

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)?

Best Answer

The relational model was first formulated by E.F. Codd in 1969, and was first implemented in various IBM databases in the '70s. It also looks to me like the first edition of C. J. Date's seminal "An Introduction to Database Systems" was published around 1974.

I was hearing noise about relational databases in the 80s, without even paying much attention. Oracle, Ingres, and Informix were all shipping server-oriented commercial relational databases in the early 80s and doing quite nicely at it.

As for when relational databases were widely used on microcomputers,, well... that's another matter. The most popular microcomputer databases back in the 80s were decidedly not relational - this would include dBase, FoxPro, FileMaker and Paradox.

I would say the transition toward relational databases on microcomputers generally occurred during the 90s, as the ability to network to relational databases hosted on servers became common. It certainly did for me - at the beginning of the decade, I would look rather blankly at people who mentioned relational databases, and by the end of the decade, I was frustrated at having to work with FileMaker (as opposed to Informix, Oracle, or MS Access) because it wasn't sufficiently relational and didn't support SQL.