GEM is da: Datenbank IsGemDa, die zweite!

In letzter Zeit erscheint eine wahre Flut verbesserter Versionen von seit längerem eingeführten Programmen, die mit interessanten Leistungsmerkmalen für einen hohen Qualitätsstandard stehen wollen. gerade im Bereich der Datenbanken hat sich da einiges getan. auch die Berliner Gesellschaft für Informatik (gti) hat ihr gut eingeführtes Isgemda-System verbessert und in dasRennen um die Gunst der Anwender geschickt.

Wie bei den ST-Datenbanken fast schon jblich, besteht das Paket aus drei Komponenten, dem Programm zum Entwurf der Datenbanken, einer grafischen Benutzeroberfläche für die Bearbeitung der Datenbestände und einer programmierbaren Schnittstelle zur automatischen Erledigung bestimmter Arbeiten. Gerade diese Schnittstelle macht IsGemDa so interessant, weil sie ähnlich wie eine Funktionsbibliothek von jeder beliebigen Programmiersprache aus ansprechbar ist. So ist es möglich, sowohl aus BASIC als auch aus C, PASCAL oder MODULA auf die Datenbankfunktionen zuzugreifen. Für den Anwender bedeutet das einfache Erlernbarkeit, da er nur die zusätzlichen Befehle lernen muß, und ein Maximum an Flexibilität. Wer will, könnte sich sogar eine eigene Benutzeroberfläche schreiben, die das IsGemDa-Programm ersetzt. IsGemDa wird auf drei einseitigen Disketten, mit einem Handbuch im DIN A5-Ringordner und einem JOYKEY-Modul ausgeliefert. Dieses Modul sorgt dafür, daß man die Disketten beliebig kopieren, sowie das Programm problemlos auf der Harddisk installieren kann. Es muß bei Benutzung der Programmschnittstelle und der Bedienungsoberfläche im Joystick-Port 1 eingesteckt sein. Obwohl das sehr einfach klingt, kommt doch eher Frust als Freude auf, denn man sollte das Modul bei Benutzung anderer Programme tunlichst entfernen. Es beeinflußt alle Programme, die auf den Joystickport 1 zugreifen (Spiele, manche Grafikprogramme), und löst offensichtlich Tastaturinterrupts aus (Bildschirmschonprogramme versagen ihren Dienst). Außerdem sitzt es, wenn es mal steckt, bombensicher an seinem Platz, und es bedarf einiger Fummelei, bis es wieder entfernt ist. Besonders unangenehm ist dies bei den 1040ern, die ihren Port ja bekanntlich an der Unterseite des Geräts haben. Leider ist es nur allzu verständlich, daß die Softwarefirmen auf solche Methoden zurückgreifen, um die unerwünschte und illegale Verbreitung ihrer Software zu verhindern, haben doch die ATARI ST-Anwender fast schon so einen schlechten Ruf wie seinerzeit die 64er-Kids. Und so viele potentielle Käufer wie etwa bei einem PC-Programm gibt es schon lange nicht.

Es bleibt zu hoffen, daß solche Methoden in Zukunft nicht mehr nötig sind, und so die Verrenkungen vor einer ‘Sitzung’ entfallen können, auch wenn Sport sehr gesund sein soll.

Nachdem das Modul also steckt und eine Sicherheits- bzw. Arbeitskopie der Disketten angefertigt wurde, kann man darangehen, seine Datenverwaltung aufzubauen. Obwohl nicht notwendig, empfiehlt sich die Benutzung einer Harddisk; sie ist ja soo viel schneller und größer.

Alle nötigen Dateien in einen Ordner - und ab geht die Post.

Weil wir ja logisch vorgehen, starten wir zunächst das DESIGN-Programm, zu dessen Betrieb übrigens der JOYKEY nicht nötig ist.

Bild 1: Konstruktion einer Bildschirmmaske mit dem Design-Modul

Während das Programm lädt, lohnt sich ein Blick in das vollständige, verständlich geschriebene Handbuch. Es enthält neben den Beschreibungen der einzelnen Programme die Registrationskarte, ein Blatt für Verbesserungsvorschläge, Erklärungen zum Updaten von alten Versionen und zum Installieren, sowie ein umfassendes Inhaltsverzeichnis, eine Beschreibung der möglichen Fehler und unterstützten Datei-typen. Vermißt habe ich ein Schlagwortverzeichnis und eine Referenzkarte für die Befehle der Programmierschnittstelle. Etwas unbequem war auch das Umblättern, weil entweder die Ringe zu klein oder das Papier zu weit in der Mitte gelocht waren, und es dadurch ständig hängenblieb (time is money). Dafür ist das Handbuch aber in schönem Deutsch geschrieben, und die Anglizismen sind auf ein sinnvolles Maß reduziert, außerdem sind die wichtigen Passagen durch Kursivdruck hervorgehoben.

