Condividi tramite


Relazioni tra dimensioni

L'utilizzo delle dimensioni definisce le relazioni tra le dimensioni e i gruppi di misure di un cubo. Una dimensione di un cubo è un'istanza di una dimensione del database utilizzata in un cubo specifico. Spesso un cubo contiene dimensioni che non sono correlate direttamente a un gruppo di misure, ma che possono essere correlate indirettamente al gruppo di misure tramite un'altra dimensione o un altro gruppo di misure. Quando si aggiunge una dimensione del database o un gruppo di misure a un cubo, in MicrosoftSQL ServerAnalysis Services viene eseguito il tentativo di determinare l'utilizzo delle dimensioni esaminando le relazioni tra le tabelle delle dimensioni e le tabelle dei fatti nella vista origine dati del cubo ed esaminando le relazioni tra gli attributi delle dimensioni. In Analysis Services le impostazioni di utilizzo delle dimensioni vengono definite automaticamente per le relazioni individuate.

Una relazione tra una dimensione e un gruppo di misure è costituita dalle tabelle delle dimensioni e dei fatti che partecipano alla relazione e da un attributo di granularità che specifica la granularità della dimensione nel particolare gruppo di misure.

Relazioni di tipo Regolare

Una relazione di tipo Regolare tra una dimensione del cubo e un gruppo di misure si verifica quando la colonna chiave della dimensione è unita in join direttamente alla tabella dei fatti. Questa relazione diretta è basata su una relazione tra chiave primaria e chiave esterna nel database relazionale sottostante, ma potrebbe anche essere basata su una relazione logica definita nella vista origine dati. Una relazione di tipo Regolare rappresenta la relazione tra le tabelle delle dimensioni e una tabella dei fatti in una progettazione con schema star tradizionale. Per ulteriori informazioni sulle relazioni di tipo Regolare, vedere Definizione di una relazione di tipo Regolare e delle relative proprietà.

Relazioni di tipo Riferimento

Una relazione di tipo Riferimento tra una dimensione del cubo e un gruppo di misure si verifica quando la colonna chiave della dimensione è unita in join direttamente alla tabella dei fatti tramite una chiave in un'altra tabella della dimensione, come illustrato nella figura seguente.

Diagramma logico, relazione di tipo Riferimento per la dimensione

Una relazione di tipo Riferimento rappresenta la relazione tra le tabelle delle dimensioni e una tabella dei fatti in una progettazione con schema snowflake. Quando le tabelle delle dimensioni sono connesse in uno schema snowflake, è possibile definire una singola dimensione utilizzando colonne di più tabelle oppure definire dimensioni diverse in base a tabelle delle dimensioni separate e quindi definire un collegamento tra di esse utilizzando l'impostazione della relazione di tipo Riferimento. Nella figura seguente vengono illustrate una tabella dei fatti denominata InternetSales e due tabelle delle dimensioni denominate Customer e Geography, in uno schema snowflake.

Schema logico, relazione di tipo Riferimento per la dimensione

È possibile creare una dimensione con la tabella Customer come tabella della dimensione principale e la tabella Geography come tabella correlata. Viene quindi definita una relazione di tipo Regolare tra la dimensione e il gruppo di misure InternetSales.

In alternativa, è possibile creare due dimensioni correlate al gruppo di misure InternetSales: una dimensione basata sulla tabella Customer e una dimensione basata sulla tabella Geography. È quindi possibile correlare la dimensione Geography al gruppo di misure InternetSales utilizzando una relazione di tipo Riferimento tramite la dimensione Customer. In questo caso, quando i fatti del gruppo di misure InternetSales vengono dimensionati in base alla dimensione Geography, essi sono dimensionati in base a Customer e Geography. Se il cubo contenesse un secondo gruppo di misure denominato Reseller Sales, non sarebbe possibile dimensionare i fatti in tale gruppo di misure in base a Geography in quanto non esisterebbe alcuna relazione tra Reseller Sales e Geography.

Come illustrato nella figura seguente, non è previsto alcun limite per il numero di dimensioni di riferimento che è possibile concatenare.

Diagramma logico, relazione di tipo Riferimento per la dimensione

