Condividi tramite


Relazioni tra attributi

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

In Microsoft SQL Server 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à 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

  • 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 SQL Server Analysis Services, 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 trae vantaggio dall'aggregazione e dall'indicizzazione delle strutture, nascoste dall'utente, che rappresentano le relazioni naturali nei dati di origine.

La proprietà SourceAttribute di un livello determina quale attributo viene utilizzato per descrivere il livello. La proprietà KeyColumns dell'attributo specifica la colonna nella vista origine dati che fornisce i membri. La proprietà NameColumn nell'attributo può specificare una colonna del nome diversa per i membri.

Per definire un livello in una gerarchia definita dall'utente utilizzando SQL Server Data Tools, l'Designer dimensione consente di selezionare un attributo di dimensione, una colonna in una tabella delle 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 di 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. Pertanto, quando la proprietà IsAggregatable è impostata su False in un attributo di origine per un livello, non è necessario aggiungere attributi aggregabili come livelli superiori.

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 usare query MDX per recuperare i dati dalle relazioni tra attributi, sotto forma di proprietà membro, con la parola chiave PROPERTIES dell'istruzione MDX SELECT . Per altre informazioni su come usare MDX per recuperare le proprietà dei membri, vedere Using Member Properties (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