- Save 10% on selected children’s books, compliments of Amazon Family Promotion exclusive for Prime members .
Java Database Best Practices Paperback – 24 May 2003
|New from||Used from|
- Choose from over 13,000 locations across the UK
- Prime members get unlimited deliveries at no additional cost
- Find your preferred location and add it to your address book
- Dispatch to this address when you check out
Special offers and product promotions
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
If you are a seller for this product, would you like to suggest updates through seller support?
About the Author
George Reese has taken an unusual path into business software development. After earning a B.A. in philosophy from Bates College in Lewiston, Maine, George went off to Hollywood where he worked on television shows such as "The People's Court" and ESPN's "Up Close". The L.A. riots convinced him to return to Maine where he finally became involved with software development and the Internet. George has since specialized in the development of Internet-oriented Java enterprise systems and the strategic role of technology in business processes. He is the author of Database Programming with JDBC and Java, 2nd Edition and the world's first JDBC driver, the mSQL-JDBC driver for mSQL. He currently lives in Minneapolis, Minnesota with his wife Monique and three cats, Misty, Gypsy, and Tia. He makes a living as the National Practice Director of Technology Strategy for digital@jwt in Minneapolis.
Excerpt. © Reprinted by permission. All rights reserved.
Chapter 2 - Relational Data Architecture
Good sense is the most evenly shared thing in the world, for each of us thinks that he is so well endowed with it that even those who are the hardest to please in all other respects are not in the habit of wanting more than they have. It is unlikely that everyone is mistaken in this. It indicates rather that the capacity to judge correctly and to distinguish true from false, which is properly what one calls common sense or reason, is naturally equal in all men, and consequently the diversity in our opinions does not spring from some of us being more able to reason than others, but only from our conducting our thoughts along different lines and not examining the same things.
Discourse on the Method
Database programming begins with the database. A well-performing, scalable database application depends heavily on proper database design. Just about every time I have encountered a problematic database application, a large part of the problem sat in the underlying data model. Before you worry too much about writing Java code, it is important to lay the proper foundation for that Java code in the database.
Relational data architecture is the discipline of structuring databases to serve application needs while remaining scalable to future demands and usage patterns. It is a complex discipline well beyond the scope of any single chapter. We will focus instead on the core data architecture needs of Java applicationsfrom basic data normalization to object-relational mapping.
Though knowledge of SQL (Structured Query Language) is not a requirement for this chapter, I use it to illustrate some concepts. I provide a SQL tutorial in the tutorial section of the book should you want to dive into SQL now. You will definitely need it as we get further into database programming.
Before we approach the details of relational data architecture, it helps to establish a base understanding of relational concepts. If you are an experienced database programmer, you will probably want to move on to the next section on normalization. In this section, we will review the key concepts behind relational databases critical to an in-depth understanding of relational data architecture.
The Relational Model
A database is any collection of related data. The files on your hard drive and the piles of paper on your desk all count as databases. What distinguishes a relational database from other kinds of databases is the mechanism by which the database is organized the way the data is modeled. A relational database is a collection of data organized in accordance with the relational model to suit a specific purpose.
Relational principles are based on the mathematical concepts developed by Dr. E. F. Codd that dictate how data can be structured to define data relationships in an efficient manner. The focus of the relational model is thus the data relationships. In short, by organizing your data according to the relational model as opposed to the hierarchical principles of your filesystem or the random mess of your desktop, you can find your data at a later date much easier than you would have had you stored it some other way. A relationship in relational parlance is a table with columns and rows.* A row in the database represents an instance of the relation. Conceptually, you can picture a table as a spreadsheet. Rows in the spreadsheet are analogous to rows in a table, and the spreadsheet columns are analogous to table attributes. The job of the relational data architect is to fit the data for a specific problem domain into this relational model.
Most helpful customer reviews on Amazon.com
I develop standalone client/server type database applications more than anything else. I very rarely touch an application server. And unfortunately, only 2 or 3 chapters in this book were useful to me. Everything else was application server specific.
If you're doing straight JDBC development, skip this book and go for a pure JDBC book, as you'll not really get anything new or useful here. If you develop web applications, this book is definitely right up your alley.
Have you ever been caught up in the alphabet soup of Java database programming APIs? Have you ever questioned which approach might be best suited for your particular application? Sure you pride yourself on your skills in crafting some pretty mean EJBs, but is that the best path to head down with your latest project? O'Reilly's new book "Java Database Best Practices" attempts to answer these questions and more.
For such a relatively thin book (267pp), it touches on a wealth of topics vital to the subject at hand. Reese lends his insights concerning database architectures, database design, transaction management, and persistence methods using JDBC, EJB, and JDO. While this isn't intended to be an introductory tome, you are also not expected to be proficient with all these APIs. As such, the latter third of the book contains tutorials on relevant J2EE APIs, JDBC, JDO, and SQL.
Reese does not exhaustively go into detail on every topic, each of which could probably warrant its own book. Rather he arms us with just enough information to make informed decisions about which method might best serve our applications. Aside from merely determining which set of APIs might be best suited in a given situation, Reese also points out several "best practices" to help guide us in design and implementation (for example, "use join tables to model many-to-many relationships").
I do have a couple of small complaints about the book. For one, "best practices" are highlighted throughout the text, but they are not enumerated or indexed in any manner. An enumerated list of these "best practices" would be welcome. Secondly, MVC purists will likely cringe at the JSP examples. While the architecture shown (JSPs as view and control, database access through taglibs) may be valid for small web applications, I don't feel it should be highlighted as a "best practice", particularly for enterprise applications. None of these complaints are major however, and do not overly detract from the value of the book.
"Java Database Best Practices" accomplishes what it sets out to do. This is a book that might be handy to have to pass around your development team in the design phase to get you all on the same page when making some critical choices. This book could also well serve those, such as managers perhaps, seeking a broad survey of Java database programming. I also feel that this book would make an excellent companion text for a college database programming course using Java. While "Java Database Best Practices" won't make you an expert with all of these APIs, it will certainly point you in the right direction.
Overall, though, I think the book has useful content, and I learned some neat stuff from it. I'm hoping that another, more carefully written and reviewed edition gets published.
There is a review and brief comparison of different approaches but by no means an in-depth account for each.
Still searching for that perfect book...