Das DESIGN-Programm präsentiert sich mit einem eigenen Desktop mit Mülleimer. Hilfsleiste für die Funktionstasten, einer doppelten Iconleiste und einem Fenster für das Datenbanksymbol.

Leider sind nicht alle Icons der Leiste ohne weiteres einsichtig, auch stimmt ihre Anordnung nicht mit der im Handbuch beschriebenen ‘logischen’ Reihenfolge zur Erstellung einer Datenbank überein. Alle Funktionen lassen sich aber auch über die Menüleiste oder teilweise über die Funktionstasten aufrufen, ansonsten hilft ein Blick ins Handbuch oder aber die Nutzung der hervorragenden Hilfefunktion. Sie stellt 3 Hilfsebenen zur Verfügung: für Anfänger, erfahrene Anwender und Experten. Im Anfängermodus wird einem immer gesagt, was die aufgerufene Funktion bewirkt. Falls man die falsche Funktion gewählt hat, kann man abbrechen. Für erfahrene Anwender wird nur vor kritischen Funktionen Hilfe gegeben, für Experten garkeine. Bevor man an die Erstellung einer Datenbank geht, sollte man sich genau überlegen und aufschreiben, was man will, da spätere Änderungen zwar möglich sind, aber nur, etwas umständlich, mit einem mitgelieferten Hilfsprogramm, insbesondere wenn schon Daten gespeichert wurden.

Nachdem man ein passendes Icon ausgewählt und der Datei einen Namen gegeben hat, sollte man die Feldinhalte definieren.

IsGemDa kennt dazu 6 Feldtypen; Text, Ganzzahl, Gleitkommazahl, Rechenfeld, Datum und Knopf.

Textfelder können beliebige alphanumerische Zeichen enthalten und maximal 31998 Zeichen lang sein. Werden sie als Schlüsselfelder benutzt, muß festgelegt sein, wieviel Zeichen signifikant sind, wie lang also die Suchzeichenkette sein kann. Ganzzahlfelder können jeden Wert zwischen +231-1 und -231 annehmen. Der Bereich für Gleitkommafelder liegt um +- 2*1038, wobei 7 Stellen signifikant sind. Gleiches gilt für Rechenfelder, die das Ergebnis zweier Operanden speichern. Diese Operanden können andere Rechenfelder, Gleitkomma- oder Ganzzahlfelder sowie Konstanten sein.

Datumsfelder enthalten das Datum in einem von 6 wählbaren Formaten, wobei jedoch kein Format dem in den USA gebräuchlichen entspricht.

Knöpfe sind die Darstellung von logischen Zuständen, AN/AUS bzw. 1/0. Sie belegen besonders wenig Platz.

Alle Feldtypen können Pflichtfelder (ausgenommen Knöpfe) und Schlüsssel sein, und entweder aufsteigend oder absteigend sortiert werden.

Nachdem so die Struktur der Datei festgelegt ist, wird im nächsten Schritt die Bildschirmmaske entworfen. Dabei fallen die sonst unüblichen zusätzlichen Gestaltungshilfen angenehm auf. So kann man nicht nur zusätzliche Kommentare eingeben und verschiedene Schriftgrößen angeben, es ist vielmehr auch möglich, graphische Grundobjekte zur optischen Gestaltung zu nutzen, und so bestimmte Bereiche der Eingabemaske bei der späteren Eingabe hervorzuheben. Die Maske kann eine Größe von bis zu 10 physikalischen Bildschirmseiten annehmen.

Mit der Definition der Eingabemaske sind die Grundarbeiten abgeschlossen. Nun kann man noch mit dem Listengenerator bis zu 4 verschiedene Listen vordefinieren und mit dem Formulargenerator bis zu 4 verschiedene Formulare oder Karteikarten. In den Formularen besteht wieder die Möglichkeit, neben den Datenfeldern freie Texte einzubauen. Die Felder und Texte können mit Attributen für die Ausgabe versehen werden. In den Listen kann man Kopf- und Fußzeilen defi~ nieren. Auch kann man Felder mit einem Zahlentyp summieren lassen, Postenzähler einbauen und bei Gruppenwechsel einen Seitenvorschub auslösen.

