---
title: Datenbankabbildung mit Fehlerbehandlung für Datenbankoperationen
date: 2019-06-05
categories:
  - data-integration
  - database
  - database-mapping
tags:
  - data-mapping
  - database-exception-handling
  - database-mapping
  - mapforce
description: Altova MapForce bietet eine Fehlerbehandlung für Datenbanken, um betroffene Daten wiederherzustellen und optional mit der restlichen Datenbanktransformation fortzufahren.
---
Status: #blog

Tags:  #data-mapping #database-exception-handling #database-mapping #mapforce

Categories: [data-integration](/blog/de/category/data-integration.md) | [database + sql](/blog/de/category/database-sql.md) | [data-integration](/blog/de/category/data-integration.md)
# Datenbankabbildung mit Fehlerbehandlung für Datenbankoperationen

Wichtige Geschäftsprozesse sind von zuverlässigen Daten abhängig, und Datenbankadministratoren sowie andere Datenanalysten möchten sicherstellen, dass die Integrität der in Datenbanktabellen gespeicherten Informationen gewährleistet ist. Während automatisierter ETL-Prozessen (Extrahieren, Transformieren, Laden) oder anderen Datenbank-Importaufgaben können ungültige Daten auftreten, die den Erfolg des Vorgangs gefährden. Altova MapForce bietet eine Fehlerbehandlung für Datenbanken, um bei einem Fehler die betroffenen Daten rückgängig zu machen und optional mit dem Rest der Datenbankzuordnung fortzufahren.

Beispielsweise muss ein Fehler in einem einzelnen Datensatz nicht die Fortsetzung einer Datenübertragung verhindern. Dies kann beispielsweise der Fall sein, wenn bestimmte Datenbankbeschränkungen die Übertragung ungültiger Daten verhindern.

![](/blog/images/container_ship5.jpg)

<!--more-->

Die Aktivierung der Fehlerbehandlung für Datenbankoperationen umfasst alle Änderungen an den Datenbankkomponenten innerhalb von Transaktionen, die im Fehlerfall rückgängig gemacht werden können. Benutzer können wählen, ob sie mit dem Rest der Verarbeitung fortfahren oder die weitere Ausführung stoppen möchten. Transaktionen können auf der Ebene der Datenbankkomponente, auf Tabellenebene oder für gespeicherte Prozeduren aktiviert werden.

Die Fehlerbehandlung kann sogar mit der Protokollierung der Datenbankausgabe (Tracing) kombiniert werden, um eine Aufzeichnung der während der automatisierten Verarbeitung auftretenden Fehler zu erstellen.

Schauen wir uns an, wie es funktioniert.

