SQL Server MVP Deep Dives 2, Chapter 4
I believe chapter four of Deep Dives 2 should be required reading for all non-database developers. It is not only a great overview of what makes up a good database design, but speaks to why it is best to design things in a relational way. Data architects don’t sit around plotting how to make life difficult for developers (that is just a side benefit), but they design a SQL Server database to make the best use of the relational database engine. Davidson lists out seven criteria for good database design with the added requirement that “it works.” “It works” is sort of the bare minimum for a database and it needs to be kept in mind or all of the effort of designing the database is meaningless. When I read chapter four I was reminded of the Boy Scout Law listing the characteristics scouts strive for. I took Davidson’s criteria and wrote it out as Louis’s Law.
A Relational Database is Coherent, Normal, Fundamentally Sound, Documented, Secure, Encapsulated, Well Performing, and it works.