Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Data Access Object

Data Access Object (DAO, englisch für Datenzugriffsobjekt) ist ein Entwurfsmuster, das den Zugriff auf unterschiedliche Arten von Datenquellen (z.

Inhalt4 Abschnitte
  1. 1. Grundidee
  2. 2. Eigenschaften und Abgrenzung
  3. 3. Zusammenarbeit mit Transferobjekten
  4. 4. Anwendungsbeispiele

Grundidee

Ein Data Access Object (DAO, englisch für Datenzugriffsobjekt) ist ein Entwurfsmuster für Software. Es kapselt den Zugriff auf verschiedene Datenquellen, zum Beispiel Datenbanken oder Dateisysteme. Das bedeutet: Der Programmteil, der Daten braucht, spricht nicht direkt mit der konkreten Datenquelle, sondern mit einer festgelegten Schnittstelle.

Der Zweck ist, die eigentliche Programmlogik von technischen Details der Datenspeicherung zu trennen. Wenn die Datenquelle ausgetauscht wird, soll der aufrufende Code möglichst unverändert bleiben. DAO ist damit ein Muster zur Gestaltung von Programmierschnittstellen, also APIs. Wenn eine Programmiersprache keine Trennung zwischen Schnittstellendefinition und Implementierung erlaubt, muss ein DAO die definierte Schnittstelle unmittelbar implementieren.

Eigenschaften und Abgrenzung

DAOs abstrahieren den Zugriff auf Datenbanken nicht vollständig. Sie sind nicht dafür verantwortlich, Daten in die Struktur der Datenbank umzuwandeln.

Ein DAO ist jeweils für ein bestimmtes Speichermedium optimiert. Der Zugriff auf dieses Medium erfolgt über das API, das vom DAO vorgegeben ist oder implementiert werden muss.

Ein wichtiges Ziel ist, den Portierungsaufwand einer Anwendung zu minimieren, wenn das Speichermedium gewechselt wird. Portierung bedeutet hier, eine Anwendung an eine andere technische Umgebung oder Datenquelle anzupassen.

Zusammenarbeit mit Transferobjekten

Eng verwandt mit dem Data Access Object ist das Entwurfsmuster Transferobjekt. Ein Transferobjekt übernimmt zusammen mit dem DAO die Transformation der Daten aus der Datenquelle in die Form, die die Anwendung benötigt.

Bei der objektrelationalen Abbildung werden objektorientierte Daten in eine relationale Form transformiert. Relational bedeutet hier, dass Daten typischerweise in Tabellenstrukturen einer relationalen Datenbank dargestellt werden.

Anwendungsbeispiele

Das DAO-Muster kommt auch im Umfeld von Jakarta EE vor.

Apple liefert ein ähnliches Konzept mit dem Namen Enterprise Objects im Rahmen von WebObjects.

Weiterlesen