Database Management

"Data Access Object - an object-oriented application programming interface used to access MS Access, MS FoxPro, and dBase databases from visual basic programs. DAO provides an optimized interface that exposes the functionality of the Jet Data Engine to programmers. The DAO interface can also be used to access other relations style data sources. "

~Coronel, Carlos, Rob, Peter. Database Systems - Design. Implementation, and Management. 7th. Canada: Thomson, 2007.


Originally called VT Objects, Data Access Objects (DAO 1.0) were created by programmers with Visual C++ and Visual Basic to interface with the Jet Database Engine and ODBCDirect Engine. DAOs were need to create additional functionality for these database management systems. Coupled with remote data objects (RDO), DAOs allow for consistent DBMS functions for all MS applications, by being stored as dynamic-link libraries (DLL). Later in version 3.5, DAO's would directly connect to the ODBC to further open ODBC functionality and use. Unfortunately, Microsoft has decided to disallow using DAOs in further 64-bit operating systems.

Example of Architecture:

(MS Excel)--->(RDO)--->(DAO)--->(ODBC)--->(MS Access)

How DOA works:

When DOA is utilized it creates a "workspace" object. From this workspace object, all database operations are performed. The workspace acts as a session object inside the database engine(Jet database engine or ODBCDirect) and performs database tasks that are requested from applications.


By utilizing DAOs, object persistence and data access logic can be separated from any particular implementation or API, allowing database administrators to perform sweeping changes without requiring any large scale modifications of the database's own logic systems. In this way, a DAO implementation can be considered an API itself, Also, the Data Access Object design pattern helps as an abstraction layer: isolating data storage from the application that utilizes it, This helps to prevent potential errors caused by applications incorrectly modifying the database itself.