Beispiel

Das folgende einfache Modell enthält zwei Klassen A und B, die beide einige primitive Eigenschaften haben. Außerdem verweist A auf eine Liste von Bs über die Referenz bs:

Legt man von A und B die folgenden 3 Instanzen an:

Objekttabelle

Dann finden sich in der Tabelle GenericObject z.B. die folgenden drei Zeilen:

SELECT * FROM GENERIC_OBJECT;
BRANCH IDENTIFIER REV_MAX REV_MIN REV_CREATE T_TYPE_ID
1 6013 9223372036854775807 103 103 6003
1 6014 9223372036854775807 104 104 6004
1 6015 9223372036854775807 105 105 6004

Die Objekttabelle enthält nur technische Information zur Identifikation, Gültigkeit und dem konkreten Typ des Objektes.

Eigenschaften

Die Werte der Eigenschaften und Referenzen sind in eigenen Tabellen gespeichert:

SELECT * FROM FLEX_DATA WHERE BRANCH=1 AND IDENTIFIER=6013;
BRANCH TYPE IDENTIFIER REV_MAX ATTR REV_MIN DATA_TYPE LONG_DATA DOUBLE_DATA VARCHAR_DATA CLOB_DATA BLOB_DATA
1 GenericObject 6013 9223372036854775807 name 103 30     A1    
1 GenericObject 6013 9223372036854775807 x 103 11 13        

Die Werte der Eigenschaften name und x finden sich in der Tabelle FlexData.

Referenzen

Die Links zu den beiden B-Objekten befindet sich in der Tabelle hasWrapperAttValue

SELECT * FROM HAS_WRAPPER_ATT_VALUE WHERE BRANCH=1 AND SOURCE_ID=6013;
BRANCH IDENTIFIER REV_MAX REV_MIN REV_CREATE SOURCE_TYPE SOURCE_ID DEST_TYPE DEST_ID META_ATTRIBUTE_ID SORT_ORDER
1 6016 9223372036854775807 106 106 GenericObject 6013 GenericObject 6015 6012  
1 6017 9223372036854775807 106 106 GenericObject 6013 GenericObject 6014 6012  

Hier sieht man in der Spalte destId die beiden Fremdschlüssel 6014 und 6015, welche in die Tabelle GenericObject zeigen und dort die beiden B-Objekte referenzieren. Der Name der Modell-Referenz ist nicht direkt in der Tabelle ersichtlich. Stattdessen befindet sich in der Spalte metaAttributeId ein weiterer Fremdschlüssel 6012, welche in die Modell-Tabelle MetaAttribute zeigt.

SELECT * FROM META_ATTRIBUTE WHERE BRANCH=1 AND IDENTIFIER=6012;
BRANCH IDENTIFIER REV_MAX REV_MIN REV_CREATE NAME IMPL OWNER_ID OWNER_ORDER TYPE_TYPE TYPE_ID END_ID DEFINITION_ID
1 6012 9223372036854775807 102 102 bs reference 6003 3072   0 6011 6012

Die so referenzierte Zeile repräsentiert die Modell-Referenz bs des Typs A. Der Modell-Typ A selbst wird über den Fremdschlüssel 6003 in der Spalte ownerId referenziert:

SELECT * FROM META_ELEMENT WHERE BRANCH=1 AND IDENTIFIER=6003;
BRANCH IDENTIFIER REV_MAX REV_MIN REV_CREATE NAME SCOPE_TYPE SCOPE_ID MODULE_ID IMPL ABSTRACT FINAL
1 6003 9223372036854775807 96 96 A TLModule 6002 6002 class false false