TechBookReport logo

Keywords: Java, JDBC, database, SQL, Perl, Python, PHP

Title: Apache Derby - Off To The Races

Authors: Paul Zikopoulous, Dan Scott, George Baklarz

Publisher: IBM Press

ISBN: 0131855255

Media: Book

Verdict: Recommended


Apache Derby, (AKA IBM Cloudscape, depending on your licensing choices), is a fully featured and open sourced SQL relational database. Coded in Java, Derby can be used as an embedded database engine or as fully networked and multi-user database server. And, less you think that it's just another toy database, it's scalable, rock solid and feature rich. If you're building an application that needs a permanent data store than Derby should definitely be high on your list of contenders. And, if you want help in evaluating or using Derby then there's a lot to commend this as a guidebook.

The opening chapter of the book is a scene-setter. It covers not just the history of Derby (from it's creation by Cloudscape Inc via Informix and then IBM and finally to the Apache Software Foundation), the different licensing options and the relationship between Apache Derby and IBM Cloudscape. There's also a high-level introduction to what it can do, and how it can be used as an embedded application data store or as a standalone networked database server.

Once the product has been introduced the book proceeds to walk-through installation (both on Windows and Linux), for both embedded and server use. There's detailed coverage of the levels of SQL support, the use of transactions, triggers and stored procedures. Security gets a chapter, as do management issues, such as backing up and archiving of data.

The chapters on core functionality are followed by two chapters that look at developing applications. The first covers Java and JDBC, going into plenty of useful detail on transaction handling, building stored procedures and user-defined functions. This is the chapter most likely to provide the highest value to a Java developer wanting to dive into Derby quickly. Non-Java developers are not ignored however, and there's a chapter on using Derby in networked mode with Perl, Python, PHP and via ODBC. This is interesting, because most people associate Derby exclusively with Java. Not only does this chapter show how it can be used with other languages, it also opens the door to more complex applications which can use a mixture of Java-based clients or browser based interfaces with PHP, for example.

The final section of the book builds a complete application using a variety of languages. This is a good idea in theory, but in practice there's lots of repetition and extraneous material. The chapters on Perl, Python and PHP provide quick introductions to these languages before building the sample app. Surely anyone wanting to use Derby and Python would already know Python?

While there's plenty to like in this book, there are some quibbles too. Firstly there's a lot of repetition, the relationship between Apache Derby and IBM Cloudscape is repeated in too many places. In the same way the difference between embedded use and networked use is repeated. It's as though the authors have repeated the material in lots of places under the assumption that readers might chop and change and not read the book sequentially. Secondly the book feels hurried, like it's been finished in a rush. For example in a number of places there is mention of a bundled CD, but there's no CD with the book, instead there's a companion web site.

However, those points aside, this is a handy and useful volume to have around. It's a great introduction to a fantastic piece of software. Recommended.

Hit the 'back' key in your browser to return to subject index page

Return to home page

Contents © TechBookReport 2006. Published January 3 2006