Slashdot Log In
Head First SQL
Posted by
samzenpus
on Wednesday November 21, @03:22PM
from the read-all-about-it dept.
from the read-all-about-it dept.
Anita Kuno writes "On a Sunday, a fellow user-group member suggested I learn SQL. The next day, an opportunity to review Head First SQL arrived in my email.
Who was I to question? Prior to opening the couriered package, I had no knowledge of SQL, I knew databases were important, and I had seen the Head First website
once or twice. Now, I can design and create databases, use mySQL databases, and understand questions and accompanying code posted to forums. The credit goes to Head First SQL's style, which introduces
small bits of information, supported through multiple channels (such as photos with humorous dialogue, stick-men and stick-women, and input from critical
personalities whose photos and input pop up throughout the book) regular tests and exercises so the new bit of data can find a home and settle into
your memory. The regularly tested pieces of information are now in my brain so I don't have to look up
the basic stuff." Read below for the rest of Anita's review.
| Head First SQL: A Brain-Friendly Guide | |
| author | Lynn Beighley |
| pages | xxxv & 571 |
| publisher | O'Reilly Media, Inc. |
| rating | 9 |
| reviewer | Anita Kuno |
| ISBN | 0-596-52684-9 |
| summary | A beginners foundation for SQL |
Head First SQL is about RDBMS (databases) specifically mySQL (version 5.0 or newer) and includes features of other databases. The book defines a database, demonstrates how to navigate an existing database, and teaches how to create simple and complex databases, as well as how to let a database grow from simple to complex.
Foundational understanding of database construction and navigation is the focus. The target audience is those brand-new to the topic as well as those with an acquaintance with the subject and the need for a greater conceptual understanding of databases.
It focuses on the basics of databases, so the main information should remain pertinent until RMDBS get re-conceived. I think revisions, such as the reprint due out in December, will add to the strength of the book as typos and coding errors will be addressed.
The title accurately describes the contents and the subtitle "A Brain-Friendly Guide" describes the goal of the approach. The only requirements for working with the material are: a computer or access to one, the ability to identify your operating system, familiarity with downloading from the internet (links and instructions are provided in the book and the program mySQL community release is free (download instructions are given for Mac and Windows users, I believe that instructions for Linux are not included with the assumption Linux users can access the mySQL community release page and download the program without a play-by-play)), and the courage to learn a command line window user interface if you don't already know this.
Head First SQL is most useful to those who, like myself, have heard passing references to databases and other than knowing they are important have no grasp of what it is, means, or can do. Also, this will be a helpful tool for those who have some of the verbiage, enough to pass at a cocktail party, but who would feel the cold chill of horror if expected to design, construct, and implement a database in conjunction with any of their paid responsibilities.
This is the first book that I have read on the subject of databases and the first computer book that I have been able to finish. So much of the educational information about program x, language y, or application z, depends on a working knowledge of the other two variables. This is a great book for beginners. It talks about data types, it explains null, and then has null explain himself. It tells me the importance of the semicolon at the end. All basic stuff. All stuff that other books take for granted. Many times when I believed I wasn't absorbing anything, along came questions I could answer, a crossword I could complete and match-column-A-with-column-B exercises that demonstrated that I was actually learning much more than than I was giving myself credit for.
It includes illustrations, photos, clean layout, and bite sized pieces of information. All this comes from the goal of allowing both sides of the brain access to the information. It's exactly the kind of approach that I need to reinforce the terms and concepts as well as provide encouraging feedback to keep me progressing through the material. I'm also grateful that it entertains me and keeps me going back to finish the whole thing long after the first blush of excitement has worn away.
Links, to the mySQL program necessary to work with the material, are included in the book as well as a few other links in the appendices. The Head First website is a must in order to link to the forums, newsletter, blog and downloadable files to create various tables used in the book. Head First came out with a web app called Hands On SQL which I would encourage you to try. It won't work with all of the book's material but it is a good-looking tool.
You are welcome to read my submissions on the Head First SQL forum. My user name is anita. Also, the reprint that I mentioned above is due to be in stock as of December 3rd. I'm told by O'Reilly that it includes corrections for errata submitted thus far. Take a look at the Head First SQL homepage to download a sample chapter.
You can purchase Head First SQL from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.

