Chapter 8. Database and Data Patterns
Storage is the one constant in
enterprise development. Enterprise systems are, essentially,
information management systems. To the user, the value of these
applications comes from the centralization of information resources,
which allows broader access and more flexible interaction. Of course,
you can maintain an entire information model in memory, but
that's not the best method: if someone trips over
the cord, your business is back to square one. So production
applications implement persistence, storing
information to reliable media.
This chapter focuses on patterns for implementing and optimizing
persistent storage in the business tier. The first section introduces
some basic patterns for accessing persistent resources: the
Data Access Object (DAO)
pattern and the Procedure Access
Object (PAO) pattern.
The rest of the chapter focuses on solving recurring problems in
database-backed applications. Since Java object graphs generally
store relations between objects directly, we need to translate
Java's direct object-to-object relationships into
something that we can store in a database. The solution is a
primary key: a unique identifier associated with
each logical entity in the database, which can be used to represent
the relationships between objects. Since unique primary keys are so
important to the database side of an application, we discuss patterns
for generating and managing them.
As the primary key issue implies, there's no single,
standard way to translate the data in an object model to a set of
database tables (or to get the data from the database back into
objects). So we'll finish the chapter with a look at
a few database-object modeling approaches.
|