The more I teach sessions about database design, the more I realize that two things are true. First, most people don’t dig the normalization stuff as much as I do (some do), and second, people really need the normalization stuff more than they think.
The really hard part is how to flavor the medicine just enough such that it will be read by more people, but no so watered down that it does what it should. In past editions, I have tried to mix a lot of examples, and long examples, in with the basic skills. As a complete read though, I think this works pretty well. But for myself (whom is in fact my most important reader), I use the book for two things.
1. A cohesive example that shows how to do the process
2. Learning and reviewing particular skills
I find that the examples are excellent ways to get a handle on the entire process, but rarely do these seem valuable in a reread. In fact, they basically get in the way. What is super useful, even as the writer of the book, is to have the fully searchable ebook to look for certain skills and an example of the skill. For example, on the rare occasion I need to write a trigger from scratch, I whip out the ebook, search for trigger, and bam, I have the basic code I need.
So the current plans are to separate the book into 2 sections, each with 2 minor sections:
- Modeling The Database
- Base Skills - Theory, Normalization, Alternative Modeling Techniques (Dimensional), Testing, Table Patterns, Testing
- Logical/Conceptual Modeling – Several case studies that will use most of the base skills in a manner to show the reader an example of how to put it all together. This section will be the location for the cohesive examples
- Implementing The Database
- Techniques for implementing the Model – DDL, including Triggers, Constraints, etc; Security; Examples
- Physical Abstraction Optimization – Structures: Database, Table, Index; Concurrency; Datatypes; Data Quality,
Next step is to break down each of the sections into chapters and start a bit of discussion (if in fact, only with myself) about what to put in the main text of the book.