Zum Inhalt springen

6. Integration von Informationssystemen

Zu Zen-Modus wechseln

Daten liegen selten in einem einzigen System. Ein Betrieb hat eine Warenwirtschaft, eine Tabellenkalkulation, eine Webanwendung, dazu Schnittstellen zu Lieferanten und Ämtern. Damit diese Systeme zusammenspielen, müssen Daten zwischen ihnen ausgetauscht, umgewandelt und dargestellt werden. Das ist der Kern der Integration von Informationssystemen und der Abschluss dieses Jahrgangs.

Dieses Kapitel bündelt vieles aus dem Jahr: die Formate aus Kapitel 5, das analytische Denken aus OLAP & Data Warehousing und die Schnittstellen aus der 4. Klasse. Am Ende steht die Frage, wie aus verteilten Rohdaten eine nutzbare Aussage wird.

Historisch wächst jede Organisation zu einer Landschaft aus Insellösungen: Jede Abteilung schafft sich das System an, das ihr Problem löst. Der Vertrieb pflegt Kundendaten in einem System, die Buchhaltung in einem anderen, die Produktion in einem dritten. Dieselbe Kundin steht dann dreimal in leicht abweichender Form da.

Integration bekämpft die Folgen dieser Zersplitterung:

  • Redundanz — dieselben Daten mehrfach gepflegt, mit dem ständigen Risiko, dass sie auseinanderlaufen.
  • Medienbrüche — Daten werden von Hand aus einem System ins nächste übertragen (abgetippt), langsam und fehleranfällig.
  • Kein Gesamtbild — Fragen, die mehrere Systeme betreffen („Welche Region ist am profitabelsten?”), lassen sich nicht beantworten, solange die Daten getrennt bleiben.

Ziel ist ein konsistenter, gemeinsam nutzbarer Datenbestand, ohne dass jedes System sein eigenes aufgibt.

Wie Daten von A nach B kommen, lässt sich grob in drei Muster einteilen:

WegPrinzipWann sinnvoll
DateiaustauschEin System exportiert eine Datei, ein anderes importiert sieeinfacher, zeitversetzter Austausch (nächtlicher Export)
Schnittstelle (API)Systeme fragen sich gegenseitig live über das Netzwerk abaktuelle Daten, Kommunikation zwischen Anwendungen
Gemeinsame DatenbankMehrere Anwendungen greifen auf denselben Datenspeicher zueng gekoppelte Systeme unter einer Kontrolle

Quer dazu steht die Frage nach dem Zeitverhalten:

  • Batch (Stapelverarbeitung): Daten werden gesammelt und in Blöcken übertragen, etwa jede Nacht. Einfach und robust, aber die Daten sind nie ganz aktuell.
  • Echtzeit (real-time / streaming): Jede Änderung wird sofort weitergegeben. Aktuell, aber aufwendiger und störanfälliger.

Der klassische Weg läuft über Dateien in einem gemeinsamen Format. Ein System exportiert seine Daten, ein anderes importiert sie. Die verbreitetsten Formate:

  • CSV: einfache Tabellen als Textzeilen mit Trennzeichen. Von praktisch jedem System lesbar, aber ohne Typen und ohne Struktur über die Tabelle hinaus.
  • JSON / XML: semistrukturierte Formate (siehe Kapitel 5) für verschachtelte Daten und den Austausch mit Web-Schnittstellen.
  • SQL-Dump: eine Datei aus INSERT-Anweisungen (und dem Schema), mit der sich eine Datenbank in einer anderen Datenbank desselben Typs wiederherstellen lässt.

In der Praxis exportiert man etwa aus PostgreSQL eine Tabelle als CSV und liest sie anderswo wieder ein:

-- Write a table to a CSV file, first row as header
COPY kunden TO '/tmp/kunden.csv' WITH (FORMAT csv, HEADER);
-- Export only a selection via a query
COPY (SELECT id, name, ort FROM kunden WHERE aktiv)
TO '/tmp/aktive_kunden.csv' WITH (FORMAT csv, HEADER);

Ein SQL-Dump entsteht auf der Kommandozeile und eignet sich für vollständige Sicherungen oder Umzüge:

Terminal-Fenster
# Export the whole database into a portable SQL script
pg_dump meine_db > backup.sql
# Restore it into another database of the same type
psql neue_db < backup.sql

