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 una dimensione del database o un gruppo di misure viene aggiunto a un cubo, in Microsoft SQL Server 2005 Analysis Services (SSAS) viene eseguito un 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 che è possibile individuare.
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 a stella tradizionale. Per ulteriori informazioni sulle relazioni di tipo Regolare, vedere Definizione di una relazione di tipo Regolare e delle relative proprietà e Lezione 5: Definizione delle relazioni tra dimensioni e gruppi di misure.
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.
Una relazione di tipo Riferimento rappresenta la relazione tra le tabelle delle dimensioni e una tabella dei fatti in una progettazione con schema a fiocco di neve. Quando le tabelle delle dimensioni sono connesse in uno schema a fiocco di neve, è 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 a fiocco di neve.
È 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.
Per ulteriori informazioni sulle relazioni di tipo Riferimento, vedere Definizione di una relazione di tipo Riferimento e delle relative proprietà e Definizione di una relazione di tipo Riferimento.
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.
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.
[!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à e Definizione di una relazione di tipo Fatti.
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.
SQL Server 2005 Analysis Services (SSAS) consente di definire una relazione molti-a-molti tra una tabella della dimensione 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à e Definizione di una relazione molti-a-molti.
Vedere anche
Concetti
Dimensioni (Analysis Services)
Definizione e configurazione dell'utilizzo e delle relazioni delle dimensioni