A data access layer (DAL) is generally considered the main component of the back-end of a computer system or network. It is a layer within a computer program that allows programs to access data and persistent storage. DALs allow running programs to access data anytime it is needed to operate correctly. Applications that make use of DALs leverage a database server, or can operate without one. DALs support several database formats, but must be able to communicate with different data requests within a system.