Data Access Object(DAO)とは、ある種のデータベースや永続性機構の抽象化されたインタフェースを提供するオブジェクトであり、データベースの詳細を開示することなく特定の操作を提供する。 なお、マイクロソフトのライブラリであるData Access Objectsとは直接の関係はない。 Data Access Objectは問題を、ドメイン固有のオブジェクトとデータ型を使ってアプリケーションにどのようなデータアクセスが必要であるかという点(DAOの公開インタフェース)と、それらのニーズを特定のDBMSやデータベーススキーマでどのように満足するかという点(DAOの実装)に分離する。 このデザインパターンは多くのプログラミング言語で利用可能であり、多くの永続性を必要とするアプリケーションや多くのデータベースで利用可能である。しかし、サン・マイクロシステムズのベストプラクティスガイ