Relazioni tra attributi
In Microsoft SQL Server Analysis Services gli attributi all'interno di una dimensione sono sempre correlati direttamente o indirettamente 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 altre informazioni, vedere Informazioni di riferimento sulle proprietà dell'attributo dimensione.
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
Età
Sesso
E-mail
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, questo specifica una relazione naturale e una potenziale aggregazione. 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 lo spostamento dei dati nel cubo, è anche possibile creare una gerarchia definita dall'utente che non rappresenta una gerarchia naturale nei dati ,denominata gerarchia ad hoc o di creazione di report . È ad esempio possibile creare una gerarchia basata su {Age, Gender}
. Gli utenti non vedono alcuna differenza nel comportamento delle due gerarchie, anche se la gerarchia naturale beneficia dell'aggregazione e delle strutture di indicizzazione, nascoste dall'utente, che rappresentano le 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 usando SQL Server Data Tools (SSDT), la dimensione Designer consente di selezionare un attributo di dimensione, una colonna in una tabella di dimensioni o una colonna di una tabella correlata inclusa nella vista origine dati per il cubo. Per altre informazioni sulla creazione di gerarchie definite dall'utente, vedere Creare gerarchie User-Defined.
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 altre informazioni su come usare MDX per recuperare le proprietà dei membri, vedere Uso di Proprietà membro (MDX).
Vedere anche
Attributi e gerarchie di attributi
Riferimento alle proprietà degli attributo delle dimensioni
Gerarchie definite dall'utente
Proprietà delle gerarchie definite dall'utente