[Data Warehouse] [6/C2 & 6/D2]
[ Chapter 6] Pemodelan Data Warehouse
Dedy Alamsyah, S.Kom, M.Kom [NIDN : 0410047807]
Pemodelan Data Ada dua pendekatan yang diterima sebagai “best practice” untuk memodelkan data pada data warehouse: 1. Relational Model (Immon Approach) 2. Multidimensional Model (Kimball Approach)
Model Relasional Model relasional telah ada sejak tahun 70 an dan telah diimplementasikan pada teknologi mesin database seperti DB2, oracle, SQL Server dsb. Tiap database dapat terdiri dari satu atau lebih table yang saling berhubungan (memiliki relasi) Tiap table terdiri dari kolom yang bertindak sebagai atribut dari data, masing2 kolom dapat memiliki karakteristik yang berbeda. Dalam model relasional, data harus hadir dalam bentuk normal Maksudnya normal ialah data telah tersusun dalam desain yang granularitasnya rendah
Kelebihan dan Kekurangan Model Relasional Kelebihan dari model ini ialah desain yang disiplin dengan data yang detail. 1. Model ini fleksibel dan adaptif untuk dimanfaatkan dari berbagai sudut pandang dan kebutuhan. 2. Berbagai jenis “view” dapat ditampilkan oleh model ini. Kekurangan model ini ialah tingkat komplesitas yang tinggi seiring dengan bertumbuhnya jenis informasi. Untuk menampilkan sebuah “view” yang spesifik
Contoh Model Relasional
Model Dimensional Sering juga disebut dengan multidimensional approach, star join approach, atau kimball approach Strukturnya seperti bintang yang berelasi, (star-join) Di tengah terdapat tabel fakta yang dikelilingi oleh tabel dimension Kelebihan model ini ialah terfokus untuk menampilkan sebuah “view” khusus, sehingga tidak fleksibel untuk kebutuhan umum Tabel fakta menyimpan data utama, berisi jumlah data teragregasi yang banyak seperti harga dan jumlah penjualan. Tabel dimensi, umumnya lebih kecil dari tabel fakta berisi atribut yang menjelaskan tabel fakta, umumnya tabel terpisah untuk tiap atribut.
Contoh Model Dimensional
Contoh Model Dimensional 2
Perbedaan relational dengan Dimensional Dimensional model memiliki scope (ruang lingkup) yang lebih kecil, karena requirement menentukan bentuk dari model. Cocok untuk req departement atau sub departement Dimensional model akan mengalami kesulitan saat banyak req proses bermunculan untuk memanfaatkan data. Secara sederhana, dimensional model hanya bisa dioptimasi untuk satu proses req. Relational model tidak memiliki optimasi, karena disimpan pada level granularitas terendah. Tidak ada batasan untuk mengolah relational model, sehingga cocok untuk scope yang luas (model enterprise)
Query yang disediakan oleh Data Warehouse Data warehouse ada untuk memfasilitasi queri ad hoc yang terjadi sering dan kompleks. Untuk itu, data warehouse harus menyediakan dukungan query yang lebih efisien Roll-up: data dirangkum dengan generalisasi Dril-down: meningkatkan tingkat detail Pivot: lintas tabulasi (juga disebut rotasi) Potong dan iris: melakukan operasi proyeksi terhadap dimensi Sorting: data diurut berdasarkan nilai ordinal Selection: data tersedia dalam nilai atau range Derived attributes: atribut dihitung oleh operasi dalam nilai yang disimpan atau turunan
Model Data Untuk Data Warehouse Model storage multidimensi melibatkan 2 tipe tabel: tabel dimensi dan tabel fakta Tabel dimensi terdiri dari tupel atribut tuples dari dimensi Tabel fakta bisa digambarkan memiliki banyak tupel. Satu tupel untuk satu fakta yang tercatat. Fakta ini berisikan data dan dimensi mengidentifikasikan masing-masing tupel dalam data tersebut Fakta biasanya berisi nilai numerik seperti jumlah qty, besar nilai, besar nilai penjualan, dll.
Tabel Fakta Menurut Whalen et al.(2001, p236), tabel fakta adalah tabel di dalam data warehouse yang menjelaskan ukuran data bisnis. Fakta berisi nilai dari sebuah kejadian atau transaksi tertentu misalnya penyimpanan uang di bank, penjualan produk, atau pesanan. Tabel fakta menyimpan nilai numerik daripada karakter. Contohnya tabel fakta dapat berisi field seperti RegionID, SalespersonID, ItemID, dan CustomerID. Tabel fakta dapat memiliki banyak foreign key yang berhubungan dengan tabel dimensi. Tabel fakta menyimpan informasi penting dari data warehouse. Tabel fakta dapat menyimpan jutaan hingga miliaran record dan memakan tempat penyimpanan hingga satu terabyte.
Contoh Tabel Fakta
Cara menentukan table Fakta Menurut Kimball (2008), tabel fakta merupakan dasar dari data warehouse, tabel fakta mengandung pengukuran fundamental pada sebuah perusahaan a) Concatenated key Baris dalam tabel fakta diidentifikasi dengan menggunakan primary key dari tabel- tabel dimensi, maka primary key dari tabel fakta merupakan gabungan primary key dari semua tabel dimensi. b) Data grain Data grain merupakan tingkat detail untuk pengukuran. Sebagai contoh, jumlah pemesanan berhubungan berhubungan dengan jumlah produk tertentu pada suatu pesanan, tanggal tertentu, untuk pelanggan spesifik dan diperloeh oleh seorang perwakilan penjualan spesifik tertentu. Jika jumlah pesanan dilihat sebgai jumlah untuk suatu produk perbulan, maka data grain-nya berbeda dan pada tingkat yang lebih tinggi. c) Fully additive measures Agregasi dari fully additive measures dilaksanakan dengan penjumlahan sederhana nilai-nilai atribut tersebut. d) Semiadditive measures Semiadditive measures merupakan nilai yang tidak dapat langsung dijumlahkan, sebagai contoh persentase keuntungan. e) Tabel besar, tidak lebar Tabel fakta umumnya memiliki lebih sedikit atribut daripada tabel dimensi, namun memiliki jumlah record yang lebih banyak. f) Sparse data Tabel fakta tidak perlu menyimpan record yang nilainya null. Maka tabel fakta dapat memiliki gap g) Degenerate dimensions Terdapat elemen-elemen data dari sistem operasional yang bukan merupakan fakta ataupun dimensi, seperti nomor pesanan, tagihan, dan lain-lain. Namun atribut- atribut tersebut dapat berguna dalam jenis analisis tertentu
Tabel Dimensi Menurut Whalen et al.(2001, p236), tabel dimensi digunakan untuk menyempurnakan data yang ada pada tabel fakta atau menjelaskannya dengan lebih detil. Datanya merupakan karakter. Tabel dimensi menyimpan informasi seperti region name, salesperson name, item description, customer name, dan customer addresses. Setiap tabel dimensi menyimpan baris dari data dengan informasi berupa karakter yang menjelaskan field yang berhubungan dengan tabel fakta dengan lebih detil. Tabel dimensi lebih kecil dan memiliki baris yang sedikit dari tabel fakta, biasanya terdiri dari ratusan atau ribuan record. Tabel dimensi menyimpan hanya satu baris data untuk setiap customer, sedangkan tabel fakta bisa memiliki banyak baris data untuk beberapa transaksi bagi customerID yang sama
Karakteristik Tabel Dimensi Menurut Ponniah (2001, p213) sebuah tabel dimensi memiliki karakteristik sebagai berikut : a. Memiliki Dimension Table Key Primary key dari tabel dimensi mengidentifikasi setiap baris dimensi secara unik. b. Tabel Bersifat Lebar Sebuah tabel dimensi dapat memiliki banyak atribut atau kolom. c. Atribut Berupa Teks Dalam tabel dimensi akan jarang ditemukan nilai-nilai angka untuk perhitungan. Atribut-atributnya mewakili deskripsi teks dari komponen dimensi bisnis. d. Atribut tidak Terhubung Secara Langsung Terkadang dalam suatu tabel dimensi dapat ditemukan bahwa beberapa atributnya tidak terhubung dengan atribut lainnya secara langsung. e. Tidak Ternormalisasi Atribut dalam tabel dimensi selalu digunakan secara terus- menerus dalam query. Untuk efisiensi, sebaiknya query menggunakan atribut yang disalurkan secara langsung dari tabel dimensi ke tabel fakta, tanpa melalui tabel lainnya. f. Drilling down, Rolling up Atribut dalam tabel dimensi menyediakan
Contoh Tabel Dimensi
Contoh Tabel Dimensi 2
Model Dimensional Menurut Kimball (2003, p18), Dalam membuat desain dimensional digunakan 4 langkah : 1. Menentukan sumber data. 2. Mendeklarasi grain dari tabel fakta. 3. Masukkan dimensi untuk semua yang diketahui mengenai grain ini. 4. Masukkan fakta ukuran numerik sebenarnya ke grain tersebut.
Skema Bintang (Star Schema) Menurut Connolly dan Begg (2005, p1183), Skema bintang merupakan sebuah struktur logikal yang memiliki sebuah tabel fakta yang terdiri dari data faktual di pusatnya, yang dikelilingi oleh tabel dimensi yang terdiri data referensi (dimana dapat didenormalisasi). Menurut Ponniah (2001, p210), Star schema adalah teknik dasar desain data untuk data warehouse. Struktur star schema adalah suatu struktur yang dapat dengan mudah dipahami dan digunakan oleh user seperti yang terlihat pada gambar di slide berikutny. Struktur tersebut mencerminkan bagaimana user biasanya memandang ukuran-ukuran kritis mengikuti dimensi-dimensi bisnis yang ada. Menurut Hoffer et al (2005, p467), Star schema terdiri dari dua macam tabel, yaitu tabel fakta (fact table) dan tabel dimensi (dimension table). Tabel fakta mengandung fakta atau data kuantitatif mengenai sebuah bisnis seperti jumlah unit terjual, jumlah order, dan sebagainya. Tabel dimensi berisi data deskriptif mengenai subjek bisnis. Tabel dimensi biasanya adalah sebagai sumber attribute yang digunakan untuk mengkualikasi, mengkategorikan, atau meringkas fakta dalam query, report, atau grafik.
Karakteristik Model Skema Bintang 1. Pusat dari star disebut fact table 2. Fact table mempunyai sebuah nilai aggregate dari datadata yang berasal dari tabel dimensi 3. Setiap tabel dimensi berelasi langsung dengan fact table 4. Tabel dimensi beisikan data tentang informasi atau waktu 5. Relasi antara fact table dengan dimensi-dimensinya adalah 1 - N (one to many) 6. Primary key pada tabel dimensi akan menjadi key pada fact table atau dapat diakatakan bahwa fact table memiliki kombinasi key dari tabel dimensi tersebut.
Contoh Model Skema Bintang
Keuntungan Skema Bintang Mudah dipahami user Star schema menggambarkan dengan jelas bagaimana user berpikir dan memerlukan data untuk query dan analisis. Star schema menggambarkan hubungan antar tabel sama seperti cara user melihat hubungan tersebut secara normal.
Mengoptimalkan navigasi Star schema mengoptimalisasikan navigasi melalui database sehingga lebih mudah dilihat. Meskipun hasil query terlihat kompleks, tetapi navigasi itu memudahkan user.
Paling cocok untuk pemrosesan query Star schema paling cocok untuk pemrosesan query karena skema ini berpusat pada query. Tanpa bergantung pada banyak dimensi dan kompleksitas query, setiap query akan dengan mudah dijalankan, pertama dengan memilih baris dari table dimensi dan kemudian menemukan baris yang sama di table fakta.
STAR join dan STAR index Skema bintang mengizinkan software pemroses query untuk melakukan pelaksanaan yang lebih baik. Itu dapat membuat perfoma skema spesifik yang dapat diimplementasikan dalam query. Susunan skema bintang lebih cocok untuk teknik perfoma yang khusus seperti STARjoin dan STARindex
Skema Snowflake (Snowflake Schema) Menurut Ponniah (2001, p235), Snowflake schema merupakan variasi lain dari skema bintang dimana tabel dimensi dari skema bintang dinormalisasi, seperti yang digambarkan pada gambar 2.12. Prinsip dasar dari skema ini tidak jauh berbeda dari star schema. Dalam menormalisasi tabel dimensi, ada beberapa pilihan yang dapat diperhatikan, antara lain : Secara parsial, lakukan normalisasi hanya beberapa table dimensi saja, dan sisakan yang lain tetap utuh. Secara lengkap atau parsial, lakukan normalisasi hanya pada beberapa tabel dimensi, dan tinggalkan yang tersisa dengan utuh. Secara parsial, lakukan normalisasi pada setiap table dimensi. Secara lengkap, lakukan normalisasi pada setiap table dimensi.
Contoh Model Skema Snowflake
Keuntungan Skema Snowflake Keuntungan dari skema snowflake ( Ponniah,2001,p238 ) adalah : 1. Memerlukan tempat penyimpanan yang lebih kecil 2. Struktur yang normal akan lebih mudah untuk diperbaharui dan dikelola
Skema Starflake (Starflake Schema) Menurut Connolly dan Begg (2005, p1185), “Starflake Schema adalah struktur yang diturunkan dari penggabungan konsep star schema dan snowflake schema”. Lebih lanjut mereka menuturkan “Beberapa dimensi memiliki kemungkinan dibentuk dengan kedua konsep Star Schema dan Snowflake Schema, hal ini disesuaikan dengan kebutuhan akan query yang dimiliki”.
Contoh Model Skema Starflake
Kesimpulan Snowflake Schema merupakan varian dari skema bintang dimana table-table dimensi tidak terdapat data yang di denormalisasi. Snowflake Schema memberi kemudahan pada perawatan dimensi, dikarenakan strukturnya yang lebih normalisasi. Snowflake schema adalah model data dimensional yang memiliki sebuah tabel fakta sebagai pusatnya, dikelilingi tabel-tabel dimensi yang ternormalisasi. Snowflake schema adalah sebuah variasi dari star schema dimana tabel dimensinya boleh memiliki dimensi. Penggunaan tabel dimensi pada snowflake schema sangatlah mendasar, sedangkan pada star schema tidak. Snowflake schema dibuat berdasarkan OLTP sehingga semua data akan termuat detail dalam setiap tabel fakta dan tabel dimensi.
Saran Keduanya merupakan model-model dimensional, perbedaannya terletak pada implementasi fisikal. Skema snowflake memberi kemudahan pada perawatan dimensi, dikarenakan strukturnya yang lebih normalisasi. Skema bintang lebih efisien serta sederhana dalam membuat query dan mudah diakses secara langsung oleh pengguna. Jika data yang digunakan kompleks sebaiknya menggunakan snowflake schema, namun jika data yang digunakan sederhana lebih baik kita menggunakan star schema.
Selesai
Ada pertanyaan ???