Lentamente cambiando Dimensioni

 

Lentamente cambiando le dimensioni o SCD (dimensioni a modifica lenta) sono le dimensioni in cui i loro dati tendono a modificarsi nel tempo, sia occasionale o costante, o il coinvolgimento di un singolo record o l'intera tabella. Quando si verificano questi cambiamenti, si può scegliere di seguire uno di questi due grandi opzioni:

  • Registrare la cronologia delle modifiche.
  • Sostituire i valori che sono necessari.

Ralph Kimball inizialmente preso in considerazione tre strategie da seguire durante il trattamento di tipo SCD 1, tipo 2 e tipo 3, ma nel corso degli anni la comunità di persone che si prese cura di database modello approfondito definizioni iniziali e inclusi diversi tipi SCD di più, per esempio, tipo 4 e di tipo 6.
 
Di seguito sono riportati ogni tipo di strategia SCD:

  • SCD Tipo 1: consente di sovrascrivere.
  • SCD Tipo 2: aggiungere una riga.
  • SCD Tipo 3: Aggiungi colonna.
  • SCD Tipo 4: Tabella delle storie separate.
  • SCD Tipo 6: Hybrid.

Secondo la natura del cambiamento necessario selezionare il tipo SCD è utilizzato in alcuni casi essere adeguata alla combinazione di diverse tecniche.
 
Modo importante, anche se ci sono diverse per l'attuazione di ogni tecnica, è essenziale chiavi surrogate nelle tabelle delle dimensioni di applicare ad applicare queste tecniche.
 
Mediante l'applicazione di diverse tecniche SCD, in molti casi è necessario modificare la struttura della tabella della dimensione a cui si sta lavorando, per cui queste modifiche sono consigliate a modello loro al tavolo di tempo, ma può anche essere fatto una volta e è stata modellata e contiene i dati per i quali aggiungere una tale nuova colonna necessario specificare i valori di default che deve adottare i record della tabella.

NOTA: Per tutti gli esempi di seguito, "id_prodotto" è una chiave surrogata è la chiave primaria della tabella utilizzata.
 

SCD Tipo 1: consente di sovrascrivere

Questo ragazzo è il più elementare e semplice da implementare, perché pur non salvare i cambiamenti storici, non richiede alcuna particolare modellazione e non ha bisogno di aggiungere nuovi record alla tabella.
In questo caso, quando un record di questo cambiamento in uno qualsiasi dei valori dei loro campi, ci dovrebbe essere semplicemente aggiornare i dati in questione, sovrascrivendo il vecchio. Per illustrare questo caso, si riferiscono alla seguente tabella:

 

id_Prodotto Nome Tipo Prodotto
1 Rubro 1 Tipo 1 Producto 1

Ora, si presume che questo prodotto è cambiato Nome, e ora diventato "Nome 2", quindi ottenere i seguenti:

id_Prodotto Nome Tipo Prodotto
1 Nome 2 Tipo 1 Prodotto 1

 

Di solito questo tipo viene utilizzata nei casi in cui le informazioni storiche, non è importante mantenere, ad esempio quando è necessario modificare un valore del Registro di sistema, perché ha gli errori di ortografia. L'esempio è sollevata solo per scopi pratici, perché con questa tecnica, tutti i movimenti effettuati in "Prodotto 1", che apparteneva alla "Nome 1", ora diventerà il "Nome 2", che crea una grande incoerenza nel DW.
 

SCD Tipo 2: Aggiungi a schiera

Questa strategia richiede che si aggiungono alcune colonne aggiuntive alla tabella della dimensione per memorizzare la storia delle modifiche.
 
Le colonne che vengono aggiunte sono:
 

  • Datainizio: data di entrata in vigore dal record corrente. Per impostazione predefinita una data viene spesso utilizzato molto vecchio, ad esempio, "01/01/1000".
  • DataFine: la data in cui il record corrente non era più in vigore. Per impostazione predefinita una data viene spesso utilizzato molto futuristico, ad esempio, "01/01/9999".
  • Revisione: numero di sequenza che aumenta ogni nuovo cambiamento. Default generalmente comincia a "1".
  • Versione corrente: specifica se il campo corrente è la forza. Questo valore può essere se è vero: "true" o "1" e se è falso: "flase" o "0".

