langsomt skiftende dimensioner (SCD) – dimensioner, der ændrer sig langsomt over tid, snarere end at ændre på regelmæssig tidsplan, tidsbase. I Data Dataarehouse er der behov for at spore ændringer i dimensionsattributter for at rapportere Historiske data. Med andre ord bør implementering af en af SCD-typerne gøre det muligt for brugere at tildele korrekt dimensions attributværdi for en given dato. Eksempel på sådanne dimensioner kunne være: kunde, geografi, medarbejder.,
Der er mange tilgange til, hvordan man håndterer SCD. Den mest populære er:
- Type-0 – Den passive metode
- Type 1 – at Overskrive den gamle værdi
- Type 2 – Oprettelse af en ny supplerende post
- Type 3 – Tilføje en ny kolonne
- Type 4 – ved Hjælp af historiske tabel
- Type 6 – Kombiner tilgange af typer 1,2,3 (1+2+3=6)
Skriv 0 – Den passive metode. I denne metode udføres ingen særlig handling ved dimensionelle ændringer. Nogle dimensionsdata kan forblive de samme, som de blev indsat første gang, andre kan overskrives.,
Type 1 – overskrivning af den gamle værdi. I denne metode gemmes ingen historie med dimensionsændringer i databasen. Den gamle dimension værdi er simpelthen overskrevet være den nye. Denne type er let at vedligeholde og bruges ofte til data, som ændringer skyldes behandlingskorrektioner (f.eks. fjernelse af specialtegn, korrigering af stavefejl).,
Før ændringen:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporate |
Efter ændringen:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Detail |
Type 2 – Oprettelse af en ny yderligere rekord., I denne metode opbevares al historie med dimensionsændringer i databasen. Du fanger attributændring ved at tilføje en ny række med en ny surrogatnøgle til dimensionstabellen. Både de tidligere og nye rækker indeholder som attributter den naturlige nøgle (eller anden holdbar identifikator). Også kolonner’ effektiv dato ‘og’ aktuel indikator ‘ bruges i denne metode. Der kunne kun være en post med den aktuelle indikator indstillet til’Y’. For kolonner med’ effektiv dato’, dvs. start_date og end_date, er end_date for aktuel post normalt indstillet til værdi 9999-12-31., Introduktion af ændringer til den dimensionelle model I type 2 kan være meget dyr databaseoperation, så det anbefales ikke at bruge det i dimensioner, hvor en ny attribut kunne tilføjes i fremtiden.,
Før ændringen:
Customer_ID | Customer_Name | Customer_Type | Startdato | End_Date | Current_Flag |
---|---|---|---|---|---|
1 | Cust_1 | Corporate | 22-07-2010 | 31-12-9999 | Y |
Efter:
Type 3 – Tilføje en ny kolonne. I denne type opbevares normalt kun den aktuelle og tidligere værdi af dimension i databasen., Den nye værdi indlæses i’ nuværende/ny ‘kolonne og den gamle i’ gammel/forrige ‘ kolonne. Generelt er historien begrænset til antallet af kolonner oprettet til lagring af historiske data. Dette er den mindst almindeligt nødvendige teknik.,iv id=”2f5bdb6350″>
Efter ændringen:
Customer_ID | Customer_Name | Current_Type | Previous_Type |
---|---|---|---|
1 | Cust_1 | Detail | Corporate |
Type 4 – ved Hjælp af historiske bordet., I denne metode bruges en separat historisk tabel til at spore alle dimensionens attributhistoriske ændringer for hver af dimensionen. Den’ vigtigste ‘ dimension tabel holder kun de aktuelle data f.eks kunde og customer_history tabeller.
denne tabel:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporate |
Historiske tabellen:
Type 6 – Kombiner tilgange af typer 1,2,3 (1+2+3=6)., I denne type har vi i dimensionstabel sådanne yderligere kolonner som:
- current_type – for at holde den aktuelle værdi af attributten. Alle historieposter for en given attribut har den samme aktuelle værdi.
- historical_type – for at bevare den historiske værdi af attributten. Alle historieposter for et givet attributpunkt kunne have forskellige værdier.
- start_date-for at holde startdato for ‘ikrafttrædelsesdato’ af attribut historie.
- end_date – for at holde slutdato for ‘ikrafttrædelsesdato’ af attribut historie.,
- current_flag – for at holde oplysninger om den seneste post.
i denne metode til at fange attributændring tilføjer vi en ny post som I type 2. Den aktuelle information overskrives med den nye som I type 1. Vi gemmer historien i en historical_column som I type 3.