The Definitive Guide to MySQL 5
jsuda writes "The Definitive Guide to MYSQL 3rd Edition certainly deserves its
title. It is a large, dense, complete guide to MySQL and updates its predecessor
edition by covering new MySQL5 and new auxiliary software including database administration
tools and interfaces. MySQL is the open-source database software which has become
very popular for web-based database applications now being used by Yahoo, NASA,
Slashdot, and other entities. Read on for the rest of Jsudas' review
The Definitive Guide to MySQL 5 3rd Edition
author
Michael Kofler
pages
748
publisher
Apress
rating
7
reviewer
John Suda
ISBN
1-59059-535-1
summary
The Definitive Guide to Mysql 5
The author of this book, Michael Kofler, has a Ph.D. degree in computer science and is an accomplished writer of technical books. The audience is intermediate to high-level database designers and programmers. Although the presentation assumes little prior knowledge of MySQL and databases, it does assume a good amount of contact with and knowledge of programming languages. The topic of this book does not lend itself to an easy, flowing writing style. Reading through this complex material is like chewing on heavy New England pound cake. That is not a criticism of the author as he thoroughly presents the topics in a comprehensive, workmanlike, textbook-like manner. The discussions of databases and MySQL features are lightened by numerous table, charts, graphics, and examples of relevant matters.
The updating from the 2nd Edition of The Definitive Guide involves the upgrade of MySQL from version 4.1 to 5.0 which now provides support for Unicode, the sub-SELECT and GIS functions, improved authorization features, addition of stored procedures, and other new commands and server options. It also includes discussion of new or updated auxiliary software used with MySQL, like PHPAdmin and new interfaces for Open Office, Star Office, and Apo.NET.
There are six parts with twenty-three chapters and 3 appendices, amounting to 748 pages with index. The parts entail an introduction to MySQL and databases, administrative tools and user interfaces, fundamentals of database design, programming using MySQL, and detailed content references. The appendices include short segments of a glossary, bibliography, and notes about the sample code files available for downloading from the publisher's website at http://www.apress.com./
The beginning chapters introduce the basic concepts of MySQL including its client-server architecture, tables, fields, queries, keys, and the distinction between relational and object-oriented databases. The author focuses the bulk of the book on relational databases. The many features of MySQL are itemized and other matters like licensing and setting up test environments are discussed. A large segment of this early material offers instruction on installing under Windows and Unix/Linux platforms and configuring the installations for function, usability, and security. An introductory example of building an opinion poll application with PHP is provided.
Chapters 4 - 6 cover a number of administrative tools to use with MySQL, including mysqladmin, mysqldump, and PHPAdmin. The author spells out how to install and configure, set up user management and security, create and edit databases, import and export data, and use auxiliary functions, among other things.
The best chapter, in my view, is Chapter 8 on database design. The technical aspects of databases are well-covered, like the various table types and data types, but the more theoretical aspects are noted in some length. There is some art in creating databases and tables which is above the technological. Correct design with related tables is crucial to efficiency, ease of use, accuracy, ability to revise, and consistency. A segment on "tips and tricks" in database design is especially interesting.
The bulk of Part 3 contains a comprehensive presentation of SQL features, syntax, configuration, and security issues, The new functions of version 5 are explored, like GIS and stored procedures and triggers. A section on transactions for advanced users and setups is nicely done. For novice users, mention is made of the "--I-am-a-dummy" option which warns and provides a second chance to avoid inadvertent updating or deleting of a table. Chapter 14 is all about maintenance issues - backing up, importing, logging, and replication.
Part 4 deals with how to combine MySQL with programming languages like PHP, perl, Java, C, Visual Basic, and Visual Basic.NET. Each is treated similarly - detailing features, concepts, syntax, and programming techniques. Most of the attention is given to PHP, which is described as a natural companion to MySQL for use in developing dynamic web applications.
Chapter 21 is a comprehensive SQL reference of operations, functions, data types, variables and constants, and commands. There are a large number of charts and tables to bring order to the dense material. Chapter 23 contains material on the various API's which can interact with MySQL. These include PHP.API, perl.API, JDBC, ADO-net, and C.API.
For those with a need to know, and those with a desire to learn MySQL, this volume contains nearly everything you would want and expect, not only about MySQL itself but about the software that interacts with it or web servers. The author deserves credit for presenting the dense material in a thorough and orderly manner."
You can purchase The Definitive Guide to MySQL 5 3rd Edition from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
The author of this book, Michael Kofler, has a Ph.D. degree in computer science and is an accomplished writer of technical books. The audience is intermediate to high-level database designers and programmers. Although the presentation assumes little prior knowledge of MySQL and databases, it does assume a good amount of contact with and knowledge of programming languages. The topic of this book does not lend itself to an easy, flowing writing style. Reading through this complex material is like chewing on heavy New England pound cake. That is not a criticism of the author as he thoroughly presents the topics in a comprehensive, workmanlike, textbook-like manner. The discussions of databases and MySQL features are lightened by numerous table, charts, graphics, and examples of relevant matters.
The updating from the 2nd Edition of The Definitive Guide involves the upgrade of MySQL from version 4.1 to 5.0 which now provides support for Unicode, the sub-SELECT and GIS functions, improved authorization features, addition of stored procedures, and other new commands and server options. It also includes discussion of new or updated auxiliary software used with MySQL, like PHPAdmin and new interfaces for Open Office, Star Office, and Apo.NET.
There are six parts with twenty-three chapters and 3 appendices, amounting to 748 pages with index. The parts entail an introduction to MySQL and databases, administrative tools and user interfaces, fundamentals of database design, programming using MySQL, and detailed content references. The appendices include short segments of a glossary, bibliography, and notes about the sample code files available for downloading from the publisher's website at http://www.apress.com./
The beginning chapters introduce the basic concepts of MySQL including its client-server architecture, tables, fields, queries, keys, and the distinction between relational and object-oriented databases. The author focuses the bulk of the book on relational databases. The many features of MySQL are itemized and other matters like licensing and setting up test environments are discussed. A large segment of this early material offers instruction on installing under Windows and Unix/Linux platforms and configuring the installations for function, usability, and security. An introductory example of building an opinion poll application with PHP is provided.
Chapters 4 - 6 cover a number of administrative tools to use with MySQL, including mysqladmin, mysqldump, and PHPAdmin. The author spells out how to install and configure, set up user management and security, create and edit databases, import and export data, and use auxiliary functions, among other things.
The best chapter, in my view, is Chapter 8 on database design. The technical aspects of databases are well-covered, like the various table types and data types, but the more theoretical aspects are noted in some length. There is some art in creating databases and tables which is above the technological. Correct design with related tables is crucial to efficiency, ease of use, accuracy, ability to revise, and consistency. A segment on "tips and tricks" in database design is especially interesting.
The bulk of Part 3 contains a comprehensive presentation of SQL features, syntax, configuration, and security issues, The new functions of version 5 are explored, like GIS and stored procedures and triggers. A section on transactions for advanced users and setups is nicely done. For novice users, mention is made of the "--I-am-a-dummy" option which warns and provides a second chance to avoid inadvertent updating or deleting of a table. Chapter 14 is all about maintenance issues - backing up, importing, logging, and replication.
Part 4 deals with how to combine MySQL with programming languages like PHP, perl, Java, C, Visual Basic, and Visual Basic.NET. Each is treated similarly - detailing features, concepts, syntax, and programming techniques. Most of the attention is given to PHP, which is described as a natural companion to MySQL for use in developing dynamic web applications.
Chapter 21 is a comprehensive SQL reference of operations, functions, data types, variables and constants, and commands. There are a large number of charts and tables to bring order to the dense material. Chapter 23 contains material on the various API's which can interact with MySQL. These include PHP.API, perl.API, JDBC, ADO-net, and C.API.
For those with a need to know, and those with a desire to learn MySQL, this volume contains nearly everything you would want and expect, not only about MySQL itself but about the software that interacts with it or web servers. The author deserves credit for presenting the dense material in a thorough and orderly manner."
You can purchase The Definitive Guide to MySQL 5 3rd Edition from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
...that the first and second editions weren't all that definative?
The problem with buying "new and improved" is the revelation that all along you'd been using "old and inverior".
Socialism: A feeling of discontent and resentment caused by a desire for the possessions or qualities of another.
The Definitive Guide? And I thought the online documentation...
Please put all of your stupid, self-important comments about how MySQL sucks, isn't a real database, etc., in this thread so the rest of us can easily ignore them. Thanks.
Doesn't look like there's anything on ODBC.
$30 Off All Plans: Use code TRIPLESAWBUCK
Great, I'll read it, become proficient in it. Then wait for the hosting companies to migrate to mysql5 in the next year or two so I can implement something that won't break for clients.
To quote Walter Neff, the evil hero in "Double Indemnity", "Do I laugh now, or wait 'til it gets funny?"
totally... i was wandering in my favorite geek bookstore yesterday... it's weird to look at the shelves, at the rows and rows of thick, expensive books, and think... "i've had no trouble with the online help for that one, and that one, and that one..."
people will spend money on just about anything... but, in fairness, it can be nice to have a guide that you can flip through some times... i don't like online doucmentation for everything but it has its place... a lot of these books though seem a bit much
It bothers me a bit that the reviewer considered the content intermediate to advanced, yet found the database design chapter most informative. Design in my opinion should be mostly irrelavent to the database its implemented on. Sure, you can optimize certain aspects of a design based on the features of the database server, but this should not define the design. Design should be a study in itself and not something thrown in for the sake of completeness.
However, considering the average DB design skillz of a commonplace/low-rent PHP developer (or at least the ones I have had to clean up after). I am hopeful that more developers using PHP/MySQL will actually take the time to look at the content in this or other definitive books on MySQL.
Five years ago, when I first learned PHP, I needed a tutorial-style book to help me along. Granted, the PHP documentation is AWESOME as a reference, especially considering there are functions for practically anything you can think of. However, I can definitely say that having a book that went through the basics first in a style where one could easily learn the language from scratch helped me out a lot.
(If anyone's trying to learn PHP, by the way, I highly recommend Sams' Teach Yourself PHP In 24 Hours. If you don't feel like buying a book, you could also check out the PHP Wikibook [Disclaimer: I have added parts.])
It's better to vote for what you want and not get it than to vote for what you don't want and get it.
- E. Debs
Perhaps something less insulting to the user should have been chosen? e.g. "--novice" or "--safety=on"? I understand that they're trying to be funny, but they've never seen a highly frustrated newbie before. The poor sap may be so flustered that having the documentation call him a "dummy" might just be the last straw.
Alternatively, your boss might not find it so funny when you tell him you'll just flip on the "I'm a dummy" flag. I know that my boss wasn't too impressed when I told him that I was going to use Bouncy Castle for encryption. The API is really great, but the name doesn't exactly scream "Professionsl!"
In the same vein, I always got a kick out of the naming for the ElectricFire JVM. From "How did the project get it's name?":
Javascript + Nintendo DSi = DSiCade
Unfortunately, the book expects the installation of several non-essential packages beyond the MySQL client and server. These include Apache, PHP, phpMyAdmin, and Perl (Chapter 2). Then, the introductory example (Chapter 3) is mostly about programming and testing an application in PHP with a MySQL database as a backend. At this point, I realized that the organization of the book did not meet my needs and purchased "MySQL (Third Edition)" by Paul DuBois, the organization of which demonstrates that it really concentrates on MySQL and which is actually the definitive guide I was originally looking for.
Best,
url80, The Bounty Network
MySQL 5 is a new product, and vastly different/improved from earlier releases of MySQL. So yes, the previous "The Definitive Guide to MySQL" books were definitive for the earlier MySQL releases.
And yes, the old books may be considered "inferior" when you're working with MySQL 5, just because it is new software and the older books thus do not cover it.
Cyric Zndovzny at your service.
"That is not a criticism of the author..." You can say that again.
Aside from a few sentences of vague praise, the bulk of this "book review" is a summary of the table of contents.
While this has nothing to do with MySQL directly, I think it would be fantastic if the Mozilla people were able to come up with a decent book regarding the embedding of the Gecko rendering engine.
Indeed, the online documentation is terrible. It is horribly outdated (we're talking 2 or 3 years here), and thus barely relevant today. Even if it might still be somewhat useful, there are often interfaces that have been changed, and the documentation ends up being more misleading than helpful. The example programs aren't exactly that good, either. They lack comments that truly describe what is going on, what pitfalls to watch out for, and so on.
Developers won't bother to embed Gecko within their products if it is difficult to find documentation describing how to do so. I, and I know others, do not have time to sift through the millions of lines of the Mozilla codebase, just to try to find out where the existing documentation is incorrect, invalid or outdated.
At least the MySQL project offers decent documentation with their project. This book isn't completely necessary. However, there are some projects that don't offer documentation at all, or that which they do offer is severely lacking. The Mozilla project, for instance, does need to publish some sort of a book on embedding Gecko.
Cyric Zndovzny at your service.
Like this book states in its title, it focuses on MySQL. It shouldn't waste pages dealing with general database design, since that's not what it's about. If you're interested in database design, then get a book on that instead.
I wouldn't expect a book about using C++Builder to delve into designing C++ programs using common patterns, for instance. It's supposed to be about C++Builder, rather than designing C++ programs.
Cyric Zndovzny at your service.
Does that book talk about embedding Gecko within programs, or building applications (such as Firefox, Thunderbird, etc.) on top of Gecko? Those are two completely different tasks.
Cyric Zndovzny at your service.
Here's the correct PDF link. I accidently linked to the book on eCos. (Not that it isn't an interesting book...)
Javascript + Nintendo DSi = DSiCade
MySQL is rarely used alone. Frankly, it's probably not a bad idea to show it being integrated with other technologies, especially ones as popular and available as those.
Considering that MySQL is mainly used for web-based tasks, it's most likely a very useful choice for most people who are purchasing the book. It gives them what they want, while also offering examples to those who are using MySQL for non-WWW-related jobs.
Cyric Zndovzny at your service.
Indeed, it is definitive. It is definitive with regards to MySQL. MySQL is an SQL implementation, with its own set of extensions. It is perfectly acceptable for it to be called definitive and only focus on MySQL, just because it is a book about using MySQL. It's not a book about database design, or about the SQL language.
Again, it isn't the "Definitive Guide to SQL" or the "Definitive Guide to Relational Database Design". It's supposed to focus on specifically on MySQL itself, rather than more general SQL and database design issues. You're supposed to get more specific books on those topics if you're truly interested.
I would not expect a book about using C++Builder or Microsoft Visual C++ (two implementations of C++) to spend much time on the C++ language itself. They're books about using the implementation, not about using the language.
Cyric Zndovzny at your service.
With The Definitive Guide to MySQL 5, Michael Kofler masterfully concocts an intelligent and lucid thriller that marries the gusto of an international murder mystery with a collection of fascinating esoteria culled from 2,000 years of Western history.
A murder in the silent after-hour halls of the Louvre museum reveals a sinister plot to uncover a secret that has been protected by a clandestine society since the days of Christ. The victim is a high-ranking agent of this ancient society who, in the moments before his death, manages to leave gruesome clues at the scene that only his granddaughter, noted cryptographer Sophie Neveu, and Robert Langdon, a famed symbologist, can untangle. The duo become both suspects and detectives searching for not only Neveu's grandfather's murderer but also the stunning secret of the ages he was charged to protect. Mere steps ahead of the authorities and the deadly competition, the mystery leads Neveu and Langdon on a breathless flight through France, England, and history itself. Kofler has created a page-turning thriller that also provides an amazing interpretation of Western history. Kofler's hero and heroine embark on a lofty and intriguing exploration of some of Western culture's greatest mysteries--from the nature of the Mona Lisa's smile to the secret of the Holy Grail. Though some will quibble with the veracity of Kofler's conjectures, therein lies the fun. The Definitive Guide to MySQL 5 is an enthralling read that provides rich food for thought.
If a baby duck is a "duckling," why would anyone want to eat "dumplings?"
I'm aware of the ActiveX control, and that is not what I want. I have read the documentation. What is there is significantly incomplete or out of date, or was as of August.
Most of the documentation focuses on using XUL to design Firefox-like applications. It looks like that book focuses on that as well. I was considering embedding Gecko into a proprietary C++ GUI toolkit. I was not interested in designing an XUL application on top of Mozilla. That is why such documentation was useless.
The somewhat relevant documentation and examples are severely lacking. Look at this XPCOM documentation. Many of the links are broken, and much of the content just isn't there.
Cyric Zndovzny at your service.
Paul's book is so superior to any other tripe out there, I'm amazed anyone else even bothers to update their competing offerings.
I truly look forward to his update.
Save yourself SEVENTEEN BUCKS ($17!) by buying the book here: The Definitive Guide to MySQL 5. And if you use the "secret" A9.com discount, you can save an extra 1.57%!
All of the upgrade information I've seen thus far is for 4.1 to 5.0, but what about those of us still using 4.0. Or what about users still using 3.x?
Is there an easy upgrade path for us?
Step Zero: Install FreeBSD.
..
Step One Plus One: Underpants.
Step Three:
Step Two Squared: Profit.
Don't!
Since MySQL 5.0 handles Unicode really well (except for regular expressions), and since PHP has close to zero Unicode support, and since any serious programming uses Unicode today, it's hardly correct to see PHP as the natural companion to MySQL 5.0. Perl and Python and Ruby however have excellent Unicode support.
It will probably be a while before we see decent Unicode support in PHP - I'm very sorry to say.
You can purchase The Definitive Guide to MySQL 5 3rd Edition from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Do you have to put that there? Is this really needed?
DDL causes an automatic commit, so you can't roll it back.
Unfortunately the Marching Morons will win.
Yeah, right.
I bought Paul DuBois' third edition a while ago; read most of it. It's a thorough work, but my main complaint is that it doesn't provide a descent index. Many terms are just missing, or don't refer to the most relevant pages. The kind invitation to send suggestions for improvements to indexes@samspublishing.com isn't really tempting either...
Also, forward references to sections are a hasle as sections lack numbering (granularity is just chapters) and a page number isn't provided either. For a book this big (over 1200 pages) that is a big mistake cos it's bound to be used as a reference manual rather than another nice read.
Also, I took some time to collect typo's and (minor) errors and mailed those to Paul DuBois. I was a bit disappointed by him not responding....
(Notice that my comments are not intended to lift opinions on "The Definitive Guide to MySQL 5". Haven't read that, but from the looks of it, DuBois' book still seems superiour.
No, I mentioned the examples and their horrible quality way back in my original post: "The example programs aren't exactly that good, either. They lack comments that truly describe what is going on, what pitfalls to watch out for, and so on."
I read the book you linked to. It is about creating XUL applications on top of Mozilla. It is not about embedding Mozilla within existing applications. Hence it is useless.
The examples are basically useless to much around with. They are poorly documented, and are meant more as tests than as practical examples.
That newsgroup gets very little activity. I'm not about to waste my time there.
Cyric Zndovzny at your service.