Slowly Changing Dimension pada Data Warehouse’

Apakah pengertian dari ‘Slowly Changing Dimension’ ?

Dimensi yang berubah perlahan dari waktu ke waktu, dimensi ini menyimpan nilai atau data lama dari atribut sebuah dimensi. Dimensi adalah struktur yang mengkategorikan kumpulan informasi sehingga. Dimensi dalam manajemen data dan data warehouse (gudang data) berisi data yang relatif statis. Namun data dari dimensi dapat berubah secara perlahan dari waktu ke waktu dan pada interval yang tidak dapat diprediksi. Jenis data dari dimensi dapat dinamakan dengan Slowly Changing Dimension (SCD). Nilai  yang  lama tersebut dapat disimpan untuk sebagai sebuah “sejarah perubahan nilai” dari atribut sebuah  dimensi  yang  berubah  tersebut.Penyimpanan  nilai  yang  lama  ini  dapat  dilakukan  dengan cara membuat sebuah kolom yang khusus untuk menyimpan nilai yang lama tersebut.

Dalam data warehouse memiliki tabel dimensi yang merupakan kunci utama secara unik untuk mengidentifikasikan setiap catatan (record) dan bagian informasi lainnya yang dikenal sebagai dimensi.  Kunci utama (primary key) akan terhubung denga tabel fakta, oleh karena itu, data dari primary key menjadi penting untuk dapat diperbaharui sesuai dengan kebutuhan proses transaksi data saat ini dan data historis yang telah disimpan seperti pada gambar 1. Relasi Tabel Fakta dan Tabel Dimensi.

Gambar 1.  Relasi Tabel Fakta dan Tabel Dimensi

Apa saja tipe-tipe dari Slowly Changing Dimension ?

            Terdapat banyak pendeketan mengenai tipe-tipe dari SCD, Namun yang paling populer pendeketan dari SCD adalah :

  • Tipe 0 : Metode pasif.
  • Tipe 1 : Mengganti nilai lama.
  • Tipe 2 : Membuat catatan tambahan baru.
  • Tipe 3 : Manmbahkan kolom baru.
  • Tipe 4 : Menggunakan tabel historis.
  • Tipe 6 : Menggabungkan pendekatan tipe 1, 2, 3 (1+2+3 = 6)

Gambar 2. Tipe SCD

  • Tipe 0 – Metode pasif. Metode ini tidak ada tindakan khusus yang dilakukan jika terjadi perubahan dalam suatu dimensi. Beberapa data dari dimensi menjadi tetap sama seperti pertama kali dimasukkan, data yang lain mungkin akan ditimpa dengan data yang baru.
  • Tipe 1 – Mengganti nilai lama. Dalam metode ini tidak ada riwayat dari perubahan dimensi yang disimpan dalam database. Nilai dimensi dari data yang lama hanya diganti dengan yang baru. Jenis metode ini mudah dipelihara (maintain) dan sering digunakan untuk data yang perubahannya disebabkan oleh proses dari koreksi data, misalnya seperti penghapusan karakter khusus atau memperbaiki ejaan data.

Contoh dari metode ini ditunjukkan pada tabel 1. Terdapat tabel yang memiliki data Corporate dari kolom CustType, kemudia terdapat perubahan pada tabel  2. Kolom CustType menjadi Retail. Perubahan tersebut dapat berubaha sesuai kedaan kondisi data yang dibutuhkan saat ini.

Sebelum perubahan :

Tabel 1. Sebelum Perubahan CustType

CustD CustName CustType
1 Cust_1  Corporate

Setalah perubahan :

Tabel 2. Setelah Perubahan CustType

CustD CustName CustType
1 Cust_1  Retail
  • Tipe 2 – Membuat catatan tambahan baru. Dalam metodologi ini semua perubahan sejarah dimensi disimpan dalam database. Melakukan perubahan atribut dengan menambahkan baris baru, menggunakan primay key yang baru ke dalam tabel dimensi selain itu terdapat penambahan kolom ‘Tanggal Efektif’ dan ‘Indikator saat ini’ dalam metode ini. Penambahan kolom ‘Indikator saat ini’ atau ‘Current Indicator’ ditulis dengan ‘Y’ dan untuk kolom ‘Tanggal Efektik’ atau ‘Effective Date’ ditulis dengan start_date dan end_date. Memperkenalkan tipe 2 dari SCD ini menjadi suatu bentuk metode operasi data yang membutuhkan biaya mahal sehingga belum sepenuhnya disarankan untuk menggunakannya dalam dimensi dimana tribut baru dapat ditambahkan dimasa yang akan datang.SCD tipe 2 jauh lebih fleksibel untuk menyimpan sejarah perubahan data.Karena dapat menyimpan perubahan data sebanyak apapun tanpa harus mengubah struktur tabel itu sendiri.

