Regent Base II, GEM-Datenbank - Strukturierte Auskunftei

Die Flut der Datenbanksysteme für den ST reißt nicht ab. Aus Köln bzw. Kalifornien kommt die Datenbank Regent Base II. Dieses Datenbanksystem fällt besonders durch zwei Merkmale auf, die es von seinen Konkurrenzprodukten abheben. Auf der einen Seite ist da die konsequente Ausnutzung des GEM-Interfaces, wobei allerdings einige Erweiterungen eingearbeitet wurden, die sonst nur auf Apples Macintosh zu finden sind, zum anderen läßt sich Regent Base mit SQL programmieren, einer Datenbankabfragesprache, die zu Beginn der 70er Jahre von IBM für Großrechenanlagen entwickelt wurde und heute zunehmend auch auf kleineren Systemen zu finden ist. Auch dBase IV von Ashton Tate für PCs hat einen SQL-Parser.

Lieferumfang

Doch bevor wir näher auf diese besonderen Merkmale eingehen, ein kurzer Blick auf den sonstigen Lieferumfang. Die Testversion von Regent Base II wurde in einem Ordner mit deutschem Handbuch und zwei nicht kopiergeschützten, einseitigen Disketten ausgeliefert. Das etwa 150 Seiten starke Handbuch besteht aus acht Kapiteln, die von der Installation über eine kurze Einführung in das Datenbanken! bis zur Befehlsreferenz alles enthalten. Dabei ist das Handbuch stellenweise aber recht knapp, so daß Anfänger im Umgang mit Regent Base zu Beginn Schwierigkeiten haben können. Hat man aber einmal das Prinzip der Programmierung verstanden, so ist die Bedienung konsequent und recht einfach. Außerdem wird im Handbuch mehrfach auf einen Telefon- und Postservice hingewiesen, wo man sich bei Fragen Antworten und Hilfen holen kann.

Regent Base setzt sich aus sechs Modulen zusammen. Nachdem man sich eine Arbeitsdiskette oder Partition erstellt hat, wird mit dem Modul INSTALL zunächst das Datenbanksystem initialisiert. Nun kann man mit dem MENU-Modul die anderen Module aufrufen - einen Editor für Programme und Bildschirmmasken, einen Programminterpreter. ein Sortierprogramm sowie ein Modul zum Erstellen, Ändern, Löschen und Kopieren von Dateien, das als Dienstprogramm bezeichnet wird.

Bild 1: Das Hauptmenü von Regent Base

Fürs Auge

Das Sortier- und das Dienstprogramm sind offensichtlich hauptsächlich für den Anfänger gedacht, da sie die gleichen Arbeiten erledigen helfen, die man auch mit Hilfe einer Prozedur ausführen kann. Nur steht dem Anwender hier eine graphische Benutzerführung zur Verfügung. Er sieht also auf dem Bildschirm, wie z.B. die Datei aufgebaut ist, die er gerade an legt. Das sieht wirklich hübsch aus, hatte in der Testversion nur einen kleinen Schönheitsfehler. Während alle Texte eingedeutscht wurden, enthalten die Symbole (Icons) noch englische Texte, aber vielleicht erhält die endgültige deutsche Version ja auch noch neue Symbole. Wie gesagt, ein Schönheitsfehler, aber nicht sehr hinderlich.

Bild 2: Der Interpreter beim Ausführen einer Prozedur

Auch in den beiden Hauptmodulen von Regent Base, dem Formulareditor und dem Interpreter, kommt man voll auf seine GEM-Kosten. Der Formulareditor besteht aus zwei Teilprogrammen, einem Text- und einem Maskeneditor. Bevor ich fortfahre, muß ich jetzt aber erst einmal auf das Konzept von Regent Base eingehen, das einen ziemlich eigenen Weg der Datenverarbeitung darstellt.

Zunächst ist da der Maskeneditor. Mit ihm lassen sich Eingabemasken erstellen, ähnlich wie man mit einem Resource Construction Set arbeitet. Eine Maske kann bis zu vier Bildschirmseiten umfassen. Der Maskeneditor kennt sieben Objekttypen. Symbole (Icons), Kreise, Rechtecke, Selektionsknöpfe (Buttons), grafische Textobjekte, edierbare Textfelder und Ausgabefelder. Symbole können wie Selektionsknöpfe verwendet werden, mit grafischem Text kann man feste Texte, z.B. Hilfsanzeigen auf den Bildschirm bringen, in Ausgabefeldern lassen sich errechnete Ergebnisse, Feld- oder Variableninhalte anzeigen und in edierbaren Textobjekten hat man die Möglichkeit, Eingaben zu machen.

