DataWarehousing
–Decission Support System –ETL, OLAP, OLTP –Model Dimensi: Skema Star & Snowflake
1
Datawarehousing Decission Support System •Decision-support systems merupakan aplikasi yang digunakan untuk membantu mengambil keputusankeputusan bisnis seringkali berdasarkan data yang dikumpulkan oleh aplikasi OLTP (on-line transaction processing). •Contoh-contoh keputusan bisnis: – Item apa yang harus disediakan? – Premi asuransi apa yang harus diubah? – Siapa yang harus dikirimi iklan? •Contoh-contoh data yang digunakan untuk membuat keputusan-keputusan tersebut: – Rincian transaksi penjualan eceran – Profil pelanggan (penghasilan, usia, jenis kelamin, dll)
2
Datawarehousing Decission Support System Untuk melakukan pengambilan keputusan ini terdapat tiga buah kecenderungan yang saling melengkapi satu sama lain: – Datawarehousing, On-Line Analytical Processing, Data Mining •Data Warehousing: Gabungan data dari banyak sumber yang disimpan dalam satu tempat penyimpanan yang berukuran besar. – Terdapat tiga proses penting: Extract, Clean, Trasform, Load, Refresh – Extract: Pengambilan data dari sumber eksternal (operational database) – Clean: membersihkan data untuk mengurangi eror dan mengisi informasi yang hilang, mengubah data mentah (jika perlu) untuk melakukan integrasi semantik – Transform: mendefinisikan relational view untuk data yang sudah dibersihkan tersebut – Load: Mematerialisasi view yang diperoleh pada fase trasform dan menyimpannya di penyimpanan (warehouse) – Refresh: Dilakukan secara periodik untuk melihat data operasional terbaru dan membersihkan data yang dianggap kadaluarsa. •OLAP: Analisis interaktif terhadap data, memungkinkan data untuk dirangkum dan dilihat dengan cara yang berbeda dengan langsung (dengan delay yang bisa diabaikan) – View dan query SQL kompleks, – Query berdasarkan operasi bergaya spreadsheet dan data dengan view multidimensional, Query dilakukan secara interaktif dan on-line. •Data Mining: Usaha-usaha penyelidikan untuk mencari kecenderungan (data) yang menarik dan keanehan-kenehan (anomaly) – Menemukan pengetahuan dalam bentuk aturan-aturan statistik dan pola-pola 3 dari database yang berukuran sangat besar
EXTERNAL DATA SOURCES
Datawarehousing, OLAP & Datamining
Datawarehousing • Data terintegrasi untuk jangka waktu yang lama, seringkali ditambah dengan rangkuman informasi • Beberapa gigabyte sampai terabyte ukurannya. • Interaktif response time; jarang sekali terjadi perubahan terhadap data
EXTRACT TRANSFORM LOAD REFRESH
Metadata Repository
DATA MINING
DATA WAREHOUSE
SUPPORTS
OLAP
4
Datawarehousing Isu-isu yang harus diperhatikan •Semantic Integration: Ketika memperoleh data dari sumber yang beragam, maka harus menghilangkan ketidakcocokan yang mungkin timbul, misal., mata uang yang berbeda, skema yang berbeda. •Heterogeneous Sources: Harus mengakses data dari format penyimpanan dan tempat yang beragam. – Dapat memanfaatkan kemampuan replikasi data. •Load, Refresh, Purge: Harus mengisikan (load) data, secara periodik mengecek data yang terbaru (refresh), dan mengeluarkan data yang terlalu tua. •Metadata Management: Melacak sumber, waktu pemasukan, dan informasi lain untuk semua data di warehouse. 5
locid sales
timeid
Model Data Multidimensional
pid
Datawarehousing
11 1 1 25
• Kumpulan measures (ukuran), yang tergantung terhadap sekumpulan dimensions (dimensi). – E.g., ukuran Sales, dimensinya adalah Product (key: pid), Location (locid), dan Time (timeid).
11 2 1 8 11 3 1 15 12 1 1 30 12 2 1 20
irisan locid=1
pid 11 12 13
12 3 1 50 8
10
10
13 1 1 8
30
20
50
13 2 1 10
25
8
15
1
2 3 timeid
locid
13 3 1 10 11 1 2 35 6
Datawarehousing MOLAP vs ROLAP •Multidimensional data dapat disimpan secara fisik dalam sebuah array pada disk; disebuat sebagai sistem MOLAP. Selain itu, kita juga dapat menyimpan multidimensional data sebagai suatu relasi; pendekatan ini disebut sistem ROLAP. •Relasi utama, yang menghubungkan dimensi terhadap measure, disebut sebagai fact table. Masing-masing dimensi dapat mempunyai atribut-atribut tambahan dan satu buah dimension table yang bersesuaian. – E.g., Products(pid, pname, category, price) – Fact table jauh lebih besar dari dimensional table. 7
Datawarehousing Hierarki Dimensi Untuk masing-masing dimensi nilai atributnya dapat diorganisir ke dalam suatu hierarki
PRODUCT
TIME
LOCATION
year quarter category pname
week
month date
country state city 8
Datawarehousing OLAP Query • Fungsi Aggregate pada SQL-92 sangat terbatas – Banyak fungsi-fungsi aggregate yang sangat sulit atau bahkan mustahil untuk dispesifikasikan • Data cube • Complex aggregates (median, variance) • binary aggregates (correlation, regression curves) • ranking queries (“urutkan student berdasarkan total nilai yang diperoleh olehnya” • SQL:1999 OLAP memberikan beberapa fungsi aggregate tambahan untuk mengatasi keterbatasan tersebut – Didukung oleh beberapa database, termasuk Oracle dan IBM DB2
9
Datawarehousing OLAP Query (lanjt) • Dipengaruhi oleh SQL dan spreadsheet. • Operasi yang umum adalah untuk melakukan fungsi aggregate suatu measure terhadap satu atau lebih dimensi. – Cari total penjualan (total sales). – Cari total sales untuk masing-masing kota, atau untuk masing-masing negara bagian. – Cari produk lima besar yang diurutkan berdasar total penjualan. • Roll-up: Melakukan fungsi aggregate dari tingkat dimensi yang rendah ke tingkat yang lebih tinggi. – E.g., Jika diberikan total sales per kota, maka dapat dilakukan roll-up untuk mengetahui total sales per negara bagian. 10
Datawarehousing OLAP Query (lanjt) •
•
Drill-down: Lawan dari roll-up – E.g., Jika diberikan total penjualan per negara bagian, maka dapat diperoleh total penjualan per kota dengan melakukan drill-down. – E.g., Juga dapat melakukan drill-down pada dimensi yang berbeda untuk memperoleh total penjualan per produk per negara bagian. Pivoting: Fungsi Aggregate pada dimensi-dimensi yang dipilih. – E.g., Pivoting pada Location dan menghasilkan cross-tabulation berikut ini:
WI
• Slicing and Dicing: Equality dan range selection pada satu atau lebih dimensi
CA
Total
1995
63
81 144
1996
38 107 145
1997
75
Total
176 223 339
35 110 11
Datawarehousing Perbandingan dengan Query SQL • Operasi cross-tabulation (pivoting) dapat dihitung secara sederhana menggunakan serangkaian query SQL biasa: SELECT SUM(S.sales) FROM Sales S, Times T, Locations L WHERE S.timeid=T.timeid AND S.timeid=L.timeid GROUP BY T.year, L.state SELECT SUM(S.sales) FROM Sales S, Times T WHERE S.timeid=T.timeid GROUP BY T.year
SELECT SUM(S.sales) FROM Sales S, Location L WHERE S.timeid=L.timeid GROUP BY L.state 12
Datawarehousing Operator CUBE • Secara umum jika ada k dimension, maka kita akan mempunyai 2^k kemungkinan query SQL GROUP BY yang dapat dibangkitkan malalui pivoting pada masing-masing himpunan bagian dimension. • Query-query di atas dapat diganti dengan satu buah query yang dapat membangkitkan kedelapan kombinasi group dy dengan satu operator CUBE. SELECT P.pid, L.locid, T.timeid, SUM(S.sales) FROM Products P, Times T, Locations L GROUP By Cube (P.pid, L.locid, T.timeid) 13
Datawarehousing Ranking • Ranking dilakukan bersamaan dengan spesifikasi order by. • Jika diberikan relasi student-marks(student-id, marks), misalnya temukan ranking untuk masing-masing student berdasar nilai yang diperoleh select student-id, rank( ) over (order by marks desc) as s-rank from student-marks • Klausa order by tambahan harus ditambahakan untuk membuatnya terurut berdasarkan ranking select student-id, rank ( ) over (order by marks desc) as s-rank from student-marks order by s-rank • Ranking dapat meniggalkan gap: e.g. jika 2 student mempunyai nilai yang sama, keduanya akan mempunyai ranking 1, dan ranking berikutnya adalah 3 – dense_rank meninggalkan gap, sehingga ranking berikutnya adalah 2
14
Datawarehousing Windowing
• E.g.: “Jika diberikan nilai penjualan untuk masing-masing tanggal, hitunglah untuk masing-masing tanggal tersebut rata-rata penjualan hari itu, hari kemarin, dan hari berikutnya” • Query moving average seperti ini digunakan untuk melihat perkembangan penjualan. • Tidak seperti halnya group by, window operator, dapat menyebabkan tuple yang sama berada dalam beberapa window • Spesifikasi Window dalam SQL: – Urutan tuple, ukuran window untuk masing-masing tuple, fungsi aggregate. – E.g. diberikan relasi sales(date, value), dapat dilakukan window query berikut: select date, sum(value) over (order by date between rows 1 preceding and 15 following) from sales
Datawarehousing
Star-Schema timeid
TIMES date
week
month
quarter
year
pid timeid locid sales
holiday_flag SALES (Fact
PRODUCTS
pid pname category price •
•
table)
LOCATIONS
locid
city
state
country
Fact table berada dalam bentuk BCNF; tetapi dimension table tidak dinormalisasi. – Dimension table berukuran relatif lebih kecil; sehingga update/insert/delete jarang sekali dilakukan. Sehigga, anomali terhadap data (karena tidak dinormalisasi) tidak terlalu penting dibandingkan dengan performansi query yang bagus. Skema seperti ini sangat umum dalam aplikasi-aplikasi OLAP, dan disebut sebagi skema star; menghitung join untuk semua relasi ini disebut star join. • Skema yang lebih rumit contohnya adalah – Snowflake schema: dimension table terdiri dari beberapa 16 tingkat – Constellation: terdapat lebih dari satu fact table
Datawarehousing
Bitmap Index Bit-vector: F 1 bit untuk Masing-masing nilai.
sex M
10 10 01 10
custid name sex rating
112 115 119 112
Joe Ram Sue Woo
M M F M
3 5 5 4
rating
00100 00001 00001 00010
17
Datawarehousing Kesimpulan • Aplikasi pendukung pengambilan keputusan (Decision support system) melibatkan pembuatan tempat penyimpanan data yang berukuran sangat besar yang disebut datawarehouse. • Warehouse dimanfaatkan dengan bantuan teknikteknik analisis yang paling canggih: query kompleks dan OLAP yang dipengaruhi oleh baik SQL maupun spreadsheet. • OLAP digunakan untuk menjawab pertanyaanpertanyaan (masalah) yang bersifat jangka pendek (kekinian) • Sedangkan datamining digunakan untuk menjawab permasalahan-permasalahan yang bersifat strategik (jangka panjang) seperti menentukan pola pembelian oleh pembeli, produk apa yang harus di jual tahun depan dan serangkaian pengetahuan lain yang tersembunyi dalam data yang ada di datawarehouse18.