Virtabs: Der Entwicklungszyklus

ER2SQL

Das ganze Virtabs-Konzept verkörpert sich ausschliesslich im Codegenerator ER2SQL
Der Name "ER2SQL" steht für "Entity-Relationship diagram TO SQL code".
ER2SQL ist ein kommandozeilen-orientiertes Programm und ist auf jedem System mit ANSI-C-Compiler übersetzbar und lauffähig.

ER2SQL wird durch einen Definitionsfile gesteuert, und produziert daraus den Sourcecode für die verschiedenen Software-Komponenten des Virtab-Systems.
 Im Definitionsfile ist hauptsächlich zweierlei festgehalten:

  • die Tabellen- und Verknüpfungsstruktur der Datenbank, für die die Virtabs erzeugt werden sollen.
  • eine Liste von Virtab-Definitionen, die pro Virtab in der Hauptsache aus der Auswahl von Datenbank-Tabellen und -Spalten besteht, die in der jeweiligen Virtab dargestellt werden sollen.

Aus diesen Angaben kann ER2SQL für jede Virtab den Definitionscode für die Abfrage-View und die drei Prozeduren (INSERT-, UPDATE- und DELETE-Prozedur) erzeugen, ebenso den Code für die Applikation-Interfaces (Java und Delphi).

Der Entwicklungszyklus: Start

Bevor Virtab-Sourcecode erzeugt werden kann, muss folgendes getan werden:

1:

Die Datenbank wird an die Anforderungen der Virtabs angepasst:  Jede Tabellen bekommt einen Primärschlüssel, für jeden Primärschlüssel wird eine eigene Sequenz mit vorgegebenem Namen erzeugt.
Fremdschlüssel sollten mit REFERENCES-Constraints und Indices versehen sein.

2:

Die Struktur der Datenbank, für die Virtabs entwickelt werden sollen, wird im ersten Abschnitt des Definitionsfiles eingetragen.
Es es werden Tabellen, ihre Spalten und Fremdschlüssel dokumentiert. Es muss allerdings nicht die ganze DB erfasst werden, sondern nur die Tabellen, die für die Virtab-Erstellung relevant sind.

3:

Als Test generiert man mit ER2SQL das SQL-Skript zur Erzeugung der Datenbank (“-defdbtables -defdbindexes -defdbconstraints”). Der produzierte SQL-Code muss mit dem Code der Datenbanktabellen selbst identisch sein.

4:

Wenn es Abweichungen gibt: GOTO 2.

Der Entwicklungszyklus: die große Schleife ...

... oder: ”edit, compile, run, re-edit, re-compile, re-run, re-edit, re-compile, re-run ....”

Die tägliche Arbeit mit dem Virtab-System besteht aus beliebig vielen Wiederholungen der folgenden Aktionen:

5:

Editieren des Definitionsfiles, um Virtabs zu definieren, bzw. Virtabdefinitionen zu korrigieren. Normale Reihenfolge für neue Virtab:

  1. TABLE Anweisungen zum Festlegen der Abfragestruktur
  2. COLUMN Anweisungen zur Spaltenauswahl
  3. CONSTRAINT Anweisungen zur Zeilenauswahl
  4. Debugging:
  5. Linkstruktur ergänzen: TABLE ... FOREIGNKEY.

6:

Test des Definitionsfiles durch einen Aufruf von ER2SQL ohne Codeerzeugung.

7:

Syntaxfehler oder Logikfehler in den Virtabdefinitionen?
Wenn ja: GOTO 5.

8:

ER2SQL laufen lassen und Sourcecode für View, Prozeduren und Trigger erzeugen (“-deview -defprocs -deftrigger”). Es entstehen SQL-Dateien (View, Prozeduren, Trigger) und Sourcecode-Module für Java oder Delphi (Applikation-Interfaces).

9:

Als Prüfung komplizierter Virtabs kann man den erzeugten SQL-Code sichten und versuchen, die “CREATE VIEW” -Anweisungen zu verstehen. Und falls man sich wirklich langweilt, kann man sich auch an die “CREATE PROCEDURE” wagen ...

10:

Stimmen die Tabellenverknüpfungen? Wenn Fehler: GOTO 5.

11:

Der SQL-Code wird auf dem (ORACLE)-RDBMS übersetzt, zum Beispiel mit SQL*PLUS.

12:

Fehler bei der Übersetzung eines sql_expr (CALCULATES, DEFAULT, CONSTRAINT)? GOTO 5

13:

Wenn anderer Übersetzungsfehler: Stimmen die Datenbank-Voraussetzungen?
Gibt es Differenzen zwischen Datenbank und der Datenbankdefinition?
GOTO 1.

14:

Mit einem weiteren Aufruf von ER2SQL (etwa “-dbname -dbschema -delphi3”) wird das Sourcecode-Modul mit dem Applikation-Interface erzeugt. Die erzeugte Datei wird in die Entwicklungsumgebung für die Fachlogik, bzw. die Benutzeroberfläche kopiert.

15:

Mit einer Entwicklungsumgebung wird die Anwendung übersetzt und getestet.

16:

Tritt ein Virtab-Laufzeitfehler auf? GOTO 15.

17:

GOTO 5.
Oder: (don’t laugh, it happens!) GOTO 1

Der hier dargelegte Ablauf kann nach Belieben verändert werden. Diese einzelnen Schritte lassen sich gut in BAT-Dateien verpacken.

 

[Virtabs] [Positionierung] [Schreibbare Views?] [Schreibbare Views!] [Feature-Überblick] [Virtabs entwickeln] [Unterstützte Datenbanken] [Referenz] [Konzepte] [Application-Interfaces] [Struktur der Demo-DB] [Guided tour] [Beispiel-Code]