Relazioni tra attributi
In Microsoft SQL Server Analysis 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 Riferimento alle proprietà 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 la navigazione 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 dei nomi differente per i membri.
Per definire un livello in una gerarchia definita dall'utente tramite SQL Server Data Tools (SSDT), Progettazione dimensioni consente di selezionare un attributo della dimensione, una colonna in una tabella delle dimensioni 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 Creare 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).
Vedere anche
Concetti
Attributi e gerarchie di attributi
Riferimento alle proprietà degli attributi delle dimensioni