Sebelum perubahan :

Tabel 3. Sebelum Perubahan CustType Tipe 2

CustD CustName CustType StarDate EndDate CurrFlag
1 Cust_1  Corporate 22-05-2018 31-12-9999 Y

Setalah perubahan :

Tabel 4. Setelah Perubahan CustType Tipe 2

CustD CustName CustType StarDate EndDate CurrFlag
1 Cust_1  Corporate 22-05-2018 24-08-2018 N
2 Cust_1 Retail 25-08-2018 31-12-9999 Y
  • Tipe 3 – Menambahkan kolom baru. Dalam tipe ini biasanya hanya nilai dimensi saat ini dan sebelumnya disimpan di database. Nilai baru dimuat dalam kolom ‘Sekarang/Baru’ (Current Type) dan kolom lama dimuat dalam kolom lama yang diberi nama ‘Lama/Sebelumnya’ (Previous Type). SCD tipe 3  menggunakan  kolom  untuk  menyimpan  datalama  setelah  perubahan  terjadi,  yang  menyebabkannya tidak  terlalu  fleksibel  untuk  Metode  ini  ideal  digunakan  pada  situasi  dimana  tidak  terlalu banyak  data  peruabahan  yang  ingin  disimpan,  atau  jumlah  perubahan  yang  ingindisimpan diketahui secara pasti.Metode ini juga sesuai apabila perubahan data pada atribut tersebut akan  mempengaruhi banyakbaris data lainnya, atau nilai atribut ini diubah oleh banyak baris data lain secara  bersamaan.

Sebelum perubahan :

Tabel 5. Sebelum Perubahan Kolom PerviousType

CustD CustName CurrentType PreviousType
1 Cust_1  Corporate Corporate

Setalah perubahan :

Tabel 6. Setelah Perubahan Kolom PerviousType

CustD CustName CurrentType PreviousType
1 Cust_1  Retail Corporate
  • Tipe 4 – Menggunakan tabel historis. Dalam metode ini , tabel historis terpisah digunakan untuk mencari semua perubahan historis pada atribut data untuk masing-masing dimensi. Tabel dimensi utama hanya menyimpan data saat ini. Misalnya tabel customer dan customer_history.

Sebelum perubahan :

Tabel 7. Sebelum Perubahan Data Corporate

CustD CustName CustType
1 Cust_1  Corporate

Setalah perubahan :

Tabel 8. Penambahan StarDate dan EndDate

CustD CustName CustType StartDate EndDate
1 Cust_1  Retail 01-01-2018 21-07-2018
1 Cust_1 Other 22-07-2018 17-05-2018
1 Cust_1 Corporate 18-05-2018 31-12-9999
  • Tipe 6 – Menggabungkan pendekatan tipe 1, 2, 3 (1+2+3 = 6). Pada tipe ini memiliki dimensi dari kolom tambahan seperti :
  • current_type untuk menyimpan nilai atribut saat ini. Semua catatan sejarah untuk item atribut yang diberikan memiliki nilai saat ini yang sama.
  • historical_type untuk menyimpan nilai historis atribut. Semua catatan sejarah untuk item atribut tertentu dapat memiliki nilai yang berbeda.
  • start_date – untuk menjaga tanggal mulai dari ‘tanggal efektif’ dari sejarah atribut.
  • end_date – untuk menjaga tanggal akhir dari ‘tanggal efektif’ dari sejarah atribut.
  • current_flag – untuk menyimpan informasi tentang catatan terbaru.

Didalam metode ini menangkap perubahan dari nilai atribut dengan cara menambahkan catatan baru seperti tipe 2. Informasi dari kolom current_type diganti dengan yang baru seperti pada tipe 1. Kemudian menyimpan sejarah histori dari perubahan data seperti tipe 3.

Tabel 9. Menggabungkan Tipe 1 – 3

CustD CustName CustType HistType StartDate EndDate CurrFlag
1 Cust_1  Corporate Retil 01-01-2018 21-07-2018 N
1 Cust_1 Corporate Other 22-07-2018 17-05-2018 N
1 Cust_1 Corporate Corporate 18-05-2018 31-12-9999 Y

           

Oleh

Atria Dika Puspita

Finda Anisa Putri

Nindhia Hutagaol

 

Referensi

https://www.kimballgroup.com/2013/02/design-tip-152-slowly-changing-dimension-types-0-4-5-6-7/

http://datawarehouse4u.info/SCD-Slowly-Changing-Dimensions.html

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/10g/r2/owb/owb10gr2_gs/owb/lesson3/slowlychangingdimensions.htm

http://uu.diva-portal.org/smash/get/diva2:233931/FULLTEXT01.pdf

http://www.iri.com/blog/vldb-operations/introduction-to-slowly-changing-dimensions-scd/

Abba Suganda Girsang