for example, such as social security numbers and credit card numbers—must be
protected with even higher levels of security such as strong encryption. Most com-
mercial-quality relational databases include advanced security features that allow
for fine-grained security as well as data encryption. Each database will have
unique security requirements. It's important to understand them, as the applica-
tion code must not weaken the security policy of the database.
Different databases will have different levels of integrity, performance, and
security. Generally the size of the database, the value of the data, and the number
of dependents will determine these levels. In the next section we'll explore differ-
ent database types.
1.3 Working with different database types
Not every database is so complex that it requires an expensive database manage-
ment system and enterprise class hardware. Some databases are small enough to
run on an old desktop machine hidden in a closet. All databases are different.
They have different requirements and different challenges. i BATIS will help you
work with almost any relational database, but it is always important to understand
the type of database you're working with.
Databases are classified more by their relationships with other systems than by
their design or size. However, the design and size of a database can often be
driven by its relationships. Another factor that will affect the design and size of a
database is the age of the database. As time passes, databases tend to change in dif-
ferent ways, and often the way that these changes are applied are less than ideal.
In this section, we'll talk about four types of databases: application, enterprise,
proprietary, and legacy.
Application databases are generally the smallest, simplest, and easiest databases to
work with. These databases are usually the ones that we developers don't mind
working with, or perhaps even like working with. Application databases are usually
designed and implemented alongside the application as part of the same project.
For this reason, there is generally more freedom in terms of design and are there-
fore more capable of making the design right for our particular application. There
is minimal external influence in an application database, and there are usually
only one or two interfaces. The first interface will be to the application, and the
second might just be a simple reporting framework or tool like Crystal Reports.
Figure 1.4 shows an application database and its relationships at a very high level.