Es besteht übrigens die Möglichkeit, für jedes Formular und jede Liste eine andere Druckercodetabelle zu verwenden, und seine Standardtabelle vorübergehend zu ‘vergessen’. Ferner besteht noch die Möglichkeit, für jede angelegte Datei die Menünamen für die Bedienoberfläche anzupassen, z.B. die korrekten Formular-und Listennamen einzutragen. Schließlich kann man für jede Datei ein Paßwort vergeben, das bei jedem Öffnen des Datenbestandes abgefragt wird. Dummerweise wird das Passwort aber bei jeder Eingabe offen angezeigt; falls einem also ein Unbefugter über die Schulter schaut, ist es aus mit dem Datenschutz. Hier sind die Programmierer gefragt, Abhilfe zu schaffen. Natürlich muß eine Datenbank nicht nur aus einer Datei bestehen. Oft ist es einfacher, Datenbestände auf mehrere Dateien zu (erteilen und so redundante Information zu puren. Zu IsGemDa wird eine Beispielanwendung mitgeliefert, die Grundstein zu nnem kompletten Lagerverwaltungssystem sein kann. Sie besteht aus den vier Dateien Artikel, Lager, Bestell und Liefer. In der Datei Artikel sind Informationen über ein Produkt gespeichert, Name , Beschreibung, Bestellnummer, Lieferantenkürzel und so weiter. Die Angaben zu einem Lieferanten stehen in Liefer. So braucht man die Information für jeden Lieferanten nur einmal einzugeben, auch wenn dieser mehrere Artikel liefert. Zu der Beispiel-Anwendung gehört außerdem noch ein Programm, das die Fähigkeiten der Programmschnittstelle zeigt und automatisch diejenigen Artikel in die Bestelldatei schreibt, deren Mindestmenge unterschritten ist.

Schließlich existiert noch ein Dokument, nit dem das Mischen von Daten gezeigt »ird. Die Daten aus der Bestelldatei werden ausgewertet und Bestellungen an die jeweiligen Lieferanten ausgedruckt.

Datenmanipulation unter GEM...

Die Bedienoberfläche für IsGemDa präsentiert sich ähnlich wie das Design-Programm. Zur Hilfsleiste für die Funktionstasten und zum Papierkorb gesellt sich hier ein Klemmbrett, auf dem der Inhalt eines einzelnen Feldes zwischengespeichert werden kann. Bis zu acht Datenbestände können gleichzeitig geöffnet werden. Jeder Datensatz wird durch das in Design ausgewählte Icon dargestellt und seine Maske in einem Fenster. Diese Fenster werden maximal so groß dargestellt, daß die definierte Maske gerade hineinpaßt. IsGemDa unterscheidet bei geöffnetem Datenfenster zwischen den zwei Betriebsarten BEARBEITEN und SELEKTIEREN. Im Modus BEARBEITEN kann man beliebig Daten eingeben, Datensätze anlegen, suchen, verändern, ausgeben und auch löschen. Teilmengen der Datensätze lassen sich über die festgelegten Schlüssel selektieren, wodurch man in den Programmzustand SELEKTIEREN gelangt. In diesem Modus beziehen sich alle Funktionen nur auf die selektierten Datensätze, die man auch als eigene Datei ablegen kann. Einige Funktionen kann man nur auf selektierte Datensätze anwenden. Dazu gehört insbesondere die Sortierfunktion. Mit ihrer Hilfe kann man sowohl nach Schlüsselfeldern als auch nach Nichtschlüsselfeldern sortieren, wobei man bis zu 10 Suchkriterien angeben kann. Allerdings steigt die Suchzeit exponentiell mit der Anzahl der zu sortierenden Datensätze, und das Sortieren nach Nichtschlüsseln ist sehr viel langsamer als nach Schlüsseln. Auch ist es möglich, für selektierte Datensätze eine Änderung global durchzuführen.

Falls in einer Datei viele Datensätze gelöscht wurden, kann man sie vom Desktop einfach reorganisieren.

Zu diesen allgemeinen Funktionen hat man sich aber auch einige gute Detaillösungen einfallen lassen. So gibt es für Textfelder einen Schnellediermodus, der besonders bei langen Texten sehr sinnvoll ist. Bei der Übernahme der Daten werden Plausibilitätsprüfungen durchgeführt, soweit das möglich ist.

Bild 2: Arbeiten mit dem Hauptprogramm

Auch ist die Tastaturbelegung sinnvoll, man kann bei der Dateneingabe vollkommen auf die Maus verzichten, wenn man will. Beim Suchen gibt es wie üblich einen Quantor, das Fragezeichen (?),für einzelne Zeichen und einen Allquantor, den Asterisk (*), für beliebige Zeichenketten. Zusätzlich gibt es für die Suche in Textfeldern noch die Tilde (~), die man einsetzt, wenn man nicht weiß, wo in einem Textfeld die zu suchende Zeichenkette steht, und schließlich noch den senkrechten Strich (I), der die Suche auf alle vorhandenen Textfelder in den Datensätzen ausdehnt.

Die Daten werden - wie bereits erwähnt -in Listen, Formularen und Mischdokumenten ausgegeben. Für Listen und Formulare läßt sich die Ausgabe über die serielle, die parallele Schnittstelle, auf den Monitor oder in eine Datei schicken. Auch beliebige Kombinationen sind erlaubt.

Für den Datenaustausch mit anderen Programmen werden 2 Formate bereitgestellt, DIF (data interchange format) und ASCII. Im DIF werden Merkmale durch das HT-Zeichen (ASCII-Code 9) und Datensätze durch das VT-Zeichen (ASCII-Code 12) getrennt. Leider kennen andere Programme auch noch andere DIFs, so daß der Austausch nicht unbedingt gewährleistet ist. So baut zum Beispiel dbman eine sehr viel komplexere Datei auf, in der neben den eigentlichen Daten auch noch eine komplette Beschreibung des Datensatzformates mitgeliefert wird. Mit Hilfe des ASCII-Formats ist jedoch ein einfacher Datenaustausch möglich. Jede Zeile enthält ein Merkmal und wird mit CR und LF (ASCII CODES 13 und 10) abgeschlossen.

Diese Codes werden zum Beispiel auch in von BASIC aus angelegten sequentiellen Dateien verwendet. Falls ein anderes Programm also nicht das passende Format erzeugt, kann man mit Hilfe eines selbstgeschriebenen Programms die Daten passend konvertieren.

Ebenso wie im Design-Programm gibt es eine sehr gute Hilfefunktion, die sogar noch ergänzt wurde.

...und im eigenen Programm

Im Gegensatz zu anderen Datenbanksystemen verfügt IsGemDa nicht über eine eigene Datenbanksprache. Das ist auch gar-nicht nötig, da eine Schnittstelle bereitgestellt wird, über die praktisch jede Programmiersprache mit den nötigen Datenbankfunktionen ausgestattet wird.

Die Programmiersprache muß einige Voraussetzungen erfüllen. Erstens muß sie GEMDOS-Aufrufe ausführen können, und zweitens muß sie in der Lage sein, Speicher, den sie nicht braucht, freizugeben.

Sind diese Voraussetzungen erfüllt, stehen dem Programmierer 44 neue Funktionen zur Verwaltung seiner Daten zur Verfügung.

Da die GEMDOS-Aufrufe und die interne Speicherverwaltung nicht zu den einfachsten Teilen der Programmierung gehören, werden für C, GFA-BASIC, MODULA, ST-PASCAL+ und Omikron-BASIC Bibliotheken und Beispielprogramme mitgeliefert, die den eigenen Aufwand auf ein Mindestmaß reduzieren. Die Vorteile dieses Konzepts liegen auf der Hand. Man kann weiterhin in seiner Lieblingssprache programmieren und hat deren gesamtes Potential zur Verfügung. So fallen zum Beispiel Beschränkungen in der Anzahl der Variablen weg, und man kann auch seine eigenen Programme mit einer GEM-Umgebung ausstatten.

Und hier besteht auch eine Möglichkeit, selber Geld zu verdienen. GTI bietet den Programmierern von Anwendungen die Möglichkeit, entweder JOYKEY-Module für 114 DM zu beziehen, wodurch auch die eigene Arbeit geschützt wird, oder aber für 2280 DM eine ungeschützte Version der Programmierschnittstelle zu erwerben, die dann den eigenen Programmen in beliebiger Anzahl beigelegt werden darf.

Die Funktionen, die von dieser Programmierschnittstelle bereitgestellt werden, erlauben alle Funktionen, die auch von der Benutzeroberfläche erreichbar sind, sowie in begrenztem Umfang statistische Auswertung und anderes mehr.

In den Ordnern für die Bibliotheken befinden sich - wie oben - Beispielprogramme, im Ordner für GFA-Basic zusätzlich neben dem Runtime-Interpreter auch noch einige Hilfsprogramme für den automatischen Update von älteren Versionen von IsGemDa, für die Umbenennung eines Datenbestandes und die Anpassung eines bestehenden Datenbestandes an eine neue Struktur.

Für das dritte Quartal 1988 plant man bei GTI eine neue Version von IsGemDa. wobei man hauptsächlich auf Kundenwünsche eingehen will. Hoffentlich wird man es dann nicht mehr als notwendig erachten, seine Software schützen zu müssen Mit IsGemDa kauft man also nicht nur eir fertiges und qualitativ hochwertiges Produkt, sondern wird in die Weiterentwicklung desselben mit einbezogen.

Bild 3: Es bestehen viele Ausgabemöglichkeiten

Christian Schmitz-Moormann
Aus: ST-Computer 02 / 1988, Seite 61

Links

Copyright-Bestimmungen: siehe Über diese Seite