Gekapselte Zugriffsoperationen |
Die Kapselung der Dateizugriffsoperationen macht es möglich, die
Datensätze in einem völlig anderen Format zu speichern, als es von den
Anwendungsprogrammen verwendet wird. Das ist besonders dort vorteilhaft, wo Daten in einem
größeren Umfang zwar fallweise benötigt werden, in den meisten Fällen jedoch leer
sind. |
 |
Direktzugriff mit variabler
Länge |
Ein vielfach in mehreren unterschiedlichen Versionen eingesetztes
Konzept erlaubt den Direktzugriff auf Datensätze mit variabler Satzlänge. Das wird nicht
nur bei Texten benötigt, sondern auch bei allen Formen von Tabellen, in denen die Anzahl
der Zeilen stark schwanken kann. Statt jede Zeile gesondert abzuspeichern, was
entsprechend viele Plattenzugriffe für Lesen und Schreiben verursacht, werden derartige
Tabellen oft zu einem Datensatz geblockt und mit einem Schreibzugriff in der aktuellen
Datensatzlänge abgespeichert. Diese Sätze können auch mit einem Zugriff wieder gelesen
werden, womit in den meisten Fällen für das Lesen einer ganzen Tabelle dieselbe
Hardwarebelastung anfällt wie beim Lesen einer einzelnen Tabellenzeile, die in einem
Standardformat geschrieben wurde. |
 |
Kombinierte Datenstrukturen |
Eine andere Form des geblockten Datenzugriffs besteht darin, mehrere
unterschiedliche Informationsstrukturen zu einem Datensatz zusammenzufügen, wenn dies
für die jeweilige Anwendung vorteilhaft ist. Zum Beispiel verwendet das Anlagensystem ein
Datenformat, in dem pro Anlagegut Stammdaten, Bewegungsdaten und Abrechnungsparameter zu
einem Datensatz zusammengefasst sind und daher auch mit einem Plattenzugriff gelesen
werden können. Es werden also drei voneinander eigentlich unabhängige Datenbestände
physisch zu einem Satz zusammengefasst. Das ist im Anlagensystem möglich, weil die Anzahl
von Bewegungsdaten und Parameteränderungen in dieser Anwendung sehr klein ist. Eine
Standardanlage kommt im allgemeinen mit einem Parametersatz und zwei Bewegungssätzen
(Anschaffung und Ausscheidung) aus, maximal sind 16 Parameter und 32 Bewegungssätze
möglich, die mit einem Zugriff von der Platte gelesen werden können und alle
Informationen enthalten, um die Werte für diese Anlage über beliebige Zeiträume
ermitteln zu können. In einer relationalen Datenbank müsste man dafür mindestens drei
unterschiedliche Tabellen mit entsprechend höherem Zugriffsaufwand einrichten. |
 |
Mehrfachverwendung von
Datensätzen |
Oft sind in unterschiedlichen Datensätzen weitgehend dieselben
Informationen zu speichern. Das ist zum Beispiel in der Buchhaltung bei den Buchungstexten
der Fall, wenn viele Journalzeilen denselben Text (etwa "Ausgleich" oder
"Miete") enthalten. Auch im Lohn sind oft mehrere verschiedene Lohnarten in
völlig identischer Weise abzurechnen und unterscheiden sich nur durch ihre Bezeichnung
(etwa "Prämie Arbeiter" und "Prämie Angestellte"). Viele Systeme versuchen, solche Situationen zu erkennen und dort, wo es möglich
und vorteilhaft ist, die Daten nicht mehrfach mit identischem Inhalt auf die Platte zu
schreiben, sondern die Informationen nur einmal abzuspeichern und bei wiederholtem
Auftreten Referenzen auf die bereits vorhandenen Daten zu verwenden. Für diese Technik
werden mehrere unterschiedliche Verfahren eingesetzt, die sich zum Beispiel dadurch
unterscheiden, dass entweder nur Referenzen innerhalb einer Datei möglich sind oder aber
auch Bestände in anderen Dateien verwendet werden können. In jedem Fall ist natürlich
die Konsistenz und Integrität der Informationen sichergestellt. Wenn die
Abrechnungsmodalitäten für eine Lohnart modifiziert werden, wird damit nicht automatisch
eine andere Lohnart, die bisher auf dieselben Informationen zugegriffen hat, ebenfalls
geändert. Das System reorganisiert hier vielmehr automatisch alle Referenzen so,
dass jederzeit für alle Lohnarten die richtigen Steuerungsangaben verwendet werden.
Diese Verfahren reduzieren nicht nur den Plattenspeicheraufwand, sondern
ermöglichen eine deutliche Beschleunigung in vielen Verarbeitungen, weil einmal von der
Platte gelesene Daten bei Bedarf wiederverwendet werden, ohne dass dafür ein neuerlicher
Dateizugriff ausgeführt werden muss. |
|
 |
