Data Access Layer - Provides a layer of abstraction over the access of data from a particular data storage entity (flat-file/database etc.)