Tutorial Penerapan Slowly Changing Dimension di SQL 2005 (Part 1)
Posted on February 6, 2008
Menyambung tulisan sebelumnya tentang penggunaan Slowly Changing Dimension (SCD), saat ini saya akan memberikan sedikit tutorial tentang penerapan SCD di SQL 2005. Dalam hal ini saya akan menggunakan Database AdventureWorks dan AdventureWorksDW yang terdapat dalam sample-nya SQL 2005. Seperti kita ketahui 2 database tadi menunjukan 2 proses dalam tahapan pengembangan BI Solution, yaitu bermula dari OLTP –> Data Warehouse (staging), Star Schema sebelum menjadi sebuah cube.
Sebelumnya kita lihat kondisi tabel dan struktur data di AdventureWorks :
Fokus kita adalah sebuah tabel SalesPerson, di dalam tabel ini terdapat data Employee karyawan yang berfungsi sebagai sales di organisasi adventureworks ini. Selain itu ada data salesterritory sebagai reference tabel untuk SalesPerson yang digunakan untuk meng-identifikasi area teritory sales yang ada. Akan tetapi seiring perubahan waktu, tentunya seorang sales person akan mempunyai teritory yang berbeda seiring dengan perkembangan organisasi. Secara fisik pada saat terjadi perubahan territory sales akan menggunakan data yang terkini sehingga semua penjualan seorang sales pada waktu dia menjadi bagian dari territory sebelum-nya akan hilang, digantikan dengan penjualan seorang sales di teritory yang baru dengan data menggunakan teritori yang lama. Kalau sebuah teritori tadi menjadi bagian performance management-nya seorang branch manager, tentunya si branch manager ini akan kehilangan revenue / GP di mata management. Oleh karena itu diperlukan sebuah pendekatan khusus yang di sebut sebagai Slowly Changing Dimension (lihat blog saya sebelumnya).
Sekarang kita buat sebuah simulasi untuk melakukan sebuah proses perubahan data OLTP-nya adventureworks.
1. Execute stored Procedure dari SSMS : uspInsertSalesPerson_new (adventureWorks database), kalau belum ada silakan ambil disini script-nya. ingat jalankan script ini di AdventureWorks DB.
2. Setelah proses pembuatan stored procedure selesai : jalankan script ini utk menambah record baru ke dalam Sales.SalesPerson tabel. :
declare @msg varchar(100)EXECUTE [AdventureWorks].[Sales].[uspInsertSalesPerson_new]
‘123456778′
,’mr.’
,’Sony’
,’S’
,’Setiawan’
,’Sales Representative’
,’M’
,’M’
,’Pasific: Australia’
,@msg output
Hasil dari eksekusi ini akan disimpan di dalam beberapa tabel sesuai dengan diagram relationship di atas.
Langkah berikut-nya adalah melakukan update ke salah satu field yang ada di dalam sales person, misal-nya terjadi perubahan dalam informasi sales territory-nya. Sedangkan update yang satu lagi adalah update terhadap kolom lastname.
3. Untuk melakukan update silakan ambil disini sebuah file utk pembuatan stored procedure yang melakukan update terhadap data salesperson. Eksekusi di database AdventureWorks. dan kemudian eksekusi data update-nya seperti ini :
EXECUTE [AdventureWorks].[Sales].[uspUpdateSalesPerson_new]280
,10
,’Ms.’
,’Shannon’
,’P.’
,’Elliott’
Sebagai informasi nilai yang berubah hanya nilai sales teritory ID dari 1 menjadi 10. Berarti mulai dari sekarang nilai sales teritory id utk ’shannon elliot’ menjadi 10. Kemudian eksekusi update perubahan lastName :
277
,3
,’Ms.’
,’Linda’
,’R.’
,’Ecoffey’
Selesai Part 1:
» Filed Under Database
Comments
2 Responses to “Tutorial Penerapan Slowly Changing Dimension di SQL 2005 (Part 1)”
Leave a Reply
thank’s
ur welcome