Resources on database design and data integrity enforcement best practices? I am a developer at a very small software company who has historically taken a very loose approach to database design and data integrity techniques. I'd like to turn that around and start using more in the way of keys, constraints, transactions, etc to prevent software defects and inconsistencies from causing data problems and also bring those causes to light more quickly. Are there any great/classic resources or books on best practices for database design and these sort of data integrity features, discussion of trade offs, etc?
I'm curerntly going throught the following. I've read Louis Davidson's earlier books and fond them very useful so I'm looking forward to reading his latest one (for SQL Server 2012).


"Pro SQL Server 2005 Database Design and Optimization", Louis Davidson et al.
"Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design", Michael J. Hernandez.


More generally, authors you should look out for include Chris Date, Fabian Pascal, Joe Celko (for advanced and/or theoretical topics).

Also check out this other DBA question - some of the answers there may help.