Bild 3: Maskenerstellung im Objekteditor

Bei der Erstellung der Bildschirmmasken kann man sämtliche Textattribute und viele Grafikattribute des GEM verwenden, so daß die Gestaltung sehr frei ist. Jedes Objekt erhält eine Nummer, man kann ihm aber auch einen Namen geben.

Dies sollte man vor allem bei Knöpfen, Ein- und Ausgabefeldern tun. Die Objekte können in Größe und Position beliebig eingestellt werden. Als Bonbon können die Eingabefelder Text auch mehrzeilig aufnehmen, wobei auf Wunsch ein Wortumbruch automatisch ausgeführt wird.

Eine echte Annehmlichkeit!

Regent Base unterstützt das neuerdings von ATARI dokumentierte systemweite Klemmbrett. Dazu muß im Autoordner ein kleines Hilfsprogramm installiert werden.

Über dieses Klemmbrett soll man dann auch Daten mit anderen Programmen austauschen können. Leider fehlte das Programm für den Auto-Ordner.

Bei Regent Base gehört zu jeder Bildschirmmaske eine Prozedur (Programm), in der Benutzereingaben entgegengenommen und bearbeitet werden. Ein solcher Komplex von Bildschirmmaske und Prozedurtext heißt Formular.

Was ist eigentlich SQL?

Regent Base benutzt als Programmiersprache SQL. SQL steht für Structured Query Language, was soviel heißt wie Strukturierte Abfragesprache. Diese Sprache baut auf einem Datenbankkonzept auf, das zu Beginn der 70er Jahre von einem Dr.E.F. Codd entwickelt wurde, dem Prinzip der relationalen Datenbank. Deren wesentliches Merkmal ist, daß über Verknüpfungen jedes gespeicherte Datenelement immer erreichbar ist, ohne daß Information redundant, also mehrfach gespeichert wird. Auf der Basis des von Dr. Codd dargelegten theoretischen Konzepts entwickelte IBM für seine Großrechner die Strukturierte Abfragesprache SQL (ausgesprochen Cihquell). Dieses System wurde nun mit Regent Base auf dem ATARI implementiert. Dem Kenner von dBase III oder dBase II-ähnlichen Datenbanksystemen fallen sofort einige Unterschiede auf.

Regent Base verfügt über ein Data Dictionary (Datenlexikon). Es besteht aus drei Dateien mit den Namen TABLES, FIELDS und INDEXES. Diese Dateien sind Teil einer jeden unter Regent Base aufgebauten Datenbank. In diesen Dateien wird gespeichert, welche Dateien zu einer Datenbank gehören, aus welchen Feldern sie aufgebaut sind, und welche Dateien nach was für Schlüsselfeldern indiziert wurden. Auf den ersten Blick stellt sich die Frage nach dem Sinn eines solchen Datenlexikons, Datensynopse wäre hier passender.

Bei der Benutzung des Systems werden aber schnell Vorteile offensichtlich. Es ist nicht mehr notwendig, jede Datei einzeln für sich in einem eigenen Datenbereich zu öffnen, da Regent Base, wenn auf ein Datenfeld oder eine Datei zugegriffen wird, diese zunächst in seinem Datenlexikon sucht und dann selbständig die Verwaltung der Dateien übernimmt. Eine echte Arbeitserleichterung, vor allem bei der Programmierung komplexerer Datenbanken. Die Implementation von SQL ist ziemlich vollständig, nur Multi-User-Befehle sind nicht implementiert und das Schachteln innerhalb einer Befehlszeile geht nicht. Trotzdem kennt Regent Base nur etwa 35 Befehle! Man braucht also nicht viel Neues auswendig zu lernen, um mit Regent Base programmieren zu können.

Etwas störend ist hier allerdings das Fehlen von Befehlen zur strukturierten Programmierung wie FOR...NEXT oder DO...WHILE-Schleifen. Man muß alles mit IF...THEN und GOTO erledigen. Das geht zwar, stellt aber hohe Ansprüche an den Programmierer, damit kein ‘Spaghetticode' entsteht.

Programmdateien können mit dem im Formulareditor integrierten Texteditor oder einem externen Programm wie z.B. Tempus erstellt werden.

