Database teams are often difficult to work with. The primary reason is that they
are under enormous pressure and are often dealing with more than one project.
They often deal with multiple and sometimes even conflicting requirements.
Administration of database systems can be difficult and many companies consider
it a mission-critical responsibility. When an enterprise database system fails, corpo-
rate executives will know about it. For this reason, database administration teams
are cautious. Change control processes are often much stricter for database sys-
tems than they are for application code. Some changes to a database might
require data migration. Other changes may require significant testing to ensure
that they don't impact performance. Database teams have good reasons for being
difficult to work with, and therefore it's nice to be able to help them out a bit.
i BATIS allows a lot of flexibility when it comes to database design and interac-
tion. DBA s like to be able to see the SQL that is being run and can also help tune
complex queries, and i BATIS allows them to do that. Some teams that use i BATIS
even have a DBA or data modeler maintain the i BATIS SQL files directly. Database
administrators and SQL programmers will have no problem understanding i BA-
TIS , as there is no magic happening in the background and they can see the SQL .
Access by multiple disparate systems
A database of any importance will no doubt have more than one dependent. Even
if it is simply two small web applications sharing a single database, there will be a
number of things to consider. Imagine a web application called Web Shopping Cart,
which uses a database that contains Category codes. As far as Web Shopping Cart is
concerned, Category codes are static and never change, so the application caches
the codes to improve performance. Now imagine that a second web application
called Web Admin is written to update Category codes. The Web Admin application
is a separate program running on a different server. When Web Admin updates a
category code, how does Web Shopping Cart know when to flush its cache of Cat-
egory codes? This is a simple example of what is sometimes a complex problem.
Different systems might access and use the database in different ways. One
application might be a web-based e-commerce system that performs a lot of data-
base updates and data creation. Another might be a scheduled batch job for load-
ing data from a third-party interface that requires exclusive access to the database
tables. Still another might be a reporting engine that constantly stresses the data-
base with complex queries. One can easily imagine the complexity that is possible.
The important point is that as soon as a database is accessed by more than one
system, the situation heats up. i BATIS can help in a number of ways. First of all,
i BATIS is a persistence framework that is useful for all types of systems, including