Poi, quando si verifichi un cambiamento nei valori dei record, aggiungere una nuova riga deve essere compilato e dei dati relativi alla storia delle modifiche.
 
Per illustrare questo caso, si riferiscono alla seguente tabella:
 

id_Prodotto Nome Tipo Prodotto
1 Nome1 Tipo 1 Prodotto 1

 
Le colonne sono aggiunte le seguenti al negozio di dischi:
 

id_Prodotto Nome Tipo Prodotto DataInizio DataFine Versione VersioneAttule
1 Nome1 Tipo 1 Prodotto 1 01/01/1000 01/01/9999 1 true

 
Ora, si presume che questo prodotto è cambiato Nome, e ora diventato "Nome 2", quindi ottenere i seguenti:
 

id_Prodotto Nome Tipo Prodotto DataInizio DataFine Versione VersioneAttuale
1 Nome 1 Tipo 1 Prodotto 1 01/01/1000 06/11/2009 1 false
2 Nome 2 Tipo 1 Prodotto 1 07/11/2009 01/01/9999 2 true

 

Come si può vedere, si esegue la seguente procedura:
 

  • Si aggiunge una nuova riga con la corrispondente chiave surrogata ( "id_prodotto").
  • Il cambiamento è registrato ( "Nome").
  • Essa aggiorna i valori di "DataInizio" e "DataFine", sia della nuova riga, mentre il primo (che ha introdotto la modifica).
  • Aumenta da un valore di campo "versione" che detiene la vecchia riga.
  • Essa aggiorna i valori di "VersioneAttuale", sia della nuova riga, come il vecchio, lasciando la nuova riga come quella esistente (true).

Questa tecnica consente di salvare lo scambio di informazioni illimitate.
 

SCD Tipo 3: Aggiungi colonna

Questa strategia richiede che si aggiunge alla tabella della dimensione un'ulteriore colonna per ogni colonna i cui valori si desidera tenere traccia dei cambiamenti.ç
 
Per illustrare questo caso, si riferiscono alla seguente tabella:
 

id_Prodotto Nome Tipo Prodotto
1 Nome1 Tipo 1 Prodotto 1

 
Poi una colonna viene aggiunto per mantenere i cambiamenti storici di dati della colonna "Nome"
 

id_Prodotto Nome NomePrecedente Tipo Prodotto
1 Nome 1 - Tipo 1 Prodotto 1

 
Ora, si presume che questo prodotto è cambiato Nome, e ora diventato "Nome 2", quindi ottenere i seguenti:
 

id_Prodotto Nome NomePrecedente Tipo Prodotto
1 Nome 2 Nome 1 Tipo 1 Prodotto 1

 

Come si può vedere, si esegue la seguente procedura:
 

  • Nella colonna "NomePrecedente" luoghi di valore storico.
  • Nella colonna "Nome" il nuovo valore è messo in vigore.

Questa tecnica consente di salvare un limitato scambio di informazioni.
 

SCD Tipo 4: Tabella di Storia separate

Questa tecnica è utilizzata in combinazione con un altro e la loro funzione di base è memorizzato in una tabella aggiuntiva i dettagli delle modifiche apportate alla storia una tabella delle dimensioni.
 
Questa tabella storici indicano ad esempio che tipo di operazione ha avuto luogo (Insert, Update, Delete) su quel campo e in quale data. L'obiettivo di mantenere questa tabella è quello di avere un record di tutti i cambiamenti, quindi analizzare e prendere decisioni su quali SCD tecnica potrebbe essere applicata meglio. Ad esempio, la tabella che segue registra le modifiche tabella della dimensione storica "Prodotto", che impiega assume la SCD Tipo 2:
 

id_Prodotto Nome_Cambiare Tipo_Cambiare Prodotto_Cambiare Datadimodifica
1 Insert - - 05/06/2000
2 Insert Insert - 25/10/2002
3 - Insert - 17/01/2005
4 - - Insert 18/02/2009

 

Prendendo come esempio il primo record di questa tabella, le informazioni memorizzate non ci ha dichiarato:
 

  • Il giorno "05/06/2000", la registrazione della tabella della dimensione "Prodotto", con "Id_prodotto" uguale a "1" ha avuto un cambiamento di "Nome", e quindi deve essere inserito ( "Insert") una nuova linea con i valori prevalenti.

SCD Tipo 6: Hybrid

Questa tecnica combina il tipo SCD 1, 2 e 3.