Der Ordner "MapForce Beispiele" enthält eine Datenbankzuordnung und eine SQLite-Datenbank, die die Transaktionsverarbeitung und das Rollback veranschaulichen. Diese Funktionen werden selbstverständlich für [alle gängigen relationalen Datenbanken](https://www.altova.com/de/mapforce#db_mapping) unterstützt, und zwar für typische Aufgaben wie [die Konvertierung von PostgreSQL nach SQLite](https://www.altova.com/de/mapforce/convert-mysql), die Zuordnung von XML zu Microsoft SQL Server, die Umwandlung von JSON nach Access und ähnliches.

[![Beispiel für Datenabbildung zur Veranschaulichung der Fehlerbehandlung in Datenbanken](/blog/images/database-mapping-1.png)](database-mapping-1.png)

Diese Zuordnung kopiert Daten von zwei Datenbanktabellen in neue Tabellen mit einer ähnlichen Struktur, mit einer wichtigen Ausnahme. In der Tabelle "new_addresses" der Zieldatenbank dürfen die Felder "is_shipping" und "is_billing" keine Null-Werte enthalten, während sie in der Tabelle "addresses" der Quelldatenbank Null-Werte zulassen. Das bedeutet, dass während der Ausführung der Zuordnung Fehler auftreten, wenn fehlende Werte gefunden werden.

Wir werden drei Szenarien betrachten, in denen wir verschiedene Optionen zur Fehlerbehandlung in Datenbanken nutzen, um Fehler auf unterschiedliche Weise zu verarbeiten

- Bei einem ersten Fehler alle Änderungen rückgängig machen und die Ausführung des Mapping-Prozesses stoppen

- Rollen Sie nur die Transaktion mit dem Fehler zurück und setzen Sie fort

- Die letzte Transaktion rückgängig machen und fortfahren

### Alle Änderungen rückgängig machen

In der ersten Situation möchten wir die Fehlerbehandlung der Datenbank nutzen, um sicherzustellen, dass die Zieldatenbank vollständig unverändert bleibt, falls während der Ausführung der Zuordnung ein Fehler auftritt. Um diese Option zu implementieren, können wir den Eigenschaften-Dialog für das Ziel-Datenbank-Komponente öffnen und die Transaktionsverarbeitung aktivieren:

[![Beispiel für die Konfiguration von Transaktionen zur Fehlerbehandlung in Datenbanken](/blog/images/transaction-setting-1.png)](transaction-setting-1.png)

Wir können nun die Zuordnung durchführen, indem wir auf die Schaltfläche "Ausgabe" am unteren Rand des Zuordnungsbereichs klicken, um das SQL-Ausführungsskript zu generieren. Anschließend wählen wir im Ausgabemenü oberhalb des Skriptfensters die Option "SQL-Skript ausführen"

[![Beispiel für ein SQL-Skript zur Fehlerbehandlung in Datenbanken](/blog/images/run-SQL-script-1.png)](run-SQL-script-1.png)

Wenn während der Ausführung der erste Fehler auftritt, wird ein Dialogfenster angezeigt, das es uns ermöglicht, die zuvor ausgewählten Transaktionseinstellungen zu bestätigen oder zu überschreiben

[![Bestätigen der Transaktionseinstellungen für die Fehlerbehandlung in der Datenbank](/blog/images/error-message-1.png)](error-message-1.png)

Wir klicken einfach auf "OK", um unsere ursprünglichen Einstellungen zu bestätigen. Die Ausführung der Zuordnung wird gestoppt, und das Nachrichtenfenster beschreibt den Fehler:

[![Das Nachrichtenfenster zeigt den ersten Fehler an, der während der Fehlerbehandlung der Datenbank auftritt](/blog/images/Messages-1.png)](Messages-1.png)

Wir können das integrierte MapForce DB Query-Fenster verwenden, um die Tabellen "new_users" und "new_addresses" anzuzeigen und zu überprüfen. Wir erwarten, dass beide Tabellen leer sind:

[![Eine Datenbankabfrage überprüft, ob eine Transaktion erfolgreich rückgängig gemacht wurde](/blog/images/db-query-1.png)](db-query-1.png)

Dies bestätigt, dass alle Daten, die vor dem Auftreten des Fehlers eingegeben wurden, rückgängig gemacht wurden, d.h. aus der Datenbank entfernt wurden.

Während der automatisierten Ausführung unter der Steuerung von MapForce Server werden die Einstellungen für die Komponenten-Transaktionen ohne Unterbrechung verwendet.

### Eine Transaktion rückgängig machen und fortfahren

Stellen Sie sich einen Fall vor, in dem eine sehr große Datei mit externen Daten in eine Datenbank importiert werden muss, beispielsweise zehntausende Datensätze oder mehr. Wir gehen davon aus, dass die externe Datei korrekt ist, aber falls einige Datensätze fehlerhafte Daten enthalten, möchten wir alle korrekten Datensätze importieren und die Fehler dokumentieren. Dies ist eine Situation der Fehlerbehandlung in der Datenbank (Situation 2 aus der obigen Liste), kombiniert mit [der Datenbankprotokollierung, die in einem früheren Beitrag beschrieben wurde](https://www.altova.com/blog/database-tracing/).

Um diese Option zur Fehlerbehandlung für die Datenbank für die Tabelle "new_addresses" zu aktivieren, klicken wir auf die Schaltfläche "Tabellenaktionen" und wählen folgende Eigenschaften aus:

[![Transaktionseinstellungen für ein Beispiel zur Behandlung von Datenbankausnahmen](/blog/images/table-actions-2.png)](table-actions-2.png)

Jetzt können wir ein neues SQL-Skript generieren und es mit dem gleichen Befehl "SQL-Skript ausführen" ausführen, wie oben gezeigt. Das Nachrichtenfenster wird mehrere Fehler protokollieren. Wir können die SQL-Abfrage im Fenster "Datenbankabfrage" erneut ausführen, um die Daten anzuzeigen, die erfolgreich zugeordnet wurden:

[![SQL-Abfrage und Ergebnisse für ein Beispiel zur Fehlerbehandlung in Datenbanken, das das Zurücksetzen und die Fortsetzung umfasst](/blog/images/db-query-2.png)](db-query-2.png)

Zusätzlich haben wir eine XML-Protokolldatei erstellt. Das Bild unten zeigt eine Teilansicht dieser Datei in XMLSpy [XML-Editor](https://www.altova.com/de/xmlspy-xml-editor) Fenster für einen Fehler, hervorgehoben in Zeile 54:

[![Protokollierung von Fehlern in Protokolldateien während der Fehlerbehandlung in der Datenbank](/blog/images/trace-file.png)](trace-file.png)

Eine Protokolldatei wie diese erleichtert es, selbst unter zehntausenden Datensätzen einige fehlerhafte Einträge zu finden und zu korrigieren!

### Transaktion rückgängig machen und fortfahren

Die Datenbank-Fehlerbehandlungssituation 3 erfüllt diese geschäftliche Anforderung: Wenn das Einfügen einer Adresse fehlschlägt, darf auch der zugehörige Benutzereintrag nicht eingefügt werden, aber der Rest der Zuordnung soll weiterhin verarbeitet werden.

Dieses Beispiel wird detailliert in der Online-Hilfe von MapForce beschrieben, die automatisch mit MapForce installiert wird. Alle hier gezeigten Demo-Dateien sind ebenfalls enthalten. Wir überlassen es Ihnen, dies selbst zu erkunden [Laden Sie eine kostenlose Testversion herunter](https://www.altova.com/de/download) und arbeiten Sie diesen Szenario durch, oder beginnen Sie direkt mit der Implementierung der Fehlerbehandlung für Ihre Datenbanken in Ihren eigenen Datenbankzuordnungen!
