Near the beginning of the book, the author acknowledges two facts. First, much of the database development being done today is using RAD techniques with little formal design discipline. Second, object-orientation is a philosophy, not necessarily connected to the tool you use. Just because you are using C++ doesn't mean you are OO, and similarly you can use OO principles to improve the architecture of programs written using languages that aren't traditionally considered object-oriented. Unfortunately, if you aren't a C++ programmer, you won't get as much out of this book as you could. Chapters 1-4, 13 and 14 are brilliant. These chapters describe the mismatch between object architectures and relational databases and they lay out a philosophy that can be used to develop a solution. The middle chapters, where the author describes his particular solution to the problem (the Scoop architecture), are not nearly as helpful. As a Visual Basic developer who reads a lot about object-oriented programming, I am used to having to adapt what I read to fit within the limits of my chosen language. It isn't usually as much of a struggle as it was with chapters 5-12. I found two problems. First of all, where many authors would use examples to illustrate concepts from the text, this author seems to believe that his examples speak for themselves. The text is little more than filler between code segments. As I said, I am not unfamiliar with C++ examples, but the ones in this book are a chore. I had so much difficulty deciphering what they were doing, that whatever message they were intended to communicate was lost. Second, the examples are so dependent on C++ features like inheritance and operator overloading that they were utterly useless for me. Not to mention their dependence on a particular third-party SQL library (Dbtools.h++). It will be easier to find my own solution than to adapt his. Perhaps a C++ programmer would be able to use the examples in production code, but I would have been better served by higher level, more philosophical examples. UML diagrams that did little more than describe what functionality goes where would have been perfect. So in summary, I guess I still recommend this book to any programmer wrestling with how to apply object oriented techniques to database programming. You'll gain a clearer understanding of the problem and the choices you will be forced to make. Just ignore the author when he tells you that he has solved these problems for you.