Selayang Pandang Data Warehouse (bagian I)

Akhirnya, sesuai dengan janji saya pada tulisan saya sebelumnya tentang data warehouse, kali ini saya akan kupas tentang data warehouse secara konseptual (belum terlalu mengarah ke teknik). Sebelumnya, saya mohon koreksi dari pembaca sekalian apabila Anda menemukan tulisan saya yang masih belum benar. Baiklah, saya mulai saja.

Definisi Data Warehouse

Salah satu efek yang dihasilkan dari adanya suatu sistem informasi adalah munculnya banyak data. Data yang ada ini berasal dari sistem operasional yang berfungsi untuk menangani transaksi yang terkait dengan proses bisnis yang ditangani oleh sistem informasi tersebut. Contoh: sistem informasi presensi karyawan memunculkan data jumlah kehadiran kehadiran karyawan setiap hari dengan data yang disimpan tergantung pada apa yang dibutuhkan oleh sistem informasi tersebut (misalkan: nomor induk pegawai, jam masuk, pintu masuk, dsb.). Bayangkanlah sistem informasi ini dipakai di perusahaan yang jumlah karyawannya sebanyak 1000 orang. Apabila data ini dipakai selama seminggu masa kerja saja (5 hari), maka data yang masuk dalam basis data ada 1000 x 5 = 5000 baris. Anda tinggal kalikan saja apabila ingin menghitung jumlah data yang disimpan selama seminggu waktu operasional, sebulan, hingga setahun. Itu baru satu sistem informasi saja. Di korporasi yang besar sistem informasi yang ada berjumlah banyak dengan berbagai fungsi dan tujuannya. Akhirnya masalah berikutnya muncul: dengan data yang banyak dan bermacam-macam ini, apa yang bisa saya peroleh/manfaatkan?

Solusi atas masalah tersebut adalah data warehouse! Lompati dulu makna dari frasa data warehouse ini. Untuk bisa tahu dan paham tentang data warehouse, Anda harus tahu dulu definisi dari OLTP. Dalam terminologi basis data, aplikasi yang ada pada sistem informasi untuk contoh kasus di atas menjalankan fungsi yang disebut dengan OLTP (Online Transaction Processing). Jangan terjebak kata online di sini yang tidak sama dengan online ke jaringan Internet. Kata online di sini artinya adalah tersambung langsung dengan basis data. Pada OLTP, hal yang paling penting adalah kecepatan pemrosesan transaksi, sehingga pada OLTP ini aplikasi akan terhubung dengan basis data yang mengalami normalisasi untuk performa pemrosesan transaksi yang lebih cepat dan juga bisa juga untuk efisiensi kapasitas media penyimpanan (data yang redundan jumlahnya berkurang).

Data Warehouse

Hal yang kontras dari OLTP (sistem operasional) akan ditemui pada Data Warehouse. Data Warehouse (yang secara harafiah berarti gudang data) adalah kumpulan seluruh data yang dimiliki oleh perusahaan yang didesain untuk melakukan analisis dan pelaporan, dan bukan untuk pemrosesan transaksi. Jadi, dalam istilah yang lebih sederhana, data warehouse adalah basis data yang ditujukan untuk analisis, pelaporan, dan terkadang juga untuk penambangan pengetahuan (knowledge mining). Data warehouse ini umumnya mengandung data historis yang diturunkan dari data yang dihasilkan oleh OLTP. Tidak menutup kemungkinan juga data warehouse ini juga mengambil data dari berbagai sumber data yang dimiliki oleh perusahaan yang tidak berasal dari basis data (misalkan: laporan keuangan biro tertentu yang berupa berkas/file spreadsheet). Karena sumber datanya bermacam-macam dengan skema dan format yang juga bermacam-macam, maka sebelum memasuki data warehouse, data harus mengalami proses ETL (extraction, transformation, dan loading) agar formatnya konsisten saat masuk ke data warehouse. Pembahasan rinci tentang ETL ini tidak dibahas di tulisan ini. Data warehouse merupakan bagian dari kecerdasan bisnis/business intelligence, yaitu penerapan teknologi informasi pada perusahaan yang berfungsi untuk membantu perusahaan dalam meningkatkan performa bisnis. Tujuan awalnya adalah untuk membantu perusahaan dalam proses penentuan keputusan (decision-making), sementara tujuan akhirnya tentu saja keuntungan perusahaan yang semakin berlipat :P .

