Anda di halaman 1dari 105

DATA WAREHOUSE

Presented by :

Helmy Faisal M Adam Mukharil B Adib Toriq

1. Why we need data warehouse? 2. Konsep data warehouse. 3. Data Transformation. 4. Perancangan data warehouse.

5. Query Language dan OLAP.

Why we need Data Warehouse

Fenomena Di Dunia Nyata

Fenomena Di Dunia Nyata


Saya butuh data untuk mengetahui .. Cara distribusi seperti apa yang cocok untuk menaikkan keuntungan? Produk baru apa yang memberikan pengaruh terhadap perusahaan

Customer mana yang memiliki tingkat margin yang paling tinggi?

Barang apa saja yang banyak dibeli oleh customer saya tahun ini?

Siapa saja yang menjadi customer dari perusahaan saya?

Fenomena Di Dunia Nyata

Saya butuh data yang konsisten untuk mengambil keputusan strategi bisnis perusahaan di masa yang akan datang !!

Fenomena Di Dunia Nyata (contd)

Fenomena Di Dunia Nyata (contd)

Fenomena Di Dunia Nyata (contd)

Gimana caranya saya bisa dapat data yang saya butuhkan ??

Fenomena Di Dunia Nyata (contd)


GoT Corp. Cabang: bandung, jakarta, palembang, dan papua. Manager butuh laporan penjualan berkala. Setiap cabang memiliki sistem operasional terpisah.

Fenomena Di Dunia Nyata (contd)


Papua

Jakarta
Penjulan per item per cabang untuk kurun waktu pertama Bandung Manajer Penjualan

Palembang

GoT Corp butuh solusi !!

Solusi Permasalahan 1
Jakarta

Laporan Bandung
Data Warehouse Papua Query & Analisis tools Manajer Penjualan

Palembang

Solusi Permasalahan 2
Operator Data Entry
Laporan Database Operasional Cabang ...

Transaksi

Extract data

Data Warehouse

Manajer Penjualan

Operator Data Entry

Kesimpulan

GoT Corp butuh data warehouse

Konsep Data Warehouse

Pengertian Data Warehouse


Sebuah tempat penyimpanan data yang lengkap dan konsisten yang berasal dari sumber-sumber yang berbeda dibuat untuk penggunanya agar mereka dapat mengerti dan menggunakannya dalam konteks bisnis.

[Barry Davlin]

Pengertian Data Warehouse (contd)


Sebuah proses transformasi data ke dalam sebuah informasi dan membuat informasi ini dapat diakses oleh penggunanya tepat waktu untuk membuat perubahan-perubahan (strategi bisnis).

[Forrester Research, 1996]

Pengertian Data Warehouse (contd)


1. Berorientasi subjek, 2. Diintegrasikan,

3. Time-variant,
4. Nonvolatile, Koleksi data untuk medukung proses pembuatan manajemen pengambilan keputusan. [Bill Inmon]

Subject Oriented
1. Data warehouse diorganisasikan dalam lingkup subjek, sebagai contoh: Penjualan, Produk, dan Pelanggan. 2. Berfokus ke dalam pemodelan dan analisis data untuk pihakpihak pembuat keputusan. 3. Memisahkan data yang tidak berguna di dalam proses pendukung keputusan.

Subject Oriented (contd)

Integrated
1. Data warehouse dikonstruksikan dengan cara mengintegrasikan sejumlah sumber data yang berbeda. 2. Data preprocessing diaplikasikan untuk meyakinkan kekonsistensian data.

Integrated (contd)
Savings Loans Trust Credit card

Same data different name

Different data Same name

Data found here nowhere else

Different keys same data

Integrated (contd)
Encoding Structures

Measurement of attributes

Multiple Sources

Data Type Formats

Integrated (contd)
Data Warehouse appl appl appl appl appl appl appl appl appl appl appl appl A - m,f B - 1,0 C - x,y D - male, female A - pipeline - cm B - pipeline - in C - pipeline - feet D - pipeline - yds A - balance B - bal C - currbal D - balcurr

