Desain Data Warehouse (Dimensional Modelling)
Mendisain Sebuah Data Warehouse Mendisain database untuk data warehouse adalah problem utama dalam mendisain data warehouse Ada dua pendekatan utama dalam perancangan data warehouse Pemodelan dan normalisasi entity relationship (ER) Pemodelan berdimensi
Perancangan Database Menggunakan Pendekatan E-R yang Tradisional Entities and Relationships Aturan Normalisasi Umumnya 3NF Menjaga integritas database dengan menghindari anomalies Pemikiran yang berbeda antara logical dan physical
Contoh Normalisasi Sebuah perusahaan manufaktur membuat produk dari beberapa komponen. Setiap produk mempunyai suatu nomor produk yang tersendiri, nama dan waktu perakitan. Semua komponen mempunyai nomor komponen tersendiri, diskripsi, kode supplier dan harga.
Database Yang Sudah Dinormalisasikan Product (ProductCode, Name, Time) Parts (ProductCode, ComponentCode, Qty) Component (ComponentCode, Description, Supplier, Cost) Parts Product Component
Isi Database Ternormalisasi
Conceptual Modeling of Data Warehouses Modeling data warehouses: (Dimensional Modeling) Star schema: A fact table in the middle connected to a set of dimension tables Snowflake schema: A refinement of star schema where some dimensional hierarchy is normalized into a set of smaller dimension tables, forming a shape similar to snowflake Fact constellations: Multiple fact tables share dimension tables, viewed as a collection of stars, therefore called galaxy schema or fact constellation
Example of Star Schema item branch time Sales Fact Table time_key day day_of_the_week month quarter year time item_key item_name brand type supplier_type item Sales Fact Table time_key item_key branch_key branch_key branch_name branch_type branch location_key street city province_or_street country location location_key units_sold dollars_sold avg_sales Measures
Example of Snowflake Schema time_key day day_of_the_week month quarter year time item_key item_name brand type supplier_key item supplier_key supplier_type supplier Sales Fact Table time_key item_key branch_key location_key street city_key location branch_key branch_name branch_type branch location_key units_sold city_key city province_or_street country dollars_sold avg_sales Measures
Example of Fact Constellation time_key day day_of_the_week month quarter year time item_key item_name brand type supplier_type item Shipping Fact Table Sales Fact Table time_key item_key time_key shipper_key item_key from_location branch_key branch_key branch_name branch_type branch location_key to_location location_key street city province_or_street country location dollars_cost units_sold units_shipped dollars_sold avg_sales shipper_key shipper_name location_key shipper_type shipper Measures
Pendekatan Pada Perancangan Data Warehouse Ada banyak sekali pendekatan yang diajukan oleh para pengembang dan konsultan mengenai data warehouse Ini harus diperhatikan sebagai satu kesatuan proses perkembangan data warehouse sepenuhnya
Apa sebenarnya multi-dimensional database? Suatu pendekatan pada perancangan database yang dapat memberikan database yang mudah dimengerti dan mudah dinavigasikan Tujuannya adalah untuk mendorong pengertian, eksplorasi dan pembelajaran Setiap nomor mempunyai satu set atribut yang terasosiasikan Apa yang direpresentasikan, kapan dibuat, darimana datangnya, produk apa saja yang terkait, promosi apa, dll
Multi-Dimensionality Biasanya mengenai ruangan informasi dalam bentuk cubes atau hyper cubes atau n-cubes Setiap atribut terkait dengan setiap nomor merepresentasikan suatu dimensi Ukuran, waktu, tempat, produk, lokasi dll Tampilan database yang dihasilkan mudah untuk dinavigasikan dan dipindahkan Slice and dice Report template
Tahapan dalam Proses Disain 1. Memilih proses bisnis 2. Memilih inti dari fact table 3. Memilih dimensi 4. Memilih fact yang terukur (umumnya numeric, additive quantities) 5. Melengkapi tabel dimensi (Kimball, 1996)
Tahapan Ekstra Dalam Proses Disain Menentukan strategi untuk mengubah dimensi secara pelan-pelan Membuat agregat dan komponen penyimpanan fisik lainnya Menentukan waktu histori dari database Menentukan tingkat keperluan data yang mana yang perlu diekstrak dan diload ke dalam data warehouse KimbalL (1996)
Contoh: Usaha Retail Perusahaan grocery besar dengan perkiraan 500 outlet Setiap outlet mempunyai sekitar 60000 produk dalam tampilannya SKU – Stock Keeping Unit UPC – Universal Product Code
Usaha Retail Perlu untuk memaksimalkan keuntungan dan tetap menjaga stok agar tetap ada Keputusan penting untuk masalah harga dan promosi Tipe promosi adalah: Discount harga sementara Reklame surat kabar Tampilan lemari dan lorong Kupon
Usaha Retail Memilih Proses Bisnis Memilih inti dari tabel fact Pergerakan barang harian Memilih inti dari tabel fact SKU by store by promotion by day Memilih dimensi Waktu, Produk, Toko dan Promosi
Dimensi Usaha Retail
Usaha Retail Memilih fact terukur
Usaha Retail: Dimensi Lengkapi tabel dimensi
Usaha Retail: Dimensi Produk
Usaha Retail: Dimensi Toko
Usaha Retail: Dimensi Promosi
Catatan Untuk Masalah Hierarchies Hirarki yang jelas tidak diperlukan untuk mendukung drilling down Detailnya sering harus disimpan secara eksplisit Hirarki di dalam dimensi sangat penting Memungkinkan untuk melakukan drill up dan drill down Contoh: day, week, month, quarter, year Hirarki independen yang berkelipatan
More OLAP - Dimensional modeling www.cl.cam.ac.uk/Teaching/current/Databases/
Conceptual Modeling of Data Warehouses Modeling data warehouses: dimensions & measures Star schema: A fact table in the middle connected to a set of dimension tables Snowflake schema: A refinement of star schema where some dimensional hierarchy is normalized into a set of smaller dimension tables, forming a shape similar to snowflake Fact constellations: Multiple fact tables share dimension tables, viewed as a collection of stars, therefore called galaxy schema or fact constellation
Star
Star Schema
Terms Fact table Dimension tables Measures
Another Star Schema item branch time Sales Fact Table time_key day day_of_the_week month quarter year time item_key item_name brand type supplier_type item Sales Fact Table time_key item_key branch_key branch_key branch_name branch_type branch location_key street city province_or_street country location location_key units_sold dollars_sold avg_sales Measures
Dimension Hierarchies sType store city region è snowflake schema è constellations
Cube Fact table view: Multi-dimensional cube: dimensions = 2
3-D Cube Fact table view: Multi-dimensional cube: dimensions = 3 day 2
Aggregates Add up amounts for day 1 In SQL: SELECT sum(amt) FROM SALE WHERE date = 1 81
Aggregates Add up amounts by day In SQL: SELECT date, sum(amt) FROM SALE GROUP BY date
Another Example Add up amounts by day, product In SQL: SELECT date, sum(amt) FROM SALE GROUP BY date, prodId rollup drill-down
Aggregates Operators: sum, count, max, min, median, ave “Having” clause Using dimension hierarchy average by region (within store) maximum by month (within date)
Cube Aggregation Example: computing sums . . . 129 rollup drill-down day 2 . . . day 1 129 drill-down rollup
Cube Operators . . . sale(c1,*,*) 129 sale(c2,p2,*) sale(*,*,*) day 2
Extended Cube * day 2 sale(*,p2,*) day 1
Aggregation Using Hierarchies day 2 day 1 customer region country (customer c1 in Region A; customers c2, c3 in Region B)
Pivoting Fact table view: Multi-dimensional cube: day 2 day 1