Abstraction layer for multiple database back-ends