Per ulteriori informazioni sulle relazioni di tipo Riferimento, vedere Definizione di una relazione di tipo Riferimento e delle relative proprietà.

Relazioni di tipo Fatti

Le dimensioni dei fatti, spesso denominate dimensioni degenerate, sono dimensioni standard create da colonne attributo di tabelle dei fatti anziché da colonne attributo di tabelle delle dimensioni. A volte, i dati dimensionali utili vengono archiviati in una tabella dei fatti per ridurre la duplicazione. Nella figura seguente, ad esempio, viene visualizzata la tabella dei fatti FactResellerSales del database di esempio Adventure Works DW.

Le colonne nella tabella dei fatti possono supportare le dimensioni

La tabella contiene informazioni sugli attributi non solo per ogni riga di un ordine emesso da un rivenditore, ma anche per l'ordine stesso. Gli attributi racchiusi in un cerchio nella figura precedente consentono di identificare le informazioni della tabella FactResellerSales che possono essere utilizzate come attributi in una dimensione. In questo caso, due ulteriori informazioni, ovvero il numero di registrazione dello spedizioniere e il numero dell'ordine di acquisto emesso dal rivenditore, vengono rappresentate dalle colonne attributo CarrierTrackingNumber e CustomerPONumber. Si tratta di informazioni interessanti. Gli utenti, ad esempio, saranno senz'altro interessati a visualizzare le informazioni aggregate, ad esempio il costo totale del prodotto per tutti gli ordini spediti con lo stesso numero di registrazione dello spedizioniere. Senza una dimensione, tuttavia, non è possibile organizzare o aggregare i dati per questi due attributi.

In teoria, sarebbe possibile creare una tabella della dimensione che utilizzi le stesse informazioni chiave della tabella FactResellerSales e spostare le altre due colonne attributo, CarrierTrackingNumber e CustomerPONumber, in questa tabella. In questo modo, tuttavia, si duplicherebbe una parte significativa dei dati e si aggiungerebbe complessità superflua al data warehouse per rappresentare solo due attributi come dimensione distinta.

[!NOTA]

Le dimensioni dei fatti vengono spesso utilizzate per supportare azioni drill-through. Per ulteriori informazioni sulle azioni, vedere Azioni (Analysis Services - Dati multidimensionali).

[!NOTA]

Le dimensioni dei fatti devono essere aggiornate in modo incrementale dopo ogni aggiornamento del gruppo di misure cui fa riferimento la relazione di tipo Fatti. Se la dimensione dei fatti è una dimensione ROLAP, il motore di elaborazione di Analysis Services elimina qualsiasi cache ed elabora in modo incrementale il gruppo di misure.

Per ulteriori informazioni sulle relazioni di tipo Fatti, vedere Definizione di una relazione di tipo Fatti e delle relative proprietà.

Relazioni molti-a-molti

Nella maggior parte delle dimensioni, ogni fatto si unisce in join a un solo membro della dimensione e un singolo membro della dimensione può essere associato a più fatti. Nella terminologia dei database relazionali, questa viene definita una relazione uno-a-molti. Spesso, tuttavia, può essere utile unire in join un unico fatto a più membri della dimensione. Un cliente di una banca può ad esempio avere più conti (conti correnti, conti di risparmio, carta di credito e conti titoli) e ogni conto può avere più proprietari. La dimensione relativa ai clienti creata da una relazione di questo tipo includerebbe più membri correlati a un'unica transazione relativa al conto corrente.

Schema logico/relazione di tipo Molti-a-molti per la dimensione

SQL ServerAnalysis Services consente di definire una relazione molti-a-molti tra una tabella delle dimensioni e una tabella dei fatti.

[!NOTA]

Per supportare una relazione tra dimensioni molti-a-molti, la vista origine dati deve includere una relazione di chiave esterna tra tutte le tabelle coinvolte, come illustrato nella figura precedente. In caso contrario, non sarà possibile selezionare il gruppo di misure intermedio corretto quando si stabilisce la relazione nella scheda Utilizzo dimensioni di Progettazione dimensioni.

Per ulteriori informazioni sulle relazioni molti-a-molti, vedere Definizione di una relazione molti-a-molti e delle relative proprietà.