Time-Variant
1. Menghasilkan informasi dari sudut pandang historical (misal: 5-10 tahun yang lalu). 2. Setiap struktur kunci mengandung elemen waktu.

Time-Variant (contd)

Time-Variant (contd)

Nonvolatile
1. Sekali data direkam maka data tidak bisa diupdate. 2. Data warehouse membutuhkan dua operasi pengaksesan data, yaitu: a. Initial loading of data b. Akses data

Nonvolatile (contd)

Membentuk Data Warehouse

Data Source

cleaning

Transformation

Data Warehouse

New Update

Arsitektur Data Warehouse


1. Data warehouse server Pada umumnya berbentuk DBMS relasional, jarang berbentuk file biasa. 2. OLAP Server Mendukung dan mengoperasikan dalam bentuk struktur multidimensional data.

Arsitektur Data Warehouse (contd)


3. Clients a. Tools untuk Query dan Pelaporan b. Tools untuk menganalisis c. Tools untuk data mining.

Arsitektur Data Warehouse (contd)


4. Metadata Repository Tempat menyimpan informasi tentang data yang ada di datawarehouse.

Arsitektur Data Warehouse (contd)


Relational Databases
Optimized Loader

ERP Systems

Extraction Cleansing Data Warehouse Engine Analyze Query

Purchased Data

Legacy Data

Metadata Repository

Data Transformation

Data Transformation
Fase yang terjadi ketika mengintegrasikan data ke dalam data warehouse.

Aturan-Aturan Data Transformation


1. Extracting 2. Conditioning 3. Scrubbing 4. Merging 5. Householding 6. Enrichment 7. Scoring 8. Loading 9. Validating 10. Delta Updating

Extracting
1. Mengambil data dari sumber operational dalam as is status. 2. Sumber-sumber data berasal dari mainframes yang hampir seluruhnya berupa database relasional.

Conditioning
Perubahan tipe data dari sumber data ke target data (data warehouse) tetap dalam bentuk database relasional.

Scrubbing
1. Digunakan untuk membersihkan/meningkatkan kualitas data. 2. Contoh: Adam M.B., Adam MB, Adam Mukharil B. Adalah orang yang sama.

Scrubbing (contd)

Merging
Proses penggabungan data dengan memperhatikan aturan-aturan dalam mengintegrasikan data.

Householding
1. Mengidentifikasi semua anggota dari household (berada di alamat yang sama) untuk mengirimkan report. 2. Menjamin hanya satu jenis dokumen saja yang dikirimkan kepada setiap household karena mengirimkan multiple report akan mengakibatkan naiknya cost pada data warehouse.

Householding (contd)

Enrichment
Mengambil data dari sumber data eksternal (di luar data source yang seharusnya) untuk memperkaya data operasional yang sudah ada.

Scoring
Komputasi probabilitas tentang sebuah event, sebagai contoh menghitung kemungkinan pelanggan membeli produk baru.

Loading
1. Proses menambah atau menyisipkan data baru. 2. Teknik: a. Menggunakan SQL untuk menambah atau menyisipkan data baru b. Menggunakan batch load utility.

Validating
Proses pemeriksaan kebenaran suatu data yang dihasilkan dari penggabungan.

Delta Updating
Proses update yang hanya akan mengupdate data baru saja tanpa menghasilkan duplikasi record.

Refresh
1. Proses yang mempropagasi terjadinya proses pengupdatean dari sumber data ke data warehouse. 2. Pertanyaan yang sering muncul: a. Kapan harus melakukan refresh b. Bagaimana cara melakukan refresh.

Kapan Harus Refresh?


1. Secara Periodik (setiap malam, setiap minggu) atau setelah event-event yang signifikan. 2. Ketika data warehouse membutuhkan data yang bersangkutan. 3. Berdasarkan kebijakan refresh yang dibuat oleh administrator berdasarkan kebutuhan pengguna dan traffic.

Bagaimana Teknik untuk Refresh?


1. Full extract dari tabel-tabel dasar Kekurangan: a. Mahal b. Hanya untuk legacy systems. 2. Mendeteksi perubahan.

Mendeteksi Perubahan
1. Membuat snapshot dari tabel log yang menyimpan perubahan pada sumber data. 2. Setiap perubahan record akan memicu update ke dalam snapshot log table.

Perancangan Data Warehouse

Pendekatan Perancangan
1. Pendekatan normalisasi

2. Pendekatan dimensional.

Pendekatan Perancangan
1. Pendekatan normalisasi

2. Pendekatan dimensional.

Pendekatan Normalisasi
1. Data dalam data warehouse disimpan berdasarkan aturan normalisasi data. 2. Kelebihan: mudah untuk menambahkan informasi ke dalam database. 3. Kekurangan: banyak tabel yang terlibat sehingga akan menimbulkan kesulitan dalam penggabungan data.

Pendekatan Dimensional
1. Data transaksi dipartisi menjadi fakta (data transaksi numerik) dan dimensi (refernsi informasi dari fakta). 2. Kelebihan: data warehouse akan lebih mudah dimengerti oleh penggunanya. 3. Kekurangan: susah mempertahankan integritas dari fakta dan dimensi.

Mana Yang Digunakan???


Pendekatan dimensional lebih sering digunakan walaupun terkadang di dalam pendekatannya tetap membutuhkan normalisasi.

Perancangan Skema
1. Harus mirip seperti alur bisnis nyatanya. 2. Harus dikenal oleh pelaku bisnis. 3. Memiliki pendekatan dari sisi pelaku bisnis. 4. Harus SIMPEL.

Tabel Dimensi
1. Small tables. 2. Direlasikan dengan tabel fakta oleh foreign key. 3. Memiliki indeks. 4. Memiliki tipikal berupa dimensi seperti: periode waktu, geographic region, product, dan pelanggan.

Tabel Fakta (Fact Tables)


1. Central table. 2. Kebanyakan berisi item-item numerik yang masih mentah. 3. Memiliki jumlah baris yang banyak. 4. Diakses via tabel dimensi.

Tabel Dimensional
Info Agen

Kolom-kolom kunci dari tabel fakta juga kunci dari tabel-tabel dimensi

Ukuran numerik dari tabel fakta

Kode Produk Kode Waktu Kode Agen Penjualan Jumlah

Info Produk

...

...

...

...

...

Tabel-tabel dimensi

Tabel fakta
Info Waktu

Skema Data Warehouse


1. Skema Star. 2. Skema Fact Constellation. 3. Skema Snowflake

Skema Star
1. Sebuah fact table yang besar dan tersentralisasi. 2. Satu tabel untuk setiap dimensi. 3. Setiap fact points untuk satu tuple dalam setiap dimensinya dan memiliki atribut tambahan. 4. Mudah dimengerti dan mengurangi jumlah dari physical joins. 5. Mudah untuk mendefinisikan hirarkinya.

Skema Star (contd)


T i e p r o d

date, custno, prodno, cityname, ...

m
f a c t

c u s t

C i t y

Skema Star (contd)


Store Dimension Store Key Store Name City State Region Fact Table Store Key Product Key Time Dimension Period Key Year Quarter

Period Key
Units Price

Month

Product Key

Product Desc
Product Dimension

Skema Fact Constellation


1. Beberapa fact tables berbagi tabel dimensi. 2. Ditampilkan sebagai koleksi dari kumpulan skema bintang yang sering disebut sebagai skema galaxy. 3. Dibutuhkan oleh aplikasi yang canggih.

Skema Fact Constellation (contd)

Hotels

Booking
Checkout
Customer

Promotion

Travel Agents

Room Type

Skema Fact Constellation (contd)


Sales Fact Table Store Key Product Key Period Key Units Price Product Dimension

Shipping Fact Table


