Man möge mir das unnötige Englisch in der
Überschrift verzeihen, aber „Special Use Cases“ klingt im Moment einfach besser
als „spezieller Anwendungsfall“, zumindest für eine Überschrift. Aber kommen
wir zum eigentlichen Thema:
Wenn Sie sich mit ModGen auseinandersetzen
sind Ihnen grundlegende Fälle höchstwahrscheinlich bereits bekannt. Wie bildet
sich ein Hub aus meinem Staging-Modell, wie ein Link? Solche Standardfälle
dürften für die meisten Anwender kein großes Problem darstellen. Für unseren
Generator schon gar nicht.
Sicherlich kennen Sie aber auch Situationen,
in denen wir von solchen Standardkonstrukten abweichen müssen. Einer dieser
Fälle, den Sie bestimmt schon zur Genüge selbst modelliert haben, ist zum
Beispiel die „Zwischentabelle“ oder auch „Auflösungstabelle“ (mir sind dafür
mittlerweile bestimmt über sieben Begriffe geläufig). Gemeint sind damit
Tabellen, die dazu dienen, n:m – Beziehungen aufzulösen.
Klassischer Fall einer Auflösungstabelle |
Würden wir das in Data Vault „übersetzen“,
wäre BankAccountOwner ein Link
welcher die beiden aus Customer und BankAccount erzeugten Hubs miteinander
verbindet. Eine Besonderheit hier, wäre es, dass der Link erzeugt aus BankAccountOwner über einen eigenen SAT
verfügt. Ein SAT am Link ist quasi eines dieser Nicht-Standardkonstrukte.
Die Frage ist: Erkennt ModGen solche
Strukturen und kann es damit umgehen? Ja, kann es, und das funktioniert
folgendermaßen:
Wenn wir unser Quellmodell für ModGen
vorbereiten, erhält jede Spalte einen DV-Typ, so viel sollte an diesem Punkt
bereits bekannt sein. In den meisten
Fällen ist das Identifizieren dieser Objekttypen gar nicht so schwierig:
Primärschlüssel lassen sich oft mal als BusinessKeys (BKEY) identifizieren,
Fremdschlüssel sind meistens ForeignKeys (FKEY), der Rest entweder
beschreibende Felder (CONT) oder Objekte, die wir für die Generierung einfach
ignorieren (wie zum Beispiel Meta-Spalten).
In unserem oben gezeigten Fall, der Tabelle BankAccountOwner, ist das jedoch nicht
der Fall. Wir haben zwei Fremdschlüssel (die zusammen quasi den Primärschlüssel
ergeben) sowie die Spalte „InsertDate“,
welche in dem Fall beschreibende Informationen enthält.
Unsere identifizierten Spalten würden also wie
folgt aussehen:
Spaltenwerte im erwin DM Bulk Editor |
Es springt direkt ins Auge: Dieser Tabelle
beinhaltet keinen BKEY und würde somit keinen Hub erzeugen. Wohin also mit der
SAT-Tabelle, welche das InsertDate beinhaltet? Die Lösung haben Sie sicher
schon erraten: Das ist genau einer der Fälle, in welchem ModGen einen Link mit
einem SAT erzeugen würde.
Das Ergebnis sähe wie folgt aus:
Link mit anhängendem SAT |
Dies ist nur einer der vielen Sonderfälle
welcher ModGen korrekt generieren kann. Weitere Sonderfälle werden eventuell in
anderen Blogeinträgen behandelt.
Natürlich kann es durchaus sein, dass Sie
versuchen einen Fall zu generieren, welcher ModGen aktuell nicht beherrscht.
Auch das ist kein Problem: Wenden Sie sich an uns und wir prüfen solche Fälle
und nehmen sie gegebenenfalls für spätere Releases mit ins Programm.