Strange (Score:4, Insightful)
(http://slashdot.org/~a_n_d_e_r_s | Last Journal: Thursday July 13 2006, @11:32AM)
No, THIS is an ad for the book: (Score:5, Funny)
(Last Journal: Monday December 03, @12:06AM)
Head First! Apply directly to the SQL!
HEAD FIRST! APPLY DIRECTLY TO THE SQL!
Okay, I didn't say it was a good ad for the book...
Re:Strange (Score:4, Informative)
(http://www.gtalkprofile.com/profile/2.html | Last Journal: Thursday September 15 2005, @08:54AM)
The Head First [oreilly.com] series is published by O'Reilly. I think it's a great series of books - even for advanced users.
Re:Strange (Score:4, Insightful)
Note for GP: Understand what you are buying when you pick up a Head First book and why or else the wealth of useful information which they contain will be lost upon you simply because you cannot get past a pre-conceived notion about the presentation.
who benifits? (Score:4, Insightful)
(Last Journal: Tuesday November 20, @01:55PM)
It sounds like a learn SQL in 24 hours book more than a SQL cookbook type resource, may be good for a developer who is starting out in the relational database world but I don't think DBAs will get much. At least, not from what the reviewer says.
Re:I noticed the lack of theory in the ToC (Score:4, Insightful)
(http://www.metatrontech.com/ | Last Journal: Saturday December 01, @06:44PM)
In general, I have found that every hour of planning time spent tends to eliminate up to 10 hours of coding, and often as much as 100 hours of pre- and post-release re-engineering and bug fixing.
The goal ought to be to optimize time and expenses across the entire software lifecycle rather than cutting down on the most important places where time gets spent (on the design). This generally means spending more time on design, less on buzzword-compliance, and less on actual coding. If you do it right, testing and debugging effort go *down* as well.
Instead people end up with bloated monstrosities when better-designed products could have been built with less time an money.
Don't get in over your head... (Score:5, Insightful)
On a Sunday, a fellow user-group member suggested I learn SQL...
Now, I can design and create databases
Database design and creation isn't something you pick up over 3 days. Sure, you can make something that works very quickly, but that doesn't mean it's a good design and isn't flawed. Designing a good database structure takes experience with the tradeoffs between full normalazation and added complexity, forseeing future needs, etc.
Re:Don't get in over your head... (Score:4, Insightful)
(Last Journal: Tuesday November 20, @01:55PM)
Making DDL scripts to run in the database is easy once you learn the syntax. Knowing their interaction with each other using Foreign keys, Indexes, and planning their future growth is a completely different set of skills that's only gained with experience with your data.
Re:Don't get in over your head... (Score:5, Funny)
(Last Journal: Thursday October 14 2004, @09:23AM)
Dude, it's FAR more terrifying than that. From the forums on that site:
anita Joined: 07 Oct 2007
Posts: 23
Posted: Sun Nov 04, 2007 1:30 am
Post subject: CREATE a TABLE with a FOREIGN KEY
I never noticed until this evening while building a database for a customer to use with her business, but I can't seem to find the place in the book where the code for creating multiple tables from two foreign keys exists
WTF: from 'I don't know anything about databases' to 'building a database for a customer' what amount of time? We don't know when "sunday" was, but even so it seems rather abrupt given that 'anita' has only joined the forum in October and is now designing databases for (presumably) paying customers. This HOWTO book must kick serious ass.
Re:Don't get in over your head... (Score:5, Funny)
Well, she did say:
Maybe it went like this:
FFS, learn SQL!
Just a guess. :-)
Re:Don't get in over your head... (Score:4, Interesting)
(Last Journal: Thursday October 14 2004, @09:23AM)
It's not 'funny' dammit! It's 'customer getting taken for a ride'. The question is generated because she's using a joining table to solve a many to many between her customer and address tables and has named the constraints herself the same on each table instead of letting the system generate them. But WTF?? Address record goes to ONE customer record! If some other customer registers the same address just duplicate the %$#@ing 200 bytes of text but don't m-m it with the customer table!
Frack! Now I'm going to have to follow adventures of Anita The HOWTO Book Data Architect on that forum in the way one can't help but watch a train wreck in progress.
Hmmmm... (Score:4, Funny)
Sounds like your aversage Slashdotter, doesn't it?
I have a question (Score:5, Interesting)
(http://thepeckfamily.us/ | Last Journal: Sunday December 02, @12:54PM)
Yeah (Score:5, Funny)
(http://slashdot.org/ | Last Journal: Thursday February 21 2002, @04:37PM)
overnight experts, sigh (Score:4, Interesting)
(Last Journal: Thursday October 14 2004, @09:23AM)
As a database designer/developer who occasionally does DBA duties as well I initially found this quote terrifying in the extreme. But as long as this experimenting about is done on your own PC for at least the next few months, it's great that you're getting a start on a new (to you) class of software tools. Way too many people plough on using spreadsheets where they should be using at least Access. I encourage anyone with accountant or small business owning friends to pass on this review.
Couldn't finish the review... (Score:3, Informative)
[pedantic mode: on]
Had a hard time with the blurb for that matter. if you are going to mention the name of a product several times, please learn how it's written!
MySQL
Not mySQL. For that matter, not mySQL, MYSQL, MY-SQL, or mSQL (that's another program actually)
It's all over their website [mysql.com]. Something that simple will help keep you from sounding amateurish as a reviewer.
[pedantic mode: off]
Normalization? Keys? (Score:4, Insightful)
Personally, I stand by 'Database Systems' by Connolly and Begg. Not simple, not for newbies but it coveres everything you need to know including doing ER diagrams for your structure... something every DB admin needs to do more of.
Talk about rewarding!!!! (Score:1, Offtopic)
You've not done real database work (Score:2)
(http://www.cooldark.com/ | Last Journal: Monday April 26 2004, @05:31PM)
Mental note - test locally first.
I've used that book (Score:1, Informative)
I took some DB classes in college and used SQL quite a bit (albeit nothing that complex) in my work for a few years afterwards at a software company. I wasn't a dev or a dba or anything like that so my rudimentary skills were good enough for the job. Several months ago I decided that I wanted to firm-up on the SQL fundamentals that had grown rusty since college before I tackled a more intense book/online learning method. I'd had great experience with another book in the HeadFirst series so I picked this one up too.
Let me tell you, this book is gold. Though as other posters have said, it isn't anywhere near a comprehensive book that a DBA or SQL coder would be even remotely interested in, but that's not the point. The point of the book is to help newbies (or rusty-people) (re)establish their SQL fundamentals so that they can move on to more complex/cooler stuff. This book does that job very, very well. The examples are fun and they way they engage the reader keeps even the most un-techy person involved while at the same time not insulting the intelligence of any who does consider themselves tech saavy, just SQL ignorant. Granted, anyone who thinks they're a SQL master after reading this book really has no idea what they're talking about and probably has never really looked at a production DB and the code behind it.
If you or anyone you know is looking for a good entry level SQL book, then this would be a great place to start.
Head first in general (Score:1)
Head First books are a good introduction (Score:1)
Not the most imformative review (Score:2)
What I wonder what I see a review done by some one who knows nothing of the subject is if the reviewer knows what he does not know. Would be know that a book as just teaching surface level syntax and avoiding the more importent issues?
Perfect for a certain group (Score:2, Interesting)
However, as a DBA and DB dev myself, I know one person that I am personally going to buy this book for, maybe as a Christmas present.
My boss, of course! I spend hours per week trying to explain to him why I do things certain ways. This is because he has a slight technical background in SAP, and has just enough knowledge to be dangerous. I would love for him to read this book, it may save me some agro.
I'm not a fan of the Head First series (Score:1)
I bought Head First Design Patterns a while ago as my introduction to design patterns. It must be me by I thought the writing a bit condescending. It seemed to presume I had a learning disability of some sort that they had to take extraordinary steps to over come. I found it difficult to get by the verbosity and reiterative style. I've browsed others in the series with the same impression.
After giving up on Head First Design Patterns, I acquired Gamma, et al, "Design Patterns
Do others perceive the Head First books as I did? Am I over reacting to the authors' intent to address different learning styles?
Head first! (Score:2)
I really hate these kind of books (Score:2)
Most people I have seen using a database have not had any understanding of what they where doing and it was basically and advanced filepointer. I have seen a lot of people using MySQL with MyISAM and happily thinking they got a consistent dataset. I have seen people using databases for communication between servers and using stuff like a time stamp for identifying a row (time stamp generated on local server).
Leave databases to people who understands them!
empowering (Score:2, Insightful)
I find that more rigorous books sit on the shelf and never get read. These guys don't want to be DBAs or to design a database, they just want to be able to find out simple information.
I want to encourage them to at least start into this field, not just because it's career-expanding for them, but also because the more these tools get accepted, the less grief I'll get from management for implementing in-house the things we needed in the first place.
Head First Books... (Score:2)
...are generally aimed at those new to { insert book's technology topic } and not seasoned programmers / developers / architects.
Many of the comments so far are negative, doubting how someone can become a data architect / DBA from the book... which is not the target audience... IMHO
As one who has seen quite a few programmers use unstructured text files, excel spreadsheets and access (as if it were a spreadsheet) for data storage, I welcome a resource that offers a painless introduction to the "magic" of using a database and the various features it offers. This introduction to the "proper" way to manage data may be the stepping stone to spur further learning...
Please include reviewer's background (Score:3, Interesting)
(http://www.greggobst.com/ | Last Journal: Wednesday February 13 2002, @06:28PM)
UPDATE (Score:1)
USE slashdot;
SELECT string FROM head_first_sql_book_review
WHERE string = 'databases';
START TRANSACTION;
UPDATE head_first_sql_book_review
SET string = 'an instance of a database using the MySQL CREATE DATABASE command'
WHERE string = 'databases';
COMMIT;
fgbnfgfgb (Score:1)
Re:Humorous Stick Figures!!! (Score:1, Offtopic)
Re:Head on! (Score:2)
Re:Head First Apostrope's (Score:2)
(http://www.mikeiscool.net/)
Re:Read the article (Score:2)
(http://www.metatrontech.com/ | Last Journal: Saturday December 01, @06:44PM)
Most of the time, a lot of us end up having to clean up databases designed by programmers. A lot of the time, the programmers don't really grasp the problems inherent in ignoring the O-R Impedance Mismatch issues and so we have a lot of horrid databases out there.
Having said this, one does have to start somewhere. All I would ask from a beginner book is at least to provide notes about the advanced topics so that people know where to look. Yet this book seems extremely light on theory (no real discussion of what the normal forms actually mean from a relational math perspective).
Yes, you should have a reasonable grasp of at least algebra to design databases. Yes, authors should be unafraid to use terms like "functional dependency" and "transitive functional dependency." Let is stop pretending that RDBMS's are anything other than math engines.
Re:Just remember... (Score:2)
(http://www.edholden.com/ | Last Journal: Tuesday January 20 2004, @11:15PM)
Re:Depends on what the Db Is For (Score:2)
(http://www.metatrontech.com/ | Last Journal: Saturday December 01, @06:44PM)
However, this is not always the case. If you look at a lot of OLAP setups on BizgressMPP or Terradata, there isn;t a lot of denormalization necessary because you can address the issues via parallelism rather than summary storage. This is important because it means your OLAP solution is able to answer a far wider range of questions quickly.
My grandmother knew all about microwaves (Score:2)
(http://www.metatrontech.com/ | Last Journal: Saturday December 01, @06:44PM)
And she could probably program Fortran better than you could
Re:ORM (Score:2)
(http://www.metatrontech.com/ | Last Journal: Saturday December 01, @06:44PM)
You may find my posts about SODA interesting. It is a different concept to fill the same need but allows you to build *good* relational databases without the complexity of maintaining a lot of SQL code in your object classes.
Parse as SQL ;-) (Score:2)
(http://www.metatrontech.com/ | Last Journal: Saturday December 01, @06:44PM)
who || 's photo' || s
Or maybe something else....
Never forget your concatenation operators....