Dienstag, 24. Juli 2018

ModGen für Einsteiger IV : Special Use Cases (Link on Link)


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.




0 Kommentare:
Kommentar veröffentlichen