Slowly Changing Dimension (SCD)

Menengah

Slowly Changing Dimension (SCD) adalah strategi untuk menangani perubahan data dimensi di data warehouse. Misalnya kalau pelanggan pindah kota, kamu perlu putuskan: apakah data lamanya diupdate, disimpan sebagai versi baru, atau keduanya?

Apa itu Slowly Changing Dimension (SCD)?

Dalam dunia data warehouse, dimension adalah tabel yang menyimpan konteks dari data faktual, seperti data pelanggan, produk, atau wilayah. Masalahnya, data dimensi nggak selalu statis. Pelanggan bisa pindah alamat, karyawan bisa promosi jabatan, produk bisa ganti kategori.

Nah, Slowly Changing Dimension (SCD) adalah sekumpulan strategi untuk menangani perubahan data dimensi ini, dengan mempertimbangkan: apakah kita perlu menyimpan riwayat perubahan, atau cukup update data terkini saja?

Kata "slowly" di sini bukan berarti perubahan terjadi dengan lambat secara harfiah, tapi untuk membedakannya dari Rapidly Changing Dimension, yaitu data yang berubah sangat sering seperti saldo akun atau stok real-time.

Tiga Tipe SCD yang Paling Umum

TipeNamaCara KerjaSimpan History?
SCD Type 1OverwriteData lama diganti data baruTidak
SCD Type 2Add RowTambah baris baru dengan versi data terbaruYa, semua versi
SCD Type 3Add ColumnTambah kolom untuk simpan nilai sebelumnyaYa, tapi terbatas

SCD Type 1: Overwrite (Timpa)

Cara paling simpel: langsung update data yang ada dengan nilai baru. Riwayat sebelumnya hilang selamanya.

Kapan cocok: Perubahan data yang nggak relevan untuk analisis historis. Misalnya, typo di nama pelanggan yang perlu dikoreksi, atau update nomor telepon. Kamu nggak butuh tau nomor telepon lama si pelanggan.

SCD Type 2: Add Row (Tambah Baris)

Saat ada perubahan, baris baru ditambahkan dengan data terbaru. Baris lama tetap ada tapi ditandai sebagai tidak aktif, biasanya dengan kolom is_current, valid_from, dan valid_to.

Kapan cocok: Perubahan yang penting untuk analisis historis. Misalnya, pelanggan pindah dari Surabaya ke Jakarta. Kalau ada transaksi sebelum pindah, kamu mau tau bahwa saat itu pelanggan masih di Surabaya.

Ini tipe yang paling umum dipakai di data warehouse karena paling mempreservasi konteks historis secara lengkap.

SCD Type 3: Add Column (Tambah Kolom)

Tambahkan kolom baru untuk menyimpan nilai sebelumnya. Misalnya: kolom kota_sekarang dan kota_sebelumnya. Tapi hanya simpan satu level history saja.

Kapan cocok: Perubahan yang jarang terjadi dan kamu hanya perlu satu tingkat "sebelumnya". Jarang dipakai karena terbatas dan bisa bikin schema berantakan kalau perubahan terjadi lebih dari sekali.

Contoh SCD Type 2 dalam Praktik

Bayangkan dimensi pelanggan di data warehouse marketplace Indonesia.

Sebelum perubahan, ada baris dengan pelanggan Budi, kota Surabaya, is_current = true, valid_from = 2023-01-01, valid_to = 9999-12-31.

Setelah Budi pindah ke Jakarta, baris lama di-update jadi is_current = false dengan valid_to = 2024-06-15, lalu baris baru ditambahkan dengan kota Jakarta, is_current = true, dan valid_from = 2024-06-16.

Hasilnya: semua transaksi Budi sebelum Juni 2024 tetap bisa dianalisis dengan konteks Budi dari Surabaya, transaksi sesudahnya dengan konteks Budi dari Jakarta.

Lanjut Latihan

Udah paham Slowly Changing Dimension (SCD)? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →