Daten und Datenmodellierung (1)

Teil 1: Daten speichern im Dateisystem

Andere Teile der Serie:

Zum Teil 2: Daten in Datenbanken / Datenbankmanagementsystemen

Zum Teil 3: Datenmodellierung mit ERM und Relationenmodell

 

Motivation.

Ein Computerprogramm ist die Umsetzung von Algorithmen in eine „maschinengerechte“ Sprache. Damit kann ein Computer Geschäftsprozesse unterstützen oder zum Spielen genutzt werden. In allen Fällen stellt ein Computerprogramm Funktionen bereit, die meist Daten einlesen, die Daten transformieren und dann die Daten wieder abspeichern. Im Falle von Betrieblichen Anwendungen ist zu beobachten, dass die Daten den „Kern“ der Digitalisierung darstellen und das eigentlich Wichtige sind. Während Programme alle paar Jahre erneuert und ausgetauscht werden, sind Datenbestände erstaunlich stabil. Daher ist es wichtig, ein (auch technisches)  Verständnis für das Speichern und Bewahren von Daten zu entwickeln. Zudem ist es sinnvoll, Modelle für die Strukturierung von Daten zu kennen.

Diese Artikelserie will einen besonders einfachen und kompakten Zugang zur Datenmodellierung ermöglichen.

Was sind (Computer-) Daten?

Daten sind zunächst eine archivierbare Form von Kenntnissen über Fakten in der wirklichen Welt. Das können Texte sein (Anleitungen, Kochrezepte …) oder Zahlen wie 22,3 oder 33.935. Insbesondere die Zahlen helfen erst weiter, wenn man weiß, dass es  heute um 11:00 22,3 Grad Celsius Außentemperatur sind und dass der Goldpreis am 12.10.2018 33.935 € pro kg beträgt. Mit diesen weiteren Merkmalen, die den nackten Zahlen eine Struktur geben, werden aus den Zahlen Informationen. Erst wenn diese Informationen mit den Erfahrungen von Menschen angereichert werden, lassen sich Entscheidungen treffen. Ist die Temperatur angenehm? Dann gehe ich ins Schwimmbad. Ist der Goldpreis hoch im Vergleich zu sonst? Dann verkaufe ich meine Goldvorräte. So werden aus Informationen Wissen – durch die Nutzung und Anreicherung mit Erfahrung.

Während die Erfahrungen von Menschen schwer in den Computer zu bekommen sind, gelingt dies mit Daten und Informationen gut. Dazu müssen die Daten zunächst in eine computergerechte Form gebracht werden, heißt, die Darstellung der Zahlen muss zur Technik im Computer passen. In einem Computer können nur physikalische Zustände (wie zum Beispiel ein kleines Magnetfeld auf einer Festplatte oder ein reflektierendes Aluminiumpünktchen auf einer CD) gespeichert werden. Die Daten (Buchstaben und Zahlen) sind daher immer in eine Reihenfolge von 0 und 1 umzucodieren. Um dies zu tun und Möglichkeiten bereitzustellen, wieder „menschenlesbar“ an die Daten zu kommen, werden ebenfalls Computerprogramme benötigt. Diese Computerprogramme heißen dann z.B. Dateimanager (wie der Windows Explorer auf dem PC oder der Finder auf dem Mac), Dateisystem (als Teil des Betriebssystems) oder Relationales Datenbankmanagementsystem (z.B. DB2 von IBM, Oracle oder MySQL).

Speicherung von Daten im Dateisystem.

Einfache Textdateien

Eine einfache Möglichkeit, Daten zu speichern, besteht darin, sie in sogenannten Dateien im Dateisystem abzulegen.  Dabei ist die Ablage in den Dateisystemen z.B für Windows und MacOS hierarchisch organisiert: Es können Ordner angelegt werden, es können darin wieder Ordner angelegt werden, die Daten werden dann darin gespeichert. Die Datei und die Ordner haben Namen, z.B. befindet sich die Textdatei „kochrezept.txt“ im Ordner „Kochrezepte“, der  wiederum im Ordner „meine Daten“ auf der Festplatte mit der Bezeichnung „C:“ angelegt ist. Unter Windows sieht dann der Zugang, der sogenannte „Pfad“ zu der Datei so aus: C:\meineDaten\Kochrezepte\kochrezept.txt.

Computerprogramme, mit denen bequem solche Dateien erzeugt, gelesen, verändert und gespeichert werden können, sind Notepad++ unter Windows oder Sublime Text auf dem Mac under MacOS.

Daten aus einfachen Zahlen als txt-Dateien

Auch Zahlen kann man in der gleich Form wie Texte im Dateisystem ablegen. So kann eine Liste von Telefonnummern z.B. unter dem Namen telefonnummern.txt gespeichert werden. Hat man mehrere Telefonnummern, so ist zu überlegen, wie das Ende der einen und der Anfang der nächsten Telefonnummer unterschieden werden kann. Das könnte mit einem Zeichen funktionieren, das nicht in einer Telefonnummer vorkommt, z.B. ein „;“. Der Übersichtlichkeit halber wird als Trennung für eine solche Liste meist ein Zeilenumbruch gewählt, und die Telefonnummern stehen ordentlich untereinander.

