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 ;
|