Apa itu DataWarehouse ?

  Menurut Wikipedia, Datawarehouse adalah

In computing, a data warehouse or enterprise data warehouse (DWDWH, or EDW) is a database used for reporting and data analysis. It is a central repository of data which is created by integrating data from one or more disparate sources. Data warehouses store current as well as historical data and are used for creating trending reports for senior management reporting such as annual and quarterly comparisons.

The data stored in the warehouse are uploaded from the operational systems (such as marketing, sales etc., shown in the figure to the right). The data may pass through an operational data store for additional operations before they are used in the DW for reporting.

Dari informasi diatas, maka datawarehouse adalah suatu database yang dipergunakan untuk keperluan membuat laporan dan analisa data. Database ini berperan sebagai pusat data dari berbagai sumber data, semisal dari 2 atau 3 database yang lainnya.  Datawarehouse menyimpan data saat ini dan data history yang dipergunakan untuk membuat report report perbandingan antara suatu waktu atau area dengan yang lainnya. Jadi orientasi dari datawarehouse adalah analisa data.

Contoh jenis analisa di dalam datawarehouse :

  • Data Penjualan berdasarkan :
    • Area, Tahun, Jenis Produk, dll
  • Data Kemampuan Karyawan berdasarkan :
    • Skill, Umur, Test, dll
  • Data Pembelian berdasarkan :
    • Tahun, Supplier, Produk, OnTime, dll

Data yang disimpan di dalam database datawarehouse itu berasal dari berbagai database berjenis OLTP. OLTP adalah database yang dipergunakan untuk keperluan penyimpanan data transactional. Jadi data data OLTP harus di upload ke dalam database datawarehouse, proses upload data ini dikenal dengan istilah ETL ( Extract, Transform, Load). Penjelasannya sebagai berikut :

  • Extract
    • Ekstrak data dari sumber data yang lain, dari database OLTP atau dari file Excell, atau dari file Log dan sebagainya.
  • Transform
    • Transformasi data agar sesuai dengan kebutuhan kita, termasuk urutan, perhitungan atau penjabaran.
  • Load
    • Loading ke dalam database tujuan kita, database datawarehouse.

Database Datawarehouse harus didesain dan di rancang untuk menangani kegiatan Analisa Data. Desain databasenya memiliki karakteristik sebagai berikut :

  • De-Normalisasi
    • Tabel tabel yang dimiliki selalu dalam bentuk tabel de-normalisasi atau 90% atau lebih dari tabel yang dimilikinya dalam bentuk de-normalisasi
  • Database Blok berukuran besar, 8 kilobyte , 16 kilobyte atau 32 kilobyte
    • Setiap blok penyimpanan di database umumnya memakai besaran lebih dari 8kb
    • Ukuran blok yang besar ini akan mempercepat proses pencarian keseluruhan data di dalam tabel
  • Data diatur berdasarkan subyeknya
    • Subyek ini yang menentukan data didalam datawarehouse, contohnya data penjualan, pembelian dan lain lain.
  • Integrasi
    • Data yang berasal dari berbagai sumber data tentu memiliki beberapa perbedaan, misal nama kolom atau tipe data. Perbedaan perbedaan ini harus di atasi, agar dapat di buat laporan dengan format yang valid dan kosisten.
  • Non-Volatile
    • Artinya, sekali data itu masuk ke datawarehouse, data tidak boleh di ubah. Mengapa ? karena fungsi datawarehouse adalah untuk mengetahui apa yang terjadi.
  • Time Variant
    • Data yang disimpan di dalam datawarehouse di kelompokkan berdasarkan waktunya, mingguan, bulanan atau tahunan.

Dengan karakteristik seperti itu, maka database Datawarehouse haruslah dapat menyimpan data dalam jumlah yang besar, gigabye atau terabyte. Pengambilan data dalam jumlah besar juga harus dapat dilakukan, tidak harus cepat, tapi harus dapat dilakukan. Misal untuk membuat suatu analisa perlu melakukan query terhadap database yang menghasilkan 1 Trilyun record, yang kemudian di summarize menjadi 100 record.

Kecepatan bukan hal yang utama disini, penyelesaian suatu analisa itu yang paling utama.

Apa itu Database OLTP ?

  OLTP adalah singkatan dari On-line Transaction Processing. Menurut Wikipedia,

Online transaction processing, or OLTP, is a class of information systems that facilitate and manage transaction-oriented applications, typically for data entry and retrieval transaction processing. The term is somewhat ambiguous; some understand a “transaction” in the context of computer or database transactions, while others (such as the Transaction Processing Performance Council) define it in terms of business or commercial transactions.[1] OLTP has also been used to refer to processing in which the system responds immediately to user requests. An automatic teller machine (ATM) for a bank is an example of a commercial transaction processing application.

Jadi, OLTP adalah sistem informasi yang berbasis transaksi. Transaksi dalam konteks Applikasi OLTP adalah satu proses transaksi atau satu cyle, ada awal ada akhir. Proses transaksi di dalam applikasi sendiri bervariasi jenisnya,  antara lain :

  • Proses penyimpanan 1 form, contoh 1 Purchase Order, 1 Sales Order, 1 Material Incoming dan lain lain
  • Proses End of Month, contoh proses akhir bulan Accounting, akhir bulan Banking, dan lain lain
Semua jenis transaksi tersebut diatas itulah yang disebut Proses Transaksi atau transaction processing.  Sedang yang dimaksud dengan Transaksi Database adalah proses menyimpan sebuah record dalam suatu tabel. Sehingga dengan penjelasan ini, 1 Transaksi Applikasi dapat berisikan ribuan Transaksi Database.
Database OLTP harus didesain dan di rancang untuk menangani kegiatan Transaksi Applikasi. Desain databasenya memiliki karakteristik sebagai berikut :
  • Normalisasi
    • Tabel tabel yang dimiliki selalu dalam bentuk tabel normalisasi atau 90% atau lebih dari tabel yang dimilikinya dalam bentuk normalisasi
  • Database Blok berukuran kecil, 2 kilobyte atau 4 kilobyte
    • Setiap blok penyimpanan di database umumnya memakai besaran 2kb atau 4kb
    • Ukuran blok yang kecil ini akan mempercepat proses pencarian data yang spesifik
  • Transaction Control
    • Selalu menggunakan transaction contol, yakni begin transaction, end transaction, commit dan rollback.
    • Kontrol ini dipergunakan untuk memastikan 1 Transaksi Applikasi berjalan semestinya hingga akhir dengan benar.

Dengan karakteristik seperti itu, maka Transaksi Applikasi di database OLTP haruslah transaksi yang memiliki proses penyimpanan dengan cepat. Kecepatannya harus kurang dari 60 detik. Lebih cepat lebih baik. Misal, 1 Transaksi Applikasi, menyimpan 1 Form Purchase Order, haruslah kurang dari 60 detik. Jadi semua Transaksi Applikasi jenis OLTP ini harus cepat.

Bagaimana dengan Proses Analisa ? Proses analisa umumnya melibatkan banyak tabel yang harus di join. Semakin banyak tabel yang di join akan mempengaruhi kecepatan pemrosesan data. Proses Analisa tetap dapat di lakukan dengan menggunakan database OLTP, tetapi ada keterbatasan di dalamnya, karena normalisasi, atau karena blok database. Seberapa besar batasan yang dapat diterima itu harus ditentukan. Jikalah Proses Analisa cukup tinggi pengunaannya, lebih baik proses analisa dilakukan di DATAWAREHOUSE.