Condividi tramite


Relazioni tra attributi

In MicrosoftSQL ServerAnalysis Services gli attributi di una dimensione sono sempre direttamente o indirettamente correlati all'attributo chiave. Quando si definisce una dimensione in base a uno schema star, in cui tutti gli attributi della dimensione sono derivati dalla stessa tabella relazionale, viene automaticamente definita una relazione tra l'attributo chiave e ogni attributo non chiave della dimensione. Quando si definisce una dimensione in base a uno schema snowflake, in cui gli attributi della dimensione sono derivati da più tabelle correlate, viene automaticamente definita una relazione tra attributi come indicato di seguito:

  • Tra l'attributo chiave e ogni attributo non chiave associato alle colonne della tabella principale della dimensione.

  • Tra l'attributo chiave e l'attributo associato alla chiave esterna della tabella secondaria che collega le tabelle delle dimensioni sottostanti.

  • Tra l'attributo associato alla chiave esterna della tabella secondaria e ogni attributo non chiave associato alle colonne della tabella secondaria.

Vi sono, tuttavia, molti motivi per cui potrebbe essere necessario modificare queste relazioni tra attributi predefinite. Potrebbe, ad esempio, essere necessario definire una gerarchia naturale, un ordinamento personalizzato o una granularità della dimensione basata su un attributo non chiave. Per ulteriori informazioni, vedere Definizione degli attributi delle dimensioni.

[!NOTA]

Le relazioni tra attributi sono note nelle espressioni MDX (Multidimensional Expression) come proprietà del membro.

Relazioni di gerarchia naturale

Una gerarchia è naturale quando ogni attributo incluso nella gerarchia definita dall'utente ha una relazione uno-a-molti con l'attributo immediatamente sottostante. Considerare, ad esempio, una dimensione Customer basata su una tabella di origine relazionale con otto colonne:

  • CustomerKey

  • CustomerName

  • Age

  • Gender

  • Email

  • City

  • Country

  • Region

La dimensione di Analysis Services corrispondente ha sette attributi:

  • Customer (basato su CustomerKey, con CustomerName che definisce i nomi dei membri)

  • Age, Gender, Email, City, Region, Country

Le relazioni che rappresentano gerarchie naturali vengono applicate creando una relazione fra l'attributo per un livello e l'attributo per il livello sottostante. Per Analysis Services questa operazione specifica una relazione naturale e un'aggregazione potenziale. Nella dimensione Customer è presente una gerarchia naturale per gli attributi Country, Region, City e Customer. La gerarchia naturale per {Country, Region, City, Customer} viene descritta aggiungendo le relazioni tra attributi seguenti:

  • Attributo Country come relazione tra attributi dell'attributo Region.

  • Attributo Region come relazione tra attributi dell'attributo City.

  • Attributo City come relazione tra attributi dell'attributo Customer.

Per l'esplorazione dei dati in un cubo, è inoltre possibile creare una gerarchia definita dall'utente che non rappresenti una gerarchia naturale nei dati, denominata gerarchia ad hoc o di report. È ad esempio possibile creare una gerarchia basata su {Age, Gender}. Gli utenti non vedranno alcuna differenza nel comportamento delle due gerarchie, sebbene la gerarchia naturale tragga vantaggio dall'aggregazione e dall'indicizzazione di strutture, nascoste all'utente, responsabili delle relazioni naturali nei dati di origine.

La proprietà SourceAttribute di un livello determina l'attributo utilizzato per descrivere il livello. La proprietà KeyColumns dell'attributo specifica la colonna della vista origine dati che definisce i membri. La proprietà NameColumn dell'attributo può specificare una colonna diversa per i nomi dei membri.

Per definire un livello in una gerarchia definita dall'utente tramite Business Intelligence Development Studio, Progettazione dimensioni consente di selezionare un attributo della dimensione, una colonna di una tabella della dimensione o una colonna di una tabella correlata inclusa nella vista origine dati del cubo. Per ulteriori informazioni sulla creazione di gerarchie definite dall'utente, vedere Creazione di gerarchie definite dall'utente.

Relativamente al contenuto dei membri, in Analysis Services ci si basa in genere sul presupposto che i membri foglia non abbiano discendenti e contengano dati derivati dalle origini dei dati sottostanti, mentre i membri non foglia abbiano discendenti e contengano dati derivati dalle aggregazioni eseguite sui membri figlio. Nei livelli aggregati i membri sono basati sulle aggregazioni di livelli subordinati. Quando, perciò, la proprietà IsAggregatable viene impostata su False in un attributo di origine per un livello, non devono essere aggiunti attributi che possono essere aggregati come livelli al di sopra di esso.

Definizione di una relazione tra attributi

Il vincolo principale quando si crea una relazione tra attributi consiste nel verificare che l'attributo a cui la relazione fa riferimento non abbia più di un valore per ogni membro nell'attributo a cui appartiene la relazione tra attributi. Se, ad esempio, si definisce una relazione tra un attributo City e un attributo State, ogni città può essere in relazione solo con un unico stato.

Query sulla relazione tra attributi

È possibile utilizzare query MDX per recuperare dati dalle relazioni tra attributi in forma di proprietà del membro, tramite la parola chiave PROPERTIES dell'istruzione SELECT MDX. Per ulteriori informazioni sull'utilizzo di MDX per recuperare le proprietà del membro, vedere Utilizzo delle proprietà dei membri (MDX).