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:

  1. 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.
  1. 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:

  • Menyimpan data ke dalam level yang kita perlukan dalam laporan. Hal ini dapat memampatkan ukuran data secara signifikan. Untuk itu diperlukan prosedur-prosedur ETL (Extract, Transform, Load) yang dapat mentransformasi data ke dalam struktur dengan tepat dan efisien.
  • Membuat sebuah tempat penyimpanan data yang terpusat untuk semua data perusahaan, tidak hanya untuk data-data bagian tertentu saja.
  • User hanya mengakses data-data yang diperlukan saja untuk analisa dan laporan, tidak perlu semua data yang dapat memperlambat proses eksekusi query.

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.

  1. Berikut adalah kelebihan dan kekurangan model skema bintang.

Kelebihan model skema bintang:

  • Cenderung mudah dipahami karena modelnya yang lebih sederhana
  • Memudahkan mencari isi karena kesederhanaannya dengan cara melihat step by step dari masing-masing dimensinya
  • Proses query lebih cepat pada saat proses OLAP

Kekurangan model skema bintang:

  • Ukuran data lebih besar karena ada data yang disimpan ulang
  • Maintenance dan update lebih sulit

  1. Berikut adalah kelebihan dan kekurangan model skemasnowflake.

Kelebihan model skemasnowflake:

  • Ukuran data lebih kecil di dalam tempat penyimpanan
  • Lebih mudah dilakukan maintenance dan update
  • Proses query lebih cepat pada saat proses ETL

Kekurangan model skemasnowflake:

  • Cenderung lebih sulit dipahami karena kompleksitasnya
  • Sulit mencari data yang dibutuhkan karena melihat strukturnya yang kompleks dan bercabang-cabang

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:

  1. Penerapan skema bintang

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.

  1. Penerapan skema snowflake
  • Dalam data warehouse

Penerapan skema snowflake dalam data warehouse suatu perusahaan dapat menghemat ruang penyimpanan yang dibutuhkan.

  • Ketika tabel-tabel dimensi memerlukan ruang penyimpanan yang besar

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:

  1. http://www.vertabelo.com/blog/technical-articles/data-warehouse-modeling-star-schema-vs-snowflake-schema
  2. https://levinbosz.wordpress.com/2014/01/02/star-schema-dan-snowflake-schema-baru/