Data access object
(data access object) (DAO) - an object that provides an abstract interface to certain types of databases or persistence mechanisms by implementing certain operations without disclosing the details of the database. It provides mapping from software calls to persistence levels. Such isolation separates data requests in terms of the subject area and their implementation by means of DBMS.
This design pattern can be applied to most programming languages, persistence software types, and most database types, but it is traditionally associated with Java EE applications and relational databases that can be accessed.