'Data Access Object' is an object that talks to the underlying database and provides other application components. It serves as a clean, simple and common interface for accessing the data, and for reducing the dependency of other components on the details of using the database