Virtabs: Importieren und Verschmelzen

Aufbau von Virtabs aus anderen Virtabs

Virtabs können per MODIFIES und USES von anderen Virtabs abgeleitet werden. Durch diesen Vererbungsmechanismus entsteht eine Virtabhierarchie, die der Klassenhierarchie von objektorientierten Programmiersprachen ähnelt.
Hier wird gezeigt, wie eine Virtab eine bereits bestehende andere Virtab importiert und an das eigene Tabellennetz anbindet. T1..T5 sind Basistabellen, die miteinander über Fremdschlüssel verknüpft sind. Virtab VT1 soll von Virtab VT2 importiert werden. Die zugehörigen Schlüsselworte im Definitionsfile sind USES und die Modifikations-Anweisungen.

Beispiel

Definition der zu importierenden Virtab VT1:

Virtab VT1 enthält Spalten aus den Tabellen T1, T2 und T3. Dieses Tabellennetz wird QUERY “A” zugeordnet.

VIRTUALTABLE VT1
  TABLE T1 QUERY A FOREIGNKEY T2.t1_id
  TABLE T2 QUERY A FOREIGNKEY T3.t1_id
  TABLE T3 QUERY A
;

Halbfertige Definition der Virtab VT2:

Virtab VT2 soll im Prinzip aus VT1 bestehen, aber noch Spalten aus Table T4 und T5 enthalten. Das Sub-Tabellennetz aus T4 und T5 wird QUERY “B” zugeordnet.

VIRTUALTABLE VT2
  TABLE T4 QUERY B FOREIGNKEY T5.t3_id
  TABLE T5 QUERY B
;

Die Situation entspricht jetzt folgendem Diagramm:
 

 

Importieren

VT1 wird in VT2 mit einer USES-Anweisung importiert:

VIRTUALTABLE VT2
  TABLE T4 QUERY B FOREIGNKEY T5.t3_id
  TABLE T5 QUERY B
  USES VT1
;

VT2 besteht nach diesem Schritt nun aus zwei unverbundenen Tabellen-Netzwerken, nämlich den Queries A und B:

Verknüpfen

Die beiden Tabellennetzwerke werden verknüpft, indem T3 beiden Queries A und B zugeordnet wird (“QUERY B”), und zusätzlich der Fremdschlüssel von T4 auf T3 ins Netz aufgenommen wird (“FOREIGNKEY T4.t3_id”). Dies erledigt eine “MODIFY TABLE ALIAS”-Anweisung:

VIRTUALTABLE VT2
  TABLE T4 QUERY B FOREIGNKEY T5.t3_id
  TABLE T5 QUERY B
  USES VT1
  MODIFY TABLE ALIAS T3
   QUERY B // T3 war schon in Query A, ist jetzt in A und B
   FOREIGNKEY T4.t3_id
;

 

[Konzepte] [Virtab-Prozeduren] [LINK, FOREIGNKEY] [QUERY: Mehrfachzugriffe] [USES und Verschmelzen] [Schreibschutz, -zwang] [Daten-Teilmengen] [Synthetische Spalten] [User-SQL]