Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Head First SQL

samzenpus posted more than 6 years ago | from the read-all-about-it dept.

Book Reviews 210

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

cancel ×

210 comments

Sorry! There are no comments related to the filter you selected.

Silly girl (-1, Flamebait)

Anonymous Coward | more than 6 years ago | (#21439489)

Shouldn't you be cooking someone his dinner?

I am (0)

Anonymous Coward | more than 6 years ago | (#21439521)

I'll be cooking Simone. Would you like some?

Strange (3, Insightful)

a_n_d_e_r_s (136412) | more than 6 years ago | (#21439503)

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

Re:Strange (2, Interesting)

Anonymous Coward | more than 6 years ago | (#21439773)

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 [amazon.com] , where among the bogus reviews that often appear immediately for tech books, there is a pretty good examination of the book's weaknesses.

Because it is. (1, Insightful)

Anonymous Coward | more than 6 years ago | (#21439883)

It's a Slashvertisement.

No, THIS is an ad for the book: (5, Funny)

spun (1352) | more than 6 years ago | (#21440777)

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

Re:Strange (1)

liquidpele (663430) | more than 6 years ago | (#21440871)

I skimmed through this book in Borders one day (among others).
It's an intro book, and not even the best of those imho. The "head first" books are like "Topic X for Idiots" books - they have them for all kinds of subjects, not just computer related. I'd stick with O'reilly or some publisher that focuses on computers personally.

Re:Strange (3, Informative)

mysqlrocks (783488) | more than 6 years ago | (#21441287)

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

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 (3, Insightful)

CodeBuster (516420) | more than 6 years ago | (#21441433)

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.

Re:Strange (2, Informative)

CodeBuster (516420) | more than 6 years ago | (#21441321)

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.

"head first" Sql... (0)

Anonymous Coward | more than 6 years ago | (#21439533)

SQL, spread that sexy back-end.. yea.. I'm going in HEAD FIRST!!!!

(think beavis)

Just remember... (0)

Anonymous Coward | more than 6 years ago | (#21439539)

Apostrophes are cheap! Use them liberally!

Re:Just remember... (1)

Random BedHead Ed (602081) | more than 6 years ago | (#21440509)

Whats wrong with using apostrophe's?

SLASHDOT SUX0RZ (-1, Troll)

Anonymous Coward | more than 6 years ago | (#21439541)

_0_
\''\
'=o='
.|!|
.| |
click here for exclusive review of goatse [goatse.ch]

Humorous Stick Figures!!! (0, Troll)

timtimtim2000 (884095) | more than 6 years ago | (#21439613)

What a revolutionary piece of literature.

Re:Humorous Stick Figures!!! (0, Offtopic)

megaditto (982598) | more than 6 years ago | (#21439817)

They got both Female AND male ones!

who benifits? (3, Insightful)

techpawn (969834) | more than 6 years ago | (#21439649)

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.

Re:who benifits? (1)

AlXtreme (223728) | more than 6 years ago | (#21439811)

It sounds like a learn SQL in 24 hours book more than a SQL cookbook type resource

What would you expect from a book called "Head First SQL"?

And a minor nitpick: a seasoned DBA should know it is MySQL, not mySQL. That will be all.

Re:who benifits? (2, Insightful)

Anonymous Coward | more than 6 years ago | (#21439907)

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

MOD PARENT.... (1)

toadlife (301863) | more than 6 years ago | (#21441361)

....troll/insightful/informative/flamebait

AKA, 'trollsiformabait'

Re:who benifits? (2, Insightful)

YrWrstNtmr (564987) | more than 6 years ago | (#21439823)

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.

Re:who benifits? (1)

Taagehornet (984739) | more than 6 years ago | (#21441397)

The book [...] teaches how to create simple and complex databases, as well as how to let a database grow from simple to complex.

Trust me, you don't need to read a book to make that happen ;-)

But back onto the topic: Of course you're right, no book will suit everyone in the audience. But, does the world really need any more reviews of "Teach yourself <insert a dicipline it'll take you a life-time to master properly> in <insert a ridiculous short amount of time>", reviewed by absolute beginners? There's plenty of such books, finding them really isn't that hard. The difficult part is finding the real gems, those books that'll bring you further once you've gotten the basics right.

I noticed the lack of theory in the ToC (1)

einhverfr (238914) | more than 6 years ago | (#21439945)

Basically, it covers some basics of normalization, but no real background about the concepts or RDBMS's. IMO, one needs to cover, at very least, the fundamental concepts of relational math, and the mathematical definitions of SVD, FD's, MVD's, and the normal forms. Otherwise the book is actually teaching people to use RDBMS's wrong (MySQL is great at doing this too, so it is no surprise).

Re:I noticed the lack of theory in the ToC (1)

theshowmecanuck (703852) | more than 6 years ago | (#21441363)

They want to drive the car, not build it.

Re:I noticed the lack of theory in the ToC (1)

einhverfr (238914) | more than 6 years ago | (#21441453)

In that case, if you want to drive a database, not build it, leave out the bit about DDL (create table and such). Stick with SELECT, INSERT, UPDATE, and DELETE operations (the DML statements). Include a sample database that people can practice with.

If you want to cover the DDL, then you are teaching people how to build it and theory is therefore a good thing!

Re:who benifits? (2, Informative)

dHagger (1192545) | more than 6 years ago | (#21440465)

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.

Re:who benifits? (0)

Anonymous Coward | more than 6 years ago | (#21440913)

This is the stupidest post ever. Someone mod this shit down.

Re:who benifits? (1)

mysqlrocks (783488) | more than 6 years ago | (#21441325)

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

While there's certainly overlap, there is a difference between a DBA (administering the actual database server) and an SQL programmer. This book looks like it's about SQL programming, not database administration.

Don't get in over your head... (4, Insightful)

Vellmont (569020) | more than 6 years ago | (#21439659)


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... (3, Insightful)

techpawn (969834) | more than 6 years ago | (#21439789)

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.

Re:Don't get in over your head... (5, Funny)

magarity (164372) | more than 6 years ago | (#21439879)

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.

Re:Don't get in over your head... (1, Insightful)

Anonymous Coward | more than 6 years ago | (#21439961)

Or, speaking as someone who has had to clean up after such a mess, she's giving them a terrible database.

Re:Don't get in over your head... (4, Funny)

Tim Browse (9263) | more than 6 years ago | (#21440103)

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

People like this keep my billable hours up (1)

VampireByte (447578) | more than 6 years ago | (#21440267)

I hope it never ends! Keep those "database expert in 24 hours" books coming, they're the locomotive to my gravy train.

Re:People like this keep my billable hours up (1)

B3ryllium (571199) | more than 6 years ago | (#21440923)

Well-said. Now if only I could find a few local freelance contracts to clean up those messes :)

Also, I wish I could do a quick :%s/mySQL/MySQL/g on this entire page. :)

Re:Don't get in over your head... (3, Interesting)

magarity (164372) | more than 6 years ago | (#21440331)

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.

Re:Don't get in over your head... (1, Insightful)

Anonymous Coward | more than 6 years ago | (#21440739)

Did it ever occur to you that the 'paying customer' could just as easily be the tiny local coffeeshop around the corner which just needs a small database so the coffeeshop owner can put a little news about the shop online? You directly assume she's designing for a multinational for a 6 figure fee. A local coffeeshop just doesn't have the money (and the need!) for a uberl33t person like you. Jane Doe just getting into databases doing it for 300-500 bucks is enough for them. That amount of money is probably the hourly rate for someone with your skills.

Re:Don't get in over your head... (1)

DeathElk (883654) | more than 6 years ago | (#21440801)

Thanks, and good luck with the project Anita ;)

Re:Don't get in over your head... (1)

YrWrstNtmr (564987) | more than 6 years ago | (#21440887)

The coffee shop owner could get a better solution by going to his local university (or the local DeVry or ITT tech), and getting some random 2nd or 3rd year student to do it for cheap (or free).
Jane Doe doing it for $300 (after a weekend with this book) has juuuuust enough knowledge to screw it up, and sour the coffee shop owner on future projects.

This harkens back to the days of the late 90's, when anyone who knew the acronym HTML could get a paying gig.

Re:Don't get in over your head... (1)

OECD (639690) | more than 6 years ago | (#21441357)

This harkens back to the days of the late 90's, when anyone who knew the acronym HTML could get a paying gig.

In the late nineties, pretty much anyone who knew the acronym HTML could design a functional web page.

Re:Don't get in over your head... (1)

magarity (164372) | more than 6 years ago | (#21441089)

Did it ever occur to you that the 'paying customer' could just as easily be the tiny local coffeeshop around the corner which just needs a small database
 
Yes, it did, and that was my first suspicion. And the correct answer is: small shop needs an off the shelf package and not something custom made. The vendor of such can support them via call center when the occassional problem with their product comes up as well as send out regular patches. 'Anita' is going to spend ever increasing amounts of her time fixing and refixing this beast that she's making and end up frustrating the heck out of the owners of the small operation that's hired her - as if a small operation has plenty of extra time and money to wait and/or be the guinea pig while she learns? And nevermind just designing that database, how are reports to be generated and data entered? Even for a small business this is a big project to create all that from scratch (and then to maintain it) even if you were to use Access with its forms and reports wizards, nevermind MySQL.
 
The professional approach to "could you please set up a database for my very small business" is "Let's look over packages x,y, and z and see which of them best fits your needs." One can legitimately milk that for a week or even two of consulting fees if you include requirements gathering, investigating the features of several packages (and the vendors' support track records), setup, installation, and maybe even some staff instruction on computer use. The professional answer is NOT "Ah, what an amazing coincidence - I just got a beginner's database HOWTO book in the mail yesterday!"
 
  That amount of money is probably the hourly rate for someone with your skills
 
I'll pass on your kind recommendation but unfortunately you've overshot a fair amount. ;)

Re:Don't get in over your head... (0)

Anonymous Coward | more than 6 years ago | (#21439977)

I've never found full normalization to improve on my first attempt. Some database topics are highly overrated. And you can learn all the SQL most people need in just a couple days is you've a logical mind. Where the trick comes in is designing the database so that the types of queries you will be running against it take the least time. That often requires extra tables, inventive indexes and a good knowledge of database engine types - things not taught in most of your typical college database courses.

Re:Don't get in over your head... (1)

einhverfr (238914) | more than 6 years ago | (#21440303)

Where the trick comes in is designing the database so that the types of queries you will be running against it take the least time.
There are times and places where you need to create a means to "run this specific query really fast" and in that case, good relational design is not a major issue. Nothing runs faster than a sequential scan over a summary table containing the exact results you want to obtain.

However, when you do this, you prejudice all other queries. Many queries may take far longer to run, or may not be possible at all.

IMO, good, highly normalized database design is a prerequisite for good long-term performance (unless you are running MySQL-- then the planner may choke on your queries ;-) ). You can then increase performance using various tricks (indexes, for example) to help specific queries spend less time filtering through unwanted information.

I would add (1)

einhverfr (238914) | more than 6 years ago | (#21440107)

So far, I have almost always found heavily normalized designs are almost always a technical win when looking at future needs etc.

Note I am talking about normalization as a mathematical process based on data domains, functional dependencies, etc. This means building a database which is mathematically and semantically solid rather than working on program requirements (i.e. the structure of the data in the db should *not* be based on the program's data structures but rather on the inherent internal structure of the information).

Re:I would add (1)

Ed Avis (5917) | more than 6 years ago | (#21441217)

Agreed, and never mind future needs, just for current ones having a normalized schema is the way to go. There isn't really any tradeoff between normalization and complexity. So far, every schema I've seen that was designed by some cluebie who decided to duplicate data 'to make it run faster' has ended up making code much more complex, because the same data is in several places and you have to remember to update all of them and what do you do if it gets out of sync (as it will)?

Granted, if you have at least five years' beard growth and experience with serious-sized databases (not a just few thousand records here and there) then you can denormalize it. Normally just for one thing, in one or two tables, and if there's a clear performance need you must meet.

Re:I would add (1)

einhverfr (238914) | more than 6 years ago | (#21441425)

Also, I am not sure that summary data always means denormalization. Normalization definitions in relational algebra doesn't seem to address questions of values which could be calculated from other values in a set (except where functional dependency is an issue) though obviously good engineering practices would keep these at a minimum.

For example, suppose we have an accounting application which accepts hundreds of thousands of invoices per year. After 10 years, we want to go find the balance of one business checking account. Processing an aggregate over ten years and millions of invoices is likely to be inadequate to the business need.

In that case, my proposed solution is to have summary data at checkpoints. I.e. "last time you closed your books, the balance was $x." Now we still have to run an aggregate but it is only an average of six months data, and most of that is probably clustered together on disk. This is an atomic fact, it does not overly complicate data management, and it is a heck of a lot better than trying to keep a summary table up to date.

Re:Don't get in over your head... (1)

tuomoks (246421) | more than 6 years ago | (#21440579)

Very insightful. IMHO this is the problem today, learn a little of one product dialect and you are the master of information management, yeah, great! Vellmont is absolutely right, database design is much more and corporate information management in those databases is even more. Even if a good start can be found in books it needs years, most often very specific industry knowledge and every day learning before you can master it. SQL dialects, structures, tables, even normalization are easy but really the future needs, capacity, performance, expandability, predicting changing business needs and technology, etc are totally another ballpark. And I'm not a DBA, just a person who has gone through all the pain designing and managing huge amounts corporate information over years from card sorters through direct access, structured files, relational algebra to modern(?) object databases and still learning. Nothing against the book, haven't read it but just the impression often given and bought by some corporations, the way to trouble which someone else then have to fix ( try to fix. )

Re:Don't get in over your head... (1)

ClosedSource (238333) | more than 6 years ago | (#21440839)

The problem is that today's approach of software integration over software development means that you have to know a lot of different technologies to accomplish your goals. If today's "developers" had to understand all the technologies they use to the same depth as you suggest for database design, nothing would ever get finished.

Re:Don't get in over your head... (1)

tuomoks (246421) | more than 6 years ago | (#21441309)

Yes, you are right. My gripe is that too often it is the integration without planning / design. It is not the developers / DBAs fault but how the management sees it and buys all the marketing hype "this product solves all your business problems"! Information management, what any database is supposed to be part of, is really not an easy thing but I still think there should be someone in company responsible of that. Nothing new, same with security, performance, development environment, etc. We still too often (IMHO) make things in vacuum, too specialized for one small part of the system, whatever. This actually can accelerate the development, pieces and parts can be built to common good, think for ex. SOA.

Hmmmm... (4, Funny)

Anonymous Coward | more than 6 years ago | (#21439661)

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

Head on! (0, Troll)

Deltaspectre (796409) | more than 6 years ago | (#21439691)

Apply directly to forehead!
Apply directly to forehead!

Re:Head on! (1)

Apiakun (589521) | more than 6 years ago | (#21439991)

Thank you for providing me with the first laugh of the day!

I have a question (4, Interesting)

stoolpigeon (454276) | more than 6 years ago | (#21439731)

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

Yeah (4, Funny)

geekoid (135745) | more than 6 years ago | (#21439743)

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

Re:Yeah (1)

yakumo.unr (833476) | more than 6 years ago | (#21439899)

The RIGHT book('s) would be fine, but they should be preaching normalization right from the get go to make damn sure the reader covers it, and is at least aware that if they don't normalize their data they will absolutely suffer. (yes sometimes you need weigh things up as another poster has mentioned, but that's part of it, and you damn well have to know about it in depth to make those judgements effectively)

This review doesn't so much as mention normalization once, so the only conclusion can be the book is utterly rubbish, and the review is merely undeserving product placement on slashdot once again.

Re:Yeah (1)

iluvcapra (782887) | more than 6 years ago | (#21440011)

I'm about to google it, but what's database normalization?

Re:Yeah (0)

Anonymous Coward | more than 6 years ago | (#21441277)

Take a break, it must be tiring being such a cunt all the time.

Re:Yeah (0)

Anonymous Coward | more than 6 years ago | (#21440445)

Or, if you actually bothered to look at the book's website [headfirstlabs.com] , you might find this blurb:

"We all know 'Data is Power' - but we'll show you how to have 'Power over your Data'. Expect to have fun, expect to learn, and expect to be querying, normalizing, and joining your data like a pro by the time you're finished reading!"

So much for your uninformed grousing about normalization being omitted. As an introductory book on SQL, it doesn't sound too bad. You can't reasonably expect that type of book to make you an instant expert.

Re:Yeah (1)

yakumo.unr (833476) | more than 6 years ago | (#21440679)

My post was based on the fact that even should it mention it, it clearly was not with enough impact to have caused even the slightest murmur of a mention from the reviewer, which to me, is not a good demonstration of the effectiveness of the book.

Re:Yeah (1)

Hognoxious (631665) | more than 6 years ago | (#21441299)

That might be down to her being as thick as two short planks. You know, lead a horse to water and all that.

Re:Yeah (1)

Ndiin (610451) | more than 6 years ago | (#21440025)

And I'm going to go out on a limb and guess that this fascinating book doesn't even begin to mention things like ER diagrams, or relational algebra.

All too often these days where even long-time DBAs don't know what relational algebra is. So sad, really.

Re:Yeah (1)

DragonWriter (970822) | more than 6 years ago | (#21440405)

And I'm going to go out on a limb and guess that this fascinating book doesn't even begin to mention things like ER diagrams, or relational algebra.


But should it? I mean, sure, a database designer, administrator, or developer ought to know about relational database theory, design methodologies, normalization, etc. But is it necessary for a book on SQL to cover all that?

The best book on database design (in terms of covering lots of ground effectively and succinctly) I've seen doesn't cover much SQL (only enough to use it to illustrate the concepts, and I'm not sure the SQL it uses is usable without modification on any real database; SQL isn't its job.)

Why shouldn't the reverse be true? It would be one thing if the book was "Head First Database Design, Development, and Administration" and it didn't cover those things, of course.

Re:Yeah (1)

nuzak (959558) | more than 6 years ago | (#21441201)

Databases don't implement the relational algebra anyway, otherwise you'd be slinging around CREATE RELATION just for starters. No one uses ER diagrams with those separate boxes for entities and relations, those went out with System R. These days you're more likely to see schema diagrams, which look more like a stripped down UML, and they're perfectly sufficient to the task.

The book is most likely crap, but not for those reasons. DBAs incidentally are not theorists, they are sysadmins.

Re:Yeah (1)

afidel (530433) | more than 6 years ago | (#21440029)

Yeah that was my thought too. Just enough knowledge to be really dangerous. Instead of using the enterprise servers costing tons of $ and maintained by highly paid, very knowledgeable professionals you get someone who's an amature that wastes tons of not quite as valuable time doing it themselves. And in the end the database(s) created by the amatures end up needing to be unraveled by highly paid developers and the same DBA's that should have handled it in the first place at the cost of many times what it would have cost to do right the first time. Obviously this doesn't apply if you're learning for the enjoyment of it or to power your own personal website, but too many times I've seen the MS Access affect in action and it costs many times more to clean up the mess than it would have to do it right from the getgo.

Re:Yeah (1)

Waffle Iron (339739) | more than 6 years ago | (#21440081)

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

Well, at least it's better than learning database work from a point-n-click wizard.

Well, you have to start somewhere (1)

einhverfr (238914) | more than 6 years ago | (#21440347)

We learn by doing but we can't do unless we understand the syntax.

Additionally, I would highly recommend Codd's Papers, and CJ Date's books on the subject. These will help to provide a theoretical framework for understanding what an RDBMS is all about.

Re:Well, you have to start somewhere (1)

ClosedSource (238333) | more than 6 years ago | (#21441181)

Given that most commercial RDBMS weren't designed to follow the relational model, I don't think it's accurate to say that it provides a framework for understanding what a RDMBS is. It's a bit like saying that you can't perform simple arithmetic without a deep understanding of number theory.

Re:Well, you have to start somewhere (1)

einhverfr (238914) | more than 6 years ago | (#21441493)

Actually, I think that Codd made a few mistakes as well in the relational model. While these seem like minor mistakes and should be put in the perspective of the fact that Codd founded the field (so of course there were going to be some oversights that need to be addressed later), they haunt the industry to this day. Chief among them is the definition of NULL which introduces semantic ambiguity into databases.

For the most part, SQL is an imperfect approach at writing relational algebra in plain English. So just because the databases of today are not perfect implementations of relational math doesn't mean that they don't follow the relational model.

overnight experts, sigh (3, Interesting)

magarity (164372) | more than 6 years ago | (#21439767)

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.

Re:overnight experts, sigh (2, Funny)

LurkerXXX (667952) | more than 6 years ago | (#21439939)

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

Re:overnight experts, sigh (2, Insightful)

jayp00001 (267507) | more than 6 years ago | (#21440261)

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.

Re:overnight experts, sigh (1)

Luke Dawson (956412) | more than 6 years ago | (#21440305)

I'm with you. It's both frightening and insulting that people think they can pick something like this up over a weekend. I don't understand why people have this idea that you can pick stuff like this up so quickly...I mean, would you call yourself a doctor just because you read a few medical books?

Head First Apostrope's (1)

m1sha (1113269) | more than 6 years ago | (#21439787)

>> who's photo's

Whose idea was it not to proofread this?

Re:Head First Apostrope's (1)

Critical Facilities (850111) | more than 6 years ago | (#21440147)

Maybe the same guy who left out the H in apostrophe? Just pointing out the irony ;-)

Re:Head First Apostrope's (0)

Anonymous Coward | more than 6 years ago | (#21440365)

Whose idea was it not?
Not my idea, that's for sure.

I'm more curious whose idea it was to not proofread your post.

Couldn't finish the review... (3, Informative)

MilSF1 (710927) | more than 6 years ago | (#21439791)

[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]

Read the article (0)

Anonymous Coward | more than 6 years ago | (#21439793)

The reviewer clearly states numerous times that this is a good book for an absolute beginner. Nowhere does she state that the book is to be used as a reference for a DBA.

Me, knowing nothing of databases, would probably benefit tremendously from this book.

Apparently all of you, would not. This book wasn't written for you. It was written for me.

Re:Read the article (1)

einhverfr (238914) | more than 6 years ago | (#21440449)

The problem is that relational databases are built around a very specific mathematical model. If you don't understand the principles of RDBMS's and at least have a basic clue about the math behind them, you will never be able to use them effectively.

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.

Only on slashdot (0)

Anonymous Coward | more than 6 years ago | (#21439801)

Advertising for a vaguely sex act describing book? ('Head first', c'mon!). Slashdot is dangerously close to being spam.

Normalization? Keys? (3, Insightful)

Foofoobar (318279) | more than 6 years ago | (#21439903)

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.

Re:Normalization? Keys? (1)

ErikZ (55491) | more than 6 years ago | (#21440071)

I can see how some of those other problems could happen...but not normalizing?

Normalization is as integral to databases as SQL. If you're not normalizing your databases, you might as well not have them.

Talk about rewarding!!!! (0, Offtopic)

syousef (465911) | more than 6 years ago | (#21439987)

If we got head first before writing SQL, maybe the quality would increase. No on second thoughts scratch that. Who'd give a shit about coding SQL if they just gotten head.

You've not done real database work (1)

tttonyyy (726776) | more than 6 years ago | (#21440019)

...until your carefully crafted union of two huge tables fails, taking down a mysql server common to over 400 sites and incurring the wrath of your previously friendly hosting company.

Mental note - test locally first.

Re:You've not done real database work (1)

afidel (530433) | more than 6 years ago | (#21440115)

If you were doing real database work on a well run DB you wouldn't have been able to take the DB down =) Real DB's have resource limiters that allow the DBA to insure that no one user can exhaust resources to the point of taking the DB down. We even limit the percentage of system resources a user can take just to make sure that one bad report doesn't slow down OLTP processing. I'm not the DBA but I know enough to know that there are toys and then there are real business tools.

Re:You've not done real database work (1)

tttonyyy (726776) | more than 6 years ago | (#21440433)

If you were doing real database work on a well run DB you wouldn't have been able to take the DB down =) Real DB's have resource limiters that allow the DBA to insure that no one user can exhaust resources to the point of taking the DB down. We even limit the percentage of system resources a user can take just to make sure that one bad report doesn't slow down OLTP processing. I'm not the DBA but I know enough to know that there are toys and then there are real business tools.
Indeed. This was a mysql database that I had previously tested long queries on. I was monitoring the progress of the query when the server went unresponsive. All hell broke out from there.

I've used that book (2, Informative)

Elenthalion (854567) | more than 6 years ago | (#21440053)

Boy, that review sure does sound like a shameless o'reilly sponsored plug for the book. And all the negative banter is so very /.. If it's directed towards beginners, /. will roast it. All that aside, I've actually read and enjoyed this book.

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.

Re:I've used that book (1)

einhverfr (238914) | more than 6 years ago | (#21440731)

First, a lot of the negative banter comes from those of us who do database engineering and understand how technical of a field it is. Of course, if it is limited to MySQL, this is not a big issue because you can't do proper db design on MySQL anyway.

I guess my feeling is that it would be great if beginner books at least discussed theory, at least in appendix. I.e. "Here is the basis of how this works, and here is where you can go to get more information" or "Here are a few known challenges you may run into. Here is where you can go to get more information."

However the fact is that no beginner books do this, which means that those of us who do the engineering end up doing a lot of unnecessary cleanup. We all know you have to start somewhere, but it would be nice to have somewhere *good* to start.

Re:I've used that book (1)

Elenthalion (854567) | more than 6 years ago | (#21440931)

Absolutely agreed. If I were a DB engineer I'd have the same frustrations.

Re:I've used that book (1)

DragonWriter (970822) | more than 6 years ago | (#21441041)

I guess my feeling is that it would be great if beginner books at least discussed theory, at least in appendix.


IME, there are beginner's books that discuss theory, etc., but they are, surprisingly enough, beginner's books on theory rather (e.g., Relational Database Design Clearly Explained) rather than beginner's books on SQL, or particular software stacks (like the various MySQL/Apache/PHP or similar intro books.)

Head first in general (1)

marqs (774373) | more than 6 years ago | (#21440371)

I personaly loved Head first Java when first starting with java programming. These books are not "The in depth" kind of books nore are they any good as reference literature. But stil they push the information through in an humorous way. Meaning you learn not knowing that you are learning!

Re:Head first in general (1)

DragonWriter (970822) | more than 6 years ago | (#21440511)

These books are not "The in depth" kind of books nore are they any good as reference literature. But stil they push the information through in an humorous way. Meaning you learn not knowing that you are learning!


If I'm going to shell out money for a book to learn something, why would I object to knowing that I'm learning?

And, if I'm going to shell out money for a book to learn something, why would I not prefer something that is either in depth, useful for reference, or both, especially given that the Head First books often aren't substantially cheaper than books covering the same topics which meet at least one of those two criteria?

Re:Head first in general (1)

C0rinthian (770164) | more than 6 years ago | (#21440691)

Perhaps because the more in-depth book provides information overload to the reader, or is so dry, they lose interest? Perhaps a book like this is good to get a basic grasp on the material, making those in-depth books more useful to the reader?

I don't have coding experience, but I DO have education experience. There is most definitely a place for books like this, as long as the reader is aware that it is not a end-all source of information about a subject.

Head First books are a good introduction (1)

satori101 (118080) | more than 6 years ago | (#21440637)

As an introduction to a given topic, I've been pretty satisfied with the quality of O'Reilly's 'Head First' series. They're not meant to be an exhaustive reference for seasoned pro's, but they do a good job of conveying the fundamentals. If this book is on par in quality with the rest of the series, it's probably not a bad place to start if you're approaching it with zero background in databases.

Not the most imformative review (1)

ChrisA90278 (905188) | more than 6 years ago | (#21440655)

I wonder if this book covers what's really importent. How to design systems that use databases. I've seen way to many system designs where the DBMS is grossly abused. For example to self-educated programer did not know about "joins" so he searches one table, holds the value in a variable andthen looks it up in a related table. Of corce he also does not think about locks, deadlocaks and transactions. You be surprized to see how common this is. I've seen tables design be people who must have never read about "normalization".

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 (2, Interesting)

Hashi Lebwohl (997157) | more than 6 years ago | (#21440657)

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 not a fan of the Head First series (1)

LorenzoV (106795) | more than 6 years ago | (#21440883)

JMHO.

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 ...". This suited me better. Direct, to the point.

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! (1)

gringer (252588) | more than 6 years ago | (#21440927)

Apply directly to the forehead!

I really hate these kind of books (1)

Splab (574204) | more than 6 years ago | (#21440951)

Yes people will be able to use a database quickly, but do we want them to?

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!

Re:I really hate these kind of books (1)

DragonWriter (970822) | more than 6 years ago | (#21441189)

Yes people will be able to use a database quickly, but do we want them to?


Yes. Because you don't get to real understanding until you can start using them.

The problem, of course, is people developing databases that you have to later work with before they've gotten enough understanding, but that's going to keep happening in any case. In fact, there will be more of it if you narrow the field of people with even a basic understanding of the field. (If its not bad databases, per se, that get built this way, it'll be people abusing other technologies to do what should be done in a database, which will be just as bad, if not worse, when you run into it.)

As long as there is something that lots of people need done, and a few people understand really well and are paid well in good jobs to do, there will also be people who understand it less well, and are scrabbling by doing it for as a side part of another job, for a smaller employer, as a lower-priced contractor, etc. And, yeah, they'll be doing lower quality work. Some of them will go on to be experts. Some of them won't.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>