||It has been suggested that this article be merged into Embedded database. (Discuss) Proposed since March 2013.|
A back-end database is a database that is accessed by users indirectly through an external application rather than by application programming stored within the database itself or by low level manipulation of the data (e.g. through SQL commands).
Small database systems
The term back-end database is most widely used among developers using small database programming systems which can contain the end-user application programming within the database as a single item. The most common of these is Microsoft Access.
The developer must decide whether to include the application programming with the data in a single database, or whether to separate them into two database files, according to the client–server model.
For more advanced database applications it is common to split the data and the programming parts into a front-end database and a back-end database where the front-end holds all the application programming. This has advantages in terms of scalability, performance and concurrency but requires greater effort on the part of the developer. In the long term it may be easier to maintain and upgrade as new versions of the front-end can be deployed independently of the back-end database. The front and back-end databases do not always have to be of the same types. For example, it is possible to use a Microsoft Access front-end with a Microsoft SQL Server back-end.
It is common for developers to find that an existing database application has grown in complexity or usage to the point where it would have been better to have used separate front and back-end databases. Microsoft Access provides a Database Splitter Wizard to ease the process of splitting Access databases.
Enterprise database systems
The term back-end database is not widely used among developers using larger or enterprise database systems. This is because enterprise database systems enforce the use of the client–server model and do not have the option to include the application programming within their databases. All such databases are used as back-end databases and so the term is redundant.