Shipper Key Store Key Product Key

Product Key
Product Desc

Period Key
Units Price

Store Dimension
Store Key Store Name City State Region

Skema Snowflake
1. Merupakan variant dari model skema star. 2. Sebuah fact tables yang besar dan tersentralisasi serta satu atau lebih tabel untuk setiap dimensi. 3. Tabel dimensi dinormalisasi dengan cara men-split data pada tabel dimensi ke dalam tabel tambahan. 4. Mudah untuk maintenance dan menghemat storage.

Skema Snowflake (contd)


T i e
date, custno, prodno, cityname, ...

m
f a c t

p r o d

c u s t

c i t y

r e g i o n

Skema Snowflake (contd)


Store Dimension
Store Key Store Name City Key City Dimension City Key City State Region Fact Table Store Key Product Key Period Key Time Dimension Period Key Year

Quarter
Month

Units
Price

Product Key
Product Desc Product Dimension

Query Language & OLAP

Keterbatasan SQL
Mari kita lihat tabel penjualan berikut:

Keterbatasan SQL (contd)


Berikutnya kita lihat tabel produk:

Keterbatasan SQL (contd)


Berikutnya... Tabel Gudang:

Keterbatasan SQL (contd)


Terakhir... Tabel Kota:

Keterbatasan SQL (contd)


ERD:

Keterbatasan SQL (contd)


Masalah query: Berapa banyak Colgate toothpaste yang dijual di kota kecil (berdasarkan populasi) kemarin dan di hari yang sama sebulan yang lalu?

Keterbatasan SQL (contd)


Query Pemecahan:
select sum(sales.quantity_sold)

from sales, products, stores, cities


where products.manufacturer_id = 68 -- restrict to Colgateand products.product_category = 'toothpaste and cities.population < 40000

and sales.datetime_of_sale::date = 'yesterday'::date


and sales.product_id = products.product_id and sales.store_id = stores.store_id and stores.city_id = cities.city_id

PEMECAHAN

OLAP
(Online Analytical Processing)

OLAP
1. Merepresentasikan data dengan kubus multidimensional lebih mudah dimengerti. 2. OLAP memberikan jawaban terhadap query analytic untuk data multidimensional. 3. Aspek: ukuran (besaran data) dan dimensi (parameter bisnis). 4. Contoh melihat penjualan (ukuran) menurut wilayah, waktu dan produk (dimensi).

OLAP (contd)

Tabel fakta:
sale prod-Id p1 p2 p1 p2 p1 p1 store-Id s1 s1 s3 s2 s1 s2 tgl 1 1 1 1 2 2 jumlah 12 11 50 8 44 4

Kubus 3-dimensi:

tgl 2 tgl 1

p1 p2 s1 p1 12 p2 11

s1 44 s2 8

s2 4 s3 50

s3

Operasi OLAP
1. Slice and dice 2. Role up dan drill down
850

Produk
323 714 Rabu Selasa Senin 001

3. Pivot

Pelanggan
002

Penjualan
003

Slicing and Dicing


Mengambil potongan kubus berdasarkan nilai tertentu pada satu dimensi atau beberapa dimensinya.

Slicing and Dicing (contd)

tgl 2 tgl 1

p1 p2 s1 p1 12 p2 11

s1 44 s2 8

s2 4 s3 50

s3

WAKTU = tanggal 1
s1 12 11 s2 8 s3 50

p1 p2

Pivoting
1. Menampilkan nilai-nilai ukuran dalam tata letak tabel yang berbeda. 2. Mengatur kembali dimensi dalam sebuah kubus data.

Pivoting (contd)

Slicing and Pivoting

Produk Toko t1 Electronics Toys Clothing Cosmetics Electronics Toys Clothing Cosmetics

Toko t2

Penjualan (juta $) Waktu Tgl-1 Tgl-2 $5.2 $1.9 $2.3 $1.1 $8.9 $0.75 $4.6 $1.5

