• Non ci sono risultati.

Per far ciò è necessario definire una dimensione i cui dati vengono creati dinamicamente a partire dai dati del cubo, come valutazione di regole MDX definite nei campi della dimensione stessa.

N/A
N/A
Protected

Academic year: 2021

Condividi "Per far ciò è necessario definire una dimensione i cui dati vengono creati dinamicamente a partire dai dati del cubo, come valutazione di regole MDX definite nei campi della dimensione stessa. "

Copied!
7
0
0

Testo completo

(1)

APPENDICE C Segmentazione multidimensionale con dimensione virtuale

Rispetto alla tecnica dei membri calcolati quella che ci accingiamo a presentare risulta più complessa ma allo stesso tempo più completa.

L’idea di fondo è quella di creare una dimensione che esegua automaticamente le analisi di segmentazione della clientela.

Per far ciò è necessario definire una dimensione i cui dati vengono creati dinamicamente a partire dai dati del cubo, come valutazione di regole MDX definite nei campi della dimensione stessa.

Per definire tale dimensione ci siamo avvalsi della possibilità di costruire dimensioni di tipo padre-figlio offerta da Ms SQL Server 2000.

Una dimensione padre-figlio è basata su due colonne della tabella delle dimensioni che insieme definiscono le relazioni di derivazione esistenti tra i membri della dimensione. Una colonna, denominata chiave membro, identifica ogni membro.

L'altra, denominata colonna padre, identifica il padre di ogni membro. Queste informazioni vengono utilizzate per creare collegamenti padre-figlio, che vengono quindi riepilogati in una singola gerarchia dei membri.

A differenza delle dimensioni regolari e virtuali, che vengono definite con un numero di livelli che determina il numero che viene visualizzato agli utenti finali, una dimensione padre-figlio viene definita con un singolo livello di tipo speciale che in genere produce più livelli visualizzabili dagli utenti finali.

Sulla base di queste nozioni è stata costruita una dimensione padre-figlio, chiamata

DimSegmenta con due elementi padre, il primo di nome Standard riporta il valore

della misura calcolata nel cubo (nel nostro esempio il volume di spesa effettuato dalla

(2)

l’azienda; ognuno degli elementi figlio porta il nome di un segmento e calcola il numero di clienti appartenenti ad esso.

Qui di seguito sono illustrate le fasi da seguire per realizzare la dimensione DimSegmenta utilizzando gli strumenti di Ms SQL Server 2000.

Prima fase

Prima di tutto è necessario definire una nuova tabella, nel database dal quale si attingono i dati in SQL Server Enterprise Manager, che per comodità chiameremo Tab_Segmentazione con la struttura mostrata in Figura 5.5.

Figura 5.5 Struttura della tabella Tab_Segmentazione.

(3)

Specifichiamo di seguito il significato di ogni colonna della tabella:

• Id_Atr1 : definisce la chiave primaria della tabella

• Analisi : definisce gli elementi padre o figlio della tabella

• Fth_Analisi : specifica se valorizzato il nome dell’elemento padre

• CM : definisce il membro corrente e conterrà le espressioni MDX da valutare

• CMO : consente di specificare per ogni membro l’operatore da utilizzare

• UO : consente di specificare un eventuale operatore unario

Seconda fase

In questa fase vanno valorizzati i campi sulla base del significato delle colonne illustrato precedentemente, così come mostra la figura 5.6.

Figura 5.6 Contenuto dei campi della tabella Tab_Segmentazione.

Per i campi della colonna CM (il cui contenuto non è chiaro nell’immagine) bisogna inserire in ordine:

Riga1

Null

(4)

Riga 2

Count(crossjoin({[DimSegmenta].&[Standard]},{Descendants([Customers].currentmember, [Customers].[Dsc Cli])}),excludeempty)

La riga 2 conta il numero complessivo di clienti che hanno effettuato almeno un acquisto.

Riga 3

Count(Filter(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}), Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))>=7000),excludeempty)

La riga 3 conta il numero di clienti Super loyal

Riga 4

Count(Filter(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}), Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))<7000 And Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))>=4500),excludeempty)

La riga 4 conta il numero di clienti Loyal.

Riga 5

Count(Filter(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}), Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))<4500 And Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))>=3000),excludeempty)

La riga 5 conta il numero di clienti Medium.

(5)

Riga 6

Count(Filter(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}), Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))<3000 And Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))>=1000),excludeempty)

La riga 6 conta il numero di clienti Low.

Riga 7

Count(Filter(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}), Sum(crossjoin({[DimSegmenta].&[Standard]},

{Descendants([Customers].currentmember,[Customers].[Dsc Cli])}))<1000),excludeempty)

La riga 7 conta il numero di clienti Secondary.

L’unica accortezza richiesta in questa fase è quella di utilizzare per l’utilizzo del valore standard il nome della dimensione utilizzata nel cubo, nel nostro caso è DimSegmenta (es: [DimSegmenta].&[Standard]).

Terza fase

Ora bisogna creare la dimensione DimSegmenta su Analysis Manager.

Durante la creazione di una nuova dimensione condivisa scegliere dalla procedura guidata la dimensione padre-figlio e proseguire selezionando Tab_Segmentazione come tabella delle dimensioni.

A questo punto, scegliere come chiave del membro i valori della colonna Analisi e

come chiave padre Fth_Analisi e proseguire fino alla fine ricordandosi usare per la

dimensione lo stesso nome utilizzato nelle regole MDX nel nostro caso

DimSegmenta.

(6)

Figura 5.7 Schema della dimensione DimSegmenta.

Figura 5.8 Dati della dimensione DimSegmenta.

(7)

Quarta fase

Ora non ci resta che includere la dimensione DimSegmenta nel cubo, salvare, elaborare il cubo e valutare i risultati. In Figura 5.9 viene illustrato un esempio d’uso.

Figura 5.9 Esempio d’uso della dimensione DimSegmenta.

Riferimenti

Documenti correlati

Sperimentalmente : il numero totale di battiti cardiaci nel corso della vita di tutti gli animali è costante ( ~ 6 x 10 8 ). (durata di vita) x (frequenza cardiaca) = (numero

il corpo umano reagisce alle accelerazioni (accelerometro) non alle velocità (non è un tachimetro) esempio: macchina 90 km/h.. aereo 900 km/h non sento la

dell’equazione differenziale del moto armonico semplice , ma anche che sono le

La proposta di raccomandazione del Consiglio sulla promozione dei valori comuni, di un'istruzione inclusiva e della dimensione europea dell'insegnamento prende le mosse

ore 11.15 Tavola rotonda — Famiglie immigrate e religiosità oggi Don Silvano Caccia, responsabile Servizio diocesano per la Famiglia Antonio Marazzi, Fondazione ISMU.

(a) Stabilisci se le seguenti funzioni sono

Il “problema” può anche presentare altri punti di vista...... Il “problema” può anche presentare altri punti

Viene valutato il dealy spread, il profilo temporale di potenza, il modello di dispersione temporale, confrontando i risultati con quelli presenti in letteratura, sia con misure