ADO.NET und XML

Veröffentlicht: 30. Mrz 2004 | Aktualisiert: 15. Nov 2004

Von Jürgen Mauerer

ADO.NET ist die Datenbank-Schnittstelle des .NET-Framework. Sie ermöglicht den objektorientierten Zugriff auf relationale Datenbanken und hierarchische XML-Informationen. Dieses Feature zeigt, wie ADO.NET und XML zusammenspielen.

Ein perfektes Duo

ADO.NET ist unter .NET die universelle Programmier-Schnittstelle für Datenbanken. Sie ist objektorientiert, für skalierbare Anwendungen ausgelegt und in zwei Teile gegliedert: Managed Provider und DataSet. Die Managed Provider (auch .NET Data Provider) sind für die Kommunikation mit der Datenquelle zuständig, über sie erfolgt der Zugriff auf die Daten.

Zentrales Element ist das DataSet, das mehrere Tabellen aufnimmt und verknüpft sowie auch hierarchische Beziehungen zwischen den enthaltenen Tabellen herstellen kann. Es entspricht damit einer Mischung aus dem relationalen und dem hierarchischen Datenbank-Modell. Das DataSet arbeitet wie ein Cache-Speicher und schreibt geänderte Daten wieder in die Datenquellen zurück. Das DataSet lässt sich mit Daten von einem verwalteten Provider oder auch direkt aus dem Code heraus füllen - oder auch mit Hilfe eines XmlReaders.

Denn ADO.NET bietet nicht nur die traditionellen tabellarischen Datenansichten aus relationalen Datenquellen, sondern unterstützt auch XML. Da ein DataSet XML lesen und bearbeiten kann, ist das Einlesen von XML-Dateien in eine Datenbank unproblematisch. Relationale Daten lassen sich dadurch auch mit den Möglichkeiten von XML bearbeiten, selbst dann, wenn die Daten hierarchisch sind. Eine Beschränkung auf "flache" XML-Daten wie bei ADO gibt es nicht mehr.

Das DataSet legt beim Laden des XML-Dokuments für jedes Element eine Tabelle an und verknüpft die jeweils untergeordneten Elemente über eine DataRelation. Allerdings darf es nicht zwei gleichnamige Elemente an verschiedenen Stellen im XML-Dokument geben; so darf zum Beispiel <Name> nicht Unterelement von <Person> oder <Firma> sein. Mit Hilfe eines XSD-Schemas (XML Schema Definition) kann man Daten verlustfrei zwischen einem DataSet und einem XML-Dokument hin- und herkonvertieren. Damit ist eine Integration zwischen dem hierarchischen Datenmodell von XML und dem relationalen Datenmodell möglich.

Dank XML ist es auch möglich, Daten via HTTP und SOAP zu transportieren. Ein DataSet kann damit auch Informationen durch eine Firewall schleusen. Dies war beim klassischen ADO, das COM-Marshalling verwendet, nur mit großem Aufwand möglich.

pfeilrechts.gif Merkmale von ADO.NET
pfeilrechts.gif Das ist XML
pfeilrechts.gif Ein ideales Duo: ADO.NET und XML