Das Problem der Datenkompression bleibt bestehen

Mit relationalen Datenbanken werden Unternehmen flexibler

29.06.1990

* Michel Koutchouk ist stellvertretender Geschäftsführer von Infotel S.A. in Paris.

Die DV hat sich qualitativ, aber auch quantitativ verändert: Relationale Datenbanken sind eine Ausformung der qualitativen Veränderung. Allein die Menge der in Großrechnerwelten anfallenden Daten wirft jedoch Probleme bei ihrer Übertragung zwischen Zentraleinheiten und Speicherperipherie auf, wie Michel Koutchouk* feststellt.

Die technischen Limits der herkömmlichen Datenverwaltung in Form von Dateien, zuerst auf Lochkarten, dann auf Bändern und jetzt auf Platten gespeichert, sind erreicht. Nicht selten hat ein Unternehmen mit Tausenden von Kunden mehrere Hunderttausend Artikel und

mehrere Millionen Sätze i m Monat zu bearbeiten. Um das Unternehmen konkurrenzfähig zu erhalten, müssen die Daten schnell abgerufen und aktualisiert werden. Durch die Verwendung von Datenbanken läßt sich die Verwaltung und Bearbeitung von Daten erheblich verbessern, auch sind neue Anwendungen dadurch möglich.

Software für die Verwaltung von Datenbanken ist ab dem Aufkommen großer Datenvolumina nötig geworden: IMS von IBM und seine untergeordnete Anwendung DL/1 zum Beispiel sind eine Konsequenz der amerikanischen Raumfahrt-Technologie, in deren Rahmen man unter anderem drei Millionen Komponenten hierarchisch verwalten mußte.

Eines der Charakteristika von Datenbanken-Software ist es, die privilegierte Speicherung von Daten selbst auf Kosten der Einfachheit der Zugriffe zu ermöglichen.

Zwei Datenbanken sind erforderlich, um ein Problem der Ausbildungsverwaltung zu lösen, hier mit IMS: einerseits die Datenbank UNTERRICHTSFACH, in der jedes Fach eine Nummer erhält, andererseits die Datenbank- SCHÜLER, in der jeder Schüler ebenfalls

durch eine Nummer gekennzeichnet ist. Absolviert ein Schüler eine Prüfung, wird das Segment PRÜFUNG eingeführt, das abhängig ist vom betroffenen Schüler. Die Beziehung zum Fach wird einmalig mit Hilfe eines Pointers oder einer "logical relation" hergestellt.

Dank der Basisarbeiten von E.F. Codd im Jahre 1970 findet heute das Konzept der relationalen Datenbanken mit der Sprache SQL (Structured Query Language) zunehmend Verwendung. Relationale Datenbank-Management-Systeme (RDBMS) zeichnen sich aus durch Vorteile wie:

-einfache Erstellung; es müssen keine Makro-Instruktionen wie unter IMS geschrieben werden, sondern Sprachbefehle wie CREATE TABLE, die sich unmittelbar auswirken. Eine Tabelle ist ab ihrer Erstellung verwendbar.

- Einfacher Zugriff; dank SQL und ihrer Varianten wie QBE gibt es umfangreiche Möglichkeiten, Daten zu extrahieren oder zueinander in Beziehung zu setzen.

- Einfache Weiterentwicklung; ein Konzeptionsfehler bleibt nicht jahrelang bestehen wie unter IMS, sondern eine Tabelle kann auf einfache Art weiter entwickelt werden.

Dennoch wird ein Nachteil sichtbar: Die Daten sind nicht mehr einfach statisch nebeneinander gespeichert wie bei DL/1, sondern durch Zusatzdaten (JOIN-Kriterien), die physisch gespeichert werden müssen, dynamisch zueinander in Beziehung gesetzt.

Im angeführten Beispiel wäre es mit dem relationalen System unmöglich, einem Schüler eine Prüfung zuzuordnen. Man müßte dazu eine spezifische relationale Tabelle PRÜFUNG entwerfen, die in jeder Zeile eine Identifikation sowohl des Faches als auch des Schülers enthalten müßte. Eine Pointer-Möglichkeit bestünde nicht.

Bei steigenden Plattenvolumina limitiert die Mechanik die Leistungen der Speichereinheiten. Während ein Maschinenbefehl in Nanosekunden ausgeführt wird, benötigt ein I/ O immer Millisekunden, also bis zu einer Million mal mehr Zeit. Die I/O-Operationen nehmen immer mehr Einfluß auf die Antwortzeit und die Systembelastung, insbesondere auf die der Kanäle. Die Einsparung von I/O gehört daher zum Tagesgeschäft: Zum Beispiel nimmt DB2 es in Kauf, mit seinem Optimizier-Kern mehr CPU-Zeit zu verbrauchen, wenn dadurch I/O-Zeit gespart werden kann.

Warum soll man Daten komprimieren? - Die Anzahl der Bits, die notwendig sind, um Daten zu codieren, ist abhängig von der Anzahl der verschiedenen Werte, die diese Daten an. nehmen können. Es sind vier Bits ausreichend, um die Ziffern darzustellen, und fünf Bits genügen für Buchstaben, wenn man nicht zwischen Groß- und Kleinschreibung unterscheidet.

In Dateiform gespeicherte Daten belegen die Notwendigkeit der Kompression:

