Firmware-Konzept auf Commodore-Kleinrechnern verwirklicht:

DBMS-Funktionen in die Hardware verlagert

18.07.1980

Im kommerziellen Bereich überwiegen eindeutig datenorientierte Anwendungen mit immer wiederkehrenden Aufgabenstellungen. Zum Management einer Firma werden ständig aktuellste Informationen benötigt, die die Basis wichtiger geschäftspolitischer Entscheidungen bilden. Ebenso besteht ein hoher Bedarf an Rationalisierung, um einerseits eine höhere Produktivität zu erreichen und andererseits die stetig wachsenden Personalkosten zu kompensieren. Nachdem aus Kostengründen der Einsatz der Datenverarbeitung bisher hauptsächlich größeren Betrieben vorbehalten war, werden über den Preisverfall der Hardware Kleinrechnersysteme interessant. Durch komfortable Betriebssysteme und Programmiersprachen wird momentan die Leistungslücke zur mittleren Datentechnik geschlossen.

Das Softwareangebot hält mit der Nachfrage noch nicht Schritt. Mittlerweile können zwar die primären Bedürfnisse nach Standardprogrammen abgedeckt werden, aber eine betriebsumfassende Lösung, die insbesondere auch Branchenlösungen integriert, kommt erst allmählich in Sicht. Datenbanksysteme erfüllen per definitionem einen Großteil der Anforderungen, die Voraussetzung einer solchen integrierten Lösung sind: Durch zentrale Zusammenfassung aller Daten eines Betriebes in einer Datenbank werden die Voraussetzungen für Redundanzfreiheit in der Speicherung, Aktualität der Daten, schnellen Zugriff und Kontrolle der Zugangsberechtigungen (Datenschutz) gegeben. Einfache Datendefinitions- und Datenmanipulationsfunktionen erleichtern dem Datenbankverwalter nicht nur die Programmierung neuer Anwendungen, sondern auch die dynamische Anpassung des Systems an die Gegebenheiten der realen Welt. So haben diesem Trend entsprechend einige Hersteller Datenbanksysteme als Firmware in ihre Systeme eingebaut (IBM: /38, HP: Image, Siemens: DBR 6.620).

Ein derartiges Konzept läßt sich auch auf Kleinrechnern verwirklichen. In Anlehnung an neuere Forschungsergebnisse in der Datenbankentwicklung wie System R der IBM wurde für Commodore-Computersysteme ein Datenbanksystem entwickelt, das nicht nur dem Anwendungsprogrammierer ein Werkzeug in die Hand gibt, sondern auch dem EDV-Laien auf einfache Weise den Zugang zu gewünschten Informationen ermöglicht.

Diese Datenbank-Architektur hat folgende Hauptmerkmale: Es können Dateien (Relationen) mit bis zu 26 Feldern definiert werden. Als Feldtypen sind Zeichenketten bis zu einer Länge von 128 Zeichen, Gleitkommazahlen (5 Bytes) und ganze Zahlen (2 Bytes) zugelassen. Die Länge eines Datensatzes ist nur durch die Größe des noch verfügbaren Hauptspeichers begrenzt. Der Zugriff auf Sätze einer Datei erfolgt direkt über eine interne Datensatznummer (genau ein Sekundärspeicherzugriff ). Zu beliebig vielen Feldern einer Datei können Indexe angelegt werden, die den Zugriff in einer bestimmten Sortierordnung beschleunigen.

Invertierte Felder

In einer Adreßdatei wäre die gleichzeitige Aufrechterhaltung der Sortierung nach Name und Ort möglich. Dies wird durch Einsatz einer VSAM-ähnlichen Zugriffsmethode erreicht (B*-Baum), die auch bei größeren Anwendungen nicht mehr als drei Zugriffe zum Auffinden eines bestimmten Datensatzes bei alphabetischer Sortierordnung erfordert. Im Gegensatz zu ISAM liegt dem B*-Baum eine dynamische Speicherverwaltung zugrunde, die periodisches Reorganisieren überflüssigmacht.

Beim Einfügen oder Löschen eines Datensatzes werden die zu einer Datei gehörenden Indexe (Zugriffspfade) automatisch aktualisiert. Die Ein- und Ausgabe von Datensätzen auf dem Bildschirm wird über ein einheitliches Maskenkonzept realisiert. Feldnamen können an beliebiger Stelle des Bildschirms angezeigt werden. Zur Unterscheidung werden die zugehörigen Datenfelder invertiert dargestellt (Abb. 1). Durch Ausfüllen dieser Masken im Dialog können Anfragen an die Datenbank formuliert und ausgeführt werden. Dieses Konzept entstand ebenfalls in Anlehnung an die graphische Abfragesprache "Query by Example" des Systems R. Gegenüber herkömmlichen Abfragesprachen muß keine spezielle Syntax beherrscht werden, so daß auch weniger geübtes Personal schnell mit der Bedienung zurechtkommt.

Aus Abb. 2a geht der schematische Aufbau einer integrierten Problemlösung hervor. Durch Ausnutzung der vom DBMS zur Verfügung gestellten Funktionen kann der Programmierer sich voll auf die eigentliche Problematik konzentrieren. Bei den mit Hilfe des Datenbankverwaltungssystems (DBMS) erstellten Anwendungen beträgt der Umfang des Quelltextes nur noch 20-30 Prozent gegenüber herkömmlich programmierten Anwendungen.

