Data mapper pattern

The interface of an object conforming to this pattern would include functions such as Create, Read, Update, and Delete, that operate on objects that represent domain entity types in a data store.

A Data Mapper, is a Data Access Layer that performs bidirectional transfer of data between a persistent data store (often a relational database) and an in memory data representation (the domain layer). Goal is to keep the in memory representation and the persistent data store independent of each other and the data mapper itself. 

In PHP===> Doctrine2 Object Relational Mapper (ORM) and the Database Abstraction Layer