{"id":815,"date":"2006-04-15T12:00:00","date_gmt":"2006-04-15T12:00:00","guid":{"rendered":"http:\/\/orcldoug.com\/blog\/?p=815"},"modified":"2006-04-15T12:00:00","modified_gmt":"2006-04-15T12:00:00","slug":"book-review-the-art-of-sql","status":"publish","type":"post","link":"http:\/\/orcldoug.com\/blog\/2006\/04\/15\/book-review-the-art-of-sql\/","title":{"rendered":"Book Review: The Art of SQL"},"content":{"rendered":"<p>You don&#8217;t need to look hard to find commentary on the boundaries between blogging and &#8216;real&#8217; (for which you should probably read &#8216;print&#8217;) journalism. It&#8217;s not something I spend much time thinking about usually because I see blogging as a few random current thoughts (or belly-aching) and don&#8217;t feel I have a responsibility to anyone for what I write. If it&#8217;s complete rubbish, someone will pull me up on it and I&#8217;ll correct it. I certainly don&#8217;t put much thought into the quality of the writing because it&#8217;s informal chat and I think that should be obvious to readers.<\/p>\n<p>Then, occasionally, I realise how important it is to apply certain standards to what I write here, particularly if I&#8217;m reviewing someone else&#8217;s work, and one of the most important qualities is honesty, even at the expense of popularity or friendship.<\/p>\n<p>I&#8217;ll declare up-front that one of the co-authors of this book is a good friend of mine, Peter Robson. Peter has discussed this book with me intermittently over the past 18 months or so and I was <a href=\"http:\/\/dictionary.reference.com\/search?q=Chuffed\">chuffed<\/a> when he popped a free copy round to my house a couple of weeks ago. I was expecting it to be pretty good. Stephane Faroult is the primary author and Peter is (only) a &#8216;with Peter Robson&#8217; but Peter earned my respect for his views long ago so his involvement was a good sign. I&#8217;ve heard great things about Stephane too.<\/p>\n<p>Sadly, I think this is a poor book and reading it has been an extremely annoying experience. In fact, it&#8217;s been so irritating that I&#8217;ve stopped at page 112 out of about 330 because I have more valuable uses for my time. It&#8217;s important for me to emphasise that I&#8217;ve based this review on a third of the book, even though I can see there might be some interesting material coming up in the next few chapters. I promised Peter I&#8217;d give it my best shot, but I feel I&#8217;m wasting my time. So, what&#8217;s my problem with it?<\/p>\n<p>Let me start off with the positive aspects. Most of the Oracle books that I&#8217;ve disliked in the past have been technically inaccurate. Given the free availability of largely accurate and readable vendor documentation, it&#8217;s unreasonable to expect me to pay extra for a book that is wrong. Then again, I have to accept that I&#8217;ve said stupid or wrong things in the past that were documented correctly, but if a book contains numerous errors, that would be my primary reason for shelving it early. I can&#8217;t say I&#8217;ve found any blatant inaccuracies in this book. A couple of areas of minor disagreement possibly, but the authors clearly understand the subject well.<\/p>\n<p>They also understand the important fundamentals of solid relational database design and demonstrate a good approach to problem solving. In fact, if I was looking for a consultant to help me implement an important new database system, I would have no hesitation in approaching the authors. While reading the book I had a constant feeling of &#8216;Yes, I know exactly what you mean. Good point.&#8217; There&#8217;s a lot of hard-earned experience behind this book.<\/p>\n<p>I think the sentences are well written in the main, but it&#8217;s very difficult to follow. If that seems like a contradiction, hopefully it will become clearer later in this review.<\/p>\n<p>Now on to the negatives.<\/p>\n<p>Most active members of the online Oracle community will be aware of the efforts of people like <a href=\"http:\/\/asktom.oracle.com\/pls\/ask\/download_file?p_file=3067171813508366601\">Kyte<\/a>, <a href=\"http:\/\/www.jlcomp.demon.co.uk\/untested.html\">Lewis<\/a> and others for everyone to base their material on test cases, for various reasons. What this book reminded me was how important test cases, or rather <span style=\"font-style: italic\">examples<\/span>, are to learning. While reading this, I often thought, &#8216;Yes, I know what you mean, but why don&#8217;t you *show* me instead of describing it to me? It&#8217;s too hard to follow and takes too long this way&#8217;. I raised this with Peter and he suggested my reaction may be based on my experience level, but I think that reading this would have been <span style=\"font-style: italic\">worse<\/span> if I didn&#8217;t know the subject. There are long discussions on topics during which I would feel, &#8216;Thank goodness I know this subject already because otherwise I would be totally lost&#8217;. Think of the subject &#8211; The Art of SQL. Doesn&#8217;t that seem like a perfect opportunity for numerous examples of different ways of writing the same SQL statement, showing which is the best, and why? In the first 37 pages there are two SQL statements, neither of them very significant.<\/p>\n<p>Instead there is page, after page, after page &#8230; of opinion. Frankly, I don&#8217;t care if the authors have interesting opinions based on years of experience. To me, the purpose of a book is for them to communicate that experience to *me*. If they can&#8217;t communicate it to the reader, so the reader&#8217;s knowledge grows, then what&#8217;s the point of the book? Reading this book hasn&#8217;t taught me anything. Is that because I know everything in the book? It might be, but when I&#8217;m reading a book about Oracle I always have one eye on how well things are explained. Maybe I want to steal the ideas or maybe I&#8217;ll recommend this book for others to read. I wouldn&#8217;t wish this book on anyone who is trying to improve their SQL skills.<\/p>\n<p>There are far too many assumptions about prior knowledge. It&#8217;s as though the author was writing entirely from his own perspective, without thinking about the reader. Maybe it assumes a certain level of experience and I&#8217;m missing the point? Well, I have a lot of experience and I didn&#8217;t find anything that was very interesting or new in the book, so I assume it&#8217;s not aimed at me. In fact, if I had to pick the most frustrating aspect of this book, it&#8217;s that so many subjects are mentioned in passing and then cast aside without adequate explanation. i.e. In what I suspect is an attempt to pitch the book at a technically competent audience (&#8216;no need to explain that, they&#8217;ll understand it&#8217;) the book is very thin on technical substance of any kind. The result is far too <span style=\"font-style: italic\">abstract<\/span>.<\/p>\n<p>Despite there being nothing intellectually challenging here, I found it a very difficult read. Reading continuous text describing a language and a methodology with no illustrations is challenging, to say the least. If I compare it to Chris Date&#8217;s &#8216;Database in Depth&#8217; book &#8211; that dealt in very fundamental, very complex subjects and yet was much more readable because they were <span style=\"font-style: italic\">illustrated<\/span> and not just <span style=\"font-style: italic\">discussed.<\/span><\/p>\n<p>It&#8217;s like trying to learn how to bake a cake without having a recipe or even a list of ingredients. All that&#8217;s here is a description of how tasty cakes are; that it&#8217;s important that they rise and that you can have different toppings. All of which may be true, but are of negligible value when it&#8217;s time to bake one of your own. I&#8217;m not a fan of so-called &#8216;Cookbooks&#8217; either, because they just give me examples and don&#8217;t really teach me the fundamentals. However, even though I don&#8217;t want fully-formed recipes, I do want someone to show me how to use a whisk properly. (Okay, I&#8217;ve done the cake thing to death now)<\/p>\n<p>If I had to read 5 or 6 pages of this material in a blog format, I might recommend it wholeheartedly as an opinion piece. I agree with many of the opinions it contains, in fact. As it stands, though, I can&#8217;t think of a single colleague or course student I&#8217;ve come across that would extract much that was useful from this. Which is a shame, but true.<\/p>\n<p>I&#8217;ve got some good news. You don&#8217;t even have to trust my opinion here &#8211; have a look through the <a href=\"http:\/\/www.oreilly.com\/catalog\/artofsql\/chapter\/ch04.pdf\">sample chapter<\/a>, which I should warn you is easily my favourite and might make this review seem churlish. If you enjoy that, you might well enjoy the book, but it&#8217;s not for me.<\/p>\n<p>If anyone does have a positive opinion of this book, I&#8217;m desperate to see your comments because maybe I&#8217;ve missed the point completely.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You don&#8217;t need to look hard to find commentary on the boundaries between blogging and &#8216;real&#8217; (for which you should probably read &#8216;print&#8217;) journalism. It&#8217;s not something I spend much time thinking about usually because I see blogging as a few random current thoughts (or belly-aching) and don&#8217;t feel I have a responsibility to anyone&hellip; <a class=\"more-link\" href=\"http:\/\/orcldoug.com\/blog\/2006\/04\/15\/book-review-the-art-of-sql\/\">Continue reading <span class=\"screen-reader-text\">Book Review: The Art of SQL<\/span><\/a><\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-815","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":1706,"url":"http:\/\/orcldoug.com\/blog\/2013\/09\/01\/blogging\/","url_meta":{"origin":815,"position":0},"title":"Blogging","date":"September 1, 2013","format":false,"excerpt":"I think it was Andy C who first mentioned to me that one of the golden rules of blogging was never to apologise or justify your reasons for not blogging. I guess it's because so many people do it so often that it becomes tedious. But my blogging output has\u2026","rel":"","context":"With 6 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1724,"url":"http:\/\/orcldoug.com\/blog\/2014\/09\/25\/singapore\/","url_meta":{"origin":815,"position":1},"title":"Singapore","date":"September 25, 2014","format":false,"excerpt":"Now, *this* is a post I should have written ages ago but somehow (as in most cases these days) Twitter overtook blogging because it is so much easier to write a bunch of tweets on a mobile device of some kind when living normal life than to sit down and\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1280,"url":"http:\/\/orcldoug.com\/blog\/2007\/06\/08\/blogs-oracle-com-oracle-ace-otn-does-any-of-it-matter\/","url_meta":{"origin":815,"position":2},"title":"blogs.oracle.com, Oracle Ace, OTN, does any of it matter?","date":"June 8, 2007","format":false,"excerpt":"I actually woke up early today to write this blog as I wanted to sleep on it first and blogging on-site is a real no-no. Anyway ...Many of you will remember the ongoing shenanigans around Justin Kestelyn's complaints about how Oracle is perceived by the Web 2.0 community. I had\u2026","rel":"","context":"With 17 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1636,"url":"http:\/\/orcldoug.com\/blog\/2011\/04\/26\/new-blog-round-up\/","url_meta":{"origin":815,"position":3},"title":"New Blog Round-Up","date":"April 26, 2011","format":false,"excerpt":"I've spotted a few useful posts lately and a few friends have started blogging so I thought I'd draw people's attention to them.Neil Chandler is a UKOUG regular as well as a central and well-loved member of the informal London Oracle drinking massive (well, that's what I'll say about him\u2026","rel":"","context":"With 3 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":985,"url":"http:\/\/orcldoug.com\/blog\/2005\/03\/04\/the-science-of-blogging\/","url_meta":{"origin":815,"position":4},"title":"The Science of Blogging?","date":"March 4, 2005","format":false,"excerpt":"Well, there you go, I've been doing this 5 minutes and I manage to make a bit of an *rse of myself already. The posting below initially described some of Jonathan Lewis' newsgroup postings as 'incredibly obnoxious' (although I was pretty complimentary afterwards). Jonathan queried this and so I tried\u2026","rel":"","context":"Similar post","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1519,"url":"http:\/\/orcldoug.com\/blog\/2009\/10\/08\/disclaimer\/","url_meta":{"origin":815,"position":5},"title":"Disclaimer","date":"October 8, 2009","format":false,"excerpt":"As I'm working at a grown-up site that doesn't ban blogging but has a blogging policy instead, I think it's only fair that I follow it, even if I'm an external consultant and not a full-time employee. If they play fair with me, I'll play fair with them. So I've\u2026","rel":"","context":"With 7 comments","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/comments?post=815"}],"version-history":[{"count":0,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/posts\/815\/revisions"}],"wp:attachment":[{"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/media?parent=815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/categories?post=815"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/orcldoug.com\/blog\/wp-json\/wp\/v2\/tags?post=815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}