Slowly Changing Dimensions ( SCD) er en mekanisme til sporing af ændringer i dimensionsdata i form af et datavarehus [1] [2] . Det bruges, hvis dataene ikke ændres særlig ofte og ikke efter planen. Et eksempel er geografiske data (placering af et lager, juridisk adresse på en organisation), status for en kunde under et loyalitetsprogram eller afdelingen i en virksomhed, hvor dens medarbejder arbejder [3] .
Der er flere typer SCD [4] .
Null-typen (SCD0) er en passiv metode, fordi det forventes, at værdierne af attributter af denne type ikke vil ændre sig. Eksempler er datoen for oprettelsen af posten, fødselsdatoen og -stedet, enhedens serienummer [5] .
Eksempel:
Serie og pasnummer | Fulde navn | Fødselssted |
---|---|---|
1800 223111 | Ivanov Sergey Petrovich | Kyzyl |
Den første type (SCD1) bruger en simpel overskrivning: dataene i tabellen er fuldstændigt erstattet med nye (den mest opdaterede). Historien er fuldstændig tabt, det vil sige, at efter opdateringen er det umuligt at spore kæden af ændringer [6] .
Eksempel:
Surrogatnøglen (registrerings-ID) forbliver den samme. Værdierne i felterne " Position " og " Afdeling " erstattes med nye. Forretningsnøglen (Personalnummer) i dette eksempel ændres ikke, men kan om nødvendigt ændres analogt med andre felter.
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling |
---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb |
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling |
---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Chefspecialist | Salgsafdeling |
Den anden type (SCD2) bruger tilføjelsen af en ny række og yderligere kolonner. Denne tilgang bevarer historien.
Derudover kan du tilføje servicekolonner, der kan være ansvarlige for versionering, status og det tidsinterval, hvor disse rækker kan betragtes som relevante.
Eksempel: En surrogatnøgle ( record ID ) oprettes ny. Forretningsnøglen ( Personalenummer ) ændres ikke, hvilket giver dig mulighed for at forbinde den tilføjede linje med den originale [3] .
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling |
---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb |
Kun linje tilføjet
Den tilføjede række indeholder de nye værdier for felterne " Position " og " Afdeling ".
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling |
---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb |
1027 | IB-69420 | Ivanov Sergey Petrovich | Chefspecialist | Salgsafdeling |
Tilføjet række og kolonne med flag
Den tilføjede række indeholder de nye værdier for felterne " Position " og " Afdeling ". Den tilføjede kolonne indeholder status for posten i tabellen. Ud over denne status kan et hvilket som helst andet flag bruges, for eksempel forhandlingsstadiet.
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling | Status |
---|---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb | FALSK |
1027 | IB-69420 | Ivanov Sergey Petrovich | Chefspecialist | Salgsafdeling | RIGTIGT |
Tilføjet række og kolonne med version
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling | Version |
---|---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb | 0 |
1027 | IB-69420 | Ivanov Sergey Petrovich | Chefspecialist | Salgsafdeling | en |
Med hver ny ændring vokser versionsnummeret trinvist.
Tilføjet en række og kolonner med et interval
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling | datoen for begyndelsen | udløbsdato |
---|---|---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb | 2000-01-01T00:00:00 | 2008-08-08T00:00:00 |
1027 | IB-69420 | Ivanov Sergey Petrovich | Chefspecialist | Salgsafdeling | 2008-08-08T00:00:00 | NUL |
I stedet for NULL i værdien af Slutdato -kolonnen for at angive, at rækken er den mest aktuelle, kan du bruge værdien " 9999-12-31T00:00:00 ".
Slutdatoværdien for den forrige række er den samme som startdatoværdien for den næste række.
Tilføjet en række og kolonner med ikrafttrædelsesdatoen for ændringen
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling | Ikrafttrædelsesdatoen | Status |
---|---|---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb | 2000-01-01T00:00:00 | RIGTIGT |
1027 | IB-69420 | Ivanov Sergey Petrovich | Chefspecialist | Salgsafdeling | 2008-08-08T00:00:00 | FALSK |
Den tredje type (SCD3) bruger tilføjelsen af nye attributkolonner, der gemmer den tidligere værdi for at vedligeholde historikken. Denne type forekommer sjældent i sin rene form [7] og er nødvendig for virksomheder i situationer, hvor det kun er nødvendigt at spore ændringer for specifikke parametre.
Eksempel [8] :
Optag ID | Personalenummer | Fulde navn | Jobtitel | Afdeling |
---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Afdeling for engrosindkøb |
Optag ID | Personalenummer | Fulde navn | Tidligere stilling | Aktuelle position | Tidligere afdeling | Afdeling | Ikrafttrædelsesdatoen |
---|---|---|---|---|---|---|---|
1026 | IB-69420 | Ivanov Sergey Petrovich | Junior Specialist | Chefspecialist | Afdeling for engrosindkøb | Salgsafdeling | 2000-01-01T00:00:00 |
Den tredje type bevarer kun begrænset historicitet (kun op til den tidligere værdi), hvilket gør den mindre meningsfuld end type 2 [9] .
Datalager | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
| ||||||||||||||
| ||||||||||||||
Kategori |