Slashdot Mirror


Head First SQL

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.

32 of 210 comments (clear)

  1. Strange by a_n_d_e_r_s · · Score: 3, Insightful

    why does this reads so much like an add for the book ?

    --
    Just saying it like it are.
    1. Re:Strange by Anonymous Coward · · Score: 2, Interesting

      why does this reads so much like an add for the book ?

      I don't think I've ever seen a harsh review here on Slashdot. Perhaps the editors are of the opinion that a book need not be mentioned unless the reviewer thinks it's good, and since the has already been established to be good, the reviewer can go all out with hyperbole in praising it. If you want to see more critical opinions on a book reviewed here, check out the Amazon listing, where among the bogus reviews that often appear immediately for tech books, there is a pretty good examination of the book's weaknesses.

    2. Re:Strange by mysqlrocks · · Score: 3, Informative

      I'd stick with O'reilly or some publisher that focuses on computers personally.

      The Head First series is published by O'Reilly. I think it's a great series of books - even for advanced users.

    3. Re:Strange by CodeBuster · · Score: 2, Informative

      I'd stick with O'reilly or some publisher that focuses on computers personally.

      Actually, Head First Labs, the label under which the Head First series is published, is a subsidiary of O'Reilly Media Inc so the Head First series is published by O'Reilly.

    4. Re:Strange by CodeBuster · · Score: 3, Insightful

      You beat me to the post by by a couple of minutes. I agree that even advanced users can get good stuff out of the Head First books, but it is important to remember that the bad jokes, stock characters, and corny vignettes presented in the books are not there as part of some misguided attempt to be cute, but rather as a research proven cognitive aid for helping us, the readers, absorb the most information possible into our brains in the least amount of time with the minimum amount of re-reading, backtracking, and resorts to external commentaries.

      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.

    5. Re:Strange by chromatic · · Score: 2, Informative

      I don't think I've ever seen a harsh review here on Slashdot.

      I thought Inside XML needed editing, and I certainly don't recall giving it a numeric score. Timothy probably added one just before posting it.

    6. Re:Strange by aztracker1 · · Score: 2, Interesting

      Personally, I've been recommending the Head First HTML book for those starting out with X/HTML, simply because it is probably the best book for beginners I've seen... Not great for those who are already knowledgeable and able to hand-code HTML though. I have honestly been looking for a similar book to recommend for those looking into Javascript more... I like the JS Bible, but it's a bit cumbersome at this point, and should probably be broken down a little... Most of the O'Reily books are not best for instruction, but the Head First series really seems to be a break from that. May peruse this book just to know more about what is in it.

      --
      Michael J. Ryan - tracker1.info
  2. who benifits? by techpawn · · Score: 3, Insightful

    This sounds like a good intro book but nothing of use to a seasoned DBA. It reads as though you gain basic knowledge of the subject of SQL and some basic mySQL syntax but the day-to-day operations of a database are probably not covered since those are very version specific and generally done with odd T-SQL statements or GUI interface.

    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.

    --
    Ask not what you can do for your country. Ask what your country did to you
    1. Re:who benifits? by YrWrstNtmr · · Score: 2, Insightful

      This sounds like a good intro book but nothing of use to a seasoned DBA.

      And a book good for a seasoned DBA will be way over the head of a newbie. Not everyone is at the same level. Not every book should be written for 'everyone'.

      Having said that...reading one book in a couple of days does not a SQL developer make.

    2. Re:who benifits? by Anonymous Coward · · Score: 2, Insightful

      No, a seasoned DBA should have forgotten as much as possible of MySQL and moved on to Postgresql or some other *R*DBMS.

    3. Re:who benifits? by dHagger · · Score: 2, Informative

      My experience with the "Head First" series of books (I have read a few, not this one however) is that they are very good beginners books. Easy to read and easy to grasp the basic concepts of the subject they cover. Without loosing interest after a few pages (which in my experience is way too common with other books). And once you know the basics, you can go on and explore more advanced topics somewhere else.

      On the other hand, once you know something about the subject, they are, well... not that good. You just sit and wait for the book to get to the point, cursing it for repeating things you already know.

      Conclusion: if you already have some basic knowledge; go for something else. Otherwise, I think these books are a good way to get started.

    4. Re:who benifits? by moro_666 · · Score: 2, Insightful

      Proper DBAs will just get a major headache from people who read a book and screw up their db servers thinking that now they have "god mode" on.

        People, unless you have more experience with databases than "my little php page with mysql", don't touch "real" databases. You will go in with a grand idea that was avoided before by real DBAs that knew where locks, indexes, replications, transactions. backups and failovers matter. Newbies come in, create a shiny little script that makes the rest of server cough blood and die in agony. If they are lucky, the annoying ignorant selfish DBA will come in and rescue the world or they'll just quit.

        And the parent comment is not trolling, he's still correct. MySQL is way behind PostgreSQL and other rdbms-es. It did a good jump forward with 5.x releases, but it's still not quite there, and since the old generation DBAs are not going to move to it, MySQL will have to wait until its users catch up to get all the features and fixes in place. DB world is not a place where things happen over night.

        Just knowing how to make a select or insert or left join makes you no king in real databases. It's experience, logic, control and flow that matters there.

      --

      I'd tell you the chances of this story being a dupe, but you wouldn't like it.
  3. Don't get in over your head... by Vellmont · · Score: 4, 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.

    --
    AccountKiller
    1. Re:Don't get in over your head... by techpawn · · Score: 3, Insightful

      IMHO Creating a database is one thing, Designing is another entirely!

      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.

      --
      Ask not what you can do for your country. Ask what your country did to you
    2. Re:Don't get in over your head... by magarity · · Score: 5, Funny

      Database design and creation isn't something you pick up over 3 days
       
      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.

    3. Re:Don't get in over your head... by Tim+Browse · · Score: 4, Funny

      WTF: from 'I don't know anything about databases' to 'building a database for a customer' what amount of time?

      Well, she did say:

      "On a Sunday, a fellow user-group member suggested I learn SQL [...]"

      Maybe it went like this:

      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

      FFS, learn SQL!

      Just a guess. :-)

    4. Re:Don't get in over your head... by magarity · · Score: 3, Interesting

      Re:Don't get in over your head... (Score:3, Funny)
       
      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.

    5. Re:Don't get in over your head... by Tablizer · · Score: 2, Interesting

      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...

      Agreed. Some of my best DB knowledge comes about from observing what didn't work, especially as changes were accumulated over the years.

      Even something as simple as an Address table (or Contact table) can have gajillion different ways to do it, and gajillion different ways to mess it up. For example, do you have a slot for each information type such as phone number, fax number, pager number, email, etc? Or do you create a second table (many possible rows per Address row) that creates a row for each additional item along with a "contact_type" indicator?

      The second is more flexible because you can have say 8 different email addresses in there, whereas the first one can only have one (per address). But it is also more complicated. Having too many tables can complicate a system just as not having enough. The decision may depend heavily on the nature of the business and it takes experience to know what is the best fit.

      (One should probably at least have a free-form "addtional_contact_info" text column for extras that don't fit in given slots.)

      -Tablizer

  4. Hmmmm... by Anonymous Coward · · Score: 4, Funny

    "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."

    Sounds like your aversage Slashdotter, doesn't it?

  5. I have a question by stoolpigeon · · Score: 4, Interesting

    How does one go about just getting technical books mailed to their home for review?

    --
    It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
    1. Re:I have a question by MythMoth · · Score: 2, Insightful

      Write some reviews, then ask nicely. Or know/be an author.

      --
      --- These are not words: wierd, genious, rediculous
  6. Yeah by geekoid · · Score: 4, Funny

    another person that learned database work from a book. Just what we needed.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  7. overnight experts, sigh by magarity · · Score: 3, Interesting

    Prior to opening the couriered package, I had no knowledge of SQL ... Now, I can design and create databases
     
    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.

    1. Re:overnight experts, sigh by LurkerXXX · · Score: 2, Funny

      Basically she's just saying she's another regular MySQL user. That's already terrified me for a long time.

    2. Re:overnight experts, sigh by jayp00001 · · Score: 2, Insightful

      Can we get an AMEN here? How many of us have seen these ridiculously complicated spreadsheets users are sharing across the network that should be some flavor of database instead.

  8. Couldn't finish the review... by MilSF1 · · 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. Something that simple will help keep you from sounding amateurish as a reviewer.
    [pedantic mode: off]

  9. Normalization? Keys? by Foofoobar · · Score: 3, Insightful
    Databases are a bit more than just queries. I find that most people new to databases start screwing up because thy don't understand that everything can't be stored as a varchar or that it's amazingly stupid to have every column in a table set as a key. Normalization is another big thing to knock into newbie database developer brains as well as naming conventions.

    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.

    --
    This is my sig. There are many like it but this one is mine.
  10. Perfect for a certain group by Hashi+Lebwohl · · Score: 2, Interesting
    I'm reading a lot of negative comments about this book, maybe that's to be expected due to the technical nature of /. readership.

    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 in to sadism, bestiality and necrophilia. Am I flogging a dead horse?
  11. No, THIS is an ad for the book: by spun · · Score: 5, Funny

    Head First! Apply directly to the SQL!

    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...

    --
    - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
  12. empowering by bugs2squash · · Score: 2, Insightful

    I saw this book a Borders and have recommended it to the Network Support Technicians at my company. These guys run our helpdesk and often refer basic questions about network performance to me. I've created a bunch of systems that store data for reports in mysql (current status, roundtrip response time, throughput, usage etc.). People are often amazed that I'm able to produce ad-hoc charts and tables about all sorts of aspects of the network's well-being. All I'm doing is simple queries on simple data and if this book helps others in my organization to query the data in even the most basic way, it will have been well worthwhile.

    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.

    --
    Nullius in verba
  13. Re:I noticed the lack of theory in the ToC by einhverfr · · Score: 3, Insightful

    IMO that sort of thinking is a mistake. It actually comes from the desire to cut down on planning time because management sees it as dead weight. And worse, people designing databases who have no clue what they are doing mathematically speaking.

    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.

    --

    LedgerSMB: Open source Accounting/ERP
  14. Please include reviewer's background by GreggBert · · Score: 2, Interesting

    It would be helpful to include your own background when doing a review. While I know not everyone works with SQL every day, it might help to put the review into context if we knew what level of technical or development experience the reviewer had. It would make it easier to possibly recommend the book to others if we knew what background the reviewer had in relation to those we might possibly recommend the book to.

    --


    If you don't understand anything I post, please accept that I ate paste as a small boy...