Most Helpful Customer Reviews
|
|
19 of 20 people found the following review helpful:
5.0 out of 5 stars
Clear and straightforward explanations, August 25, 2006
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!
|
|
|
18 of 19 people found the following review helpful:
5.0 out of 5 stars
Thinking in SQL- A definitive guide, August 5, 2006
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.
|
|
|
16 of 17 people found the following review helpful:
5.0 out of 5 stars
This is your graduate level course in SQL - how and why, September 14, 2006
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.
|
|
|
Most Recent Customer Reviews
|