Geblockter
Direktzugriff |
Bei vielen Anwendungen unterliegen die zu
speichernden Daten bestimmten Voraussetzungen oder Einschränkungen, zum Beispiel können
in der Lohnabrechnung (im Gegensatz zur Buchhaltung) pro Mitarbeiter nur zwölfmal im Jahr
(weil nicht öfter abgerechnet werden kann) Eintragungen ins Lohnkonto vorkommen. Diese
Eintragungen bestehen auch bei einfachsten Abrechnungen einschließlich der Nettodaten aus
mindestens 20 Lohndatensätzen, in der Regel aber aus 80 bis 100 einzelnen
Lohnkontoeintragungen. |
 |
Geblockte Datensätze |
Sind solche Gegebenheiten bekannt, kann man
zusammengehörige Datensätze - die Lohndaten je Personalnummer und Monat - zu einem Block
zusammenfassen und mit einem einzigen Zugriff auf die Platte schreiben oder von dort
wieder lesen. Pro Personalnummer wird dabei in einer eigenen Datei die
Direktzugriffsadresse und die Größe dieses Blocks gespeichert, wofür beim Lohnsystem
vier Bytes pro Block ausreichen. Mit diesen Informationen können die Daten nicht nur mit
minimalem Aufwand wieder gelesen werden, es sind auch Blöcke unterschiedlicher Länge
möglich. Damit wird der Speicheraufwand nicht nur auf den minimal notwendigen Umfang
beschränkt, es fällt auch der Plattenbedarf für den bei anderen Speicherformen
benötigten Index weg. |
 |
Minimierung der
Zugriffsoperationen |
Im Personalsystem bringt diese Art der
Datenspeicherung noch einen weiteren Vorteil: Der Aufwand für die Speicherung von Adresse
und Länge eines Monatslohnkontoblocks ist minimal und beträgt vier Bytes. Mit zwölf
solchen Eintragungen nebeneinander hat das Lohnsystem ohne zusätzlichen Speicherbedarf
pro Mitarbeiter direkten Zugriff auf sämtliche Daten eines Abrechnungsjahres. |
 |
Extreme Performanceverbesserung |
Die Effizienz dieses Systems zeigt ein
Vergleich mit einem relationalen Datenbanksystem: Bei 5000 Dienstnehmern und
durchschnittlich 80 Lohndatensätzen pro Personalnummer und Monat ergeben sich in einem
Abrechnungsjahr 12 x 5000 x 80 = 4,800.000 einzelne Lohnkontoeintragungen. In einer
Datenbank werden diese Daten in einer Tabelle mit entsprechend vielen Zeilen und einem
zugehörigen Index gespeichert. Um eine bestimmte Lohnart für eine Personalnummer und
eine Abrechnungsperiode zu finden, würde ein Indexdateisystem im Durchschnitt vier
Plattenzugriffe benötigen, um im Index die benötigte Eintragung zu finden und dann die
zugehörigen Daten zu lesen. |
 |
Steigerung der Produktivität |
Für eine Verarbeitung, die alle Lohndaten
eines Jahres verwendet (etwa Druck von Jahreslohnlisten oder Lohnkonten) ist bei einem
Datenbanksystem daher mit insgesamt fast 20 Millionen einzelnen Plattenzugriffen zu
rechnen, während das Lohnsystem der Dialog Data bei geblocktem Direktzugriff für diese
Verarbeitungen mit 60.000 Zugriffen auskommt, was zu einer gewaltigen Reduzierung der
Verarbeitungszeiten führt. |
 |
In jedem Fall Vorteile |
Etwas geringer werden die Differenzen, wenn
nur einzelne Lohnarten benötigt werden, in jedem Fall kann jedoch das Lohnsystem mit dem
Aufwand, den ein Datenbanksystem für eine einzelne Lohnkontoeintragung (vier
Plattenzugriffe) benötigt, alle Lohndaten für vier Monate einer Personalnummer oder für
vier Personalnummern in einem Monat lesen. Wenn im Durchschnitt pro Dienstnehmer und Monat
80 Datensätze vorliegen, ist das Lohnsystem 320 Mal so schnell, bei 50 Datensätzen pro
Person immer noch 150 Mal schneller. Etwa in dieser Größenordnung bewegen sich auch die
Unterschiede der Verarbeitungszeiten wenn das Lohnsystem von den hochspezialisierten
Zugriffsmethoden auf ein Datenbanksystem umgestellt wird. |
 |
Physisch
geteilte Datenbestände |
Häufig wird eine Technik eingesetzt, die den Datenbestand auf mehrere
physische Dateien aufgliedert: Eine Datei enthält die allgemein benötigten
Informationen, in einer zweite werden die selten auftretenden Daten abgespeichert,
allerdings nur dann, wenn sie tatsächlich vorkommen. Für die Anwendungsprogramme sind
diese Vorgänge völlig transparent. |
|