Data Warehouse : Apa itu Dimension table

Dimension table adalah table yang merepresentasikan entity, mewakili data yang tujuannya untuk dianalisa. Misalkan kita memiliki data transaksi. Untuk melakukan analisa kita tidak mungkin hanya melihat angka saja. Kita perlu tahu dari mana transaksi tersebut berasal, kita juga perlu tahu siapa pegawai yang menjual barang tersebut dan barang apa yang terjual. Jadi Dimension table memberikan penjelasan atau detil dari data yang dianalisa. Tanpa detil ini kita tidak mengetahui hal-hal penting seperti cabang mana yang paling merugikan dan mana cabang yang menguntungkan atau pegawai mana yang berhasil menjual barang paling banyak. Jadi dimension table adalah bagian yang penting dalam data warehouse atau data mart.



Dimension table bagian dari star schema.

Setiap dimension table memberikan atribut yang digunakan untuk analisa, dan atribut ini dapat memiliki hierarki untuk memberikan summarization atau kesimpulan. Saat menjadi bagian dari sebuah data mart maka dimension table ini disebut stand-alone dimension. Sehingga entitiy itu di representasikan oleh sebuah data yang relevan saja. Sehingga mudah untuk melakukan query dan mengidentifikasi tabel tersebut. Kemudian mengambil data juga jauh lebih mudah  karena dimensi ini independen dan tidak bergantung pada tabel lain. Kekurangan yang ada hanyalah data ini bisa hilang dalam datawarehouse dan tidak di maintenance dalam waktu lama karena terlupakan.






Untuk dimensi yang digunakan oleh beberapa data dan menjadi bagian lebih dari 1 star schema disebut conformed atau shared dimensions. Keuntungan dari dimensi ini adalah independen dan tidak bergantung pada sebuah datamart saja karena mereka tidak menyimpan data spesifik mengenai datamart atau metadata shared dimension. Shared dimension susah untuk diidentifikasi dan dibuat, karena kamu tidak hanya melihat dalam perspektif sebuah data mart saja, tapi juga melihat dari persepektif seluruh data mart yang ada dalam data warehouse dan memastikan entity ini  relevan terhadap data mart yang lain.




Sebagai contoh, kelemahan yang ada seperti berikut. Sebuah fact table membutuhkan data dari sebuah entity pegawai, akan tetapi hanya memerlukan namanya saja. Sedangkan data mart lain juga membutuhkan nama tersebut beserta gender dari entity tersebut. Sehingga waktu mendesain perspektif ini tidak oleh dilupakan. Mungkin ada yang terpikir kenapa tidak dimasukan saja semua atribut tabel pegawai? Misalkan dalam atribut pegawai tersebut ada umur, apakah umur digunakan? bila tidak lebih baik tidak dimasukan. Dalam contoh kalau hanya 1 atribut mungkin tidak akan terasa berat. Bayangkan bila kita mengambil data dan di dalam entity tersebut banyak atribut yang tidak diperlukan. Proses ETL yang dilakukan akan jauh lebih berat dan lebih susah. Kemudahanya bagi ETL dalam shared dimension adalah saat kita mengganti sebuah atribut dalam entity maka data dalam shared dimensi ini akan berpengaruh langsung kepada setiap data mart yang ada.

Atribute dalam Dimension Table

Atribut adalah properti dalam dimension table yang ingin dianalisa secara berbeda. Secara fisik atribut direpresentasikan dengan kolom yang ada pada tabel. Kamu bisa gunakan untuk mengukur datamu. Sebagai contoh Penjualan, kamu bandingkan dengan pegawai dan data yang kamu perlukan adalah pegawai mana yang paling produktif untuk penjualan. Maka kamu akan membutuhkan data penjualan dan pegawai beserta umurnya. Inilah yang menyebabkan beberapa perusahaan hanya menerima pegawai dengan range tertentu, bukan karena mereka cantik atau tampan. 
Karena itu diperlukan sebuah atribut yang benar-benar telah dipikirkan sesuai dengan kebutuhan. Karena hal-hal ini akan menentukan sebuah dimensi itu disebut stand-alone dimension atau conformed dimension. Memang bisa ditambahkan dalam kemudian hari akan tetapi hal ini akan sangat merepotkan kamu. Sehingga ada baiknya lakukan perencanaan dan uji coba terlebih dahulu.



Hierarki dalam dimension table



Hierarki dalam dimension table digunakan untuk pemberian kesimpulan/peringkasan, ini disebut drill-down dan drill up. Untuk mudahnya kita mempunyai data yang bisa diringkas(disimpulkan) dan juga bisa dilihat detilnya. Misalkan kita memiliki data total penjualan dari satu tahun, apabila kita melakukan drill-down maka kita akan memperoleh detil dari data penjualan per bulan kemudian bila kita melakukan drill down lagi maka kita akan memperoleh data penjualan per minggu. Seperti itulah contoh dari hierarki. Hal ini membantu dalam analisa yang menjawab pertanyaan di bulan manakah sebuah perusahaan menjual paling banyak?maka bulan sebelumnya akan memastikan stock barang yang dijual cukup untuk memenuhi demand dari pelanggan. Biasanya tidak hanya bedasarkan waktu tetapi juga bedasarkan tempat dan jenis barang yang harus dipersiapkan. Semakin banyak hierarki yang kamu siapkan maka akan jumlah kolom dalam tabel tersebut akan makin banyak. Bentuk dari struktur database datawarehouse akan lebih banyak denormalisasi seperti contoh tabel di samping.
Berikutnya kita akan belajar mengenai historical data dan hubungannya dengan dimension table dalam datawarehuse, karena banyak perdebatan mengenai apakah data itu harus paling baru?? apakah data yang sudah lama boleh dihapus??  Sedangkan untuk pengertian dasar dimension tabel cukup sampai di sini saja.

Komentar