SQL and Relational Theory by C. J. Date
Summary: More relational than SQL oriented
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.
Product page:
O’Reilly: http://shop.oreilly.com/product/9780596523084.do
Amazon (in Books): SQL and Relational Theory: How to Write Accurate SQL Code
Amazon (Kindle): SQL and Relational Theory: How to Write Accurate SQL Code