Alcuni scenari per le relazioni M: M in un modello di data warehouse
La maggior parte dei server OLAP e dei sistemi ROLAP hanno un mezzo per gestire le strutture di dati M: M ora, ma ci sono alcuni avvertimenti su cui dovrai prestare attenzione. Se si implementano relazioni M: M, è necessario tenere d'occhio il proprio livello di reporting e quali strumenti si desidera supportare.
Scenario 1: M: dimensione M su una tabella dei fatti
Un esempio di questo potrebbe essere più driver in una politica del motore. Se si aggiunge o rimuove un driver, la transazione di rettifica dei criteri potrebbe avere una relazione con un elenco di driver che cambia con la rettifica.
Opzione 1 - M: tabella bridge fatto-driver M
Questo avrà un volume piuttosto grande di dati, poiché ha righe di driver x transazioni per un dato criterio. SSAS può utilizzare direttamente questa struttura di dati, ma è più lento eseguire una query tramite uno strumento ROLAP.
Se la relazione M: M si basa su entità specifiche della riga dei fatti (ad es. Conducenti su un'automobile), ciò potrebbe essere appropriato anche per uno strumento ROLAP, a condizione che lo strumento ROLAP supporti le relazioni M: M (ad es. L'utilizzo di contesti in Business Oggetti).
Opzione 2 - Tabella dimensionale "combinazioni" fittizia
Se si sta mappando un elenco di codici comuni su una tabella dei fatti (ovvero le entità collegate non sono peculiari della riga dei fatti), è possibile adottare un altro approccio che ridurrà i volumi di dati. Un esempio di questo tipo di scenario sono i codici ICD in visita ambulatoriale. Ogni visita ospedaliera avrà una o più diagnosi ICD e / o procedure elencate contro di essa. I codici ICD sono globali.
In questo caso, puoi creare un elenco distinto delle combinazioni di codici su ciascun caso. Creare una tabella delle dimensioni con una riga per ogni combinazione distinta e disporre di una tabella dei collegamenti tra le combinazioni e le tabelle di riferimento per i codici ICD stessi.
La tabella dei fatti può avere una chiave di dimensione per la dimensione "combinazioni" e la riga di dimensione ha un elenco di riferimenti a codici ICD effettivi. La maggior parte degli strumenti ROLAP può utilizzare questa struttura di dati. Se il tuo strumento funziona solo con una relazione M: M effettiva, puoi creare una vista che emula la relazione M: M tra il fatto e la tabella di riferimento di codifica. Questo sarebbe l'approccio preferito con SSAS.
Vantaggi dell'opzione 1:
- Le query opportunamente indicizzate basate sulla selezione delle righe della tabella dei fatti con una certa relazione attraverso la tabella M: M possono essere ragionevolmente efficienti.
- Modello concettuale leggermente più semplice
Vantaggi dell'opzione 2:
- L'archiviazione dei dati è più compatta
- È possibile emulare una relazione 1: M diretta presentando le combinazioni in un formato leggibile come un codice sulla dimensione "combinazioni". Ciò potrebbe essere più utile sugli strumenti di reporting più stupidi che non supportano le relazioni M: M.
Scenario 2: relazione M: M tra dimensioni:
Più difficile pensare a un caso d'uso, ma si potrebbe prevedere di nuovo qualcosa fuori dall'assistenza sanitaria con i codici ICD. Su un sistema di analisi dei costi, la visita ospedaliera può diventare una dimensione e avrà relazioni M: M tra la visita (o episodio di consulente in NHS-talk) e le codifiche.
In questo caso è possibile impostare le relazioni M: M ed eventualmente codificare un rendering leggibile dall'uomo sulla dimensione di base. Le relazioni possono essere fatte tramite tabelle di collegamenti M: M diritte o tramite una tabella "combinazioni" di bridge come prima. Questa struttura di dati può essere interrogata correttamente tramite Business Objects o strumenti ROLAP di migliore qualità.
Dalla parte superiore della mia testa, non riesco a vedere SSAS che è in grado di consumarlo senza prendere la relazione fino alla tabella dei fatti, quindi dovresti presentare una vista della relazione M: M tra la codifica e la tabella dei fatti righe per utilizzare SSAS con questi dati.