Condividi tramite


Ordinamento dei membri dell'attributo in base a un attributo secondario

Nella lezione 3 è stato illustrato l'ordinamento dei membri dell'attributo in base al nome o al valore di chiave. È stato inoltre illustrato in che modo una chiave del membro composta possa incidere sui membri dell'attributo e sul tipo di ordinamento. Per ulteriori informazioni, vedere Modifica della dimensione Time. Talvolta, tuttavia, può essere necessario ordinare i membri dell'attributo in base a un attributo secondario, ad esempio nei casi in cui né il nome né la chiave dell'attributo assicurano il tipo di ordinamento desiderato. Per ordinare un attributo tramite il nome o la chiave di un attributo secondario, è necessario utilizzare un attributo secondario correlato all'attributo stesso.

Le relazioni tra gli attributi definiscono le relazioni o le dipendenze che intercorrono tra gli attributi. In una dimensione basata su una singola tabella relazionale tutti gli attributi sono in genere correlati tra loro mediante l'attributo chiave poiché tutti gli attributi relativi a una dimensione includono informazioni sui membri collegati mediante l'attributo chiave della dimensione ai fatti della tabella dei fatti per ogni gruppo di misure correlato. In una dimensione basata su più tabelle, gli attributi sono in genere collegati in base alla chiave di join tra le tabelle.

Potrebbe tuttavia essere necessario richiedere ulteriori informazioni sui membri a un particolare livello di una gerarchia. Con Progettazione dimensioni è possibile definire relazioni aggiuntive tra gli attributi o modificare le relazioni predefinite per migliorare le prestazioni. Il vincolo principale quando si crea una relazione tra attributi consiste nel verificare che l'attributo a cui si fa riferimento non possieda più di un valore per ogni membro dell'attributo correlato. Una relazione tra due attributi può essere definita rigida o flessibile a seconda che le relazioni tra i membri possano modificarsi nel tempo. Ad esempio, un dipendente può cambiare area di vendita mentre una città non può cambiare regione. Se una relazione è definita come rigida, le aggregazioni di attributi non vengono ricalcolate a ogni elaborazione incrementale della dimensione. Se tuttavia la relazione tra i membri si modifica, è necessario elaborare completamente la dimensione. Per ulteriori informazioni, vedere Relazioni tra attributi, Definizione e configurazione di una relazione tra attributi, Configurazione delle proprietà della relazione tra attributi e Impostazione delle relazioni tra gli attributi in una gerarchia definita dall'utente.

Nelle attività inclusa in questo argomento verrà definito un nuovo attributo della dimensione Time in base a una colonna esistente della tabella delle dimensioni sottostante. Il nuovo attributo verrà utilizzato per ordinare i membri dei mesi del calendario cronologicamente anziché alfabeticamente. Verrà inoltre definito un nuovo attributo della dimensione Customer in base al calcolo denominato utilizzato per ordinare i membri dell'attributo Commute Distance. Nelle attività dell'argomento successivo verranno illustrate le procedure per utilizzare le relazioni tra gli attributi in modo da migliorare le prestazioni delle query.

Definizione di una relazione tra attributi e dell'ordinamento nella dimensione Time

Per definire una relazione tra attributi e l'ordinamento nella dimensione Time

  1. Aprire Progettazione dimensioni per la dimensione Time e controllare la proprietà OrderBy dell'attributo Month Name nella finestra Proprietà.

    Si noti che i membri dell'attributo Month Name sono ordinati in base ai relativi valori di chiave.

  2. Passare alla scheda Esplorazione, verificare che nell'elenco Gerarchia sia selezionato Calendar Time e quindi espandere i livelli della gerarchia definita dall'utente per controllare l'ordinamento dei mesi del calendario.

    Si noti che i membri della gerarchia dell'attributo sono ordinati in base ai valori ASCII delle chiavi del membro, ovvero mese e anno. In questo caso, l'ordinamento in base al nome o alla chiave dell'attributo non consente di ordinare cronologicamente i mesi del calendario. È necessario quindi ordinare i membri della gerarchia dell'attributo in base al un nuovo attributo MonthNumberOfYear. L'attributo verrà creato in base a una colonna che opportunamente esiste nella tabella delle dimensioni DimTime.

  3. Passare alla scheda Struttura dimensione per la dimensione Time, fare clic con il pulsante destro del mouse su MonthNumberOfYear nel riquadro Vista origine dati e quindi scegliere Nuovo attributo da colonna.

  4. Nel riquadro Attributi, selezionare Month Number Of Year e quindi nella finestra Proprietà impostare le proprietà AttributeHierarchyEnabled su False, AttributeHierarchyOptimizedState su NotOptimized e AttributeHierarchyOrdered su False.

    Con queste impostazioni gli attributi vengono nascosti agli utenti consentendo di risparmiare tempo di elaborazione. In tal modo il nuovo attributo verrà utilizzato soltanto per ordinare i membri di un altro attributo.

