487 pgs $34.95
Publisher: O’Reilly & Associates
Authors: Randy Jay Yarger, George Reese, and Tim King
In a Nutshell
- Provides a very good survey of MySQL and mSQL capabilities and limitations
- Useful API, reference, and programming guide
- No CD-ROM as we’ve grown to expect
Reportedly, almost a million copies of the Open Source MySQL and mSQL code have been downloaded since the product’s initial release in 1994. Many megabytes of online documentation have also been downloaded in that time. However, the relationship between MySQL and the earlier mSQL has always been a bit fuzzy. One may be appropriate for a given task, while the other would be useful in different circumstances.
How can a developer know which is best? Experience is a useful guide; diving into a new development project and picking the wrong code is a great way to build up thick skin, but not a method we recommend.
Compare and Contrast
It is clear that the authors aimed MySQL & mSQL squarely at helping developers avoid making the wrong choices by defining their differences and providing example code and Reference API chapters in C, C++, Perl, Python, and Java (with JDBC). Having several reference manuals in a single volume lets multi-linguists reach for only one book — resulting in savings in both time and effort. Comparisons between the languages are inevitable and bound to instigate “my language can beat up your language” arguments for years to come; this probably was not the authors’ intent.
The book is designed for both data-base pros and newbies. The authors make some interesting points regarding relational database design and a good case for SQL itself. Further, they explain a number of utilities (and give usage examples) available for adding SQL database query and access capabilities to Web pages in a subtle way; you will be adding them to a Web page before you know it.
The inclusion of a useful chapter on CGI Programming, zeroing in on Apache servers with Perl (and full of HTML examples that have important HTTP considerations), makes perfect sense in what is primarily a database API book.
Interesting consideration is given to database administration — specifically to database security access through the user db — and host tables, as well as utilities that provide easier and more consistent access to them.
There’s information given on utilities and tools popular with MySQL and mSQL users, including goodies such as dbf2mysql (for translating dBase files into MySQL databases or the bi-directional export/import sql tools for Microsoft Access database usage). Various programming interfaces, such as ones for giving Python script access to mySQL databases and Java JDBC access, are covered in the book as well.
MySQL is not a full SQL. It lacks what many consider to be key parts of SQL, Transactions and Stored Procedures, for the sake of smaller and faster executables, for example. However, the authors address these omissions in the book and make reasonable justification for their absence, describing some added functionality available, much of it in line with the ANSI SQL standard.
MySQL & mSQL mentions additions expected in future releases — additions that become more likely as the cost of computing power decreases.
This book does a great job of illustrating what MySQL and mSQL have to offer database newbies and old-timers alike.