Zwei Systeme sprechen selten dasselbe Format. Bei der Konvertierung wandelt man Daten von einer Form in eine andere um, ohne ihre Bedeutung zu verändern. Typische Fälle:

  • Format wechseln: CSV nach JSON, XML nach CSV, JSON nach SQL.
  • Werte vereinheitlichen: Datumsformate, Einheiten (kg vs. g), Währungen, Ländercodes (Österreich vs. AT).
  • Struktur anpassen: verschachteltes JSON in flache Tabellenzeilen „ausrollen” oder umgekehrt aus flachen Zeilen verschachtelte Objekte bauen.

Für strukturierte Formate gibt es eigene Werkzeuge: XSLT wandelt XML in andere XML- oder Textformate um, jq verarbeitet JSON (beide aus Kapitel 5). Oft schreibt man aber einfach ein kleines Skript, das die Quelldatei liest, die Werte anpasst und im Zielformat wieder ausgibt. In Python etwa der Weg von JSON zu CSV:

import json, csv
# 1. Read (extract) the source
with open("bestellungen.json", encoding="utf-8") as f:
orders = json.load(f)
# 2. Convert (transform): flatten and normalize each record
rows = []
for o in orders:
rows.append({
"id": o["id"],
"datum": o["created_at"][:10], # ISO timestamp -> just the date
"kunde": o["customer"]["name"], # pull a value out of a nested object
"betrag": round(o["amount_cents"] / 100, 2) # cents -> euro
})
# 3. Write (load) the target
with open("bestellungen.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["id", "datum", "kunde", "betrag"])
writer.writeheader()
writer.writerows(rows)

Man erkennt darin dieselben drei Schritte wie bei ETL: lesen, umwandeln, schreiben.

Der modernere Weg verzichtet auf Zwischendateien: Systeme fragen sich direkt über das Netzwerk ab. Die verbreitetste Form ist die Web-API, meist als REST über HTTP. Ein System (der Client) schickt eine Anfrage, ein anderes (der Server) antwortet — üblicherweise mit JSON.

GET /api/kunden/42 HTTP/1.1
Host: warenwirtschaft.example.at
Accept: application/json
{
"id": 42,
"name": "Andrea Hofer",
"ort": "Villach",
"umsatz": 12500.00
}

Die HTTP-Methode sagt, was geschehen soll — GET (lesen), POST (anlegen), PUT/PATCH (ändern), DELETE (löschen). Das entspricht genau den CRUD-Operationen aus dem Datenbankumfeld. So kann ein System die Daten eines anderen abrufen, ohne dessen Datenbank direkt zu kennen — die API ist ein klar definierter Vertrag zwischen beiden.

Zwischen den Systemen entstehen fast immer Qualitätsprobleme, die vor der Weiterverarbeitung behoben werden müssen — sonst gilt: „garbage in, garbage out”. Typische Fälle und ihre Behandlung:

ProblemBeispielGegenmittel
DublettenKundin steht doppelt drinnach Schlüssel/Ähnlichkeit zusammenführen
Fehlende Wertekein Ort angegebenStandardwert, Nachfrage oder Datensatz verwerfen
Uneinheitliche FormateAT, Österreich, Austriaauf eine Schreibweise normalisieren
Ungültige Wertenegativer Preis, Datum in der Zukunftgegen ein Schema prüfen (Kapitel 5)

Deshalb wird ein importiertes Dokument immer erst validiert, dann verarbeitet. Dafür sind XSD und JSON Schema aus dem vorigen Kapitel da: Sie fangen strukturell falsche Daten an der Grenze ab, bevor sie sich im Zielsystem ausbreiten.

Am Ende der Integration steht die Frage, was die Daten eigentlich aussagen. Rohe Zahlen in einer Tabelle beantworten keine Frage; erst eine passende Darstellung macht Zusammenhänge sichtbar.

  • Tabellen eignen sich, wenn es auf einzelne, genaue Werte ankommt.
  • Diagramme zeigen Zusammenhänge — die Wahl des Typs folgt der Frage:
DiagrammGut fürBeispiel
LinieVerlauf über die ZeitUmsatz pro Monat
BalkenVergleich von KategorienUmsatz je Region
KreisAnteile an einem Ganzen (sparsam!)Marktanteile
StreuungZusammenhang zweier GrößenPreis vs. Absatz
  • Kennzahlen (KPIs) verdichten viele Daten zu einer Aussage, etwa Umsatz pro Monat, Zahl aktiver Nutzer oder durchschnittliche Bearbeitungsdauer. Ein Dashboard fasst mehrere solcher Kennzahlen und Diagramme auf einen Blick zusammen.

Zum Interpretieren gehört, kritisch zu bleiben. Dieselben Daten lassen sich so darstellen, dass sie gegensätzliche Eindrücke erzeugen:

  • eine abgeschnittene Achse, die kleine Unterschiede dramatisch wirken lässt,
  • eine verzerrte Skala oder ungleiche Klassenbreiten,
  • herausgepickte Zeiträume (cherry picking), die einen Trend vortäuschen,
  • fehlender Bezug — absolute Zahlen ohne Grundgesamtheit.

Eine sachlich korrekte Darstellung soll die Daten klären, nicht ein gewünschtes Ergebnis nahelegen.

Werkzeuge zur Darstellung reichen von der Tabellenkalkulation bis zu spezialisierten BI-Werkzeugen (Business Intelligence) wie Power BI, Tableau oder Metabase, die sich über Schnittstellen (siehe Datenbank-Schnittstellen der 4. Klasse) direkt an die Datenquellen anbinden.

Ein fachbezogenes Beispiel bindet die Themen zusammen. Ein Handelsbetrieb betreibt mehrere Quellsysteme — darunter ein ERP für Bestellungen und Lagerbestände und ein CRM für die Kundenpflege — und will daraus einen wöchentlichen Vertriebsbericht gewinnen:

  1. Die Webanwendung und das ERP exportieren ihre Bestellungen nächtlich als JSON bzw. stellen sie über eine API bereit.

  2. Ein Skript konvertiert die Daten in flache CSV-Zeilen und vereinheitlicht dabei Datumsformate und Währungen (der Transform-Schritt oben).

  3. Vor dem Laden werden die Daten validiert und bereinigt — Dubletten entfernt, fehlende Orte ergänzt, Ländercodes normalisiert.

  4. Die bereinigten Daten werden in eine analytische Datenbank importiert und dort mit dem Kundenstamm aus dem CRM verknüpft.

  5. Ein Dashboard stellt Umsatz je Region und Monat dar, aus dem das Management abliest, welche Region wächst.

Genau diese Kette — vom Quellsystem über Austauschformate und Konvertierung bis zur Darstellung — ist der Alltag der Integration von Informationssystemen.

  • Organisationen bestehen aus vielen Insellösungen; Integration bekämpft Redundanz, Medienbrüche und das fehlende Gesamtbild.
  • Daten wandern über Dateiaustausch, APIs oder eine gemeinsame Datenbank — als Batch (zeitversetzt) oder in Echtzeit; ETL ist der strukturierte Ablauf aus Extract, Transform, Load.
  • Systeme tauschen Daten über gemeinsame Formate aus: CSV, JSON/XML und SQL-Dumps; COPY importiert/exportiert in PostgreSQL, pg_dump sichert ganze Datenbanken.
  • CSV ist verbreitet, aber tückisch (Trennzeichen, Kodierung, Datumsformate).
  • Bei der Konvertierung wird die Form geändert, nicht die Bedeutung; portable Formate sind unabhängig von einem einzelnen Programm und damit archivierbar.
  • APIs (meist REST über HTTP mit JSON) liefern aktuelle Daten und entkoppeln die Systeme über einen klaren Vertrag.
  • Datenqualität (Dubletten, fehlende/ungültige Werte) wird an der Grenze geprüft: erst validieren, dann verarbeiten.
  • Erst die passende Darstellung (Tabelle, Diagramm, KPI, Dashboard) macht Daten aussagekräftig; dabei kommt es auf eine sachlich korrekte, nicht irreführende Aufbereitung an.
  • Ein typischer Ablauf verbindet Export, Konvertierung, Bereinigung, Import und Darstellung zu einer durchgängigen Kette — ERP/CRM treten dabei nur als Quellsysteme (Anwendungsbeispiel) auf.