[!NOTA] Se si ordinano alfabeticamente le proprietà nella relativa finestra, l'esecuzione di questa attività risulterà più semplice poiché le tre proprietà verranno disposte una accanto all'altra.

  1. Espandere Date nel riquadro Attributi.
    Si noti che tutti gli attributi della dimensione Time sono direttamente correlati all'attributo Date il quale rappresenta la chiave del membro che consente di correlare i membri della dimensione ai fatti dei gruppi di misure correlati.
  2. Espandere Month Name.
    Si noti che non esiste alcuna relazione definita tra gli attributi Month Name e Month Number Of Year.
  3. Trascinare l'attributo Month Number Of Year sul tag <nuova relazione tra attributi> nell'attributo Month Name.
    Sebbene sia possibile definire una relazione aggiuntiva, se si sposta la relazione esistente si otterranno migliori prestazioni di elaborazione e una riduzione della ridondanza. A questo punto è stata definita una relazione tra gli attributi Month Number Of Year e Month Name. Nella finestra Proprietà si noti che il valore predefinito per la proprietà RelationshipType della relazione tra gli attributi Month Number Of Year è impostata su Flexible.
  4. Nella finestra Proprietà impostare il valore della proprietà RelationshipType su Rigid.
    Le relazioni tra i membri degli attributi Month Name e Month Number Of Year rimangono invariate nel tempo. Ne consegue che Analysis Services non eliminerà le aggregazioni relative alla relazione durante l'elaborazione incrementale. Se viene apportata una modifica, si verificherà un errore durante l'elaborazione incrementale e sarà necessario eseguire un'elaborazione completa della dimensione. A questo punto è possibile impostare il tipo di ordinamento per i membri di Month Name.
    Nella figura seguente viene illustrata la proprietà RelationshipType impostata su Rigid per la relazione tra gli attributi Month Number Of Year dell'attributo Month Name.
    Proprietà RelationshipType impostata su Rigid
  5. Selezionare Month Name nel riquadro Attributi e quindi nella finestra Proprietà impostare il valore della proprietà OrderBy su AttributeKey e il valore della proprietà OrderByAttribute su Month Number Of Year.
    Nella figura seguente sono illustrate queste modifiche alle proprietà nella finestra Proprietà.
    Modifiche delle proprietà OrderBy e OrderByAttribute
  6. Scegliere Distribuisci Analysis Services Tutorial dal menu Genera.
  7. Al termine delle operazioni di distribuzione, passare alla scheda Esplorazione per la dimensione Time, fare clic su Riconnetti e quindi visualizzare le gerarchie utente Calendar Time e Fiscal Time per verificare che i mesi vengano visualizzati in ordine cronologico.
    Si noti che i mesi sono ora ordinati cronologicamente, come illustrato nella figura seguente.
    Gerarchia utente modificata in ordine cronologico

Definizione delle relazioni tra gli attributi e il tipo di ordinamento nella dimensione Customer