Innerhalb eines Programmes können unter anderem Dateien erstellt und gelöscht. Daten geändert und Benutzereingaben bearbeitet werden. Benutzereingaben können per Maus- und Tastatureingaben entgegengenommen werden, die Funktionstasten sind belegbar. Die Eingaben werden in einer Systemvariablen namens USER$ übergeben und können dann ausgewertet werden. Falls in einem Programm Laufzeitfehler auftreten, können diese in einer Programmroutine mit Hilfe des Befehles ON ERROR GOTO... abgefangen werden. Es ist also möglich, komplette Programme zu erstellen. Laut Auskunft der Vertriebsfirma wird es auch Zusätze zu GFA-BASIC, OMIKRON.BASIC und bei Bedarf zu anderen Programmiersprachen geben, mit denen die Möglichkeiten von Regent Base in diesen Sprachen genutzt werden können. Ein RUN ONLY-Interpreter, mit dem man selbstgeschriebene Programme vertreiben kann, ist ebenfalls in Vorbereitung.

Auf der mitgelieferten Anwendungsdiskette findet sich eine ganze Reihe von Anwendungsbeispielen, von denen die meisten leider samt Dokumentation nur in englischer Sprache vorliegen. Doch die Programme bieten gute Beispiele für eigene Anwendungen. Es ist damit zu rechnen, daß in nächster Zeit weitere Beispiele in deutscher Sprache hinzukommen. so daß man besonders am Anfang bei der Programmierung viel abschauen kann.

Regent Base ist ein einfach zu programmierendes und leicht zu handhabendes, aber trotzdem leistungsfähiges Datenbanksystem. Der Preis beträgt 298,- DM. Schon nach kurzer Einarbeitungszeit sollte jemand mit Programmiererfahrung in der Lage sein, auch umfangreichere Programme selbst zu erstellen. Kleinbetriebe und private Anwender mit gehobenen Ansprüchen sollten sich dieses Datenbanksystem einmal vorführen lassen. Die, die nicht selber programmieren wollen, aber trotzdem die angenehme Oberfläche benutzen möchten, können sich Programme für ihren Bedarf erstellen lassen.

CSM

Bezugsadresse:

COMPUTERWARE Gerd Sender Weißer Str. 76 5000 Köln 50

Bild 4: Erstellung der Prozedur zur Bildschirmmaske
REM Hier erstellen wir nun die Datenbank; 
Erstelle:

REPORT Die Datenbank wird erzeugt.;

CREATE TABLE ADRDEMO Name char (35), Adresse char(35),
                     Ort char(35), Telefon char(15); 
CREATE TABLE NOTIZ   Name char (35), Notiz char (120);

REM Hier beginnt die Hauptroutine; 
Haupt: 
Show Page 1;
Hschleife: Report Bitte wählen Sie!;
USER$
If USER$ = %@Mbearbeiten then Adr;
IF USER$ = %@Mende       then Verlassen;
Goto Hschleife;

REM In diesem Teil wird die Bedienung der Adressen gesteuert.;

 Adr:
  Report Adressen Verwaltung.;
  ONERR GOTO Adrerror;
Show Page 2;
 Goto Adrerster;

Adresse:
 USER$;
  If USER$ = %@Asuchen    then Adrau;
  If USER$ = %@Avor       then Adrvor;
  If USER$ = %@Azurueck   then Adrzurueck;
  If USER$ = %@Aeinfuegen then Adrein;
  If USER3 = %@Aaendern   then Adraendern;
  If USER$ = %@Aloeschen  then Adrloeschen;
  If USER$ = %@Aerster    then Adrerster;
  If USER$ = %@Anotiz     then Hnotiz;
  Goto Adresse;

Adrerror:
    If ERR$ = 298 then Err298;
    Report Es ist ein Fehler aufgetreten.; 
    Goto Adrerster;
Err298: Report Kein Datensatz gefunden.; 
    Goto Adresse;

REM Es folgen alle Unterroutinen für die Adress-Bearbeitung.;

 Adrerster
  Select [1] %Aname=Name, %Aadresse=Adresse, %Aort=Ort, %Atelefon=Telefon from ADRDEMO;
 Goto Adresse;

Adrsu:
 Report Adresse suchen.;
 Select [1] %Aname=Name, %Aadresse=Adresse, %Aort=Ort,
  %Atelefon=Telefon from ADRDEMO WHERE Name=%Aname;
 Goto Adresse;


Aus: ST-Computer 05 / 1989, Seite 169

Links

Copyright-Bestimmungen: siehe Über diese Seite