Database abstraction layer

The external level is exposed to users and developers and supplies a consistent pattern for performing database operations.

Every database should be treated equally at this level with no apparent difference despite varying physical data types and operations.

Libraries unify access to databases by providing a single low-level programming interface to the application developer.

Their advantages are most often speed and flexibility because they are not tied to a specific query language (subset) and only have to implement a thin layer to reach their goal.

As all SQL dialects are similar to one another, application developers can use all the language features, possibly providing configurable elements for database-specific cases, such as typically user-IDs and credentials.

The downside of this abstraction level is the increased overhead to transform statements into constructs understood by the target database.