Database abstraction layer

A database abstraction layer is a programming interface, which unifies the connection between a software application and be connected thereto databases. In order to choose an administrator when installing the application from a number of possible database products without the program code must be adapted.

For the various databases and programming environments with time own database interfaces were developed that provide some specific functions of the databases available, partly reflect only syntax variations. By a database abstraction layer syntax differences are compensated for and improves the coding, and thus the maintainability, of the software. It is also ensured by a database abstraction layer, a certain database independence with which the lock-in effect is greatly reduced.

On the other hand, can be used on one Database abstraction layer above the standard (such as SQL) functionality beyond restricted or not. Another disadvantage of a database abstraction layer the extra processing for voice and data conversion is often seen at runtime; other hand, increase opportunities for optimization of the database abstraction layer such as caching, dirty checking, connection pooling or lazy loading performance.

Now available for most programming languages ​​and a number of frameworks database abstraction layers, like for instance:

  • Dbx, PDO and SDO to continue ADOdb for PHP
  • DBI for Perl
  • DBAL for TYPO3
  • Database Server with SAP ERP
  • JDBC and various persistence frameworks such as Hibernate Java, iBATIS or EclipseLink for Java

For the C language and C as the library OpenDBX is offered, which aims to ensure a high access speed while in language and cross-platform database interface ODBC more emphasis is placed on uniform standards and high distribution.

Beyond the Basics of a dba come in object-oriented environments for applications where the API and the mapping of objects makes the possibly divergent, about relational table structure.