schimbarea lentă a dimensiunilor (SCD)-dimensiuni care se schimbă încet în timp, în loc să se schimbe în funcție de programul obișnuit, baza de timp. În Data Warehouse este necesară urmărirea modificărilor atributelor de dimensiuni pentru a raporta datele istorice. Cu alte cuvinte, implementarea unuia dintre tipurile SCD ar trebui să permită utilizatorilor să atribuie valoarea atributului dimensiunii corespunzătoare pentru data dată. Exemplu de astfel de dimensiuni ar putea fi: client, geografie, angajat.,
există multe abordări cum să se ocupe de SCD. Cele mai populare sunt:
- de Tip 0 – metoda pasivă
- de Tip 1 – Suprascrie vechea valoare
- de Tip 2 – Crearea unei noi înregistrări suplimentare
- de Tip 3 – Adăugarea unei noi coloane
- Tip 4 – Folosind istorice masă
- Tip 6 – Combina abordările de tipuri 1,2,3 (1+2+3=6)
Tip 0 – metoda pasivă. În această metodă nu se efectuează nicio acțiune specială asupra modificărilor dimensionale. Unele date de dimensiuni pot rămâne aceleași ca și când au fost introduse pentru prima dată, altele pot fi suprascrise.,
tip 1-suprascrierea valorii vechi. În această metodă nu se păstrează niciun istoric al modificărilor dimensiunilor în baza de date. Valoarea dimensiunii vechi este pur și simplu suprascrisă să fie cea nouă. Acest tip este ușor de întreținut și este adesea utilizat pentru date ale căror modificări sunt cauzate de corecțiile de procesare(de exemplu, eliminarea caracterelor speciale, corectarea erorilor de ortografie).,
Înainte de schimbare:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporativă |
După schimbarea:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | de vânzare cu Amănuntul |
Tip 2 – Crearea unei noi înregistrări suplimentare., În această metodologie, tot istoricul modificărilor dimensiunilor este păstrat în baza de date. Capturați schimbarea atributului adăugând un rând nou cu o nouă cheie surogat la tabelul de dimensiuni. Atât rândurile anterioare, cât și cele noi conțin ca atribute cheia naturală(sau alt identificator durabil). De asemenea, coloanele „data intrării în vigoare” și „indicatorul curent” sunt utilizate în această metodă. Ar putea exista o singură înregistrare cu indicatorul curent setat la „Y”. Pentru data efectiva coloane, adică start_date și end_date, la end_date pentru actualul record este de obicei setat la valoarea 9999-12-31., Introducerea modificărilor modelului dimensional în tipul 2 ar putea fi o operație foarte costisitoare a bazei de date, astfel încât nu este recomandat să o utilizați în dimensiuni în care ar putea fi adăugat un nou atribut în viitor.,
Înainte de schimbare:
Customer_ID | Customer_Name | Customer_Type | Start_Date | End_Date | Current_Flag |
---|---|---|---|---|---|
1 | Cust_1 | Corporativă | 22-07-2010 | 31-12-9999 | Y |
După schimbarea:
Tip 3 – Adăugarea unei noi coloane. În acest tip, de obicei, numai valoarea curentă și anterioară a dimensiunii este păstrată în baza de date., Noua valoare este încărcată în coloana „curent / nou”, iar cea veche în coloana „veche/anterioară”. În general, istoria este limitată la numărul de coloane create pentru stocarea datelor istorice. Aceasta este cea mai puțin necesară tehnică.,iv id=”2f5bdb6350″>
După schimbarea:
Customer_ID | Customer_Name | Current_Type | Previous_Type |
---|---|---|---|
1 | Cust_1 | de vânzare cu Amănuntul | Corporativă |
Tip 4 – Folosind istorice masă., În această metodă se utilizează un tabel istoric separat pentru a urmări toate modificările istorice ale atributului dimensiunii pentru fiecare dimensiune. Tabelul de dimensiuni „principal” păstrează numai datele curente, de exemplu, tabelele client și customer_history.
Curent de masă:
Customer_ID | Customer_Name | Customer_Type |
---|---|---|
1 | Cust_1 | Corporativă |
Istoric tabel:
Tip 6 – Combina abordările de tipuri 1,2,3 (1+2+3=6)., În acest tip avem în tabelul de dimensiuni astfel de coloane suplimentare ca:
- current_type-pentru păstrarea valorii curente a atributului. Toate înregistrările istorice pentru un anumit element de atribut au aceeași valoare curentă.
- historical_type-pentru păstrarea valorii istorice a atributului. Toate înregistrările de istorie pentru un anumit element de atribut ar putea avea valori diferite.
- start_date-pentru păstrarea datei de începere a „datei efective” a istoricului atributului.
- end_date-pentru păstrarea datei de sfârșit a „datei efective” a istoricului atributelor.,
- current_flag-pentru păstrarea informațiilor despre cea mai recentă înregistrare.
în această metodă pentru a captura schimbarea atributului adăugăm o nouă înregistrare ca în tipul 2. Informația current_type este suprascrisă cu cea nouă ca în tipul 1. Stocăm istoria într-un historical_column ca în tipul 3.