Per definire le relazioni tra gli attributi e il tipo di ordinamento nella dimensione Customer

  1. Passare alla scheda Struttura dimensione di Progettazione dimensioni per la dimensione Customer.

  2. Nel riquadro Attributi selezionare l'attributo Commute Distance e quindi controllare la proprietà OrderBy nella finestra Proprietà.

  3. Passare alla scheda Esplorazione e quindi visualizzare i membri della gerarchia dell'attributo Commute Distance.

    Si noti che i membri di questa gerarchia dell'attributo sono ordinati in base ai valori ASCII della chiave del membro. In questo caso, l'ordinamento in base al nome o alla chiave dell'attribuito non consente di ordinare le distanze percorse in ordine crescente. In questa attività i membri della gerarchia dell'attributo verranno ordinati in base al calcolo denominato CommuteDistanceSort che attribuisce il numero di ordine appropriato a ogni valore distinto della colonna. Per risparmiare tempo, questo calcolo denominato è già stato aggiunto alla tabella Customer nella vista origine dati Adventure Works DW. È possibile passare a questa vista origine dati per visualizzare lo script SQL utilizzato nel calcolo denominato. Per ulteriori informazioni, vedere Definizione di calcoli denominati in una vista origine dati (Analysis Services).

    Nella figura seguente vengono illustrati i membri della gerarchia dell'attributo Commute Distance ordinati in base ai valori ASCII della chiave del membro.

    Gerarchia dell'attributo Commute Distance

  4. Passare alla scheda Struttura dimensione in Progettazione dimensioni per la dimensione Customer, fare clic con il pulsante destro del mouse su CommuteDistanceSort nella tabella Customer del riquadro Vista origine dati e quindi scegliere Nuovo attributo da colonna.

  5. Nel riquadro Attributi, selezionare Commute Distance Sort e quindi nella finestra Proprietà impostare la proprietà AttributeHierarchyEnabled per questo attributo su False, la proprietà AttributeHierarchyOptimizedState su NotOptimized e la proprietà AttributeHierarchyOrdered su False.

    Con queste impostazioni gli attributi sono nascosti agli utenti e si risparmiano risorse di elaborazione. In tal modo il nuovo attributo verrà utilizzato soltanto per ordinare i membri di un altro attributo.

  6. Nel riquadro Attributi espandere Full Name.

    Si noti che tutti gli attributi della dimensione Customer derivati dalla tabella Customer della vista origine dati di Analysis Services Tutorial sono correlati tramite questo attributo.

  7. Espandere Geography.

    Si noti che tutti gli attributi della dimensione Customer derivati dalla tabella Geography della vista origine dati di Analysis Services Tutorial sono correlati tramite l'attributo Geography.

  8. Selezionare Geography e quindi nella finestra Proprietà impostare le proprietà AttributeHierarchyVisible su False, AttributeHierarchyOptimized su NotOptimized e AttributeHierarchyOrdered su False.

    Dal momento che questo attributo non verrà visualizzato, con queste impostazioni l'attributo sarà nascosto agli utenti consentendo di risparmiare tempo di elaborazione. È necessario attivare una gerarchia dell'attributo se questa possiede proprietà del membro.

  9. Nel riquadro Attributi espandere Commute Distance.

    Si noti che non esiste alcuna relazione definita tra questo attributo e l'attributo Commute Distance Sort.

  10. Trascinare l'attributo Commute Distance Sort sul tag <nuova relazione tra attributi> sotto l'attributo Commute Distance.

    A questo punto è stata definita una relazione tra gli attributi Commute Distance e Commute Distance Sort. Nella finestra Proprietà si noti che il valore predefinito per la proprietà RelationshipType del membro Commute Distance Sort dell'attributo Commute Distance è impostata su Flexible.

  11. Nella finestra Proprietà impostare il valore della proprietà RelationshipType su Rigid.

    La relazione tra i membri degli attributi Commute Distance e Commute Distance Sort rimane invariata nel tempo. A questo punto è possibile impostare il tipo di ordinamento per l'attributo Commute Distance.

  12. Nel riquadro Attributi selezionare Commute Distance e quindi nella finestra Proprietà impostare il valore delle proprietà OrderBy su AttributeKey e OrderByAttribute su Commute Distance Sort.

  13. Scegliere Distribuisci Analysis Services Tutorial dal menu Genera.

  14. Al termine delle operazioni di distribuzione, passare alla scheda Esplorazione di Progettazione dimensioni per la dimensione Customer, fare clic su Riconnetti e quindi visualizzare la gerarchia dell'attributo Commute Distance.

    Si noti che i membri della gerarchia dell'attributo sono ora ordinati in base a un criterio logico per distanza crescente come illustrato nella figura seguente.

    Gerarchia dell'attributo Commute Distance con ordine modificato

Attività successiva della lezione

Impostazione delle relazioni tra gli attributi in una gerarchia definita dall'utente