- Der Code EBCDIC ist aufwendig da auch dann systematisch acht Bits verwendet werden, wenn vier oder fünf genügen würden.

- Viele Zeichen werden wiederholt: Sterne oder Striche in Listen sowie Blanks und Nullen.

- Manche Zeichen sind häufiger als andere vertreten, vor allem in bezug auf die verwendete Sprache.

- Die angewandten Datentypen ziehen einen direkten Raumverlust nach sich, unter anderem durch numerische, nicht signifikante Nullen oder Blanks, die signifikanten Zeichen folgen, und durch Vorzeichen, die auf vier Bits codiert sind, obwohl ein Bit genügen würde etc.

Das hat ungünstige Konsequenzen

- für die Kanalbelastung und die I/O-Zeit, da auch die nicht signifikanten Bits und Bytes übertragen werden,

- für die Laufzeiten von Batch-Prozessen wie auch von Transaktionsprozessen sowie

- für die Speicherfähigkeit, die ihre physischen Grenzen bei vier GB für VSAM oder DL/1 und 64 GB für DB2 hat

Die Techniken der Datenkompression

1. Die Datenbanken werden so entwickelt, daß sie möglichst wenig Speicherraum benötigen. Das kann durch variable Satzlängen oder, wie bei DB2, durch die NULL-Option geschehen. Weitere Möglichkeiten sind die Verwendung gepackter statt ungepackter Zahlen beziehungsweise von Unterprogrammen zur Umcodierung entsprechender Daten. Dem Vorteil, hierfür keine zusätzliche Software zu benötigen, steht der Nachteil gegenüber, daß die Anwendungsprogrammierer sich zusätzlich um Speicherplatz-Probleme kümmern müssen.

2. Ein universell verwendbares Komprimierungsprogramm reduziert die Anzahl der Leerstellen und der sich wiederholenden Zeichen. Auch hierfür muß keine spezielle Software angeschafft werden, der Komprimierungseffekt sinkt jedoch mit der Größe der Datenbank.

3. Ein speziell für die vorhandene Datenbank entwickeltes Komprimierungsprogramm, das Inhalt und Struktur der Daten berücksichtigt, eliminiert gezielt Leerstellen und sich wiederholende Zeichen. Der Programmieraufwand ist hier sehr hoch, da die Routine für jede Datenbank geschrieben und nach jeder Weiterentwicklung einer Datenbank modifiziert werden muß.

4. Ein marktgängiges Komprimierungsprogramm wird eingesetzt. Die meisten von diesen basieren auf der Technik von Huffman, die besagt, daß die am häufigsten vorkommenden Zeichen die kürzeste Bitfolge aufweisen. Es gibt zwei unterschiedliche Verfahren: zum einen die Komprimierung mit externen Umcodierungstabellen, zum anderen die Komprimierung ohne solche Hilfen.

Im ersten Fall wird auf der Basis der Analyse jeder einzelnen Datenbank eine Tabelle mit Informationen über deren Struktur und über die Häufigkeit der verschiedenen Zeichen erstellt. Solche Produkte gewährleisten eine hohe Komprimierungsrate, sind für alle Datenbanken verwendbar und werden vom Anbieter gewartet. Andererseits ist gerade die regelmäßige Analyse der Datenbanken zur Anpassung der Tabellen vergleichsweise aufwendig; die Tabellen benötigen darüber hinaus viel Speicherplatz (acht bis 70 KB im RAM).

Komprimierungsverfahren ohne externe Tabellen kommen mit einer allgemeingültigen Tabelle aus; die Erkennung der Datenstruktur läuft hier während der Komprimierung ab. Solche Pakete bringen hohe Komprimierungsraten und können für alle Datenbanken verwendet werden. Die integrierte Tabelle erfordert keinen Verwaltungsaufwand und nur geringen Speicherplatz. Ein Datenträger-Austausch ist möglich. Nachteilig wirkt sich aus, daß keine Binärdaten komprimiert werden können. Außerdem muß die integrierte Umcodierungstabelle für eine Sprache festgelegt werden.

Auswahlkriterien für Komprimierungsprodukte

Die Entscheidung für ein Komprimierungsprodukt sollte sich auf einen gewichteten Katalog stützen, der zumindest die folgenden Kriterien enthält: - Leistung, also eine hohe Komprimierungsrate ohne zusätzlichen Speicherbedarf und ohne signifikanten Anstieg der CPU-Zeit.

- Einfachheit der Anwendung und der Installation, das heißt, die Software sollte transparent sein und keine speziellen Adreß-Spaces erfordern sowie auf komplexe Dienstprogramme mit spezifischen Befehlen verzichten können; der Arbeits- und Zeitaufwand bei der Installation und Anpassung an die firmenspezifischen Dateien hat möglichst gering zu sein sowie Anpassungsfähigkeit, das heißt, ein einziges Produkt sollte sich auf alle Datenstrukturen anwenden lassen, also sowohl in DBMS als auch in herkömmlichen Dateien.

Faktoren wie Menge und Wachstum der Daten sowie DV-Kosten und eine steigende Zahl von Applikationen machen eine Software zur Datenkomprimierung in den meisten Fällen unverzichtbar. Die Systemarbeit wird dadurch zunehmend von der langsamen Plattenperipherie in den viel schnelleren Rechnerbereich verlegt, um Speicherplatz und Datenübertragungszeit einzusparen.