on 18 January 2012
SQL and Relational Theory is devoted to relational theory and explaining why SQL is not relationally complete. Author will guide you through various topics from the relational modeling and show how SQL is limited in a way. At some point this is interesting but will left you with a felling that you have to stick to practices derived from particular implementation of the SQL while at the same time you will be aware of it's limitations in relational sense. This can lead to the increase of the anger level towards your database vendor.
When I was reading the book there was one thing that bothered me all the time. C.J. introduces "Tutorial D" language which is, let's say, better suited for relation modeling than SQL is. I can agree with C.J. here, but question is whether learning yet another language just for the tutorial purpose is worth the effort. I am not sure what the answer should be, because it is hard to imagine how to explain some of the topics without any language at all.
When you read the book, you can definitely tell that C.J. has mathematical background. He tries to be very specific at almost each aspect of the book and makes no space for misinterpretation - especially when it comes to the definitions. Sometimes it seems to be little bit awkward though (e.g. see the definition of comma separated list). This has it's advantages and disadvantages. At some point you can be sure what author meant to say, while at the same time the language of the book has this special, "scientific feeling". I, personally, am the very fan of Wittgenstein's thesis that everything you want to say can be said simply. Anyway, bear in mind that the book is theoretical rather than pragmatic.
While I value the content of the book, I can't say I read it cover to cover over just one evening holding my breath. This book has academic style (lots of condensed information) and it doesn't suit me. On the other hand, the topic itself is neither a fiction. Summarizing. If you are looking for a book that will teach you SQL a gentle way. Don't buy it. However, if you are aware of the relational theory, if you are looking for a theoretical background and want to extend you knowledge in data modeling area, I think you may find this book really comprehensive and interesting.
on 16 March 2012
Be aware that this book is not formatted like other O'Reilly books. Fonts are very small and text lines are very long, which makes it physically unpleasant to read.
It's written in a very old-fashioned and verbose way. Things that could be written in a few words take several sentences. The author uses a lot of parenthesis, asides and foot notes, so the text doesn't flow nicely, you constantly have to switch between different levels of importance. I couldn't read it beyond the fourth chapter. I did learn a few relational concepts, but the author fails to show how that can apply to real-world problems. His general approach is rather negative. He really wants to show that SQL products don't implement relational theory correctly and are inherently broken. He sounds like the whole world is mistaking but only him knows the truth it and is unfairly misunderstood. He keeps using the same running example, a suppliers and parts database. It's a simplistic example with only three tables but he doesn't clearly explains what business problem this example is intending to solve, so I couldn't understand how he came up with that example. Tables and columns are named the old-fashioned way using all uppercase abbreviation such 'S', 'SNO', 'PNO', 'QTY', etc. which obviously doesn't help to follow his explanations.
I'll leave two stars because the author obviously knows his stuff and if you have a lot of spare time and patience, you might be able to read this book from cover to cover and maybe get some value out of it. Please reply to this comment if you feel that I'm missing something.