Chapter 1. Louis and Paul’s 10 key relational database design ideas

 

Paul Nielsen and Louis Davidson

Even though the database world is more stable than the app dev world, which seems to have a hot new language every other week (our procs written in SQL Server T-SQL 4.21 still run, for the most part), there are still controversies and key ideas that are worth examining. For the 24 Hours of PASS, we presented a session on Ten Big Ideas in Database Design:

  1. Denormalization is for wimps
  2. Keys are key
  3. Generalize, man!
  4. Class <> table
  5. Data drives design
  6. Sets good, cursors bad
  7. Properly type data
  8. Extensibility through encapsulation
  9. Spaghetti is food, not code
  10. NOLOCK = no consistency

1. Denormalization is for wimps

A common database development phrase is “Normalize ‘till it hurts, then denormalize ‘till it works.” Poppycock! Although denormalization may have yielded better results for OLTP databases using SQL Server 6.5 and earlier, it is only rarely the case in modern times.

2. Keys are key

3. Generalize, man!

4. Class <> table

5. Data drives design

6. Sets good, cursors bad

7. Properly type data

8. Extensibility through encapsulation

9. Spaghetti is food, not code

10. NOLOCK = no consistency

Summary

About the authors