Einige Szenarien für M: M-Beziehungen in einem Data Warehouse-Modell
Die meisten OLAP-Server und ROLAP-Systeme können jetzt mit M: M-Datenstrukturen umgehen, es gibt jedoch einige Einschränkungen, die Sie beachten müssen. Wenn Sie M: M-Beziehungen implementieren, müssen Sie Ihre Berichtsebene und die zu unterstützenden Tools im Auge behalten.
Szenario 1: M: M-Dimension auf eine Faktentabelle
Ein Beispiel hierfür könnten mehrere Fahrer in einer Motorrichtlinie sein. Wenn Sie einen Treiber hinzufügen oder entfernen, hat die Transaktion zur Richtlinienanpassung möglicherweise eine Beziehung zu einer Liste von Treibern, die sich mit der Anpassung ändert.
Option 1 - M: M-Treiber-Fakt-Brückentabelle
Diese Tabelle enthält eine ziemlich große Datenmenge, da sie Treiber x Transaktionszeilen für eine bestimmte Richtlinie enthält. SSAS kann diese Datenstruktur direkt verwenden, die Abfrage über ein ROLAP-Tool ist jedoch langsamer.
Wenn Ihre M: M-Beziehung auf Entitäten basiert, die für die Faktenzeile spezifisch sind (z. B. Fahrer in einem Auto), ist dies möglicherweise auch für ein ROLAP-Tool geeignet, sofern Ihr ROLAP-Tool M: M-Beziehungen unterstützt (z. B. Kontexte in Unternehmen verwenden) Objekte).
Option 2 - Dummy-Dimensionstabelle "Kombinationen"
Wenn Sie einer Faktentabelle eine Liste gängiger Codes zuordnen (dh die verknüpften Entitäten sind für die Faktzeile nicht spezifisch), können Sie einen anderen Ansatz wählen, mit dem das Datenvolumen reduziert wird. Ein Beispiel für ein solches Szenario sind ICD-Codes bei einem stationären Besuch. Bei jedem stationären Besuch werden eine oder mehrere ICD-Diagnosen und / oder -Verfahren aufgeführt. Die ICD-Codes sind global.
In diesem Fall können Sie eine eindeutige Liste der Codekombinationen für jeden Fall erstellen. Erstellen Sie eine Dimensionstabelle mit einer Zeile für jede einzelne Kombination und erstellen Sie eine Verknüpfungstabelle zwischen den Kombinationen und den Referenztabellen für die ICD-Codes.
Die Faktentabelle kann einen Dimensionsschlüssel für die Dimension "Kombinationen" enthalten, und die Dimensionszeile enthält eine Liste mit Verweisen auf die tatsächlichen ICD-Codes. Die meisten ROLAP-Tools können diese Datenstruktur verwenden. Wenn Ihr Tool nur mit einer tatsächlichen M: M-Beziehung funktioniert, können Sie eine Ansicht erstellen, die die M: M-Beziehung zwischen dem Fakt und der Codierungsreferenztabelle emuliert. Dies wäre der bevorzugte Ansatz bei SSAS.
Vorteile von Option 1:
- Entsprechend indizierte Abfragen, die auf der Auswahl von Faktentabellenzeilen mit einer bestimmten Beziehung durch die M: M-Tabelle basieren, können einigermaßen effizient sein.
- Etwas einfacheres konzeptionelles Modell
Vorteile von Option 2:
- Die Datenspeicherung ist kompakter
- Sie können eine direkte 1: M-Beziehung emulieren, indem Sie die Kombinationen in einem für den Menschen lesbaren Format als Code in der Dimension "Kombinationen" darstellen. Dies ist möglicherweise für weniger benutzerfreundliche Berichterstellungstools hilfreich, die keine Unterstützung für M: M-Beziehungen bieten.
Szenario 2: M: M-Beziehung zwischen Dimensionen:
Es ist schwieriger, sich einen Anwendungsfall vorzustellen, aber man könnte sich wieder etwas aus dem Gesundheitswesen mit ICD-Codes vorstellen. In einem Kostenanalysesystem kann der stationäre Besuch zu einer Dimension werden und M: M-Beziehungen zwischen dem Besuch (oder der Berater-Episode in NHS-Sprache) und den Codierungen aufweisen.
In diesem Fall können Sie die M: M-Beziehungen einrichten und möglicherweise ein für den Menschen lesbares Rendering auf der Basisdimension festlegen. Die Beziehungen können wie zuvor über gerade M: M-Verknüpfungstabellen oder über eine Überbrückungskombinationstabelle hergestellt werden. Diese Datenstruktur kann über Business Objects oder ROLAP-Tools mit höherer Qualität korrekt abgefragt werden.
Ich kann mir nicht vorstellen, dass SSAS dies verbrauchen kann, ohne die Beziehung bis zur Faktentabelle zu übernehmen. Sie müssten also eine Ansicht der M: M-Beziehung zwischen der Codierung und der Faktentabelle anzeigen Zeilen, um SSAS mit diesen Daten zu verwenden.