---
title: Datenzuordnung für binäre Objekte
date: 2020-10-21
categories:
  - data-integration
  - database-mapping
  - sql
  - tools
tags:
  - binary-objects
  - data-mapping
description: Altova MapForce, das preisgekrönte Tool zur Datenabbildung, bietet Funktionen, mit denen sich Binärdaten mühelos mit allen gängigen relationalen Datenbanken verknüpfen lassen.
---
Status: #blog

Tags:  #binary-objects #data-mapping

Categories: [data-integration](/blog/de/category/data-integration.md) | [database + sql](/blog/de/category/database-sql.md) 
# Datenzuordnung für binäre Objekte

Binäre Objekte sind in Datenbanken schwer zu verwalten. Sie sind groß, ihr Inhalt ist für Menschen nicht lesbar, und sie können Bytes enthalten, die leicht als Steuerzeichen fehlinterpretiert werden können. Selbst der Begriff für große binäre Objekte – BLOB – spiegelt die Ablehnung wider, die viele Datenbankmanagementsysteme gegenüber ihnen haben. Vor der Einführung relationaler Datenbanken wurde ein BLOB als „etwas Unbestimmtes oder Formloses“ definiert

Altova MapForce, das preisgekrönte, [grafische Werkzeug zur Datenzuordnung für die Konvertierung und Integration von Daten in beliebigen Formaten](https://www.altova.com/de/mapforce), bietet Funktionen zur einfachen Zuordnung von Binärdaten zu oder von allen gängigen relationalen Datenbanken. Daten wie Bilder, PDF-Dateien, Videodateien oder andere Binärdaten können zugeordnet werden. Betrachten wir ein Beispiel.

![](/blog/images/blob-insertion.png)

<!--more-->

MapForce enthält zwei integrierte Funktionen, "read-binary-file" (binäre Datei lesen) und "write-binary-file" (binäre Datei schreiben), für die Abbildung zwischen binären Objekten und Datenbanken. In diesem Artikel erweitern wir ein Beispiel für die Funktion "read-binary-file" aus der Online-Hilfe von MapForce, um eine vollständige Abbildung zu erstellen, mit der verschiedene binäre Objekte in eine relationale Datenbank eingefügt werden können.

Hier ist ein Beispiel aus der Hilfedokumentation, das veranschaulicht, wie man ein Bild in eine Datenbank einfügt:

[![Beispiel für die Online-Hilfe zur binären Dateiabbildung](/blog/images/help-ex-1.png)](help-ex-1.png)

Diese Zuordnung fügt die lokale Datei mit dem Namen "image01.png" in eine Datenbanktabelle ein. Wir können sehen, dass die Datenbank so strukturiert ist, dass sie Metadaten über das Bild in separaten Spalten enthält, die abgefragt werden können, um dasselbe Bild abzurufen. Man möchte große Binärdaten nicht einfach in die Datenbank schreiben, ohne eine Möglichkeit, sie später wiederzufinden!

Für unseren Anwendungsfall erstellen wir eine SQLite-Datenbank, um verschiedene Binärdateien zu verwalten, die als Ressourcen für mehrere Produkte einer Marketingabteilung dienen. Diese Binärdaten können beispielsweise Logobilder, PDF-Dateien für Produktdatenblätter, Screenshots des Produkts in Aktion, Fotos, Videodateien usw. sein.

Wir beginnen mit einer einfachen CSV-Textdatei, um die Informationen zu beschreiben, die wir einfügen möchten:

[![CSV-Modell für den Datenbank-Upload](/blog/images/csv-model.png)](csv-model.png)

Wenn wir dieses Projekt abschließen, könnten Benutzer bereits Dutzende oder sogar Hunderte von Objekten in der Datenbank haben. Wenn wir später ein Objekt abrufen müssen, werden die Namen der Objekttypen entscheidende Metadaten für die Abfragen sein. Wenn jedoch ein einzelner Eintrag in der Spalte "Objekttyp" falsch geschrieben oder inkonsistent ist, wird ein großes Binärobjekt verwaist und kann nicht wiederhergestellt werden.

Wir können eine Liste von Asset-Typen erzwingen, indem wir die CSV-Datei in XMLSpy importieren und ein XML-Schema erstellen, bei dem das Element "Type" aus einer vordefinierten Liste ausgewählt wird. Anschließend kann ein unerfahrener Marketing-Praktikant eine Liste von Assets in der [XMLSpy-Tabellenansicht](https://www.altova.com/de/xmlspy-xml-editor) erstellen. Das Feld "Typ" wird dabei durch die vordefinierte Liste eingeschränkt

[![Modell zum Hochladen von Datenbanken in der XMLSpy-Tabellenansicht.](/blog/images/grid-view-1.png)](grid-view-1.png)

Wir könnten auch eine Liste von Produktnamen zum XML-Schema hinzufügen, oder zumindest sicherstellen, dass das Element "Produkt" vorhanden ist. Wir könnten sogar den Datentyp für das Element "Asset" auf `xs:anyURI` setzen, um eine Referenz zu einer Datei zu erzwingen. Hier ist das Hilfefenster "Details" in der XMLSpy-Schemaansicht mit der Datentyp-Einstellung für das Element "Asset":

[![XML-Schema-Definition für das Element "Asset" im Upload-Modell](/blog/images/asset-details.png)](asset-details.png)

Die Zuordnung von Binärdaten in MapForce funktioniert im Wesentlichen gleich, unabhängig davon, ob wir Daten aus einer CSV- oder einer XML-Quelle zuordnen.

Wir beginnen damit, eine neue MapForce-Instanz zu erstellen, in die wir unsere Liste der Ressourcen und die Datenbanktabelle importieren.

[![Abbildung binärer Objekte zwischen einer Liste von Quelldaten und einer Datenbanktabelle](/blog/images/map1.png)](map1.png)

Wir haben DatabaseSpy verwendet, um [eine neue SQLite-Datenbanktabelle zu erstellen](https://www.altova.com/de/databasespy), wobei wir das Beispiel in der MapForce-Hilfe etwas erweitert haben. Die Spalte "Produkt" enthält den Produktnamen, und der Asset-Typ wird in der Spalte "Beschreibung" gespeichert. Die Spalte "RecordDate" speichert das Alter jedes Binärobjekts.

Jetzt legen wir die Spalte "id" als automatische Nummerierung fest, wie in der MapForce-Hilfe beschrieben, und erstellen die einfachen Verbindungen zwischen Quelle und Ziel:

[![Einfache Zuordnungen zwischen der Liste der Quellobjekte und der Datenbanktabelle](/blog/images/map2.png)](map2.png)

Die Produkt- und Typinformationen aus der Quelldatei werden direkt den entsprechenden Spalten in der Datenbank zugeordnet. Die Zuordnung des "Row"-Elements weist die Datenbank an, für jede Zeile der Eingabedatei einen neuen Datenbankeintrag zu erstellen.

Jetzt werden wir binäre Daten in der Datenbank als BLOBs (Binary Large Objects) speichern

[![Die binären Objekte werden Datenbank-BLOBs (Binary Large Objects) zugeordnet](/blog/images/map3.png)](map3.png)

Die integrierte MapForce-Funktion "read-binary-file" verwendet den im Element "Asset" der Quelldatei angegebenen Dateinamen, um den BLOB (Binary Large Object) zu erstellen. Die Funktion "read-binary-file" behandelt die Quelldatei immer als binäre Daten im Base64-Format, unabhängig von Konventionen, die auf dem Namen der Quelldatei basieren.

Um die Zuordnung abzuschließen, benötigen wir Verbindungen, um den Dateinamen aus dem Asset zu extrahieren und das Speicherdatum zu speichern

[![Vollständiges Beispiel für die Zuordnung von Binärdaten](/blog/images/map4.png)](map4.png)

Die Funktion "Ordner löschen" extrahiert automatisch den Dateinamen aus jedem Pfad, unabhängig davon, ob es sich um lokale Dateien, Netzwerkdateien oder Dateien im Internet handelt.

Die Funktion "now" speichert das Datum und die Uhrzeit der Ausführung, aber wir benötigen nur das Datum. Daher haben wir die Funktion "substring-before" verwendet, um den Zeitanteil zu entfernen.

Der "Ausführen"-Button am unteren Rand des Bereichs für die Zuordnung führt die Zuordnung durch und generiert ein SQL-Skript:

[![SQL-Skript zur Datenzuordnung binärer Objekte](/blog/images/sql-script.png)](sql-script.png)

Das Skript dient lediglich als Vorschau, um die bisherigen Ergebnisse zu überprüfen. Um das Skript auszuführen, wählen Sie eine Option im Hauptmenü "Ausgabe"

[![Menüoption zur Ausführung des SQL-Skripts für die Zuordnung binärer Objekte](/blog/images/output-menu.png)](output-menu.png)

Das Ergebnis des Skripts wird angezeigt:

[![Ergebnis des SQL-Skripts nach erfolgreicher Zuordnung binärer Objekte](/blog/images/script-result.png)](script-result.png)

Wir klicken auf die Schaltfläche "DB-Abfrage", um eine Verbindung zur Datenbank herzustellen und das Ergebnis direkt in MapForce weiter zu überprüfen:

[![MapForce-Datenbankabfragefenster zur Validierung der Datenzuordnung binärer Objekte](/blog/images/db-query.png)](db-query.png)

Man kann aus den BLOB-Daten in der Spalte "productfile" nicht viel ableiten, aber die anderen Spalten enthalten nützliche Metadaten über jedes Element.

In einem [nachfolgenden Beitrag](https://www.altova.com/blog/data-mapping-binary-objects-part-2/) zeigen wir, wie man Daten zu Binärobjekten zuordnet, um [Ressourcen aus der Datenbank zu extrahieren](https://www.altova.com/blog/data-mapping-binary-objects-part-2/) und sie in ihren ursprünglichen Formaten zu speichern. Wenn Sie es nicht erwarten können, [laden Sie eine kostenlose Testversion herunter](https://www.altova.com/de/download), die Tutorials, Hilfestellungen und viele weitere Beispiele enthält, um mit Ihrem eigenen Projekt zur Datenzuordnung, -konvertierung und -transformation zu beginnen!
