Application Database

3 August 2004

I use the term Application Database for a database that is controlled and accessed by a single application, (in contrast to an IntegrationDatabase). Since only a single application accesses the database, the database can be defined specifically to make that one application's needs easy to satisfy. This leads to a more concrete schema that is usually easier to understand and often less complex than that for an IntegrationDatabase.

To share data with other applications the controlling application may provide services. It also may provide a ReportingDatabase for a wider range of read-only use.

One the great advantages of an application database is that it is easier to change since all its use is encapsulated by a single application. Evolutionary database design and database refactoring can be used to make significant changes to an application database's design even after the database is put into production.

An application database schema is usually best designed and controlled by the application team themselves - often by having an experienced database professional as a member of the application team. This database professional needs to work very closely with the rest of the application developers to keep the database close to the needs of the rest of the application.

As people discuss Service Oriented Architecture a common term is that of an autonomous application - which seems to imply an application whose data is stored in an application database.