DE  |  FR

CSV und SIARD

[10-02-2020] Soll man CSV Dateien in SIARD konvertieren?

Bei CSV-Dateien handelt es sich um tabellarisch strukturierte Text-Dateien; die einzelnen Werte, Felder bzw. Spalten werden durch ein spezielles Trennzeichen getrennt, Zeilen durch Zeilenumbruch generiert. Es handelt sich dabei um ein sehr einfaches Datenbankformat, für das es aber immerhin auch eine ODBC-Verbindungsmöglichkeit zu Microsoft Jet Database Engine gibt, womit Abfragen in SQL möglich sind https://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine

CSV ist eines der ältesten Datenbank-Austauschformate und darum in den Archiven relativ verbreitet. CSV hat aber ein paar problematische Aspekte:

  • Der Zeichensatz ist im Format nicht spezifiziert, bzw. war ursprünglich ASCII, kann aber heute auch ANSI oder UTF-8 sein
  • Die Wahl des Trennzeichens (Delimiter) ist frei, wenn auch Komma, Tabulator und Strichpunkt üblich sind
  • Das Einschliessen der Felder in Hochkommas oder Anführungszeichen (Quotation Marks) ist optional
  • Die Anzahl Felder pro Zeile muss in einer CSV-Tabelle nicht zwingend gleich sein
  • Es gibt keine Fixityinformationen (Checksummen etc.), an denen eine Veränderung einer CSV-Datei erkannt werden könnte

Soll man CSV Dateien in SIARD konvertieren?

Alle diese Probleme könnten durch die Konvertierung in SIARD behoben werden. Die korrekte Konvertierung gelingt aber nur, wenn alle oben aufgeführten Aspekte bekannt sind. Diese Informationen können dann auch als Metadaten zur CSV-Dateisammlung abgelegt werden, ohne dass eine Konvertierung tatsächlich durchgeführt wird. Mit CSV Validator stellen The National Archives (UK) ein Tool zur Verfügung http://digital-preservation.github.io/csv-validator/, mit dem diese Vorgaben, bzw. Annahmen überprüft werden können.

Ein Konvertierung drängt sich aber möglicherweise auf, wenn eine Datenbank bzw. ein Datenbankschema in SIARD archiviert werden soll, es aber aus technischen oder organisatorischen Aspekten nicht möglich ist, mit einem entsprechenden Tool den Inhalt der Datenbank auszulesen. In diesem Fall wird in der Regel CSV als Datenaustauschformat zwischen Datenbank und SIARD-Tool gewählt.

Für die Konvertierung CSV -> SIARD stehen unseres Wissens nur zwei Tools zur Verfügung: die Open-Source-Lösung csv2siard v1.9 der KOST und die kommerzielle Lösung Full Convert v7 von Spectral Core https://www.fullconvert.com/databases/siard

csv2siard

  • Kommt mit einem bescheidenen, mässig intuitiven GUI und kann auch im Batch Modus ausgeführt werden
  • Für die Verwendung des GUIs sind Adminrechte notwendig
  • Zeichensatz, Trennzeichen, Quotation Zeichen, Dateiendung etc. müssen in einer Präferenzdatei für die Konvertierung festgelegt werden, können dann aber für spätere Konvertierungen wiederverwendet werden
  • Erzeugt werden SIARD Version 1.0-Dateien ohne BLOB-Unterstützung
  • Bei der Konvertierung werden die CSV-Textspalten auf Datenbankfeldtypen nach dem Ansatz best fit gemappt
  • Aus diesem Mapping wird ein Datenmodell nach dem Apache Torque 4.0 Standard erzeugt, es kann aber auch ein vordefiniertes Datenmodell verwendet werden
  • Im Datenmodell können auf Feldebene Feldformat und Kommentar eingetragen und die Datenbankstruktur festgelegt werden; bei der Konvertierung mit einem vorgegebenen Datenmodell werden die Strukturinformationen und Feldformate angewendet und die Feldinhalte nach dem Format validiert (integer muss eine Zahl sein, date muss ein Datumsformat sein)
  • csv2siard erlaubt als Quelle auch ODBC-Abfragen mit hinterlegten SQL-Queries, damit können im Prinzip alle ODBC-fähigen Datenquellen (Microsoft Excel, Access etc.) in SIARD konvertiert werden
  • Beim Konvertieren wird eine Zeichensatzprüfung durchgeführt, es gibt aber keine automatische Zeichensatz- oder Trennzeichen-Erkennung.

Full Convert

  • konvertiert neben vielen Datenbankformaten auch CSV-Dateien zu SIARD-Format 2.1
  • Die GUI-Steuerung ist intuitiv und zeitgemäss
  • Es gibt keine automatische Delimitererkennung
  • Die automatische Zeichenkodierungserkennung funktioniert nicht zuverlässig
  • Die CSV-Dateien müssen zwingend *.csv heissen
  • Bei der Konvertierung werden die CSV-Textspalten auf Datenbankfeldtypen nach dem Ansatz best fit gemappt
  • Es gibt keine Möglichkeit, Datentypen der Spalten und Struktur der Tabellen bei der Konvertierung zu überprüfen (wie das in csv2siard oder mit CSV Validator möglich ist)
  • Full Convert ist schnell, d.h. etwa doppelt so schnell wie csv2siard
  • Präferenzen für eine Konvertierung können gespeichert und später wiederverwendet werden, damit wird das GUI-Programm im Prinzip auch batchtauglich
  • BLOBs werden für grosse Datenfelder unterstützt, wobei Full Convert selbständig entscheidet, ob BLOB oder inline XML verwendet wird
  • Nach der Konvertierung steht ein einfacher Datenbrowser für die generierte SIARD-Datei zur Verfügung