021514 6782453
021541 6254273
015772 62444902

Abb. 2: Beispiel Liste mit Telefonnummern

Daten aus Zahlen und Bezeichnungen als csv-Dateien

Hat man sehr viele Telefonnummern, wird es sinnvoll dazuzuschreiben, zu welcher Person die Telefonnummer gehört. Spätestens jetzt ist darüber nachzudenken, wie die Struktur der Daten aussehen soll, so dass aus den Daten Informationen werden. Bei einer manuellen Aufschreibung auf einem Blatt mit Rechenkästchen würde man vermutlich die Form einer Tabelle wählen. In eine Zeile schreibt man den Namen der Person und dahinter die Telefonnummer, in der nächsten Zeile die zweite Person mit der Telefonnummer und so weiter (vgl. Abb. 3). Dieses intuitive Vorgehen kann man bei der Speicherung im Dateisystem beibehalten. Dabei gibt man der Textdatei eine Struktur: Zunächst kommt der Name, dann ein Trennzeichen wie z.B. „;“, dann die Telefonnummer, zuletzt ein Zeilenumbruch (Abb. 4). Wichtig ist, dass die Daten zwischen den Trennzeichen „atomar“ sind, heißt, es wird nur eine Telefonnummer in eine Zelle geschrieben und nicht zwei. Eine Zeile 1;Kurt;021144556677 ist atomar, eine Zeile mit zwei Telefonnummern ist es nicht, 1;Kurt;021144556677 0157724353474 wäre also ungünstig.

Vorteilhaft ist es, eine solch strukturierte Textdatei mit der Endung csv abzuspeichern, also „telefonnummern.csv“. Öffnet man die Datei mit einer Tabellenkalkulation, z.B. Excel, so wird sie gleich als ordentliche Tabelle angezeigt. csv ist die Abkürzung für „Comma Separated Values“. Im englischen Sprachraum nimmt man als Trennzeichen ein Komma. Das kollidiert in Deutschland mit dem Dezimaltrenner, daher ist in Deutschland ein Semikolon üblich.

Derart strukturierte Dateien nennt man oft lax „CSV-Datei“. Der Aufbau von CSV-Dateien ist standardisiert im RFC 4180

Abb. 3: Daten tabellarisch manuell strukturieren

Kurt;0215187837
Emma;021387215
Karl;02431478372

Abb.4: Daten tabellarisch im CSV-Format

Daten mit komplexer Struktur in xml-Dateien

Wenn z.B. eine Person mehrere Telefonnummern hat, könnte man in der tabellarischen Struktur mehrere Spalten vorsehen. Ist die Anzahl der möglichen Telefonnummern allerdings zunächst nicht bekannt,  sind andere Strukturierungsformen sinnvoll. Eine Möglichkeit ist, mit mehreren CSV-Dateien zu arbeiten. Der Umgang mit mehreren Tabellen, die sich aufeinander beziehen wird allerdings schnell unübersichtlich. Genau für diesen Anwendungsfall wurden daher  Relationale Datenbankmanagementsysteme entwickelt. Eine weitere Möglichkeit, weiterhin einfache Dateien im Dateisystem zu nutzen, ist die Strukturierung mit XML. XML heißt „extensible markup language“ und soll hier nur am Beispiel in Abb. 3 erklärt werden. Das Grundprinzip ist, dass Daten mit sogenannten Tags in spitzen Klammern gekennzeichnet werden. Diese Tags lassen sich ineinander Schachteln, damit sind fast beliebig komplizierte Strukturierungen für Daten darstellbar. XML wird vom W3C standardisiert

<xml>
<kontakt>
<name>Karl</name>
<tel>02113 445532</tel>
<tel>015771 08154711</tel>
</kontakt>
<kontakt>
<name>Emma</name>
<tel>02113 885532</tel>
</kontakt>
</xml>

Abb. 3  xml-formatierte Telefonliste mit unterschiedlich vielen Telefonnummern

Daten mit komplexer Struktur – weitere Formate

Weitere Formate, um Daten zu strukturieren und in einfachen Textdateien abzulegen, sind z.B.

  • JSON
  • EDIFAKT

JSON (JavaScript Object Notation) ist ein  Datenaustauschformat, das für Menschen lesbar und für Computerprogramme einfach zu parsen (Analysieren von Datenstrukturen) ist. JSON ist eine Untermenge der Programmiersprache Javascript.

EDIFAKT (Electronic Data Interchange for Administration, Commerce and Transport) dient dazu, Geschäftsdaten strukturiert auszutauschen.

Zum Teil 2: Daten in Datenbanken / Datenbankmanagementsystemen

Quellen

Internet-Verweise

EDIFACT: https://www.edicenter.de/was-ist-edi-und-was-ist-edifact/

JSON, eine Erklärung: https://www.cloudcomputing-insider.de/was-ist-json-a-704909/

CSV RFC 4180: https://tools.ietf.org/html/rfc4180

XML beim W3C: https://www.w3.org/TR/REC-xml/