A database abstraction layer that prevents coding to a specific implementation.