In reviewing database development best practices recently I'm reminded of an attitude I've found prevalent in many development shops, that the database is just "a place to put stuff". As much as I've come to expect this attitude, it continues to upset me. There are two important (at least I think) facts that all developers should remember when it comes to any application development project.
1. The data will ALWAYS last longer than the application itself. Take one look at the legacy systems out there and the effort to correlate that legacy data with current data. Many times the legacy app is there only to provide a retrieval mechanism for that historical data.
2. The "truth" of the business is the data. Each element in each attribute (or column) in each tuple (or row) is indeed a fact about the business. Aggregate these facts and you summarize the business. Throw in some erroneous information and the aggregation becomes meaningless, because it's not based on facts. Even if the data is there to provide a framework for a web application, for example, that web interface represents the business, and therefore has direct meaning for the business.
There is a lot more to establishing best practices than two bullet points, but if the data is good, and it's consistent, then solid, well-founded business decisions can be made.