home *** CD-ROM | disk | FTP | other *** search
- Brückenschlag dBase - Prolog
-
- Konstruktion dynamischer Turbo-Prolog-
- Datenbanken aus dBase III-Dateien
-
- von Dr. L.Wenzel
-
- Prolog verfügt über sehr flexible
- Möglichkeiten der Datenauswertung. Bis
- dato war es aber immer ein Problem
- gewesen, dBase Datenbestände in
- Prolog-Programme einzulesen. Hier ist
- die Lösung !
-
- Deklarative Sprachen wie Prolog stützen
- sich auf zwei Grundsäulen. Der Anwender
- sorgt:
- 1. für die Aufstellung der
- erforderlichen Regeln und
- 2. muß er das Faktenmaterial
- zusammenstellen, auf
- dessenGrundlage die Regeln
- eingesetzt werden können.
- Alle einigermaßen sinnvollen Anwendungs-
- fälle verfügen über eine umfangreiche
- Faktensammlung. Wenn dem nicht so wäre,
- hätte man Sprachen wie Prolog nicht ent-
- wickeln müssen.
- Turbo-Prolog bietet durch das Konzept
- der dynamischen Datenbank in dieser Hin-
- sicht viele interessante Möglichkeiten.
- Prinzipiell läßt sich eine dynamische
- Datenbank in Turbo-Prolog selbst aufbau-
- en. Es gibt aber zwei gewichtige Gründe
- dafür, daß man sich mit der Konvertie-
- rung von dBase III-Dateien in dynamische
- Turbo-Prolog-Datenbestände befassen
- sollte.
- In grauer Vor(-Prolog-)Zeit wurden nun
- einmal viele Megabyte mit Hilfe von Da-
- tenbanksystemen bewältigt, die eigent-
- lich nur darauf warten, mit Intelligenz
- versehen zu werden. Auf der anderen Sei-
- te müßte man wohl viel Zeit investieren,
- um den mit dBase III erreichten Stand
- des Services in Turbo-Prolog selbst zu
- realisieren.
- Das abgebildete Programm (Turbo-Prolog
- 1.0) analysiert nach Eingabe des Namens
- einer vorliegenden dBase III-Datei zu-
- nächst die Struktur dieser Datenbank.
- Dazu dient das Prädikat "analysefelder".
- Erkannte dBase III-Felder werden zusam-
- men mit Längeninformation verarbeitet.
- Dabei wird automatisch in den Turbo-
- Prolog Typ "string" konvertiert, unab-
- hängig davon, welcher dBase III Typ vor-
- liegt. Das ist keine große Einschrän-
- kung, da gegebenenfalls interne Turbo-
- Prolog Konvertierungen vorgenommen wer-
- den können. Allerdings lehnt das Pro-
- gramm mit Hilfe des Prädikates "memoana-
- lyse" dBase III-Dateien ab, die Memo-
- Felder besitzen. Eigentlich stellt die
- Konvertierung von Memo-Feldern kein
- schwieriges Problem dar, jedoch wären
- dazu einige Erklärungen zur inneren Or-
- ganisation der Dateien vom Typ .DBT not-
- wendig.
- Die eigentliche Konvertierung liefert
- zwei Dateien. Beide Dateinamen beginnen
- genauso wie die dBase III Quelldatei.
- Diejenige mit der Extension .PRO bildet
- den Definitionsteil der erzeugten dyna-
- mischen Datenbank, die andere Datei mit
- der Extension .DAT stellt die angespro-
- chene dynamische Datenbank dar.
- Noch ein Wort zur Größe der dynamischen
- Datenbank. Da in Turbo-Prolog 1.0 kein
- virtuelles Konzept realisiert ist, dür-
- fen solche Datensammlungen nicht sehr
- umfangreich sein. Als Ausweg bleibt dann
- der Einsatz der statischen Datenverwal-
- tung, die mit Standardprädikaten bear-
- beitet werden kann. In Turbo Prolog 2.0
- taucht das Problem nicht in dieser Form
- auf, dort gibt es Prädikate, die es
- erlauben dynamische Datenbanken auf
- Massenspeicher zu expandieren.
- (MS)