Die gestrichelte Linie in Abb. 2a deutet bereits an, daß Teilfunktionen des DBMS in die Hardware verlagert wurden. Nicht zuletzt die Forschung auf dem Gebiet relationaler assoziativer Prozessoren vor allem an amerikanischen Universitäten bestätigt diesen Trend zu Datenbank-Maschinen beziehungsweise zu dedizierten Datenbank-Computern. Grundlage sind zum Teil neuartige Rechnerarchitekturen, die große Assoziativspeicherkapazität durch größtmöglichen parallelen Zugriff auf Sekundärspeicher realisieren. Neben bedeutend höheren Ausführungsgeschwindigkeiten kommt der eingesparte Hauptspeichereinsatz direkt den Anwendungsprogrammen zugute.

Gerade für Kleincomputer mit typischen Hauptspeichergrößen zwischen 16 und 64 KB lohnt es sich, Anstrengungen in diese Richtung zu unternehmen. Von den 32 KB des Commodore-Systems werden 14 KB durch das DBMS belegt, so daß noch genügend Platz für Anwendungsprogramme zur Verfügung steht. Einige wichtige Teilfunktionen wurden bereits in EPROM gebrannt und können jetzt wie andere ROM-residente Funktionen des Betriebssystems aufgerufen werden. Die Grenze zwischen Hardware und Software wird stetig in Richtung der Anwendungsprogramme geschoben, bis schließlich das komplette DBMS Teil der Hardware ist.

Ein weiteres wichtiges Kriterium für den Einsatz von Datenbanksystemen als Software-Tool ist die Portabilität. Für das vorgestellte DBMS wurde die Struktur des ANSI/SPARC-Schichtenmodells übernommen (Abb. 2b). Da jede Ebene des Systems nur über eine eindeutig definierte Schnittstelle mit der nächstniedrigen Ebene kommuniziert, genügt zur Gewährleistung der Portabilität eine saubere Implementierung des Überganges von Speichersystem zum Betriebssystem. Die meisten Betriebssysteme stellen zumindest auch eine Block- beziehungsweise Sektor- orientierte Direktzugriffsmethode zur Verfügung, so daß sich die Operationen für das Lesen und Schreiben von Sektoren als Basis zur Realisierung des Speichersystems anbieten. Eine direkte Übertragung auf einen anderen Rechnertyp ist aber auch erst dann möglich, wenn auf dem Ziel-Rechner die gleiche Programmier- oder Maschinensprache zur Verfügung steht.

Die Universität von Kalifornien in San Diego vertreibt eine Pascal-Version (UCSD-Pascal), die bereits auf verschiedenen Kleinrechnern (Apple Micro engine, Cromemco, PDP-11 TRS 80) implementiert ist und sich durch Spracherweiterungen wie random files, String-Variablentyp und Unit-Konzept für modulare Programmierung gut für die Anwendungsprogrammierung eignet. Es bleibt zu hoffen, daß dieses System eine ähnliche Popularität erreicht wie das CP/M-Betriebssystem in den Vereinigten Staaten, damit in Zukunft nicht für jedes neue Computersystem der gesamte Zyklus der Softwareentwicklung wieder von vorne abgespult werden muß.

Eine wichtige Rolle spielen in der Zukunft neuartige Speichertechnologien wie Blasenspeicher und Bildplatte. Da die Schnittstelle zum Speichersystem Geräteunabhängigkeit schafft, sind für die Übernahme neuer Speichertechnologien keine prinzipiellen Schwierigkeiten zu erwarten. Die Schnittstellen zwischen den anderen Ebenen des Systems stellen weitere Stufen der Datenunabhängigkeit dar. Das Speichersystem stellt dem Zugriffssystem eine dynamische Speicherverwaltung zum Beispiel in Form eines virtuellen Speichers zur Verfügung. Im Zugriffssystem sind nur noch logische Aspekte der Datenbank wie Dateien und deren Indexe zu finden. Der tatsächliche physische Abspeicherungsort bleibt lediglich dem Speichersystem bekannt. Das Datensystem versorgt den Anwender beziehungsweise Programmierer mit einer Schnittstelle, die ihn von der Kenntnis der Zugriffsmechanismen befreit. Hier nimmt das DBMS aufgrund der ihm bekannten Zugriffspfade automatisch eine Optimierung von Abfrageauswertungen vor.

Der Schwerpunkt des Einsatzes von Datenbanksystemen auf Kleinrechnern wird in der Unterstützung des Anwendungsprogrammierers liegen da insbesondere kleine EDV-Anwender nicht über Datenbank-Spezialisten im eigenen, Betrieb verfügen. Dennoch wird aber auch durch Einsatz benutzerfreundlicher Abfragesprachen der Dialog zwischen Benutzer und Maschine gefördert. Hier stellt der relationale Ansatz wesentlich einfachere Möglichkeiten bereit als Hierarchie- und Netzwerkansatz mit ihren prozeduralen Datenteilsprachen. Durch Einsatz universeller Datenbanksysteme wird absehbar, daß in Zukunft die Softwareentwicklung mit der Hardwareentwicklung Schritt halten kann.

*Hermann Bense ist Teilhaber der Bense KG Coersfeld, und wissenschaftlicher Angestellter am Lehrstuhl lnformatik Vl der Universität Dortmund.