The Art of SQL
| |||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||
| Sort customer reviews by: | |||||||||||||||||||||||||||||
|
Show All Reviews on Page
Hide All Reviews on Page
| |||||||||||||||||||||||||||||
| The Art of SQL | |||||||||||||||||||||||||||||
|
For all the buzz about trendy IT techniques, data processing is still at the core of our systems, especially now that enterprises all over the world are confronted with exploding volumes of data. Database performance has become a major headache, and most IT departments believe that developers should provide simple SQL code to solve immediate problems and let DBAs tune any "bad SQL" later.
In The Art of SQL, author and SQL expert Stephane Faroult argues that this "safe approach" only leads to disaster. His insightful book, named after Art of War by Sun Tzu, contends that writing quick inefficient code is sweeping the dirt under the rug. SQL code may run for 5 to 10 years, surviving several major releases of the database management system and on several generations of hardware. The code must be fast and sound from the start, and that requires a firm understanding of SQL and relational theory. The Art of SQL offers best practices that teach experienced SQL users to focus on strategy rather than specifics. Faroult's approach takes a page from Sun Tzu's classic treatise by viewing database design as a military campaign. You need knowledge, skills, and talent. Talent can't be taught, but every strategist from Sun Tzu to modern-day generals believed that it can be nurtured through the experience of others. They passed on their experience acquired in the field through basic principles that served as guiding stars amid the sound and fury of battle. This is what Faroult does with SQL. Like a successful battle plan, good architectural choices are based on contingencies. What if the volume of this or that table increases unexpectedly? What if, following a merger, the number of users doubles? What if you want to keep several years of data online? Faroult's way of looking at SQL performance may be unconventional and unique, but he's deadly serious about writing good SQL and using SQL well. The Art of SQL is not a cookbook, listing problems and giving recipes. The aim is to get you-and your manager-to raise good questions. |
|||||||||||||||||||||||||||||
| Reader Reviews 1 - 20 of 20 | |||||||||||||||||||||||||||||
| Review Date |
Review Rating(5 High) |
Review Helpful to: |
Customer Review | Reviewer Info |
Permanent Link |
||||||||||||||||||||||||
| Reader Reviews Below Sorted by Newest First | |||||||||||||||||||||||||||||
| 07-14-08 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This is a book in a somewhat-similar vein to Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) (Addison-Wesley Professional Computing Series): it spends most of its time shining light on the dark nooks and crannies of database design and query optimization, and assumes that you've already at least learned that those dark nooks and crannies exist.
It is also written with the database programmer in mind, rather than the database administrator. There are not many books written for us, and I'm really pleased that one of them is a book this excellent. (Review Data Last Updated: 2008-08-20 05:01:16 EST)
|
|||||||||||||||||||||||||||||
| 01-20-08 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book is very well written and goes into depth on the practical reasons behind best-practices as well as real-world examples.
(Review Data Last Updated: 2008-07-15 06:59:27 EST)
|
|||||||||||||||||||||||||||||
| 03-14-07 | 5 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book review was submitted by a Roanoke Valley SQL Server Users Group member as part of the Book Review Program.
Reviewed by Jerry Ellis The Art of SQL does not fall into the trap of becoming "just another reference" for SQL users. It tackles real world problems with the point of view that you know how to write SQL code, but may need help in the proper tactics to most effectively handle them. What is refreshing is that it does not say here is a piece of code that will do this...it says, that may work, but here is a better way and why. This is the book to have if you want to discover better practices for your SQL. Jerry Ellis (Review Data Last Updated: 2007-09-07 23:34:14 EST)
|
|||||||||||||||||||||||||||||
| 03-14-07 | 5 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book review was submitted by a Roanoke Valley SQL Server Users Group member as part of the Book Review Program.
Reviewed by Jerry Ellis The Art of SQL does not fall into the trap of becoming "just another reference" for SQL users. It tackles real world problems with the point of view that you know how to write SQL code, but may need help in the proper tactics to most effectively handle them. What is refreshing is that it does not say here is a piece of code that will do this...it says, that may work, but here is a better way and why. This is the book to have if you want to discover better practices for your SQL. Jerry Ellis (Review Data Last Updated: 2008-01-21 19:00:59 EST)
|
|||||||||||||||||||||||||||||
| 01-08-07 | 3 | 3\4 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I'm torn in giving stars to this book. On the one hand there a number of fascinating topics covered, topics not found in other books in my library. They tend to be of a quite academic nature, discussing the internals of how the optimizer and the DBMS engine work. From that standpoint this book would earn 5 stars.
On the other hand, I purchased the book because I have real-world problems to solve in my job. Despite what the quotes on the back cover and first pages say, virtually nothing covered in this book is of any value in solving real-world problems. The book introduces what seems like a promising new sql construct or optimization idea, describes it in detail, and then unfailingly proceeds to state all the disadvantages of using the new idea and concludes that you shouldn't bother with it. I was interested in finding new techniques to apply to real-world problems, and came away instead with a long list of new techniques to forget about. From a practical standpoint this book would earn 1 star. So overall I give it 3 stars, an interesting read, but of little value on the job. (Review Data Last Updated: 2007-07-05 19:58:49 EST)
|
|||||||||||||||||||||||||||||
| 12-25-06 | 2 | 10\10 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I originally really liked the idea of comparing database design to the ancient "Art of War" classic, but the more I read the book, the more annoying and overly cute this tactic became.
Amongst all the verbiage there appears to be really useful information, but extracting that information became too much work for me and I gave up on this book. And there were almost no concrete examples or case studies to back anything up. So far the most important book I've read is Sql Tuning by Dan Tow. It takes some work, but it is very, very worth it. Try that one instead. (Review Data Last Updated: 2007-07-05 19:58:49 EST)
|
|||||||||||||||||||||||||||||
| 12-24-06 | 2 | 2\2 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I originally really liked the idea of comparing database design to the ancient "Art of War" classic, but the more I read the book, the more annoying and overly cute this tactic became.
Amongst all the verbiage there appears to be really useful information, but extracting that information became too much work for me and I gave up on this book. And there were almost no concrete examples or case studies to back anything up. So far the most important book I've read is Sql Tuning by Dan Tow. It takes some work, but it is very, very worth it. Try that one instead. (Review Data Last Updated: 2007-01-08 12:20:58 EST)
|
|||||||||||||||||||||||||||||
| 10-04-06 | 5 | 3\6 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
'The Art of SQL' by Stephane Faroult is an outstanding book for any and all database developers that want to learn how to write better SQL code and make their database efficiency go UP UP UP!! Encompassing 300+ pages, this well-written and advanced book goes way past the basics of writing SELECT and INSERT statements, taking things to the next level and then some!!
Chapter Overview 01. Designing Databases for Performance 02. Accessing Databases Efficiently 03. Indexing 04. Thinking SQL Statements 05. Understanding Physical Implementation 06. Recognizing Classic SQL Patterns 07. Dealing with Hierarchical Data 08. Recognizing and Handling Difficult Cases 09. Tackling Concurrency 10. Coping with Large Volumes of Data 11. Trying to Salvage Response Times 12. Monitoring Performance Just reading the overview, you can easily get a sense that this is a well-rounded book that will hit upon all aspects of your database experience. You will easily get something out of this wonderful text and learn to write queries and joins that not only work, but work BETTER than ever before!! ***** HIGHLY RECOMMENDED (Review Data Last Updated: 2007-07-05 19:58:49 EST)
|
|||||||||||||||||||||||||||||
| 10-01-06 | 5 | 6\8 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Imagine a cookbook with no recipes but after you read it it helps to become a better cook. This book does not specifically tells what to do. It does not have codes or technical jargon. It gives you an understanding. The book reads well, it is not full of technical references but it is not to say this book is for someone who does not know the workings of a DBMS. The author draws a relevant parallel between designing a database and waging a war. I enjoyed the quotes thoughtfully peppered in the book. Do me a favor and do not get it...in case we are going after the same job
(Review Data Last Updated: 2007-07-05 19:58:49 EST)
|
|||||||||||||||||||||||||||||
| 09-14-06 | 5 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Probably most database solution developers and DBAs have picked up their knowledge of the subject as they have needed it, rather than in a formal and structured (so to speak) method. And even those that have had a structured education probably learned a lot more while in the field. And so there are always gaps. Gaps in technique, but also gaps in the why of many things that I, for example, took for granted about large DBMS's and SQL.
This book handily fills in those gaps. It assumes a moderate to advanced foundation in SQL and DBMS, and then takes off from there. It is mostly prose with some code and SQL sprinkled throughout, but if you have a foundation, you can flesh out the technique. It is like listening to a graduate level lecture. It is distilled wisdom more than How To, and the more you bring to the material, the more you will get from it. And every page is rich with information. I don't feel like I have wasted my time on any one page, as I often do in the how to manuals. Definitely an advanced piece. (Review Data Last Updated: 2006-10-01 11:59:08 EST)
|
|||||||||||||||||||||||||||||
| 09-13-06 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Are you a developer or software architect? If you are, then this book is for you! Authors Stephane Faroult and Peter Robson, have done an outstanding job of writing a book that shows people who are no longer novices how to write good SQL code from the start and, most importantly, to have a view of SQL code that goes beyond individual SQL statements.
Faroult and Robson, begin by examining how to design databases for performance. Then, the authors explain how programs must be designed to access databases efficiently. Next, the authors tell you why and how to index. The authors then explain how to envision SQL statements. They continue by showing you how physical implementation impacts performance. Then, the authors cover classic SQL patterns and how to approach them. They then explain how to deal with hierarchical data. Next, they provide indications about how to recognize and handle some difficult cases. Then, they describe how to face concurrency. Next, the authors address how to cope with large volumes of data. They continue by offering a few tricks that will help you survive rotten database designs. Finally, the authors conclude the book by explaining how to define and monitor performance. This most excellent book is not a cookbook, listing problems and giving recipes. Rather, its aim is much more to help developers and their managers, to raise good questions. (Review Data Last Updated: 2006-10-01 11:59:08 EST)
|
|||||||||||||||||||||||||||||
| 09-05-06 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book review was submitted by a Roanoke Valley SQL Server Users Group member as part of the Book Review Program.
Reviewed by Jerry Ellis The Art of SQL does not fall into the trap of becoming "just another reference" for SQL users. It tackles real world problems with the point of view that you know how to write SQL code, but may need help in the proper tactics to most effectively handle them. What is refreshing is that it does not say here is a piece of code that will do this...it says, that may work, but here is a better way and why. This is the book to have if you want to discover better practices for your SQL. Jerry Ellis (Review Data Last Updated: 2006-09-13 16:47:41 EST)
|
|||||||||||||||||||||||||||||
| 08-25-06 | 5 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
The Art of SQL is a truly unique book. In sharp contrast to many other database books on the market, this one does not endeavor to provide an exhaustive SQL reference guide, a low-level vendor-specific DBMS implementation description, or a cookbook-style collection of FAQs. Instead it explains, in incredibly straightforward and clear language, how to think about SQL, schema design, and DBMS operation in general and apply that knowledge to real-world situations. It provides simple mental models for the inner workings of most modern database systems along with concrete examples of how these mental models can be used to speed up queries and design better-performing schemas.
Throughout the book many commonly encountered design patterns query requirements are discussed, such as tree or hierarchy-based data structures, name/value pair tables and various common types of selection filtering and aggregation. For each of these, multiple implementation options are described and evaluated, with the pros and cons of each approach explained. This book assumes the reader is proficient at forming SQL statements, and thus spends its time exploring how restructuring tables and indexes or reforming queries can affect performance. There is a stronger focus on schema design considerations rather than query structure optimization, which I really appreciated because many SQL references focus almost exclusively on the latter. There are also a number of rather complicated real-world examples sprinkled throughout the book. These are carefully analyzed using the concepts presented in their respective chapters. The idea here isn't that the reader might encounter these exact problems in their projects, but rather to illustrate the process of applying the book's concepts to a concrete problem. This book is for the most part database vendor agnostic, but still manages to do a great job of explaining the inner workings of databases in a clear, concise manner. In my opinion, it goes to just the right level of detail in explaining things like physical table structure, indexing implementations, locking and the query optimizer. The explanations are simple enough and general enough for mere mortals to internalize, yet still provide a powerful framework for thinking about and improving database performance. Chapter Four, which discussed relational theory and how it relates to SQL, was one of my favorite chapters and serves as a perfect example of this book's ability to provide easily understandable theoretical concepts and tie it in to database implementation and its consequences on query performance against an example table structure. The Art of SQL is not a beginner's book, and is not an Oracle reference. What is does, however, is provides a conceptual underpinning between these two extremes that will enable database administrators to effectively formulate battle plans against whatever challenges lie in their path. I wish this book had been around when I was learning databases! (Review Data Last Updated: 2006-09-04 16:57:05 EST)
|
|||||||||||||||||||||||||||||
| 08-05-06 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
SQL being a declarative style language is intuitive in simplicity, and yet, the instincts are not enough when you enter the labyrinth of complex problems. From an application developer's prospect, I'm familiar with different mindsets of programmers. Those who despise writing SQL beside CRUD statements and consider it a lowly languages, to those who religiously believe the business logic should reside in business objects (hence the name) and the lingua franca of database should not contain any of the rules despite the performance gains. Then there is SQL zealots who prefer to write virtually everything in SQL and would like to use high level algorithmically sophisticated languages as sheer callers. Nevertheless, SQL is ubiquitously essential part of a developer's everyday life and "The Art of SQL" by Stephane's Farlout the best thing after SUN-TZU's "Art of War" in the SQL warfare.
"The Art of SQL" is theory and practice blended; once you start reading it, it becomes something in between Knuth's Art of Computer Science with C++ annotated reference manual. This 350 page book is divided into twelve chapters and written as a pseudo war-manual. The topics of chapters are as follows. * Laying Plans (Designing Databases for Performance) * Waging War (Accessing Databases Efficiently) * Tactical Dispositions (Indexing) * Maneuvering (Thinking SQL Statements) * Terrain (Understanding Physical Implementation) * The Nine Situations (Recognizing Classic SQL Patterns) * Variations in Tactics (Dealing with Hierarchical Data) * Weaknesses and Strengths (Recognizing and Handling Difficult Cases) * Multiple Fronts (Tackling Concurrency) * Assembly of Forces (Coping with Large Volumes of Data) * Stratagems (Trying to Salvage Response Times) * Employment of Spies (Monitoring Performance) Like said in the book, "A skillful developer should aim for response times proportional to the number of rows returned." the author emphasizes on performance, discusses tackling bad SQL code, how to do analysis on problem at hand and then how to think it out in SQL way. The discussion varies from indexes, query optimization, concurrency and physical schema representation. SQL examples in the book are more of analogies than real world examples, they are focused encouraging the reader to think and map these to his or hers real life development experience. Like author says in one of its notes "Much of the difficulty of good SQL programming lies in seeing how a problem can translate, not into succession of queries to a database but into very few queries.", the core theme of the book is to talk about SQL, not about any particular database. Therefore please don't buy it as a art of SQL Server or Oracle but as a pure SQL (not T-SQL or PL/SQL either) guide. The book is clearly written and easy to understand however, mind you, it's not a freshman's cookbook guide to structured query language. You have to be in trenches to understand Stephane metaphors and they kind of grow on you. For instance, the note "Maximize each visit to the database to complete as much as can reasonably be achieved by each visit." Will remind you of the times when you didn't follow this practice because of reason X, here is your personal guidance counselor. The Art of SQL is a great way to advance the way you think about the problems in database and query design and their translation into code. I recommend this book to fellow mere mortal developers out there who are looking for a decent, theoretical, not-so-cook-booky-style guide to SQL. (Review Data Last Updated: 2006-08-27 07:32:30 EST)
|
|||||||||||||||||||||||||||||
| 07-19-06 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Not many books are written this way, this is for experienced developers and you wont get the usual basic explanations. The author also writes in his words rather than just copying the documentation as is often the case. Its a joy to read books like this. There are also loads of very good insights and tips on SQL.
(Review Data Last Updated: 2006-08-27 07:32:30 EST)
|
|||||||||||||||||||||||||||||
| 05-23-06 | 5 | 2\2 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I'm thoroughly enjoying this book. Like many people, I learned my SQL by the seat of the pants, as I needed it, and this book is a great way to help me go back and understand exactly what I'm doing, and why, and whether it's really the best way... all without being pedantic. It's just academic enough - showing where database theory has important wisdom for practicing professionals, without the academic custom of puffing for puffiness's sake.
(Review Data Last Updated: 2006-08-27 07:32:30 EST)
|
|||||||||||||||||||||||||||||
| 05-08-06 | 5 | 2\4 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Computing is all about real-world experience, something manuals never really convey, and why we so often avoid them. In many ways computing is like waging war, one part strategy, and many parts learning from your mistakes, and your real-world lessons. When I look back at the best technology books, the ones that stand out are not those which cover every feature, or mull over every option, but rather dedicate themselves to the lessons the author has learned over the years. For it is from such an apprenticeship that we learn the most.
Reading Stephane's book, I feel like I'm an apprentice to a master, who can make great use of analogy. In this case he uses Sun Tsu's age-old Art of War to share with us his vision of the Art of SQL. The chapter titles such as "Laying Plans", "Maneuvering", and the "Nine Situations" taken directly from Tsu's famous book, lend themselves so nicely to classical database development, it's a wonder no one had thought of the analogy before. For me this was engaging, and what I also really liked were the quotes at the top of each chapter, and the images of battle scenes which give the book a quality all it's own. The introductory chapters hit upon very important starting points of good design, efficiency, and organization of your data. He then moves on to issues of indexing, SQL statements, and how they are transformed by the optimizer, physical implementation, and classical SQL patterns and how to recognize them. He moves on to hierarchical data, some more difficult cases and problems, and then issues of concurrency. He then spends a chapter looking at special issues associated with large volumes of data, and moves on to managing response times. The last chapter rounds out the discussions with monitoring the performance of your database. This book clearly cuts a new path through the topic and I hope this will bring new interest and new perspectives to developers looking to understand SQL better. Stephane will keep you focused on the big picture of overall performance time, data round trips, and minimizing what you actually ask the server to do. You'll avoid building a Maginot Line of defense when you learn that your data and database are always changing, and your strategy and tactics must adapt accordingly. (Review Data Last Updated: 2006-08-27 07:32:30 EST)
|
|||||||||||||||||||||||||||||
| 04-06-06 | 1 | 8\27 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
There is a sample chapter available on the Oreilly site. I strongly recommend anyone to check it before buying this book. When I skimmed this sample chapter quickly I liked the graphics and the quote at the beginning.
I thought that it will be a good book, then I started to read and the more I read the more I lost faith in the authors competence. They are trying too hard to say smart things, but they just don't give enough justification for it. For example, they mention Codds relational database rules, but they don't list them, maybe they do elsewhere in the book, but in my opinion I expected them listed in this sample chapter and discussed as it was in the spirit of what the chapter tried to say. In the same chapter they repeat things like this is relational, this isn't, without explantion or justification, this is even more reason of why I expected them to list Codd 11 relational rules, it would have made much sense and help a lot. The writing talent is low, you will need to reread some paragraphs before you get what they wants to say. Another thing, the authors say, that we should not tie sql to database and that we can see sql as language without a db, and they give sqlite as an example, this really made me loose all faith in them and stop reading. First sqlite is a db engine, it just happens to be file based, comparable to MS Access in this (sqlite can also create in-memory databases, but those are stil databases). Two in my opinion sql is a domain language made specifically to talk to a db backend (file based or server based doesn't matter), and I believe this to be the more popular understanding of sql, so I don't think you should say things like this without strongly explaining and justifying your opinion. I apologize for the authors if they find my critic harsh, and I wish them to do a better job in their future work. (Review Data Last Updated: 2006-06-13 16:17:00 EST)
|
|||||||||||||||||||||||||||||
| 04-06-06 | 1 | 1\2 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
There is a sample chapter availbe on the Oreilly site. I recommend anyone to check it before buying this book. When I skimmed it quickly I liked the graphics and the quote at the beginning.
I thought this will be a good book, then I started to read and the more I read the more I lost faith in the authors competence. They are trying too hard to say smart things, but they just don't give enough justification for it. For example, they mention Codds relational database rules, but they don't list them, I dont know maybe they do elsewhere in the book, but in my opinion I expected them listed and discussed it was in the spirit of the chapter. Another thing, in the same chapter they repeat things like this is relational, this isn't, without explantion or justification, this is also why I expected them to list Codd 11 relational rules. Three, the writing talent is low, you will need to reread some paragraph before you get what he wants to say. Four, he for example said, that we should not tie sql to database and that we can sql as language without a db, and he give sqlite as an example, this really made me loose all faith in the authors and stop reading immediatly. First sqlite is a db engine, it just happens to be file based, comparable to MS Access in this. Two in my opinion sql is a domain language made specifically to talk to a db backend (file based or server based doesn't matter), things like "create table", the term create as I see it suggest a db exist, if a db backend doesn't exist this SQL command won't make any sense. I apologize for the authors if they find my critic harsh, and I wish them to do a better job in another book. (Review Data Last Updated: 2006-04-08 12:33:29 EST)
|
|||||||||||||||||||||||||||||
| 04-04-06 | 5 | 8\14 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
There are few database books that are pure gold from cover to cover. This is one of those books. Timeless database principles applied to real life situations. I simply cannot recommend this book enough. The authors not that it is not geared towards DBA's...yeah right! This is a must read for any database professional.
(Review Data Last Updated: 2006-08-27 07:32:30 EST)
|
|||||||||||||||||||||||||||||
| Reader Reviews 1 - 20 of 20 | |||||||||||||||||||||||||||||
| All Books | Arts | Biography | Click Here For An A-Z Index Of All 213 Best-Seller Subjects | Business | Children's | Comics | ||||||
| Computers | Cooking | Engineering | Entertainment | Health | History | Home | Horror | Humor | Law | Fiction | Medicine | Mystery |
| Nonfiction | Outdoors | Parenting | Professional | Reference | Religion | Romance | Science | Sci-Fi | Sports | Teens | Travel | |