MCSD MCAD MCSE+I MCSA MCDBA MCT Introduzione alla realizzazione di Data Warehouse con Microsoft SQL...
-
Upload
gemma-spano -
Category
Documents
-
view
223 -
download
1
Transcript of MCSD MCAD MCSE+I MCSA MCDBA MCT Introduzione alla realizzazione di Data Warehouse con Microsoft SQL...
www.devleap.it
MCSD MCAD MCSE+I MCSA MCDBA MCSD MCAD MCSE+I MCSA MCDBA MCTMCT
Introduzione alla Introduzione alla realizzazione direalizzazione di
Data Warehouse con Data Warehouse con Microsoft SQL Microsoft SQL
ServerServer
www.devleap.it
Chi siamoChi siamo
www.DevLeap.itwww.DevLeap.itUn gruppo di 5 persone con tanta voglia Un gruppo di 5 persone con tanta voglia
didiStudiare a fondo le tecnologieStudiare a fondo le tecnologieCapire il “behind the scenes”Capire il “behind the scenes”Implementare soluzioni realiImplementare soluzioni realiConfrontarsi con le problematiche realiConfrontarsi con le problematiche realiSperimentare nuove ideeSperimentare nuove idee
Facciamo Corsi, Conferenze, TrainingFacciamo Corsi, Conferenze, Training
www.devleap.it
AgendaAgenda
Modellazione di un DataWarehouseModellazione di un DataWarehouse Data Warehouse e Data Mart Data Warehouse e Data Mart Componenti di un modello di Data Componenti di un modello di Data
Warehouse Warehouse Differenze tra DB relazionali normalizzati Differenze tra DB relazionali normalizzati
e Data Warehouse e Data Warehouse Star Schema e Snowflake Schema Star Schema e Snowflake Schema
www.devleap.it
ModellazioneModellazioneData WarehouseData Warehouse
www.devleap.it
Data WarehouseData Warehouse
Magazzino di dati a livello di impresaMagazzino di dati a livello di impresa Insieme di strumenti per convertire un Insieme di strumenti per convertire un
vasto insieme di dati in informazioni vasto insieme di dati in informazioni utilizzabili dall’utenteutilizzabili dall’utente
Obiettivi:Obiettivi: Possibilità di accedere a tutti i dati Possibilità di accedere a tutti i dati
dell’impresa, centralizzati in un solo dell’impresa, centralizzati in un solo databasedatabase
Coerenza e consolidamento dei datiCoerenza e consolidamento dei dati Velocità nell’accesso alle informazioniVelocità nell’accesso alle informazioni Supporto per l’analisi dei datiSupporto per l’analisi dei dati
www.devleap.it
Data MartData Mart
Magazzino di dati a livello Magazzino di dati a livello dipartimentaledipartimentale
E’ un segmento di un Data WarehouseE’ un segmento di un Data Warehouse E’ fisicamente realizzato come un Data E’ fisicamente realizzato come un Data
Warehouse, ma con una finalità più Warehouse, ma con una finalità più ristretta:ristretta: I dati coprono solo alcune aree aziendaliI dati coprono solo alcune aree aziendali
(ad es. vendite)(ad es. vendite) Minori costi di realizzazioneMinori costi di realizzazione Risultati più vicini nel tempoRisultati più vicini nel tempo
www.devleap.it
Data Warehouse vs. Data MartData Warehouse vs. Data Mart
Il Data Warehouse è un progetto più Il Data Warehouse è un progetto più vasto, complesso e costoso, ma vasto, complesso e costoso, ma garantisce maggiore coerenza dei datigarantisce maggiore coerenza dei dati
Da un Data Warehouse si possono Da un Data Warehouse si possono ricavare velocemente dei Data Mart ricavare velocemente dei Data Mart (top-down)(top-down)
Si può costruire un Data Warehouse Si può costruire un Data Warehouse unendo più Data Mart realizzati nel unendo più Data Mart realizzati nel tempo (bottom-up)tempo (bottom-up)
www.devleap.it
Finalità di un Data WarehouseFinalità di un Data Warehouse
Strumento di supporto decisionaleStrumento di supporto decisionale Base informativa per costruire sistemi Base informativa per costruire sistemi
di analisi e previsione:di analisi e previsione: ReportsReports On-Line Analytical Processing (OLAP)On-Line Analytical Processing (OLAP) Data MiningData Mining
www.devleap.it
ReportReport
Report che analizzano i dati con una certa Report che analizzano i dati con una certa profondità storicaprofondità storica
Possono richiedere tempi di elaborazione Possono richiedere tempi di elaborazione elevati se i dati vanno aggregatielevati se i dati vanno aggregati
Spesso ottenibili con soluzioni OLAP Spesso ottenibili con soluzioni OLAP (minore tempo di elaborazione)(minore tempo di elaborazione)
www.devleap.it
Cosa è OLAPCosa è OLAP
OLAP: On Line Analytical ProcessingOLAP: On Line Analytical ProcessingÈ una tecnologia di Business È una tecnologia di Business
IntelligenceIntelligenceSinonimo di termini usati in Sinonimo di termini usati in
precedenza:precedenza:DSS: Decision Support SystemDSS: Decision Support SystemEIS: Executive Information SystemEIS: Executive Information System
OLAP = vista multidimensionale sui datiOLAP = vista multidimensionale sui dati
www.devleap.it
On-Line Analytical Processing On-Line Analytical Processing (OLAP)(OLAP)
I dati, strutturati per dimensioni, I dati, strutturati per dimensioni, vengono esaminati a diversi livelli di vengono esaminati a diversi livelli di dettaglio (tramite aggregazione e drill-dettaglio (tramite aggregazione e drill-down)down)
Viene anche chiamata analisi multi-Viene anche chiamata analisi multi-dimensionale dei datidimensionale dei dati
Può produrre report stampati, ma è Può produrre report stampati, ma è prima di tutto una funzionalità prima di tutto una funzionalità interattiva (come le Pivot Table)interattiva (come le Pivot Table)
Consente di verificare velocemente Consente di verificare velocemente ipotesi formulate dall’utenteipotesi formulate dall’utente
www.devleap.it
Data MiningData Mining
Tecniche per aiutare gli utenti ad estrarre Tecniche per aiutare gli utenti ad estrarre informazioni utili da informazioni utili da grandigrandi database database
L’utente finale non deve essere un L’utente finale non deve essere un esperto di statisticaesperto di statistica
Utilizzato per generare ipotesiUtilizzato per generare ipotesi
www.devleap.it
Caratteristiche di un Data Caratteristiche di un Data WarehouseWarehouse
E’ un archivio di dati con le seguenti E’ un archivio di dati con le seguenti caratteristiche:caratteristiche: subject orientedsubject oriented integratedintegrated nonvolatilenonvolatile time varianttime variant
www.devleap.it
Definizione di un Data WarehouseDefinizione di un Data Warehouse
E’ il processo più lungo e costoso:E’ il processo più lungo e costoso: Identificare gli obiettivi di businessIdentificare gli obiettivi di business Raccogliere ed analizzare informazioniRaccogliere ed analizzare informazioni Definire il modello di datiDefinire il modello di dati Identificare le fonti di datiIdentificare le fonti di dati Definire le trasformazioni necessarie a Definire le trasformazioni necessarie a
consolidare i daticonsolidare i dati Stabilire profondità temporale, creare una Stabilire profondità temporale, creare una
base storicabase storica
www.devleap.it
Identificare gli obiettiviIdentificare gli obiettivi
Il Data Warehouse è uno strumento di Il Data Warehouse è uno strumento di supporto alle decisioni: l’utente è in supporto alle decisioni: l’utente è in genere il management aziendalegenere il management aziendale
Bisogna individuare i fatti di rilievo Bisogna individuare i fatti di rilievo per i decision-maker, non per per i decision-maker, non per l’operatività quotidianal’operatività quotidiana
Acquisire la visione aziendale del Acquisire la visione aziendale del managementmanagement
www.devleap.it
Raccogliere informazioniRaccogliere informazioni
Spesso le informazioni necessarie sono già Spesso le informazioni necessarie sono già raccolte e presentate in qualche reportraccolte e presentate in qualche report
Chiedere ai decision-maker di compilare Chiedere ai decision-maker di compilare tabelle excel con le informazioni che tabelle excel con le informazioni che vorrebbero averevorrebbero avere
www.devleap.it
Definire il modello di datiDefinire il modello di dati
Identificare gli eventi da misurare:Identificare gli eventi da misurare: VenditeVendite Chiamate al customer-serviceChiamate al customer-service Interventi di assistenzaInterventi di assistenza ProduzioneProduzione
Mantenere flessibilità per il futuro:Mantenere flessibilità per il futuro: Nuovi prodottiNuovi prodotti Nuovi centri assistenzaNuovi centri assistenza Nuove linee di produzioneNuove linee di produzione
www.devleap.it
Identificare le fonti datiIdentificare le fonti dati
In una grande azienda sono spesso In una grande azienda sono spesso fonti eterogeneefonti eterogenee
Molti dati possono risiedere su archivi Molti dati possono risiedere su archivi non strutturati:non strutturati: Fogli ExcelFogli Excel E-mailE-mail
Individuare le modalità di accesso Individuare le modalità di accesso periodico alle fonti dati per alimentare periodico alle fonti dati per alimentare il Data Warehouseil Data Warehouse
www.devleap.it
Consolidare i datiConsolidare i dati
Decidere le trasformazioni da applicare Decidere le trasformazioni da applicare ai dati per eliminare le differenze di:ai dati per eliminare le differenze di: valutavaluta notazione metricanotazione metrica fiscalifiscali memorizzazione fisica (tipo dei dati)memorizzazione fisica (tipo dei dati)
Definire un processo automatico e Definire un processo automatico e ripetibile di trasformazione dei datiripetibile di trasformazione dei dati
www.devleap.it
Base storicaBase storica
Prima che il Data Warehouse diventi Prima che il Data Warehouse diventi operativo, è probabile che esistano operativo, è probabile che esistano delle operazioni una-tantum per delle operazioni una-tantum per creare una base storica inizialecreare una base storica iniziale
Le trasformazioni iniziali possono Le trasformazioni iniziali possono differire da quelle periodiche di un differire da quelle periodiche di un sistema in produzione:sistema in produzione: mole di dati da trasferiremole di dati da trasferire aggiornamento completo vs. incrementaleaggiornamento completo vs. incrementale
www.devleap.it
Il Data Warehouse al lavoroIl Data Warehouse al lavoro
Data Marts
DataDataWarehouseWarehouse
Source OLTPSystems
Clients
Retrieve DataRetrieve Data Populate Populate Populate Populate Query Query Transform Data Transform Data Data Warehouse Data Warehouse Data Marts Data Marts Data Data
1111
2222
3333 4444 5555
www.devleap.it
Da OLTP a OLAPDa OLTP a OLAP
Passando da un sistema transazionale Passando da un sistema transazionale ad un sistema di analisi, cambiano le ad un sistema di analisi, cambiano le caratteristiche di:caratteristiche di: normalizzazionenormalizzazione prestazioni su query e modifica dei datiprestazioni su query e modifica dei dati profondità storicaprofondità storica complessità delle querycomplessità delle query dettaglio degli eventi rilevatidettaglio degli eventi rilevati
www.devleap.it
Database OLTPDatabase OLTP
Caratteristiche di un database per un Caratteristiche di un database per un ambiente operativo:ambiente operativo: Normalizzazione completaNormalizzazione completa Alto numero di tabelle e di associazioniAlto numero di tabelle e di associazioni Dati memorizzati al minimo livello di Dati memorizzati al minimo livello di
granularitàgranularità Interrogazioni richiedono join di molte tabelleInterrogazioni richiedono join di molte tabelle La struttura dei dati non varia di frequenteLa struttura dei dati non varia di frequente Ottimizzato per inserimento dei datiOttimizzato per inserimento dei dati
www.devleap.it
Database OLAPDatabase OLAP
Caratteristiche di un database per un Caratteristiche di un database per un ambiente analitico:ambiente analitico: Entità denormalizzateEntità denormalizzate Disegno del database più semplice (meno Disegno del database più semplice (meno
tabelle e meno associazioni) per una tabelle e meno associazioni) per una comprensione più facile da parte dell’utentecomprensione più facile da parte dell’utente
I dati memorizzati possono essere I dati memorizzati possono essere aggregati (riassuntivi)aggregati (riassuntivi)
Le interrogazioni richiedono poche joinLe interrogazioni richiedono poche join Ottimizzato per la consultazione, per Ottimizzato per la consultazione, per
l’utente è read-onlyl’utente è read-only
www.devleap.it
Ottimizzare i database OLAPOttimizzare i database OLAP
Una base dati per OLAP è prima di tutto Una base dati per OLAP è prima di tutto denormalizzatadenormalizzata
Esistono dei modelli generici pensati Esistono dei modelli generici pensati per queste esigenze:per queste esigenze: Star SchemaStar Schema Snowflake SchemaSnowflake Schema
Un database OLAP può essere realizzato Un database OLAP può essere realizzato sfruttando un generico database sfruttando un generico database relazionale, ma esistono soluzioni relazionale, ma esistono soluzioni specifiche diverse (OLAP Server)specifiche diverse (OLAP Server)
www.devleap.it
Componenti di un modello DWComponenti di un modello DW
ComuneComune ProdottoProdotto TempoTempo UnitàUnità FatturatoFatturato
Tabella delleDimensioni
Tabella delleDimensioni
ComuniComuniComuniComuni
ProdottiProdottiProdottiProdotti
TempoTempoTempoTempo
Tabella dei FattiMisureMisureMisureMisure
FattiFattiFattiFatti
DimensioniDimensioniDimensioniDimensioni
www.devleap.it
Componenti di un modello DWComponenti di un modello DW
Tabella dei fattiTabella dei fattiContiene misure numeriche che descrivono Contiene misure numeriche che descrivono un evento di business, come una vendita o un evento di business, come una vendita o una transazione bancariauna transazione bancaria
FattoFattoUna riga nella tabella dei fatti; contiene uno Una riga nella tabella dei fatti; contiene uno o più valori numerici che misurano un eventoo più valori numerici che misurano un evento
MisuraMisuraUna colonna numerica della tabella dei fattiUna colonna numerica della tabella dei fatti
DimensioneDimensioneUna entità di business che descrive il Una entità di business che descrive il quando, chi, dove, come di un fatto (tempo, quando, chi, dove, come di un fatto (tempo, prodotto, cliente, ...)prodotto, cliente, ...)
www.devleap.it
Star SchemaStar Schema
Lo Star Schema è la modellizzazione Lo Star Schema è la modellizzazione più semplice ed efficace dei più semplice ed efficace dei componenti di un data warehousecomponenti di un data warehouse
Ogni tabella dei fatti è associata ad N Ogni tabella dei fatti è associata ad N tabelle dimensionalitabelle dimensionali
Relazioni gerarchiche all’interno di una Relazioni gerarchiche all’interno di una dimensione (per es. anno/mese/giorno) dimensione (per es. anno/mese/giorno) vengono mantenute in una sola tabella vengono mantenute in una sola tabella dimensionaledimensionale
www.devleap.it
Star SchemaStar SchemaEmployee_DimEmployee_DimEmployee_DimEmployee_Dim
EmployeeKeyEmployeeKeyEmployeeID...
EmployeeID...
EmployeeKey
Time_DimTime_DimTime_DimTime_DimTimeKeyTimeKeyTheDate...
TheDate...
TimeKeyProduct_DimProduct_DimProduct_DimProduct_Dim
ProductKeyProductKeyProductID...
ProductID...
ProductKey
Customer_DimCustomer_DimCustomer_DimCustomer_DimCustomerKeyCustomerKeyCustomerID...
CustomerID...
CustomerKeyShipper_DimShipper_DimShipper_DimShipper_Dim
ShipperKeyShipperKeyShipperID...
ShipperID...
ShipperKey
Sales_FactSales_FactTimeKeyEmployeeKeyProductKeyCustomerKeyShipperKey
TimeKeyEmployeeKeyProductKeyCustomerKeyShipperKey
RequiredDate...
RequiredDate...
TimeKey
CustomerKeyShipperKey
ProductKeyEmployeeKey
Multipart KeyMultipart KeyMultipart KeyMultipart Key
MeasuresMeasuresMeasuresMeasures
Dimensional KeysDimensional KeysDimensional KeysDimensional Keys
www.devleap.it
Star SchemaStar Schema
La tabella dei fatti può contenere misure La tabella dei fatti può contenere misure che si riferiscono a livelli di dettaglio che si riferiscono a livelli di dettaglio differenti, in funzione della dimensionedifferenti, in funzione della dimensione
La tabella dei fatti può contenere lo La tabella dei fatti può contenere lo stesso dato più volte (a livello di riepilogo stesso dato più volte (a livello di riepilogo giornaliero, mensile ed annuale)giornaliero, mensile ed annuale)
www.devleap.it
Snowflake SchemaSnowflake Schema
Secondary Dimension TablesSecondary Dimension Tables
Sales_FactSales_FactTimeKeyEmployeeKeyProductKeyCustomerKeyShipperKey
TimeKeyEmployeeKeyProductKeyCustomerKeyShipperKeyRequiredDate...
RequiredDate...
Product_Brand_IdProduct_Brand_IdProduct_Brand_IdProduct_Brand_IdProduct BrandProduct Brand
Product Category IDProduct Category ID
Product_Category_IdProduct_Category_IdProduct_Category_IdProduct_Category_IdProduct CategoryProduct Category
Product Category IDProduct Category ID
Product_DimProduct_DimProduct_DimProduct_DimProductKeyProductKey
Product NameProduct Name
Product SizeProduct Size
Product Brand IDProduct Brand ID
Primary Dimension Table
www.devleap.it
StarStarStarStar SnowflakeSnowflakeSnowflakeSnowflake
Comprensibilità del modelloComprensibilità del modello EasierEasier More DifficultMore Difficult
Numero di tabelleNumero di tabelle LessLess MoreMore
Complessità queryComplessità query SimplerSimpler More ComplexMore Complex
Prestazioni queryPrestazioni query QuickerQuicker SlowerSlower
Scelta dello schemaScelta dello schema
www.devleap.it
Granularità del modelloGranularità del modello
Determinare i requisiti di analisiDeterminare i requisiti di analisi Scegliere il livello di dettaglio più Scegliere il livello di dettaglio più
bassobasso Richiede più spazio su discoRichiede più spazio su disco Maggiore tempo di elaborazioneMaggiore tempo di elaborazione Fornisce capacità analitiche con maggiore Fornisce capacità analitiche con maggiore
dettagliodettaglio
Conformare le misure alla granularità Conformare le misure alla granularità definitadefinita
www.devleap.it
Definire le dimensioniDefinire le dimensioni
Definire caratteristiche delle Definire caratteristiche delle dimensionidimensioni
Identificare gerarchieIdentificare gerarchie Definire dimensioni convenzionaliDefinire dimensioni convenzionali Condividere le dimensioni tra i Data Condividere le dimensioni tra i Data
MartMart Definire altri tipi di dimensioniDefinire altri tipi di dimensioni
www.devleap.it
Caratteristiche delle dimensioniCaratteristiche delle dimensioni
Applicare le caratteristiche alla tabella Applicare le caratteristiche alla tabella delle dimensionidelle dimensioni Definire una chiave primariaDefinire una chiave primaria Includere colonne correlate e descrittive Includere colonne correlate e descrittive
(usare testo, non codici)(usare testo, non codici)
Designing for Usability and ExtensibilityDesigning for Usability and Extensibility Minimizzare o evitare l’uso di codici o Minimizzare o evitare l’uso di codici o
abbreviazioniabbreviazioni Creare colonne utili per i livelli di Creare colonne utili per i livelli di
aggregazioneaggregazione Evitare valori mancanti o NULLEvitare valori mancanti o NULL Minimizzare il numero di righe che cambia Minimizzare il numero di righe che cambia
nel temponel tempo
www.devleap.it
Gerarchie nelle DimensioniGerarchie nelle Dimensioni
Gerarchia ConsolidataGerarchia Consolidata
Località Negozio
ContinenteContinenteContinenteContinente PaesePaesePaesePaese RegioneRegioneRegioneRegione CittàCittàCittàCittà NegozioNegozioNegozioNegozio
Gerarchia SeparataGerarchia Separata
Località NegozioLocalità NegozioLocalità NegozioLocalità Negozio
ContinenteContinente
ContinenteContinenteContinenteContinente
PaesePaese
PaesePaesePaesePaese
RegioneRegione
RegioneRegioneRegioneRegione
CittàCittà
CittàCittàCittàCittà
NegozioNegozio
NegozioNegozioNegozioNegozio
0101
www.devleap.it
Definire dimensioni convenzionaliDefinire dimensioni convenzionali
Dimensione Tempo (o Data – Ora)Dimensione Tempo (o Data – Ora) ““spezzare” le informazioni sulla data in spezzare” le informazioni sulla data in
attributi individualiattributi individuali
Rappresentare la data come giorni Rappresentare la data come giorni lavorativi, weekend, vacanza, stagione, lavorativi, weekend, vacanza, stagione, periodo fiscale, ecc.periodo fiscale, ecc.
Dettaglio limitato alla granularità della Dettaglio limitato alla granularità della tabella dei fattitabella dei fatti
Dimensione geograficaDimensione geografica Dimensione prodottoDimensione prodotto Dimensione clienteDimensione cliente
www.devleap.it
Condividere le dimensioni tra iCondividere le dimensioni tra i Data Mart Data Mart
One instance exist and isshared among data marts
One instance exist and isshared among data marts
TimeTimeTimeTimeMultiple instances exist in
individual data marts
Multiple instances exist inindividual data marts
SalesProduction
Purchasing
www.devleap.it
Definire la tabella dei fattiDefinire la tabella dei fatti
Applicare la granularità definitaApplicare la granularità definita Garantire la consistenza tra le misureGarantire la consistenza tra le misure Usare valori numerici e aggregabiliUsare valori numerici e aggregabili
www.devleap.it
Minimizzare dimensione tabella Minimizzare dimensione tabella fattifatti
Ridurre il numero di colonneRidurre il numero di colonne Dati ridondantiDati ridondanti Dati non richiesti per l’analisiDati non richiesti per l’analisi
Ridurre la dimensione di ogni colonnaRidurre la dimensione di ogni colonna Usare chiavi surrogateUsare chiavi surrogate Assicurarsi che i campi carattere e binari Assicurarsi che i campi carattere e binari
siano a lunghezza variabilesiano a lunghezza variabile Strano però nella tabella dei fatti avere campi Strano però nella tabella dei fatti avere campi
così, a meno che non siano degenerate così, a meno che non siano degenerate dimensiondimension
Disegno Star Schema risultante:Disegno Star Schema risultante: Tabelle dei fatti – lunghe e stretteTabelle dei fatti – lunghe e strette Tabelle dimensioni – corte e largheTabelle dimensioni – corte e larghe
www.devleap.it
Implementare uno Star SchemaImplementare uno Star Schema
Stima dimensioni Data WarehouseStima dimensioni Data Warehouse Creare databaseCreare database Creare tabelleCreare tabelle Creare constraintCreare constraint Creare indiciCreare indici
www.devleap.it
Variables:Years of data = 5Customers = 10,000Average number of transactions per customer per day = 4
Variables:Years of data = 5Customers = 10,000Average number of transactions per customer per day = 4
DescriptionDescriptionDescriptionDescription
Number of rows in fact tableNumber of rows in fact table
Estimated row size of fact tableEstimated row size of fact table
Estimated data warehouse sizeEstimated data warehouse size
Calculation MethodCalculation MethodCalculation MethodCalculation Method
10,000 x 4 x 365 x 510,000 x 4 x 365 x 5
(7 IDs x 4 bytes) + (5 measures x 4 bytes)(7 IDs x 4 bytes) + (5 measures x 4 bytes)
48 bytes x 73,000,000 rows48 bytes x 73,000,000 rows
ValueValueValueValue
73,000,00073,000,000
~ 48 bytes~ 48 bytes
~3.5 GB~3.5 GB
Stima dimensioni Data WarehouseStima dimensioni Data Warehouse
Dimensioni tabella dei fattiDimensioni tabella dei fatti GranularitàGranularità Byte per rigaByte per riga
www.devleap.it
Creare DatabaseCreare Database
Usare opzioni CREATE DATABASEUsare opzioni CREATE DATABASE SIZESIZE MAXSIZEMAXSIZE FILEGROWTHFILEGROWTH
Impostare opzioni DatabaseImpostare opzioni Database Trunc. log on chkpt. (Recovery Model: Simple)Trunc. log on chkpt. (Recovery Model: Simple)
www.devleap.it
Creare tabelleCreare tabelle
Creare una tabellaCreare una tabella Specificare NULL o NOT NULLSpecificare NULL o NOT NULL
Quasi sempre NOT NULLQuasi sempre NOT NULL Valutare uso di NULL per misure con Valutare uso di NULL per misure con
Analysis ServicesAnalysis Services
Generare valori colonneGenerare valori colonne
www.devleap.it
Creare constraintsCreare constraints
Usare PRIMARY KEYUsare PRIMARY KEY Non consente valori duplicatiNon consente valori duplicati Consente creazione indiciConsente creazione indici Non consente valori NULLNon consente valori NULL
Uso di FOREIGN KEYUso di FOREIGN KEY Tabella dei fatti punta a tabelle Tabella dei fatti punta a tabelle
dimensionidimensioni Definisce un riferimento a una colonna con Definisce un riferimento a una colonna con
constraint PRIMARY KEY o UNIQUEconstraint PRIMARY KEY o UNIQUE Specifica i range di valori accettabiliSpecifica i range di valori accettabili
www.devleap.it
Uso di Foreign KeyUso di Foreign Key
time_dim_key
product_dim_key
customer_dim_key
product_keycustomer_keyorder_date_key
FOREIGN KEY
Constraint
FOREIGN KEY Constraint
FOREIGN KEY
Constraint
www.devleap.it
Creare indiciCreare indici
Creazione indici per data warehouseCreazione indici per data warehouse Definire chiave primaria in tabelle dimensioniDefinire chiave primaria in tabelle dimensioni Dichiarare relazioni foreign keyDichiarare relazioni foreign key Definire chiave primaria in tabella dei fattiDefinire chiave primaria in tabella dei fatti
Con Analysis Services si può evitare multipart keyCon Analysis Services si può evitare multipart key Valutare uso di chiave surrogataValutare uso di chiave surrogata
Definire indici per ogni foreign key nella Definire indici per ogni foreign key nella tabella dei fattitabella dei fatti Valutare prestazioni se i dati si leggono una volta Valutare prestazioni se i dati si leggono una volta
sola per alimentare i cubi di Analysis Servicessola per alimentare i cubi di Analysis Services
Usare chiavi surrogateUsare chiavi surrogate Indici clustered, nonclustered e compostiIndici clustered, nonclustered e composti
www.devleap.it
ConclusioniConclusioni
Il Data Warehouse è un mezzo, non un Il Data Warehouse è un mezzo, non un finefine Facilmente interrogabile dall’utenteFacilmente interrogabile dall’utente Fonte dati per Analysis Services (OLAP)Fonte dati per Analysis Services (OLAP)
Modellazione denormalizzata secondo Modellazione denormalizzata secondo canoni precisicanoni precisi Star SchemaStar Schema
Alimentazione non continuaAlimentazione non continua Di solito giornaliera, settimanale o Di solito giornaliera, settimanale o
mensilemensile
www.devleap.it
Altre InformazioniAltre Informazioni
Dove posso ottenere maggiori Dove posso ottenere maggiori informazioniinformazionihttp://www.microsoft.com/sqlhttp://www.microsoft.com/sqlhttp://www.microsoft.com/sql/evaluation/bihttp://www.microsoft.com/sql/evaluation/bihttp://msdn.microsoft.comhttp://msdn.microsoft.com
Developer resourcesDeveloper resourcesMicrosoft Developer NetworkMicrosoft Developer Networkhttp://www.devleap.ithttp://www.devleap.ithttp://www.sqljunkies.comhttp://www.sqljunkies.com