Produk Toko t1 Electronics Toys Clothing Cosmetics Electronics Toys Clothing

Penjualan (juta $) Tgl-1 Toko t1 Toko t2 $5.2 $8.9 $1.9 $0.75 $2.3 $4.6 $1.1 $1.5

Toko t2

Roll Up
1. Generalisasi satu atau beberapa dimensi dengan merangkum nilai-nilai ukurannya 2. Generalisasi: naik ke tingkat yang lebih umum dalam hirarki dimensi.

Roll Up (contd)
Contoh: penghitungan total
tgl 2 tgl 1
p1 p2 s1 p1 12 p2 11 s1 44 s2 8 s2 4 s3 50 s3

...

sum
p1 p2 s1 56 11 s2 4 8 s3 50

s1 67

s2 12

s3 50

129
p1 p2 sum 110 19

Drill Down
1. Mendapatkan lebih detail tentang dimensi. 2. Navigasi dari tingkat yang lebih umum ke tingkat yang lebih spesifik.

Drill Down (contd)

Data Agregat
1. Penggabungan beberapa data yang digunakan untuk mempermudah pembuatan query. 2. Data agregat disimpan dalam tabel fakta.

Data Agregat (contd)

tgl 2
tgl 1

p1 p2 * s1

s1 56 11 67 s2

s2 4 8 12 s3
* 62 19 81

s3 50 50 * 48

* 110 19 129

p1 p2 *

p1 p2 s1 * 12 11 23

44
s2 44 8 8

4
s3 4 50 50

48

penjualan(*,p2,*)

Query Operation
1. Create Dimension

2. Pengelompokkan Cube (kubus) 3. Operator Analisis

Create Dimension
Ditujukan untuk pembuatan dimensi,

penentuan dimensi yang spesifik dan


general.

Create Dimension (contd)


CREATE DIMENSION StoreDim LEVEL StoreId IS Store.StoreId LEVEL City IS Store.StoreCity LEVEL State IS Store.StoreState LEVEL Zip IS Store.StoreZip LEVEL Nation IS Store.StoreNation LEVEL DivId IS Division.DivId HIERARCHY CityRollup ( StoreId CHILD OF City CHILD OF State CHILD OF Nation ) HIERARCHY ZipRollup ( StoreId CHILD OF Zip CHILD OF State CHILD OF Nation ) HIERARCHY DivisionRollup ( StoreId CHILD OF DivId JOIN KEY Store.DivId REFERENCES DivId ) ATTRIBUTE DivId DETERMINES Division.DivName ATTRIBUTE DivId DETERMINES Division.DivManager ;

Pembuatan Dimensi

Penentuan spesifik dan general

Pengelompokan Data Cube


Pengelompokan data dalam kubus

dimensional untuk mempermudah analisis


data.

Pengelompokan Data Cube (contd)


SELECT StoreZip, TimeMonth, SUM(SalesDollar) AS SumSales FROM Sales, Store, Time WHERE Sales.StoreId = Store.StoreId AND Sales.TimeNo = Time.TimeNo AND (StoreNation = 'USA' OR StoreNation = 'Canada') AND TimeYear = 2002 GROUP BY CUBE (StoreZip, TimeMonth)
Digrupkan dalam bentuk cube (dimensional)

Operasi OLAP
Cari total amounts untuk hari pertama: SELECT sum(amt) FROM SALE WHERE date=1

sale

prodId p1 p2 p1 p2 p1 p1

storeId s1 s1 s3 s2 s1 s2

date 1 1 1 1 2 2

amt 12 11 50 8 44 4

81

Operasi OLAP (contd)


Total amounts menurut tanggal: SELECT date,sum(amt) FROM SALE GROUP BY date

sale

prodId p1 p2 p1 p2 p1 p1

storeId s1 s1 s3 s2 s1 s2

date 1 1 1 1 2 2

amt 12 11 50 8 44 4

result

date 1 2

sum 81 48

Question PLEASE!!!