{"id":48,"date":"2013-02-03T23:27:55","date_gmt":"2013-02-03T22:27:55","guid":{"rendered":"http:\/\/konsilium.de\/blog\/?p=48"},"modified":"2022-07-07T21:17:24","modified_gmt":"2022-07-07T19:17:24","slug":"erwin-best-practices-in-business-intelligence-umgebungen-teil-1","status":"publish","type":"post","link":"https:\/\/konsilium.de\/blog\/2013\/02\/03\/erwin-best-practices-in-business-intelligence-umgebungen-teil-1\/","title":{"rendered":"ERwin Best Practices in Business Intelligence Umgebungen,Teil 1"},"content":{"rendered":"\n<p>Best Practices zum Einsatz von ERwin Data Modeler (Version Versionen r7 \/ r8) in Data&nbsp;Warehouse und Business Intelligence Umgebungen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Inhaltliche Kurzfassung<\/strong><\/h2>\n\n\n\n<p>Vom einzelnen Data Mart bis hin zum mehrschichtigen Enterprise Data Warehouse&nbsp;System \u2013 das Datenmodell Ihres Business Intelligence Systems ist&nbsp;ein entscheidendes Artefakt Ihres Entwicklungsprozesses. Auf dieser&nbsp;Grundlage baut die ETL- und Berichtsentwicklung auf. Der&nbsp;Modellierer kann die Datenanforderungen der Fachbereiche&nbsp;visualisieren und auf effiziente Weise definieren, um die&nbsp;Erreichung der Gesch\u00e4ftsziele sicherzustellen. Der Artikel zeigt&nbsp;Ihnen, wie ERwin Data Modeler Sie bei typischen Anforderungen im&nbsp;Kontext von Business Intelligence Projekten unterst\u00fctzt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Themen Serie 1 <\/strong><\/h2>\n\n\n\n<ol><li>Multidimensionales Datenmodell einrichten (Star- oder<br>Snowflake-Schema)<\/li><li>Organisation der Star-Schemas in einem Galaxy-Schema \/ BUS Matrix Design.<\/li><li>Dokumentation von Tabellentypen: Dimensionen, Fakttabellen, Bridge-Tables, Outrigger (Snowflakes) &#8211; sowie von Dimensionstypen (Standard, Junk), Fakttabellen-Typen (Transaction, Snapshot)<\/li><li>Dokumentation von Historisierungsverfahren (Slowly-Changing-Dim. Type 2, etc.)<\/li><li>Von Granularit\u00e4ten, Business Keys, Dimensionshierarchien<\/li><li>Mengenger\u00fcste und Wachstumsprognosen<\/li><li>Quellsystem und Star-Schema verlinken<\/li><li>Abbildung der Data Linage und Erstellung einer ETL-Spezifikation<\/li><li>Source-To-Target Mapping Generierung: Dokumentation der Data Lineage inkl. Transformationsregeln<\/li><li>Dokumentation der ETL-Bewirtschaftungsverfahren (Data Movement Rules)<\/li><li>Metadaten-Austausch mit ETL-Werkzeug (Bsp. Informatica) und BI-Reportingsystem (Bsp. Cognos)<\/li><li>Performance-Tuning im Data Warehouse Datenmodell<\/li><li>Definition \/ Dokumentation von Role-Playing Dimensions<\/li><li>Datenmodell Organisation im Enterprise Umfeld: Organisation der Modelle bei mehrschichtigen BI Systemen; Schneidung und Einsatz von Subject<br>Areas<\/li><\/ol>\n\n\n\n<h1 class=\"wp-block-heading\">1. Multidimensionales Datenmodell einrichten<br>(Star- oder Snowflake-Schema)<\/h1>\n\n\n\n<div>\n<p>Wir bereiten unser ERwin Tool zun\u00e4chst f\u00fcr den Einsatz in einer Data Warehouse Umgebung vor &#8211; in dem wir verschiedene Einstellungen optimieren &#8211; und zwar auf 4 Ebenen:<\/p>\n<\/div>\n\n\n\n<p><strong>Ebene 1<\/strong>: Optionen (globale Einstellungen von ERwin)<strong><br>Ebene 2<\/strong>: Modell<strong><br>Ebene 3<\/strong>: Subject Area<strong><br>Ebene 4<\/strong>: Diagram<\/p>\n\n\n\n<div><strong>Ebene 1: <\/strong>Da w\u00e4ren zun\u00e4chst die &#8222;Model Naming Options&#8220;, Registerkarte &#8222;Physical&#8220;:<\/div>\n\n\n\n<div>&nbsp;<\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-phys-naming-options.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"537\" height=\"378\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-phys-naming-options.jpg\" alt=\"\" class=\"wp-image-50\" title=\"erwin-phys-naming-options\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-phys-naming-options.jpg 537w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-phys-naming-options-300x211.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-phys-naming-options-426x300.jpg 426w\" sizes=\"(max-width: 537px) 100vw, 537px\" \/><\/a><\/figure><\/div>\n\n\n\n<div><\/div>\n\n\n\n<p>Hier sollten Sie die maximale Zeichenl\u00e4nge von Datenbank Objekten festlegen. So stellen<br>Sie sicher, dass bereits w\u00e4hrend der Modellierung nicht gegen wesentliche Namenskonventionen versto\u00dfen werden kann. Leider sind diese Einstellungen eine Einstellung der lokalen ERwin Installation. Sie m\u00fcssen also von jedem User einzelen vorgenommen werden. Tipp: Gleichen Sie die Zeichenl\u00e4ngen mit den Anforderungen Ihrer DBA bzw. Ihrer Abteilung ab, die f\u00fcr den Betrieb der Anwendungen verantwortlich ist.<\/p>\n\n\n\n<div>N\u00e4chste Registerkarte &#8222;Duplicate Names\u201c<\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-allow-dublicate-names.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"652\" height=\"478\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-allow-dublicate-names.jpg\" alt=\"\" class=\"wp-image-52\" title=\"erwin-allow-dublicate-names\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-allow-dublicate-names.jpg 652w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-allow-dublicate-names-300x219.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-allow-dublicate-names-409x300.jpg 409w\" sizes=\"(max-width: 652px) 100vw, 652px\" \/><\/a><\/figure><\/div>\n\n\n\n<div><\/div>\n\n\n\n<div>Anders als man vielleicht vermuten k\u00f6nnte, macht nur die Einstellung &#8222;Allow duplicate Names\u201c Sinn. W\u00e4hlen Sie eine andere Option, so m\u00fcssen Spaltennamen modellweit eindeutig sein. Dies w\u00fcrde bedeuten, dass Foreign Key und zugeh\u00f6riger Primary Key nicht namensgleich sein d\u00fcrfen. Genau das will man aber im Sinne eines &#8222;selbsterkl\u00e4renden&#8220; Datenmodells haben! Das macht also keinen Sinn. Noch weniger Sinn macht die Tatsache, das ERwin nicht auf Namensgleichheit von Tabellennamen<br>pr\u00fcft &#8211; egal welche Einstellung Sie w\u00e4hlen. Zumindest gilt das f\u00fcr die mir bekannten Versionen r7 und r8.<\/div>\n\n\n\n<div>Nachfolgend ein Screenshot mit zwei angelegten Tabellen mit identlischen Bezeichnungen f\u00fcr Tabellenname und Schema:<\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-dublicate-table-names.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"526\" height=\"468\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-dublicate-table-names.jpg\" alt=\"\" class=\"wp-image-54\" title=\"erwin-dublicate-table-names\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-dublicate-table-names.jpg 526w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-dublicate-table-names-300x266.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-dublicate-table-names-337x300.jpg 337w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><\/a><\/figure><\/div>\n\n\n\n<div><\/div>\n\n\n\n<div>Auf der Registerkarte &#8222;General&#8220; kann der Modellierer die Notationsform einstellen:<\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-general.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"616\" height=\"493\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-general.jpg\" alt=\"\" class=\"wp-image-59\" title=\"erwin-model-prop-general\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-general.jpg 616w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-general-300x240.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-general-374x300.jpg 374w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><\/a><\/figure><\/div>\n\n\n\n<div><\/div>\n\n\n\n<div>&nbsp;<\/div>\n\n\n\n<div>Die &#8222;Data Warehousing&#8220; Notation ist nicht zu empfehlen, da die Verbindungslinien (Relationships) auf dem Diagramm keine &#8222;Kr\u00e4henf\u00fc\u00dfe&#8220; anzeigen. Somit l\u00e4sst sich nicht erkennen, ob es sich um eine 1:1 oder um eine 1:n Beziehung handelt. Gut &#8211; in einem Star&nbsp;Schema nach der reinen Lehre, w\u00e4re dies auch kein Problem. F\u00fcr die Data Vault Modellierung schon eher, letzten Endes eine Geschmacksfrage &#8230;<\/div>\n\n\n\n<div>&nbsp;<\/div>\n\n\n\n<div>Manchmal vergisst der Modellierer schonmal einer Spalte den korrekten Datentyp zuzuweisen. Durch die Definition eines &#8222;auff\u00e4lligen&#8220; Datentyps f\u00e4llt dies direkt auf. Au\u00dferdem legt Erwin auch schonmal bei bestimmten Aktionen in Zusammenhang mit Relationen eine Spalte von sich aus an. Im unten stehenden Screenshot ist zum Beispiel ein Datentyp varchar(222) definiert worden.<\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"616\" height=\"493\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults.jpg\" alt=\"\" class=\"wp-image-61\" title=\"erwin-model-prop-defaults\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults.jpg 616w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-300x240.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-374x300.jpg 374w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Mit Klick auf &#8222;Set Default Owners&#8220; im obigen Screenshot,kommt man zum Dialog &#8222;Set default Owner&#8220;.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-edit.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"518\" height=\"321\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-edit.jpg\" alt=\"\" class=\"wp-image-62\" title=\"erwin-model-prop-defaults-edit\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-edit.jpg 518w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-edit-300x185.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-edit-484x300.jpg 484w\" sizes=\"(max-width: 518px) 100vw, 518px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Auch gebe ich die Empfehlung einen &#8222;auff\u00e4lligen&#8220; Default-Owner zu definieren, damit sofort erkennbar auff\u00e4llt, dass hier vergessen wurde, den Owner -also den Schema Namen &#8211; zu definieren. Dies passiert zum Bsp. sehr oft bei der Anlage von Indizes.Eine generelle Empfehlung f\u00fcr das Design Data Warehouse Datenmodellen lautet: Keine Pr\u00fcfung auf referentielle Integrit\u00e4t durch das Datenbank System! Die Relationen werden trotzdem definiert. Zum einen dient dies der Dokumentation des Datenmodelles. Zum anderen werden die Relationen auch in der Datenbank implementiert &#8211; jedoch mit der Option &#8222;NOT ENFORCED&#8220;. Die Relationen werden ferner mit der Option &#8222;ENABLE QUERY OPTIMIZATION&#8220; (z.B. bei IBM DB2) versehen.Beides zusammen unterst\u00fctzt den Datenbank Optimizer bei der Berechnung seiner Ausf\u00fchrungspl\u00e4ne. Dies ist umso wichtiger, wenn Materialized Views f\u00fcr die Persistierung von Aggregaten eingesetzt werden.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"616\" height=\"492\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI.jpg\" alt=\"\" class=\"wp-image-63\" title=\"erwin-model-prop-defaults-RI\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI.jpg 616w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI-300x239.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI-375x300.jpg 375w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><\/a><\/figure><\/div>\n\n\n\n<div>&nbsp;<\/div>\n\n\n\n<div>ERwin Dialog mit den Eigenschaften einer Relation.<\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI-exkurs.jpg\"><img decoding=\"async\" loading=\"lazy\" width=\"757\" height=\"609\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI-exkurs.jpg\" alt=\"\" class=\"wp-image-64\" title=\"erwin-model-prop-defaults-RI-exkurs\" srcset=\"https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI-exkurs.jpg 757w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI-exkurs-300x241.jpg 300w, https:\/\/konsilium.de\/blog\/wp-content\/uploads\/2013\/02\/erwin-model-prop-defaults-RI-exkurs-372x300.jpg 372w\" sizes=\"(max-width: 757px) 100vw, 757px\" \/><\/a><\/figure><\/div>\n\n\n\n<div><\/div>\n\n\n\n<div>Die Optionen &#8222;NOT ENFORCED&#8220; und &#8222;ENABLE QUERY OPTIMIZATION&#8220; sind aktiviert (Empfehlung!).<\/div>\n\n\n\n<p>Weiter geht es mit den Empfehlungen zu Einstellungen f\u00fcr die \u201eSubject Area\u201c (Ebene<strong> 3<\/strong>).<\/p>\n\n\n\n<div>[Fortsetzung folgt in&nbsp;Teil 2 (&#8211;&gt; in Arbeit)]<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Best Practices zum Einsatz von ERwin Data Modeler (Version Versionen r7 \/ r8) in Data&nbsp;Warehouse und Business Intelligence Umgebungen. Inhaltliche Kurzfassung Vom einzelnen Data Mart bis hin zum mehrschichtigen Enterprise Data Warehouse&nbsp;System \u2013 das Datenmodell Ihres Business Intelligence Systems ist&nbsp;ein entscheidendes Artefakt Ihres Entwicklungsprozesses. Auf dieser&nbsp;Grundlage baut die ETL- und Berichtsentwicklung auf. Der&nbsp;Modellierer kann die&hellip;&nbsp;<a href=\"https:\/\/konsilium.de\/blog\/2013\/02\/03\/erwin-best-practices-in-business-intelligence-umgebungen-teil-1\/\" class=\"\" rel=\"bookmark\">Weiterlesen &raquo;<span class=\"screen-reader-text\">ERwin Best Practices in Business Intelligence Umgebungen,Teil 1<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2318,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[6],"tags":[136,15,77],"_links":{"self":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts\/48"}],"collection":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":25,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts\/48\/revisions"}],"predecessor-version":[{"id":2666,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts\/48\/revisions\/2666"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/media\/2318"}],"wp:attachment":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/media?parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/categories?post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/tags?post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}