Perbedaan OLTP dan Data Warehouse

Perbedaan mendasar antara OLTP dengan Data Warehouse terletak pada hal-hal di bawah ini:
  1. Query
    Query pada data warehouse kebanyakan berupa ad-hoc query, artinya query tersebut dibangkitkan secara dinamis lewat bentuk query yang terdefinisi di awal. Pola (kerangka) pada ad-hoc query sudah jelas, tapi saat melakukan analisis, bentuk (badan) query-nya bisa berbeda-beda. Hal yang berbeda akan ditemui di OLTP, yang memiliki query yang harus benar-benar terdefinisi di awal sesuai dengan kondisi (state) transaksi yang ditangani.
  2. Modifikasi Data
    Perubahan yang ada pada data warehouse bersifat tambahan saja dan umumnya bersifat borongan lewat proses ETL yang terjadwal secara periodik. Sementara pada OLTP, perubahan yang terjadi harus langsung dilakukan saat itu juga dan setiap modifikasi data yang ada harus konsisten dan benar (sesuai dengan setiap kondisi aktual dari proses bisnis yang ditangani).
  3. Desain Skema
    Data warehouse pada umumnya memiliki skema basis data yang didenormalisasi secara penuh atau didenormalisasi sebagian untuk memudahkan eksekusi analisis yang umumnya diimplementasikan dalam bentuk query agregasi dan kalkulasi rumit terhadap data multidimensi. Sementara pada OLTP, skema basis data mengalami normalisasi untuk memudahkan eksekusi transaksi yang terkait dengan operasi-operasi basis data (insert, update, delete), dan untuk menjamin konsistensi basis data.
  4. Operasi Umum
    Operasi umum yang implementasinya adalah berupa query analitik untuk data warehouse adalah operasi semacam ini, "Hitungnya masing-masing total penjualan produk X secara nasional per bulan sepanjang tahun 2007" atau "", sementara pada OLTP adalah, "Masukkan data pembelian produk ini (ke dalam basis data operasional)".
  5. Data historis
    Pada data warehouse ada banyak data historis dalam jangka waktu yang lama (umumnya dipakai untuk proses analisis). Sementara pada OLTP data yang disimpan jangka waktunya tidak lama, kalaupun ada data historis hanya diperlukan untuk proses transaksi pada saat itu.

Karakteristik Data Warehouse

Beberapa karakteristik dari data warehouse adalah:
  1. Subject oriented
    Karena data warehouse didesain untuk melakukan analisis maka data warehouse harus memproses query yang berupa pertanyaan yang bersifat subjektif, seperti "Produk apa yang paling laku dijual sepanjang tahun 2007?". Kemampuan untuk memecahkan masalah yang bersifat subjektif ini membuat data warehouse bersifat subject-oriented.
  2. Integrated Sumber data dari data warehouse adalah berbagai data yang dimiliki oleh suatu organisasi dari berbagai sumber dengan skema dan format yang bermacam-macam. Karakteristik ini terkait dengan fungsi data warehouse terhadap sumber data yang akan dimasukkan ke dalam data warehouse.
  3. Nonvolatile
    Data yang sudah masuk ke dalam data warehouse tidak bisa diubah lagi. Hal ini memang sesuai dengan salah satu tujuan dari data warehouse, yaitu analisis.
  4. Time-variant
    Data yang ada di dalam data warehouse akan dianalisis perubahannya berdasarkan waktu.

Bersambung

-KnightDNA-
blog comments powered by Disqus