Perbandingan Model Skema Bintang dan Model Skema Snowflake Pada Data Warehouse
Oleh :
Dedi Irawan (1801657761)
Dimas Aji Pamungkas (1801659855)
Eduard Pangestu Wonohardjo (1801657591)
Rizky Febriyanto Sunaryo (1801657540)
Yusuf Sudiyono (1801657553)
Model yang sering digunakan di dalam data warehouse saat ini adalah skema bintang dan skema snowflake. Masing-masing model tentunya memiliki kelebihan dan kekurangannya masing-masing. Dalam artikel ini dijelaskan dengan detil mengenai perbedaan kedua skema tersebut. Selain itu dijelaskan pula kondisi-kondisi yang sesuai di dalam mengimplementasikan skema bintang maupun skema snowflake.
Skema bintang dan skema snowflake adalah sarana untuk mengorganisir data mart – data mart atau gudang-gudang data dengan menggunakan basis data relasional. Kedua skema tersebut menggunakan tabel-tabel dimensi untuk mendeskripsikan data-data yang terdapat di dalam tabel fakta.
Setiap perusahaan pada umumnya menjual produk, pengetahuan, maupun jasa. Sehingga sistem penjualan adalah sebuah sistem yang terdapat di sebagian besar perusahaan. Berikut ini dijelaskan mengenai model penjualan baik skema bintang maupun skema snowflake.
Skema Bintang
Gambar 1. Skema Bintang
Karakteristik utama dari skema bintang adalah bahwa tabel dimensinya tidak dinormalisasi. Pada model di atas, tabel fakta fact_sales (warna merah muda)berisi data-data yang diekstrakdari database operasional. Sedangkan tabel yang berwarna biru muda adalah tabel dimensi. Pada gambar di atas terdapat lima tabel dimensi yaitu dim_sales_type, dim_store, dim_employee, dim_product, dan dim_time.
Dari model ini, kita dapat dengan mudah melihat mengapa skema ini disebut ‘skema bintang’, karena model tersebut terlihat seperti bintang, dengan tabel dimensi yang mengelilingi tabel fakta
SkemaSnowflake
Gambar 2. Skema Snowflake
Skema snowflakejuga menyimpan data yang sama seperti pada skema bintang. Tabel fakta yang digunakan pada skema bintang maupun pada skema snowflake berisi field-field yang sama. Perbedaan utama antara skema bintang dan skema snowflake adalah semua tabel dimensi pada skema snowflake telah dinormalisasi. Proses normalisasi tabel-tabel dimensi pada skema snowflake ini disebut dengan proses snowflaking,sehingga tampilan tabel-tabel pada skema snowflake bentuknya menyerupai snowflake.
Selain itu, perbedaan lainnya adalah dalam hal kompleksitas query-nya. Skema snowflake memiliki kompleksitas query yang lebih kompleks dibandingkan dengan skema bintang. Penjelasan mengenai kedua perbedaan tersebut adalah sebagai berikut:
- Normalisasi
Seperti yang telah disebutkan di atas, normalisasi adalah perbedaan utama antara skema bintang dengan skema snowflake. Beberapa hal yang harus diperhatikan adalah sebagai berikut:
- Skema snowflake menggunakan ruang penyimpanan yang lebih kecil dibandingkan ruang penyimpanan pada skema bintang. Hal ini disebabkan karena tabel-tabel dimensi yang telah dinormalisasi memiliki record-record yang efisien karena tidak terjadi pengulangan data-data yang sama.
- Tabel dimensi yang tidak dinormalisasi dapat menyebabkan masalah integritas data. Karena data-data yang sama bisa muncul berulang-ulang, bahkan bisa juga terjadi kesalahan pengetikan pada data-data yang sama tersebut. Sehingga pada skema bintang harus dilakukan pengecekan dan maintenance secara berkala.
- Penyimpanan data pada skema snowflake lebih terorganisir dan lebih rapi dibandingkan dengan skema bintang.
- Kompleksitas Query
Sebelum masuk ke dalam penjelasan mengenai perbandingan kompleksitas query antara skema bintang dan skema snowflake, terlebih dahulu diberikan contoh perintah query yang digunakan untuk menghitung jumlah telepon yang terjual di toko-toko di kota Berlin sepanjang tahun 2016. Perintah query-nya adalah sebagai berikut:
- Skema Bintang
SELECT
dim_store.store_address, SUM(fact_sales.quantity) ASquantity_sold
FROM fact_sales INNERJOINdim_product ONfact_sales.product_id = dim_product.product_id INNERJOINdim_time ONfact_sales.time_id = dim_time.time_id INNERJOINdim_store ONfact_sales.store_id = dim_store.store_id
WHERE dim_time.action_year = 2016 ANDdim_store.city = ‘Berlin’ ANDdim_product.product_type = ‘phone’
GROUPBY dim_store.store_id, dim_store.store_address |
- Skema Snowflake
SELECT dim_store.store_address, SUM(fact_sales.quantity) ASquantity_sold
FROM fact_sales INNERJOINdim_product ONfact_sales.product_id = dim_product.product_id INNERJOINdim_product_type ONdim_product.product_type_id = dim_product_type.product_type_id INNERJOINdim_time ONfact_sales.time_id = dim_time.time_id INNERJOINdim_year ONdim_time.year_id = dim_year.year_id INNERJOINdim_store ONfact_sales.store_id = dim_store.store_id INNERJOINdim_city ONdim_store.city_id = dim_city.city_id
WHERE dim_year.action_year = 2016 ANDdim_city.city = ‘Berlin’ ANDdim_product_type.product_type_name = ‘phone’
GROUPBY dim_store.store_id, dim_store.store_address
Seperti terlihat dari dua perintah query di atas, query pada skema snowflake lebih kompleks dibandingkan dengan query yang digunakan pada skema bintang. Hal ini disebabkan karena pada skema snowflake melibatkan lebih banyak tabel sebagai akibat dari proses normalisasi, sehingga menggunakan perintah JOIN yang lebih banyak dibandingan dengan skema bintang. Pada skema bintang,hanya ada satu perintah JOIN untuk setiap tabel dimensi. Namun jika tidak melibatkan tabel dimensi, maka perintah JOIN tidak perlu digunakan. Sedangkan pada skema snowflake, jumlah perintah JOIN yang digunakan bisa bervariasi tergantung kebutuhan. Menggabungkan dua tabel memerlukan waktu karena Database Management System (DBMS) memerlukan waktu yang lebih lama untuk memproses permintaan query tersebut. Sebagai contoh tabel dim_store dan dim_city terlihat berdekatan pada gambar skema di atas, namun secara fisik kedua tabel tersebut mungkin tidak terletak berdekatan dalam media penyimpanan. Akan tetapi data-data yang terletak pada satu tabel, kemungkinan besar secara fisik data-data tersebut terletak berdekatan dalam media penyimpanan. Umumnya, sebuah query yang berjalan dalam data mart dengan skema snowflake akan dieksekusi lebih lambat. Namun hal ini tidak menimbulkan masalah yang besar jika hasil yang ditampilkan hanya dalam waktu antara 1 mili detik sampai dengan 1 detik. Hal ini dapat menjadi masalah yang serius jika hasil yang ditampilkan memerlukan waktu 5 detik atau lebih.
Cara-Cara Mempercepat Eksekusi Query Hal-hal yang dapat dilakukan untuk mempercepat proses query dalam laporan adalah sebagai berikut:
Skema Apa Yang Terbaik? Setiap skema baik skema bintang maupun skema snowflake memiliki kelebihan dan kekurangannya masing-masing. Untuk dapat menentukan skema apa yang sesuai dengan kebutuhan kita, berikut ini dijelaskan kelebihan dan kekurangan masing-masing skema.
Kelebihan model skema bintang:
Kekurangan model skema bintang:
Kelebihan model skemasnowflake:
Kekurangan model skemasnowflake:
Skema Apa yang harus Dipilih? Berikut ini akan dijelaskan mengenai kondisi yang tepat di dalam menerapkan skema bintang maupun skema snowflake. Penjelasannya adalah sebagai berikut:
Penerapan skema bintang adalah pada data mart suatu perusahaan. Data mart adalah bagian dari data warehouse. Data mart biasanya dibuat pada tiap departemen pada perusahaan tersebut. Tujuan dari pembuatan data mart adalah supaya karyawan atau staff yang terkait pada suatu departemen tertentu dapat mengakses data yang diperlukan dengan cepat tanpa harus melakukan query pada database utama sehingga dapat mengurangi beban server utama.
Penerapan skema snowflake dalam data warehouse suatu perusahaan dapat menghemat ruang penyimpanan yang dibutuhkan.
Dalam sebagian besar kasus, umumnya tabel fakta memerlukan ruang penyimpanan yang lebih besar daripada tabel dimensi. Tabel fakta juga berkembang lebih banyak dibanding tabel dimensi. Akan tetapi ada beberapa kondisi dimana ukuran tabel dimensi lebih besar dibandingkan dengan tabel fakta. Contohnya, tabel-tabel dimensi dapat berisi atribut-atribut redundan, namun diperlukan di dalam proses query laporan. Dari kelebihan dan kekurangan dari masing-masing model yang telah dijelaskan sebelumnya, diharapkan dapat membantu user di dalam menentukan model skema yang tepat yang dapat digunakan di dalam membuat dan menerapkan data warehouse.
Sumber:
|