Introduzione alle dimensioni (Analysis Services - Dati multidimensionali)

Tutte le dimensioni di Microsoft SQL ServerAnalysis Services sono costituite da gruppi di attributi basati su colonne di tabelle o viste di una vista origine dati. Le dimensioni esistono indipendentemente da un cubo, possono essere utilizzate in più cubi, possono essere utilizzate più volte in un singolo cubo e possono essere collegate tra istanze di Analysis Services. Una dimensione indipendente da un cubo viene denominata dimensione del database e un'istanza di una dimensione del database all'interno di un cubo viene denominata dimensione del cubo.

Dimensione basata su una progettazione con schema star

La struttura di una dimensione è per lo più determinata dalla struttura della tabella della dimensione o delle tabelle delle dimensioni sottostanti. La struttura più semplice è detta schema star, dove ogni dimensione è basata su un'unica tabella della dimensione direttamente collegata alla tabella dei fatti tramite una relazione chiave primaria/chiave esterna.

Nella figura seguente viene illustrata una sottosezione del database di esempio Adventure Works DW, in cui la tabella dei fatti FactResellerSales è correlata a due tabelle delle dimensioni, DimReseller e DimPromotion. La colonna ResellerKey nella tabella dei fatti FactResellerSales definisce una relazione di chiave esterna con la colonna chiave primaria ResellerKey nella tabella della dimensione DimReseller. Analogamente, la colonna PromotionKey nella tabella dei fatti FactResellerSales definisce una relazione di chiave esterna con la colonna chiave primaria PromotionKey nella tabella della dimensione DimPromotion.

Schema logico per la relazione di tipo Fatti per la dimensione

Dimensione basata su una progettazione con schema snowflake

Spesso è necessaria una struttura più complessa in quanto per definire la dimensione sono necessarie informazioni di più tabelle. In questa struttura, denominata schema snowflake, ogni dimensione è basata su attributi di colonne di più tabelle collegate reciprocamente e alla tabella dei fatti tramite relazioni tra chiave primaria e chiave esterna. Nella figura seguente, ad esempio, vengono illustrate le tabelle necessarie per descrivere completamente la dimensione Product nel progetto di esempio AdventureWorksDW:

Tabelle per la dimensione Product di AdventureWorksAS

Per descrivere completamente un prodotto, la categoria e la sottocategoria del prodotto devono essere incluse nella dimensione Product. Le informazioni, tuttavia, non sono incluse direttamente nella tabella principale della dimensione DimProduct. Una relazione di chiave esterna da DimProduct a DimProductSubcategory, che a sua volta presenta una relazione di chiave esterna con la tabella DimProductCategory, consente di includere le informazioni sulle categorie e sulle sottocategorie del prodotto nella dimensione Product.

Confronto tra schema snowflake e relazione di tipo Riferimento

È talvolta possibile scegliere tra l'utilizzo di uno schema snowflake per definire gli attributi in una dimensione da più tabelle o l'utilizzo di due dimensioni separate definendo una relazione di tipo Riferimento tra di esse. Nella figura seguente viene illustrato uno scenario di questo tipo.

Schema logico per una dimensione di riferimento di esempio

Nella figura precedente la tabella dei fatti FactResellerSales non ha una relazione di chiave esterna con la tabella della dimensione DimGeography. La tabella dei fatti FactResellerSales, tuttavia, ha una relazione di chiave esterna con la tabella della dimensione DimReseller, che a sua volta ha una relazione di chiave esterna con la tabella della dimensione DimGeography. Per definire una dimensione Reseller contenente informazioni geografiche per ogni rivenditore, è necessario recuperare gli attributi delle tabelle delle dimensioni DimGeography e DimReseller. In Analysis Services, tuttavia, è possibile ottenere lo stesso risultato creando due dimensioni separate e collegandole in un gruppo di misure definendo una relazione di tipo Riferimento tra le due dimensioni. Per ulteriori informazioni sulle relazioni di tipo Riferimento tra le dimensioni, vedere Relazioni tra dimensioni.

Un vantaggio dell'utilizzo di relazioni di tipo Riferimento in questo scenario consiste nella possibilità di creare un'unica dimensione Geography e quindi di creare più dimensioni del cubo basate sulla dimensione Geography, senza che sia necessario ulteriore spazio di archiviazione. È ad esempio possibile collegare una delle dimensioni Geography del cubo a una dimensione Reseller e un'altra delle dimensioni Geography del cubo a una dimensione Customer. Argomenti correlati:Relazioni tra dimensioni, Definizione di una relazione di tipo Riferimento e delle relative proprietà.

Elaborazione di una dimensione

Dopo avere creato una dimensione, per poter visualizzare i membri degli attributi e delle gerarchie della dimensione, è necessario elaborare la dimensione stessa. Dopo la modifica della struttura di una dimensione o l'aggiornamento delle informazioni nelle tabelle sottostanti, è necessario elaborare di nuovo la dimensione per poter visualizzare le modifiche. Quando si elabora una dimensione dopo modifiche strutturali, è inoltre necessario elaborare qualsiasi cubo in cui la dimensione è inclusa. In caso contrario, il cubo non sarà visualizzabile.

Protezione

Tutti gli oggetti subordinati di una dimensione, inclusi membri, livelli e gerarchie, vengono protetti tramite ruoli in Analysis Services. La protezione delle dimensioni può essere applicata a tutti i cubi nel database che utilizzano la dimensione oppure a un solo cubo specifico. Per ulteriori informazioni sulla protezione delle dimensioni, vedere Concessione dell'accesso alla dimensione.