4) Database and Datawarehouse Module
4) Database and Datawarehouse Module
Training Module
October 2010
For the latest information, please see bluejack.binus.ac.id
I
Information in this document, including URL and other Internet Web site references, is
subject to change without notice. This document supports a preliminary release of software
that may be changed substantially prior to final commercial release, and is the proprietary
information of Binus University.
The entire risk of the use or the results from the use of this document remains with the
user. Complying with all applicable copyright laws is the responsibility of the user. Without
limiting the rights under copyright, no part of this document may be reproduced, stored in
or introduced into a retrieval system, or transmitted in any form or by any means
(electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without
the express written permission of Binus University.
Binus University may have patents, patent applications, trademarks, copyrights, or other
intellectual property rights covering subject matter in this document. Except as expressly
provided in any written license agreement from Binus University, the furnishing of this
document does not give you any license to these patents, trademarks, copyrights, or other
intellectual property.
Unless otherwise noted, the example companies, organizations, products, domain names, e-
mail addresses, logos, people, places and events depicted herein are fictitious, and no
association with any real company, organization, product, domain name, email address,
logo, person, place or event is intended or should be inferred.
The names of actual companies and products mentioned herein may be the trademarks of
their respective owners.
II
TABLE OF CONTENT
Table of Contents
TABLE OF CONTENT ................................................................................................. III
OVERVIEW ............................................................................................................... V
OBJECTIVE ............................................................................................................ VIII
SYSTEM REQUIREMENT ............................................................................................. IX
Database .................................................................................................................. 1
Module 01 - SQL Server Introduction ......................................................................... 1
Database ................................................................................................................ 22
Module 02 - Enterprise Manager, Register New Server, Managing Security Database ..... 22
Database ................................................................................................................ 29
Module 03 – Data Definition Language ..................................................................... 29
Database ................................................................................................................ 37
Module 04 – Database File ...................................................................................... 37
Database ................................................................................................................ 41
Module 05 - Data Manipulation Language ................................................................. 41
Database ................................................................................................................ 46
Module 06 - Data Manipulation Language Queries Basic ............................................. 46
Database ................................................................................................................ 51
Module 07 - Data Manipulation Language Queries Intermediate ................................... 51
Database ................................................................................................................ 61
Module 08 - Data Manipulation Language Queries Advanced ....................................... 61
Database ................................................................................................................ 75
Module 09 – Transferring Data ................................................................................ 75
Database ................................................................................................................ 87
Module 10 – Performing Administrative Task ............................................................. 87
Database .............................................................................................................. 108
Module 11 – Backup and Restore Database ............................................................. 108
Database .............................................................................................................. 114
Module 12 - Indexing ........................................................................................... 114
Database .............................................................................................................. 124
Module 13 – Store Procedure ................................................................................ 124
Database .............................................................................................................. 132
Module 14 - Store Procedure Advanced .................................................................. 132
Database .............................................................................................................. 136
Module 15 - Trigger ............................................................................................. 136
III
Database .............................................................................................................. 139
Module 16 - Replication and Monitoring Performance Database ................................. 139
Database .............................................................................................................. 143
Module 17 - Identification Entity and Its Relationship ............................................... 143
Database .............................................................................................................. 145
Module 18 – Entity Properties ............................................................................... 145
Database .............................................................................................................. 148
Module 19 - Data Normalization ............................................................................ 148
Data Warehouse .................................................................................................... 151
Module 01 - Tabel master dan tabel transaksi, Measure data, Rancangan data warehouse
: tabel faka dan tabel dimensi. .............................................................................. 151
Data Warehouse .................................................................................................... 166
Module 02 - Data Transformation Services Basic ..................................................... 166
Data Warehouse .................................................................................................... 185
Module 03 - Data Transformation Services Intermediate .......................................... 185
Data Warehouse .................................................................................................... 194
Module 04 - Membuat Cube, Penyajian informasi dari data warehouse dengan aplikasi
lainnya ............................................................................................................... 194
IV
OVERVIEW
Modul ini membahas tentang Database dan Data Warehouse. Materi yang diajarkan
meliputi :
4. Database File
Introduction to Data Structures
Creating Databases
Managing Databases
Dropping database
V
OPERATOR
9. Transferring Data
Introduction to transferring data
Tools for importing and exporting data in SQL server
Introduction to DTS
Transforming data with DTS
12. Indexing
Introducing indexes
Creating new index in query
Drop index
15. Trigger
Introduction triggers
Create Trigger
VI
Drop Trigger
Exception Handling
20. Tabel master dan tabel transaksi, Measure data, Rancangan data
warehouse : tabel faka dan tabel dimensi
Mengidentifikasikan tabel master dan tabel transaksi dari OLTP (Online
Transaction Processing)
Menentukan meassure data dari OLTP dan informasi lainnya sesuai dengan
kebutuhan informasi yang diinginkan
Membuat rancangan tabel fakta dan tabel dimensi
23. Membuat Cube, Penyajian informasi dari data warehouse dengan aplikasi
lainnya
Membuat cube dengan Microsoft SQL Server Management Studio 2008.
Membuat pivot table dan grafik menggunakan Microsoft Excel untuk
menyajikan informasi sesuai dengan kebutuhan pengguna.
Meng-upload hasil pivot table dan grafik ke dalam halaman web pages
Pada modul ini semua bahan diambil dari bahan materi yang akan diajarkan dalam
Training Inti, disertai dengan teori dan contoh program agar pembaca dapat
mencoba sendiri code yang ada. Pada Modul ini pembahasan sudah diurutkan dari
materi yang paling dasar sehingga pembaca akan semakin mudah mempelajari
materi-materi yang ada.
VII
OBJECTIVE
VIII
SYSTEM REQUIREMENT
Component Requirement
Processor Processor type:
· Pentium III-compatible processor or faster
Processor speed:
· Minimum: 1.0 GHz
· Recommended: 2.0 GHz or faster
IX
Memory RAM:
· Minimum: 512 MB
· Recommended: 2.048 GB or more
· Maximum: Operating system maximum
X
Database
Module 01 - SQL Server Introduction
1. Module Description
Pada bagian ini akan dijelaskan mengenai pengenalan SQL Server dengan
pembahasan Pengenalan Umum Sql Server, New Server Registration & New
Group, Database, Attach Database, Import & Export Data, Backup & Restore
Database, Generate SQL Script, DTS, Security, Sql Query Analyser, dan
Pengenalan eksekusi Sql Statement.
2. Learning Outcomes
Trainee memahami pengenalan SQL Server.
3. Material
a. Pengenalan Umum Sql Server
Microsoft SQL Server adalah Relational Database Management
System (RDBMS) yang dirancang untuk berjalan pada platform mulai dari
laptop ke server multiprosesor besar. SQL Server biasanya digunakan
sebagai sistem backend untuk website dan CRMS perusahaan dan dapat
mendukung ribuan pengguna bersamaan.
SQL Server hadir dengan sejumlah alat untuk membantu Anda
dengan administrasi database dan tugas-tugas pemrograman.
SQL Server jauh lebih kuat dan terukur daripada sistem manajemen
database desktop seperti Microsoft Access. Siapa pun yang pernah mencoba
menggunakan Access sebagai backend untuk website mungkin akan terbiasa
dengan kesalahan yang dihasilkan terlalu banyak bila pengguna mencoba
untuk mengakses database.
Meskipun SQL Server juga dapat dijalankan sebagai sebuah sistem
database desktop, hal ini paling sering digunakan sebagai sistem database
server.
1
Umumnya, itu aplikasi yang menyediakan fungsionalitas untuk para
pengunjung ini. Ini adalah database yang menyimpan data dan membuatnya
tersedia. Karena itu, SQL Server tidak termasuk beberapa fitur berguna yang
dapat membantu aplikasi dalam memberikan fungsinya.
Pada kotak dialog New Server Registration, klik tab General. Pada textbox
Server name, ketik nama server yang Anda ingin mendaftar. Untuk contoh
2
bernama, ketik nama dalam format SERVER_NAME [\instance_name]. Dalam
Authentication, defaultnya adalah Windows Authentication, atau klik
SQL Server Authentication, dan lengkapi username and password. Pilih
Remember password jika Anda ingin SQL Server Management Studio untuk
menyimpan password (tidak disarankan). Klik Save.
3
Server Group
Klik kanan folder Database Engine dan pilih New Server Group
4
c. Database (Diagram, Table, View, Stored Procedure, Users, Roles)
Diagram
Database Diagram adalah alat visual yang memungkinkan Anda
untuk merancang dan memvisualisasikan database Anda yang tersambung.
Ketika merancang database, Anda dapat menggunakan Database Diagram
untuk membuat, mengedit, atau menghapus tables, columns, keys,
indexes, relationships, and constraints. Untuk memvisualisasikan
database, Anda dapat membuat satu atau lebih diagram yang
menggambarkan sebagian atau semua tables, columns, keys, dan
hubungan di dalamnya.
Untuk database apapun, Anda bisa membuat diagram database yang
Anda inginkan, setiap tabel database dapat muncul pada sejumlah diagram.
Dengan demikian, Anda dapat membuat diagram yang berbeda untuk
memvisualisasikan bagian-bagian yang berbeda dari database, atau untuk
menekankan aspek yang berbeda dari desain. Sebagai contoh, Anda dapat
membuat diagram besar menampilkan semua tabel dan kolom, dan Anda
dapat membuat diagram yang lebih kecil yang menunjukkan semua tabel
tanpa menunjukkan kolom.
Setiap diagram database yang Anda buat disimpan dalam database terkait.
Table
Fondasi dari setiap Relational Database Management System adalah
objek database yang disebut table. Setiap database terdiri dari satu atau lebih
tabel, yang menyimpan data database / informasi. Setiap tabel memiliki
nama yang unik dan terdiri dari kolom dan baris.
Setiap tabel terdiri dari serangkaian kolom yang berisi informasi tentang jenis
data yang tersimpan dalam tabel. Setiap kolom harus diberi nama, tipe data,
dan panjang. tabel A juga dapat memiliki satu set asing, kendala kunci,
peraturan dan indeks. Sejak kolom, indeks, kendala, peraturan dan memicu
yang ditetapkan untuk sebuah meja khusus, mereka diperlakukan sebagai
properti dari tabel dalam database diagram.
Kolom-kolom tabel database (disebut juga field tabel) memiliki nama-
nama mereka sendiri yang unik dan memiliki tipe data didefinisikan
sebelumnya. Tabel kolom dapat memiliki berbagai atribut mendefinisikan
fungsi kolom (kolom adalah kunci primer, ada indeks didefinisikan pada
kolom, kolom memiliki nilai default tertentu, dll).
Sementara kolom tabel menggambarkan jenis data, baris tabel berisi
data aktual untuk kolom.
View
Data SQL Server disimpan pada tabel. Anda dapat melakukan
pengolahan data di tabel secara fisik.
Sebaliknya View dapat juga dipakai untuk pemanggilan data. Namun view
tidak menyimpan data secara fisik pada disk.
View adalah salah satu objek database yang merupakan turunan dari satu
atau lebih tabel.
Dalam SQL Server View merupakan tabel virtual. Sama seperti tabel
sebenarnya, View terdiri dari baris dengan kolom, dan Anda dapat
mengambil data dari View (kadang-kadang bahkan update data dalam
5
sebuah View). Field dalam tabel virtual View adalah bidang dari satu atau
lebih tabel nyata dalam
database.
Anda dapat menggunakan View untuk menggabungkan dua tabel
dalam database Anda dan menyajikan data yang mendasari seolah-olah data
yang berasal dari tabel tunggal, sehingga menyederhanakan skema dari
database Anda bagi pengguna melakukan laporan ad-hoc.
Anda juga dapat menggunakan View sebagai mekanisme keamanan
untuk membatasi data yang tersedia bagi pengguna akhir. View juga dapat
berupa data agregat (sangat berguna jika Anda dapat mengambil keuntungan
dari indexed views), dan membantu data partisi.
Kegunaan View:
- Untuk menyembunyikan kompleksitas skema database, atau
menyesuaikan data dan skema untuk satu set pengguna.
- Untuk mengontrol akses ke baris dan kolom data.
- Untuk data agregat untuk kinerja.
- Untuk membuat laporan.
Stored Procedure
Stored Procedure adalah sekelompok pernyataan Transact-SQL
dikompilasi menjadi rencana eksekusi tunggal. Prosedur yang disimpan
sangat membantu dalam mencapai implementasi yang konsisten dari logika di
seluruh aplikasi. Laporan SQL dan logika diperlukan untuk melakukan tugas
yang biasa dilakukan dapat dirancang, dikode, dan diuji sekali dalam
prosedur yang tersimpan. Setiap aplikasi yang memerlukan untuk melakukan
tugas yang kemudian dapat hanya menjalankan prosedur yang tersimpan.
Coding logika bisnis menjadi prosedur yang tersimpan tunggal juga
menawarkan satu titik kontrol untuk memastikan bahwa aturan-aturan bisnis
dengan benar ditegakkan.
Users
Untuk terhubung ke sebuah instance SQL Server pertama anda harus
login sehingga instance dapat mengotentikasi Anda (tahu siapa Anda). Tetapi
untuk melakukan operasi pada database yang akan Anda memerlukan User
account dalam database tersebut. User account digunakan untuk mengakses
database dan validasi izin. Jadi anda bisa login, tapi jika Anda tidak memiliki
akun user yang berhubungan untuk login itu, Anda tidak akan dapat
mengakses database tersebut.
SQL Server memungkinkan untuk pembuatan login pengguna. Setiap
individu yang membutuhkan akses ke SQL Server dapat diberikan user
account mereka sendiri.
Ketika administrator mengkonfigurasi user login ini, ia dapat
menetapkan mereka ke sejumlah peran dan skema, tergantung pada akses
yang individu berhak.
6
Roles
Ketika membuat login user baru di SQL Server, Anda mendapatkan
pilihan untuk menempatkan user baru ini satu atau lebih Server
Roles(peran) pada server.
Server Roles (jangan dikelirukan dengan peran database) yang
tersedia untuk berbagai tugas-tugas administrasi database. Tidak semua
orang harus diserahkan kepada peran server. Pada kenyataannya, hanya
pengguna canggih seperti database administrator harus diberi peran server.
Beberapa peran dalam SQL Server sysadmin, serveradmin,
setupadmin, securityadmin, processadmin, dbcreator, diskadmin, bulkadmin,
public.
d. Attach Database
File-file log data dan transaksi database dapat dilepaskan(Detach)
dan kemudian disambungkan(Attach) ke sama atau contoh lain dari SQL
Server. Memisahkan dan melampirkan database berguna jika Anda ingin
mengubah database untuk contoh yang berbeda dari SQL Server pada
komputer yang sama atau untuk memindahkan database.
7
Setelah kotak dialog Attach Database tampil, pilih Add.
8
Tentukan file database yang akan di Attach, setelah itu klik OK.
9
Cara Detach Database
Klik kanan di database yang akan di detach, setelah itu klik Task, lalu klik
Detach.
10
Lalu klik OK.
11
Cara Import Data
12
Cara Export Data
Setelah itu akan muncul SQL Server Export and Import Wizard, lalu
ikutilah langkah-langkah yang ada di wizard tersebut. Import dan Export Data
akan dibahas lebih lanjut pada sub modul Transferring Data.
13
mengacu pada pembuatan salinan data sehingga salinan ini dapat digunakan
untuk mengembalikan semula setelah peristiwa kehilangan data.
Backup berguna terutama untuk dua tujuan. Yang pertama adalah
untuk memulihkan keadaan setelah bencana (disaster recover). Yang kedua
adalah untuk mengembalikan sejumlah kecil file setelah mereka telah sengaja
dihapus atau rusak. Kehilangan data juga sangat umum. 66% dari pengguna
internet telah menderita dari kehilangan data yang serius.
Restore berguna untuk membawa kembali ke keadaan semula dan membuat
restitusi.
Backup dan Restore adalah adalah proses menyalin data Terlebih
Dahulu untuk tujuan spesifik untuk mengembalikan data yang sama setelah
suatu peristiwa yang mengakibatkan hilangnya hardware baik menyimpan
data, atau hilangnya hanya data itu sendiri.
14
Lalu setelah kotak dialog Back Up Database muncul, klik Add untuk
menambahkan alamat kemana hasil backup akan disimpan.
Kemudian akan muncul kotak dialog Select Backup Destination, lalu tentukan
kemana hasil back up akan disimpan, lalu klik OK.
15
Cara Restore Database
16
Lalu setelah kotak dialog Restore Database muncul, tentukan tujuan
database yang akan di restore lalu pilih From device untuk menentukan
lokasi file yang mau di restore.
17
Setelah itu pilihlah file yang akan di restore, kemudian klik OK.
Backup dan Restore Database akan dibahas lebih lanjut pada sub modul
Backup and Restore Database.
18
g. Generate SQL Script
Klik kanan di table klik Script Table as, lalu pilih CREATE To, lalu pilih New
Query Editor Window
19
Setelah itu SQL Server akan menggenerate SQL Script untuk Create table
dari table yang dimaksud.
i. Security
Pada pembuatan database client-server tidak boleh diabaikan
masalah security. Security database di SQL Server cukup handal untuk
databese menengah ke atas. Security system ini berhubungan erat dengan
autoritas sebuah client dalam berkomunikasi dengan database.
Ada banyak teknik security pada aplikasi. Security pada aplikasi
dapat kita ciptakan sendiri dengan cara membuat sebuah tabel user beserta
otoritasnya untuk sebuah aplikasi tertentu. Akan tetapi hal ini kurang aman
bilamana tabel yang kita buat sampai diketahui oleh orang yang tidak
berkepentingan.
20
Teknik kedua adalah membuat mapping untuk user sebuah Windows
Server untuk akses database. Meskipun hal ini mudah untuk dilakukan akan
tetapi kita akan mengalami kendala yang sama pada teknik kedua. Lebih dari
itu, akan sangat rawan apabila user kita ceroboh saat meninggalkan
komputernya dalam keadaan On dan tanpa Re-Login.
1. FROM
2. ON
3. OUTER
4. WHERE
5. GROUP BY
6. CUBE | ROLLUP
7. HAVING
8. SELECT
9. DISTINCT
10. ORDER BY
11. TOP
21
Database
Module 02 - Enterprise Manager,
Register New Server, Managing
Security Database
1. Module Description
Pada bagian ini akan dijelaskan mengenai Create Login, Introduction Users
Database, Introduction Fixed Sever Roles, Introduction Fixed Database Roles,
dan User-Defined Database Role
2. Learning Outcomes
Trainee memahami dan menguasai Enterprise Manager, Register New Server,
dan Managing Security Database.
3. Material
a. Create Login
Pada bagian Object Eplorer, klik kanan di Security, pilih New, lalu klik Login
22
Setelah itu akan muncul kotak dialog Login – New, kemudian isilah Login
name sesuai dengan nama yang di gunakan pada saat login. Kemudian pilih
SQL Server Authentication, isilah Password dan Confirm password yang
nanti akan digunakan pada saat login. Lalu uncheck Enforce password
policy. Kemudian klik OK.
23
Pada bagian Object Explorer, klik kanan di Server, lalu pilih Properties
24
Setelah muncul kotak dialog Server Properties, pilihlah ke tab Security,
kemudian pilih SQL Server Authentication. Lalu klik OK.
25
c. Introduction Fixed Sever Roles
Sever Roles didefinisikan pada tingkat server dan berada diluar
pengguna database. Sever Roles bersifat tetap(fixed), sehingga Anda tidak
dapat menambahkan, menghapus atau memodifikasi Sever Roles. Anda
hanya dapat menambahkan pengguna sebagai anggota dari peran server.
1. Sysadmin
Anggota Sever Roles sysadmin dapat melakukan semua aktivitas di SQL
Server dan telah menyelesaikan kontrol atas semua fungsi database.
2. Serveradmin
Anggota Sever Roles ServerAdmin dapat mengubah parameter server
konfigurasi dan mematikan server.
3. Setupadmin
Anggota Sever Roles setupadmin dapat mengelola server yang saling
dihubungkan (menambah atau menghapus server yang dihubungkan),
mengelola replikasi, mengatur tambahan prosedur yang tersimpan, dan
menjalankan beberapa sistem prosedur yang tersimpan, seperti
sp_serveroption.
4. Securityadmin
Anggota Sever Roles securityadmin dapat membuat dan mengelola
login server dan audit, dan membaca error log.
5. Processadmin
Anggota Sever Roles processadmin dapat mengelola proses yang
berjalan di SQL Server.
6. Dbcreator
Anggota Sever Roles dbcreator dapat membuat, mengubah, dan
database resize.
7. Diskadmin
Anggota Sever Roles diskadmin dapat mengelola file disk.
26
Public Role adalah Database Role khusus yang dimiliki setiap
pengguna database. Public Role berisi izin akses default untuk setiap
pengguna yang dapat mengakses database. Public Role tidak dapat dihapus.
Fixed Database Roles didefinisikan di tingkat database dan ada
dalam database masing-masing. Anda tidak dapat menambah, menghapus
atau memodifikasi Fixed Database Roles. Anda hanya dapat menambahkan
pengguna sebagai anggota Fixed Database Roles.
1. db_owner
Anggota Database Roles db_owner dapat melakukan semua aktivitas
dalam database.
2. db_accessadmin
Anggota Database Roles db_accessadmin dapat menambahkan atau
menghapus Windows kelompok NT, pengguna atau pengguna SQL Server
dalam database.
3. db_datareader
Anggota Database Roles db_datareader bisa melihat data dari semua
tabel user dalam database.
4. db_datawriter
Anggota Database Roles db_datawriter dapat menambah, mengubah,
atau menghapus data dari semua tabel user dalam database.
5. db_ddladmin
Anggota Database Roles db_ddladmin dapat membuat perintah bahasa
definisi data dalam database.
6. db_securityadmin
Anggota Database Roles db_securityadmin dapat mengatur hak akses
pernyataan dan objek dalam database.
7. db_backupoperator
Anggota Database Roles db_backupoperator dapat membuat
cadangan database.
8. db_denydatareader
Anggota Database Roles db_denydatareader dapat menyangkal izin
untuk memilih data dalam database.
9. db_denydatawriter
Anggota Database Roles db_denydatawriter dapat menyangkal izin
untuk mengubah data dalam database.
27
e. User-Defined Database Role
Walaupun built-in Database Role menangani izin untuk tugas
pengelolaan database yang umum, kemungkinan bahwa Anda akan ingin
untuk pengguna kelompok yang memiliki akses untuk melakukan fungsi
database tertentu.
Untuk membuat SQL Server role baru dalam database saat ini, Anda
dapat menggunakan sistem sp_addrole disimpan prosedur.
Sintaks:
dimana
Untuk menghapus SQL Server role dari database saat ini, Anda dapat
menggunakan sistem sp_droprole disimpan prosedur.
Sintaks:
dimana
28
Database
Module 03 – Data Definition Language
1. Module Description
Pada bagian ini akan dijelaskan mengenai Data Definition Language dengan
pembahasan Create & Drop Database, Create & Drop Table, Create & Drop Index,
Create & Drop View, Grant, dan Revoke.
2. Learning Outcomes
Trainee memahami cara create dan drop database, tabel, indeks, dan view, cara
grant dan revoke hak akses serta menerapkannya.
3. Material
a. Create & Drop Database
Create Database
Untuk membuat database baru.
Langkah :
1. Pada bagian Object Explorer, pilih folder Database
29
2. Klik kanan pada folder database dan pilih New Database
30
Drop Database
Untuk menghapus database.
Langkah :
1. Pada bagian Object Explorer, klik kanan pada folder Database yang
ingin dihapus dan pulih Delete
31
2. Klik OK pada window Delete Object
Create Table
Untuk membuat tabel dalam database.
Sintaks :
32
Contoh :
Catatan
% mewakili banyak character atau tidak ada karakter
_ mewakili satu character
[] range
Drop Table
Untuk menghapus table dalam database
Sintaks :
Contoh :
33
Catatan
Jika ada tabel yang ber relasi, drop tabel yang mengandung fereignkey dulu
baru yang mengandung primary key
Create Index
Indeks dalam database yang sangat mirip dengan indeks di perpustakaan.
Indeks memungkinkan menemukan informasi dalam database yang cepat,
sama seperti yang mereka lakukan di perpustakaan. Jika semua buku di
perpustakaan diindeks alfabet maka Anda tidak perlu menelusuri seluruh
perpustakaan untuk menemukan buku tertentu. Sebaliknya Anda hanya
akan mendapatkan huruf pertama dari judul buku dan Anda akan
menemukan bagian ini surat dalam perpustakaan memulai pencarian anda
dari sana, yang akan mempersempit pencarian Anda secara signifikan.
Sebuah Index dapat dibuat pada satu kolom atau kombinasi kolom dalam
tabel database. Sebuah indeks tabel adalah struktur database yang
mengatur nilai-nilai dari satu atau lebih kolom dalam tabel database
dalam urutan tertentu. Indeks Tabel memiliki pointer ke nilai yang
disimpan dalam kolom tertentu atau kombinasi kolom dari tabel. Pointer
ini dipesan tergantung pada urutan yang ditentukan dalam indeks.
Sintaks :
Contoh :
Drop Index
Untuk menghapus index yang ada
Sintaks :
Contoh :
34
d. Create & Drop View
Create View
Sebuah view adalah tabel yang dibangun dari satu atau beberapa tabel
yang sudah ada. Secara fisik, VIEW tidak membuat penyimpanan data
seperti tabel biasa, melainkan hanya menyimpan referensi/pointer ke
record pada tabel-tabel yang berkaitan. VIEW biasa disebut juga “virtual
tabel”. View dapat juga diciptakan dari beberapa tabel.
Sintaks :
Contoh :
Drop View
Sintaks :
Contoh :
35
Hak Akses Description
Select Kemampuan untuk query tabel dengan sintaks select.
Kemampuan untuk menambakan baris baru ke tabel
Insert
dengan sintaks insert.
Kemampuan untuk merubah data pada tabel dengan
Update
menggunakan sintaks update.
Kemampuan untuk menghapus baris dari tabel dengan
Delete
menggunakan sintaks delete.
References Ability to create a constraint that refers to the tabel.
Ability to change the tabel definition with the alter tabel
Alter
statement.
Ability to create an index on the tabel with the create
Index
index statement.
Contoh :
Revoke
Revoke untuk membuang hak yang telah dilarang dengan perintah Deny
atau hak yang telah diberikan oleh perintah GRANT
Contoh :
36
Database
Module 04 – Database File
1. Module Description
Pada bagian ini akan dijelaskan mengenai Database File dengan pembahasan
Create dan Drop Database.
2. Learning Outcomes
Trainee memahami cara create dan drop database dan menerapkannya.
3. Material
a. Create Database
Untuk membuat database baru.
Langkah :
1. Pada bagian Object Explorer, pilih folder Database
37
2. Klik kanan pada folder database dan pilih New Database
38
b. Drop Database
Untuk menghapus database.
Langkah :
1. Pada bagian Object Explorer, klik kanan pada folder Database yang ingin
dihapus dan pulih Delete
39
2. Klik OK pada window Delete Object
40
Database
Module 05 - Data Manipulation
Language
1. Module Description
Pada bagian ini, akan dibahas tentang kegunaan dari data manipulation language
dan bagaimana cara melakukan data manipulation pada sql server 2008
2. Learning Outcomes
Trainee memahami sintaks – sintaks yang digunakan untuk melakukan data
manipulation dan dapat mengimplementasikannya di sql server 2008
3. Material
a. SELECT
Digunakan untuk menampilkan data – data dalam table kita.
Sintaks:
Contoh:
b. INSERT
Digunakan untuk memasukkan data –data ke dalam table yang telah kita
buat.
Sintaks:
Contoh:
41
c. UPDATE
Digunakan untuk melakukan perubahan data yang ada di dalam table.
Sintaks:
Contoh:
d. DELETE
Digunakan untuk melakukan penghapusan data yang ada di dalam table.
Sintaks:
Contoh:
e. COMMIT
Digunakan untuk membuat semua perubahan data yang dilakukan sejak
transaksi dimulai menjadi permanen di database kita.
Contoh:
BEGIN TRAN
DELETE FROM MsKaryawan WHERE KdKaryawan = „KD001‟
COMMIT
f. ROLLBACK
Digunakan untuk mengembalikan transaksi yang telah dilakukan ke awal
transaksi, atau pada suatu titik aman tertentu dalam transaksi.
Contoh:
BEGIN TRAN
DELETE FROM MsKaryawan WHERE KdKaryawan = „KD001‟
ROLLBACK
42
g. Fungsi-fungsi dasar SQL
Bentuk umumnya :
datediff(SatuanTanggal,Tanggal1,Tanggal2)
Contoh :
datediff(day,'9/10/10','9/20/10')
akan mengembalikan 10.
datename untuk mendapatkan nama dari bagian tanggal
tertentu.
Bentuk umumnya :
datename(SatuanTanggal,Tanggal)
Contoh :
datename(month, '10/5/10')
akan mengembalilkan October
datepart untuk mengambil data tertentu dari tanggal.
Bentuk umumnya :
datepart(SatuanTanggal,Tanggal)
Contoh :
datepart(month, '10/5/10')
akan mengembalikan 10.
dateadd untuk menambahkan satuan waktu tertentu ke data
yang berupa datetime
Bentuk umumnya :
dateadd(SatuanTanggal, BesarSatuanTanggal,
Tanggal)
Contoh :
dateadd(day,5, '10/9/10')
akan mengembalikan 14 Oktober 2010
Month untuk mengambil data bulan
Day untuk mengambil data tanggal
Year untuk mengambil data tahun
charindex untuk mengambil urutan dari kata/string tertentu.
43
Bentuk umumnya :
charindex(String yang dicari, namaField, IndexMulai)
Contoh :
ada 1 record, namanya = „Ricky‟
charindex(„ic‟,nama,1) -> mengembalikan nilai 2
left digunakan untuk mengambil beberapa karakter dari
sebelah kiri (awal)
Contoh :
ada 1 record, namanya = „Ricky‟
left(nama, 1) -> ambil 1 huruf terdepan dari nama,
ini akan mengembalikan „R‟
right digunakan untuk mengambil beberapa karakter dari
sebelah kanan(dari belakang)
Contoh :
ada 1 record, namanya = „Ricky‟
right(nama,2) -> ambil 2 huruf terbelakang dari
nama, ini akan mengembalikan „ky‟.
substring digunakan untuk mengambil beberapa karakter mulai
dari index tertentu. bentuk umumnya :
substring(namaField, indexMulai, banyak)
Contoh :
substring(nama, 3 2) -> mengambil 2 huruf dari
nama, dimulai dari index ke-5, ini akan
mengembalikan „ck
rtrim digunakan untuk menghilangkan spasi di sebelah
kanan.
44
Contohnya
saya mempunyai satu field nama bertype char(20),
dan kemudian saya ingin menampilkan karakter
terakhir dari nama tersebut, padahal nama-nama
tersebut tidak pasti berjumlah 20 karakter.
right(rtrim(nama), 1)
45
Database
Module 06 - Data Manipulation
Language Queries Basic
1. Module Description
Pada bagian ini akan dijelaskan mengenai query manipulasi dasar dengan
pembahasan Simple Queries, Sorting, SQL Aggregate, DISTINCT, WHERE,
ISNULL, dan OPERATOR.
2. Learning Outcomes
Trainee memahami dan mampu mengimplementasikan query manipulasi dasar di
SQL.
3. Material
a. Simple Query
Membuat Table
CREATE TABLE msBarang
(
kdBrg char (5) ,
nmBrg varchar (10),
primary key (kdBrg),
)
Insert Data
Insert into msbarang values („T0001‟,‟21Century‟)
Select
Select * from msbarang
b. Sorting
Untuk mengurutkan data secara ascending atau descending
Sintaks:
46
Contoh:
Menampilkan data dari field MsItem secara ascending berdasarkan Judul_item
Untuk sorting jika kita tidak menuliskan tipe [asc/desc] , maka default query
yang akan diproses adalah secara ascending.
count(nama_field)
menghitung banyaknya baris ( pencacahan data ).
avg(nama_field)
menghitung rata-rata dari isi baris-baris.
max(nama_field)
mencari nilai max dari baris-baris.
min(nama_field)
mancari nilai min dari baris-baris.
Untuk sum dan avg, field yang mau dihitung tipe datanya harus
numeric.untuk count, baris yang mempunyai nilai NULL, tidak ikut
dihitung.
47
Tampilkan banyaknya jenis buku yang dbeli oleh customer „CU001‟
select count(distinct(kdbuku))
from trans_pembelian where kdcustomer = „CU001‟
Group By (namafield)
Contoh :
Tampilkan kdcustomer dan jum_QTY untuk masing-masing
kdcustomer
select kdcustomer, sum(qty) from trans_pembelian
group by kdcustomer
Yang ada di group by boleh LEBIH dari yang ada di select list. hasilnya
pasti berbeda dengan no 1
Having (kondisi)
Contoh :
Tampilkan kdcustomer yang jumlah pembelian bukunya lebih dari 15
select kdcustomer from trans_pembelian
group by kdcustomer
having sum(qty)>15
48
penggunaan having HARUS pakai group by karena kita melakukan
proses perhitungan yang digolongkan berdasarkan kdcustomer baru
disaring yang sum(qty)>15 kemudian ditampilkan kdcustomernya
1. Distinct
untuk menghilangkan duplikasi data
Sintaks:
Contoh:
select distinct from msitem
2. Where
menentukan syarat / kondisi dalam memanipulasi data dengan
menggunakan operator logika
Sintaks:
SELECT [ column_name ]
FROM [table_name ]
WHERE [ condition ]
Contoh:
select * from msitem
where nama_item =’green’
3. Between
Pembanding untuk mengecek apakah suatu nilai berada dalam range
tertentu atau tidak
49
Sintaks:
SELECT [ column_name ]
FROM [ table_name ]
WHERE [ column_name ] BETWEEN „value1‟ AND „value2‟
Contoh:
select * from msitem
where stok between 0 and 15
4. Is Null
Untuk membandingkan suatu nilai dengan NULL
Sintaks:
SELECT [column_name]
FROM [table_name]
WHERE [column_name] is NULL
Contoh:
select * from msitem
where stok is NULL
5. Like
Untuk membandingkan data dengan pola / struktur tertentu, untuk satu
karakter dipakai ( _ ) dan string ( % )
Sintaks:
SELECT [column_name]
FROM [table_name]
WHERE [column_name] like [condition]
Contoh:
select * from exe
where file like „zx%‟
50
Database
Module 07 - Data Manipulation
Language Queries Intermediate
1. Module Description
Pada bagian ini akan dijelaskan mengenai Data Manipulation Language Queries
Intermediate dengan pembahasan Subqueries, Multi Table Queries, Combining
Result Tables, dan Select Into.
2. Learning Outcomes
Trainee memahami dan dapat menerapkan Data Manipulation Language Queries
Intermediate.
3. Material
a. Subqueries
Subquery adalah query yang berada di query lain contohnya query
SELECT, INSERT, UPDATE, atau DELETE, subquery juga bisa terdapat di
dalam subquery lain. Subquery dapat digunakan dibagian manapun dari
query.
Contoh:
SELECT Nama FROM pelanggan WHERE (SELECT Nama FROM Beli WHERE
nama=„Natalia‟)=Nama
1. Alias Subquery
Alias subquery adalah subquery yang di beri nama, alias subquery
dianggap sebagai tabel virtual sehingga dapat digunakan untuk
kerperluan-keperluan yang lain.
Contoh:
2. In dan Exists
Sintaks in digunakan jika kita sudah mengetahui nilai yang mau
dikembalikan dari satu kolom dari tabel yang berbeda. Selain itu, in dapat
digunakan untuk mendapatkan nilai pada kolom (field) tertentu dari suatu
tabel. Hasil dari sintaks in yaitu mengembalikan satu atau lebih nilai field
– field dari suatu tabel dengan kondisi di tabel lain.
51
Sintaks IN:
Sintaks EXISTS:
IN EXISTS ini digunakan, jika kita ingin menampilkan data - data dari
suatu tabel, namun syarat nya ada di tabel yang lain(lebih dari satu
tabel).
Contoh:
SELECT namacustomer FROM mscustomer
WHERE umur in (10, 15, 20)
52
Bentuk umum EXISTS:
Contoh
create table uts
(
nama varchar(30),
nilai char(3)
)
53
insert into uts values('Alvian','79')
insert into uts values('Lidya','95')
insert into uts values('Eko','80')
insert into uts values('Paulus','87')
insert into uts values('Johanes','92')
JOIN
SELECT * FROM uts INNER JOIN uas ON uts.nama = uas.nama
LEFT JOIN
SELECT * FROM uts LEFT JOIN uas ON uts.nama = uas.nama
RIGHT JOIN
SELECT * FROM uts RIGHT JOIN uas ON uts.nama = uas.nama
54
FULL JOIN
SELECT * FROM uts FULL JOIN uas ON uts.nama = uas.nama
UNION
Mengembalikan semua nilai dari TABLE masing-masing perintah SELECT. Jika
kita mau men-copy atau dengan kata lain baris yang sama tidak dihiraukan
(ditampilkan berulang kali), kita bisa menggunakan perintah UNION ALL,
jika kita ingin mengurangi redudansi data/baris yang berulang dihapus dari
TABLE hasil UNION, kita bisa menggunakan perintah UNION atau UNION
DISTINCT.
EXCEPT
Mengembalikan semua baris dari tabel pertama (R1) yang tidak terdapat di
tabel kedua (R2). Jika kita mau men-copy semua baris dari R1 yang akan
ditaruh di Result Table, kita tuliskan EXCEPT ALL. Jika kita ingin membuat
baris yang di R1 dihapus dan tidak ada di Result Table, kita menggunakan
EXCEPT atau EXCEPT DISTINCT.
INTERSECT
Mengembalikan baris yang ada di Result Table dan terdapat di kedua perintah
SELECT yang kita buat, jika kita ingin semua baris yang berulang ditampilkan
juga, maka kita lakukan perintah INTERSECT ALL. Jika data yang berulang
tidak mau ditampilkan di Result Table, maka kita bisa menggunakan perintah
INTERSECT atau INTERSECT DISTINCT.
R1 result table
COL1 COL2
a a
a b
a c
R2 result table
COL1 COL2
a b
a c
a d
55
Jika kita menggunakan UNION hasilnya adalah sebagai berikut
COL1 COL2
a a
a b
a c
a d
COL1 COL2
a a
Jika perintah SELECT yang dipilih adalah R2 yang pertama kali, maka hasilnya
akan berbeda
COL1 COL2
a d
Untuk mengeliminasi baris yang redudan, maka dapat dipilih beberapa opsi
dari keyword di bawah ini.
Table 1. STOCKA
ISBN TITLE AUTHOR NOBEL PRIZE
8778997709 For Whom the Bell Tolls Hemmingway N
4599877699 The Good Earth Buck Y
9228736278 A Tale of Two Cities Dickens N
1002387872 Beloved Morrison Y
4599877699 The Good Earth Buck Y
0087873532 The Labyrinth of Solitude Paz Y
56
C
o
n
t
o 2. STOCKB
Table
h
ISBN TITLE AUTHOR NOBEL PRIZE
:
6689038367 The Grapes of Wrath Steinbeck Y
A
2909788445 The Silent Cry Oe Y
s
1182983745
u Light in August Faulkner Y
m
9228736278 A Tale of Two Cities Dickens N
s
1002387872
i Beloved Morrison Y
k
Asumsikan bahwa kita mempunyai dua table yang bertujuan mengatur stok
pada dua toko buku.
Contoh 1: UNION
Contoh 2: EXCEPT
SELECT TITLE
FROM STOCKA
EXCEPT
SELECT TITLE
FROM STOCKB
ORDER BY TITLE
57
Table 4. Hasil dari EXCEPT
TITLE
For Whom the Bell Tolls
The Good Earth
The Labyrinth of Solitude
Contoh 3: INTERSECT:
SELECT TITLE
FROM STOCKA
INTERSECT
SELECT TITLE
FROM STOCKB
ORDER BY TITLE
58
Contoh: EXCEPT ALL:
SELECT TITLE
FROM STOCKA
EXCEPT ALL
SELECT TITLE
FROM STOCKB
ORDER BY TITLE
SELECT TITLE
FROM STOCKA
INTERSECT ALL
SELECT TITLE
FROM STOCKB
ORDER BY TITLE
d. Select Into
SELECT INTO adalah statement yang men-SELECT data dari satu TABLE dan
men-INSERT data tersebut ke TABLE lainnya. SELECT INTO statement
biasanya digunakan untuk membuat backup/copy dari sebuah TABLE
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
59
atau kita dapat memilih hanya beberapa kolom saja yang kita inginkan
dengan cara :
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename
Contoh:
Membuat backup dari TABLE "Person" yang ada di database, kita
menggunakan perintah SQL yaitu:
SELECT *
INTO Persons_Backup
FROM Persons
60
SQL Server
Module 08 - Data Manipulation
Language Queries Advanced
1. Module Description
Pada bagian ini akan dijelaskan mengenai query manipulasi data advanced.
2. Learning Outcomes
Trainee dapat memahami penggunaan Alias Subquery, In, Exists, Aggregate
function, compute, group by, order by, join, dan union.
3. Material
a. ALIAS Subquery
Alias subquery adalah subquery yang diberi nama, alias subquery
dianggap sebagai tabel virtual sehingga dapat digunakan untuk kerperluan-
keperluan yang lain.
Contoh :
select v1.Nama, v2.* from (select Nama from Pelanggan) as v1,
(select * from Pelanggan) as v2
b. IN, EXISTS
Sintaks IN digunakan jika kita sudah mengetahui nilai yang mau
dikembalikan dari satu kolom dari tabel yang berbeda. Selain itu, IN dapat
digunakan untuk mendapatkan nilai pada kolom (field) tertentu dari suatu
tabel. Hasil dari sintaks IN yaitu mengembalikan satu atau lebih nilai field–
field dari suatu tabel dengan kondisi di tabel lain.
Sintaks IN:
Sintaks EXISTS:
61
Sintaks IN, EXISTS ini digunakan jika kita ingin menampilkan data-
data dari suatu tabel, namun syaratnya ada di tabel yang lain (lebih dari satu
tabel).
Contoh:
c. Aggregate
Aggregate adalah fungsi yang disediakan oleh SQL untuk melakukan
perhitungan (kalkulasi) terhadap data.
1. sum(nama_field)
menjumlahkan isi baris-baris pada field tersebut.
62
2. count(nama_field)
menghitung banyaknya baris (pencacahan data).
3. avg(nama_field)
menghitung rata-rata dari isi baris-baris.
4. max(nama_field)
mencari nilai max dari baris-baris.
5. min(nama_field)
mencari nilai min dari baris-baris.
Untuk sum dan avg, field yang mau dihitung harus tipe datanya numeric.
Untuk count, baris yang mempunyai nilai NULL, tidak ikut dihitung.
63
Sintaks COMPUTE:
COMPUTE row_aggregate(column_name)
[by column_name [, column_name]...]
Contoh soal:
1. Tampilkan kdcustomer, kdbuku, jum_Qty_perBuku, dan buat subtotal
(untuk jumlah qty per customer)
Contoh:
CREATE TABLE Sales
(
NamaPelanggan varchar(20),
KdMenu char(5),
Qty int
)
64
INSERT INTO Sales VALUES('Hans','MN004', 1)
INSERT INTO Sales VALUES('Herbert','MN001', 4)
INSERT INTO Sales VALUES('Wandi','MN003', 8)
INSERT INTO Sales VALUES('Wandi','MN004', 7)
Penggunaan COMPUTE:
Hasilnya:
65
Hasilnya:
Group By
GROUP BY digunakan untuk pengelompokan data, biasa digunakan
bersama dengan fungsi SQL agregat seperti SUM untuk menyediakan
sarana pengelompokan dataset hasilnya dengan tabel database kolom
tertentu.
66
Contoh soal:
1. Tampilkan kdcustomer dan jum_QTY untuk masing-masing
kdcustomer
Jika group by kdcustomer saja tidak boleh karena kita maunya hitung
per bukunya. tulisnya terbalik juga tidak masalah
Yang ada di group by boleh LEBIH dari yang ada di select list. hasilnya
pasti berbeda dengan no 1
Contoh lain:
67
INSERT INTO Penjualan VALUES('11/24/2010', 'Percont', 2500)
Order By
Order by digunakan untuk mengurutkan hasil-set dengan sebuah kolom
yang ditetapkan. ORDER BY mengurutkan hasil dalam urutan menaik
(ascending) secara default. Jika Anda ingin mengurutkan hasil yang
menurun (besar ke kecil) dalam urutan, Anda dapat menggunakan kata
kunci DESC.
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
Contoh:
1. Tampilkan data dari Tr_Pembelian tersebut dan sorting berdasarkan
TglBeli secara descending.
68
2. Tampilkan TglBeli, kdCustomer, jum_Qty yang digolongkan
berdasarkan TglBeli dan kdCustomer
Field yang kita pakai untuk order by HARUS ada di select list ATAU di
group by
e. JOIN Table
Join digunakan untuk menggabungkan dua atau lebih tabel secara
horizontal. join dibedakan menjadi beberapa macam, antara lain:
a) Inner Join
Jika kita hanya menuliskan „join‟ saja, maka defautnya adalah inner join.
Inner join akan menggabungkan 2 tabel, yang mempunyai nilai yang
sama (dengan kata lain hanya akan menggabungkan data yang nilainya
ada di KEDUA tabel yang di-inner join kan)
Sintaks:
b) Left Join
Akan menggabungkan dua tabel, tetapi mengacu pada tabel yang ada di
sebelah kiri (tabel pertama). asal nilai dari data tersebut ada di tabel
pertama, maka data tersebut akan ditampilkan, walaupun nilai dari data
tersebut tidak ada di tabel kedua.
Sintaks:
c) Right Join
Kebalikan dari left join. right join ini akan menampilkan data-data yang
mengacu pada tabel di sebelah kanan (tabel kedua). asal nilai dari data
tersebut ada di tabel kedua, maka data tersebut akan ditampilkan,
walaupun nilainya tidak ada di tabel pertama.
69
Sintaks:
d) Full Join
Jika inner join hanya menampilkan data-data yang bernilai sama dikedua
tabel, left join hanya mengacu pada tabel pertama dan right join mengacu
pada tabel kedua, maka full join ini akan menampilkan data-data hasil
gabungan dari kedua tabel tersebut, tanpa memperdulikan apakah nilai
dari data tersebut hanya ada di sebelah kanan, sebelah kiri, ataupun
tidak.
Sintaks:
SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name
- Tabel Pelanggan
70
CREATE TABLE Pelanggan
(
nama varchar(20),
jmlPembelian int
)
Pertanyaan:
Gabungkan 2 tabel di atas dengan INNER JOIN
Hasilnya:
Hasilnya:
71
Left join akan menggabungkan tabel dengan mengacu pada tabel yg
pertama (tabel karyawan), sehingga semua data yg ada di tabel karyawan
akan ditampilkan, walaupun data tersebut tidak ada nilainya di tabel beli,
nilainya akan diisi dengan NULL.
Hasilnya:
Right join akan menggabungkan tabel dengan mengacu pada tabel yang
kedua (tabel pelanggan). Sehingga, semua data yg ada di tabel
pelanggan akan ditampilkan. Walaupun data tersebut tidak ada nilainya di
tabel karyawan, nilainya akan diisi dengan NULL.
Hasilnya:
Full join akan menggabungkan tabel tanpa mengacu pada tabel manapun.
sehingga semua data akan ditampilkan, walaupun data tersebut ada
nilainya di tabel pelanggan, tapi tidak ada nilainya di tabel karyawan,
nilainya akan diisi dengan NULL, demikian juga bila data tersebut hanya
ada nilainya di tabel karyawan, tidak tapi dalam tabel pelanggan.
f. Union
Join adalah teknik yang digunakan untuk mengakses lebih dari satu
tabel dan menggabungkan hasilnya, sedangkan Union digunakan untuk
menggabungkan isi dari tabel yang satu dengan tabel yang lainnya ke dalam
satu atau lebih kolom.
72
Union digunakan untuk menggabungkan hasil dari dua atau lebih
statement SELECT ke dalam hasil tunggal. Semua statement yang
digabungkan dengan menggunakan UNION harus mempunyai struktur yang
sama.
Setiap pernyataan SELECT dalam UNION harus memiliki jumlah kolom
yang sama. Kolom juga harus memiliki tipe data yang sama. Juga, kolom
dalam setiap pernyataan SELECT harus dalam urutan yang sama.
Sintaks UNION:
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
Nama kolom dalam hasil dari UNION selalu sama dengan nama kolom
pada statement SELECT yang pertama pada UNION. Operator UNION secara
default menghilangkan baris yang isinya sama (data berulang) dari hasil
statement SELECT.
Ada pilihan untuk menggunakan keyword ALL setelah keyword UNION,
yang akan memaksa semua baris termasuk baris yang isinya sama (data
berulang) dikembalikan dalam hasil statement SELECT.
Contoh:
73
Penggunaan UNION:
Hasilnya:
Hasilnya:
Pada penggunaan UNION ALL, data yang berulang seperti Silvia dan Sofia
tetap dimunculkan.
74
Database
Module 09 – Transferring Data
1. Module Description
Pada bagian ini akan dijelaskan mengenai proses DTS dalam SQL Server dengan
pembahasan Introduction to tranferring data, Tools for importing and exporting
data in SQL server, Introduction to DTS, dan Transforming data with DTS.
2. Learning Outcomes
Trainee memahami dan menguasai proses DTS dalam SQL Server.
3. Material
a. Introduction to Transferring Data
b. Introduction to DTS
75
Langkah - Langkah untuk Memindahkan Data
76
Kemudian, layar berikut akan ditampilkan:
Jika Anda tidak ingin melihat halaman awal seperti ini lagi, pilih " Do not
show this start page again", kemudian klik next.
77
Pada window ini, Anda mengidentifikasi sumber data yang ingin Anda impor
atau ekspor. Karena contoh data sumber berasal dari excel file, kita pilih data
source : "Microsoft Excel”. Setelah memilih " “Microsoft Excel" sumber data
layar berikut ditampilkan:
78
Jika baris pertama merupakan nama Kolom, pilih “First row has column
names”. Setelah selesai menentukan semua informasi Data Source, kita perlu
menentukan tujuan import/export. Sebagai contoh, jika ingin menempatkan
Data Source ke dalam tabel database SQL Server. Gunakan window "Choose
a Destination" seperti gambar di bawah ini untuk menentukan lokasi
penempatan data:
79
Pilih Next, kemudian akan muncul window seperti berikut :
80
“Copy data from one or more tables or views” adalah pilihan jika kita akan
memasukkan semua data yang ada dari sumber ke dalam tujuan. Sedangkan
“Write a query to specify the data to transfer” berarti kalian mengambil data
sesuai query yang kalian tuliskan. Dalam contoh ini digunakan pilihan “Copy
data from one or more tables or views”.
81
Kemudian pilih Sheet mana di excel yang akan kita import
82
Kemudian akan muncul window apakah kalian mau membuat SSIS package
atau tidak dan bisa melakukan enkripsi ke dalam SSIS package tersebut. Jika
tidak ingin membuat SSIS package masa pilih run immediately. Klik next
maka akan muncul pengaturan yang telah dilakukan. Kemudian pilih Finish:
83
84
Kemudian jika kita melihat pada bagian Database explorer maka seharusnya
sudah ada 1 tabel berisi data kita yang didapat dari file excel.
85
86
Database
Module 10 – Performing Administrative
Task
1. Module Description
Pada bagian ini akan dijelaskan mengenai Administrative Task dengan
pembahasan Configuration Task, Creating Jobs, Operators, dan Alerts.
2. Learning Outcomes
Trainee memahami dan menguasai Administrative Task
3. Material
a. Configuration Task
87
Setup SQL Agent Settings
Pada bagian Object Explorer, klik kanan “SQL Server Agent” kemudian pilih
“Properties”
88
Pilih “Alert System” pada panel sebelah kiri, kemudian
89
Restart SQL Agent untuk mengaktifkan settingan.
90
b. Creating Jobs, Operators, and Alerts
Membuat Job
91
3. Pada tab “General”, pilih textbox “Name”, beri nama job yang akan
dibuat.
4. Uncheck “Enabled “ jika job tidak ingin segera dijalankan ketika job
selesai dibuat.
5. Pada tab “Description”, masukkan deskripsi job yang dibuat. Maksimum
panjang karakter adalah sepanjang 512 karakter .
92
6. Pada panel sebelah kiri, pilih menu “Steps”, kemudian klik button “New”,
untuk membuat Job Step baru.
93
7. Pada bagian Job Step Properties,
94
8. Pada New Job Schedule,
95
96
9. Pada New Alert,
97
10. Pada menu Notifications,
98
Membuat Operator
99
3. Masukkan sebuah operator Name, E-mail name, dan klik OK
Berikut keterangannya :
100
menerima pemberitahuan pager.
Workday end, Menentukan jangka waktu setelah mana operator tidak lagi
tersedia untuk menerima pemberitahuan pager.
Membuat Alert
101
3. Pada tab “General” masukkan
102
4. Klik “Response” pada panel sebelah kiri
103
5. Klik tab “Options” pada panel sebelah kiri
104
Verifikasi Alert Telah Aktif
105
Untuk menonaktifkan alert
Klik General di sebelah panel kiri dan menghapus tanda centang dari
Aktifkan dan klik OK atau
Klik kanan pada nama Alert dan pilih Disable
106
Contoh merubah settingan
107
Database
Module 11 – Backup and Restore
Database
1. Module Description
Pada bagian ini akan dijelaskan mengenai proses Backup dan Restore database.
2. Learning Outcomes
Trainee memahami dan menguasai proses Backup dan Restore database dalam
SQL Server.
3. Material
a. Jenis–Jenis Metode Backup
Full
Sebuah backup lengkap yang berisi semua data dalam database tertentu
atau set filegroups atau file, dan juga log yang memungkinkan untuk
direstore.
Differential
Sebuah backup dari semua file dalam database. Backup ini hanya berisi
data tambahan yang dimodifikasi dari backup database yang paling
terbaru dari setiap file.
Partial
Backup ini dirancang untuk memberikan fleksibilitas yang lebih untuk
membuat backup database yang mengandung beberapa filegroups read-
only dengan model restore yang sederhana.
File
Hanya membackup beberapa file saja, tidak keseluruhan database.
Transaction Log
Hanya membackup modifikasi yang dibuat pada database.
Copy Only
Biasanya, mengambil perubahan backup database dan mempengaruhi
saat di restore.
108
b. Backup
Langkah-langkah :
109
Lalu setelah kotak dialog Back Up Database muncul, klik Add untuk
menambahkan alamat kemana hasil backup akan disimpan.
Kemudian akan muncul kotak dialog Select Backup Destination, lalu tentukan
kemana hasil back up akan disimpan, lalu klik OK.
110
c. Restore
Langkah-langkah:
111
Lalu setelah kotak dialog Restore Database muncul, tentukan tujuan
database yang akan di restore lalu pilih From device untuk menentukan
lokasi file yang mau di restore.
112
Setelah itu pilihlah file yang akan di restore, kemudian klik OK.
113
Database
Module 12 - Indexing
1. Module Description
Pada bagian ini akan dijelaskan mengenai Indexing dengan pembahasan
Introduction indexes, Creating new index in query, dan Drop Index.
2. Learning Outcomes
Trainee dapat memahami dan mengkombinasikan penggunaan index dalam
suatu query
3. Material
a. Tipe Index
Beberapa tipe index :
Clustered index
Clustered index merupakan sebuah indeks yang mengurutkan data pada
tabel dan dapat diumpamakan seperi indeks huruf dalam kamus. Karena
data dalam tabel hanya dapat disimpan dalam satu urutan maka satu
tabel hanya dapat memiliki satu clustered index. Clustered index
diimplementasikan sebagai struktur B-tree yang mendukung pencarian
dan pengambilan data yang cepat.
Nonclustered index
Nonclustered index tidak mengurutkan data secara fisikal dan dapat
diumpamakan seperti daftar indeks pada buku. Sebuah tabel dapat
memiliki banyak nonclustered index dan nonclustered index berisi pointer-
pointer yang menunjukkan lokasi sesungguhnya dari data yang dicari saat
melakukan pencarian data. Cara ini sedikit lebih membutuhkan waktu
pencarian dibanding dengan metode clustered index.
Unique index
Unique index memastikan bahwa kunci indeks tidak ada yang
mengandung nilai-nilai duplikat.
114
b. Membuat Index
1. Pada Object Explorer, klik kanan pada tabel yang ingin diberikan index
kemudian klik Design.
115
2. Kemudian akan muncul Table Designer.
116
3. Dari menu Table Designer, klik Indexes / Keys
4. Pada dialog box Indexes / Keys, klik Add. List Selected Primary /
Unique Key or Index menampilkan index baru.
5. Pilih index baru pada list Selected Primary / Unique Key or Index
dan atur properties index pada grid disebelah kanan. Kemudia klik Close.
117
c. Membuat Unique Index
1. Pada Object Explorer, klik kanan pada tabel yang ingin diberikan index
kemudian klik Desain.
2. Kemudian akan muncul Table Designer.
3. Dari menu Table Designer, klik Indexes / Keys
4. Pada dialog box Indexes / Keys, klik Add. List Selected Primary /
Unique Key or Index menampilkan index baru.
5. Pada grid klik Type. Pilih Index dari drop-down list disebelah kanan
properti.
118
6. Pada Column Name, pilih kolom yang ingin diberikan index. Index dapat
dipilih sampai 16 kolom. Untuk perfomance yang optimal, pilih hanya 1
atau 2 kolom per index. Index dapat diatur secara ascending atau
descending.
119
8. Pilih pilihan Ignore duplicate keys jika ingin mengabaikan data yang
baru atau diupdate yang akan membuat sebuah duplicate keys pada index
(dengan statement INSERT atau UPDATE).
1. Pada Object Explorer, klik kanan pada tabel yang ingin diberikan index
kemudian klik Desain.
2. Kemudian akan muncul Table Designer.
3. Dari menu Table Designer, klik Indexes / Keys.
4. Pada dialog box Indexes / Keys, klik Add.
5. Pilih index baru yang ada di list Selected Primary / Unique Key or
Index.
6. Pada grid, pilih Create as Clustered, dan pilih Yes dari drop-down list
pada properties disebelah kanan.
120
7. Index baru akan disimpan didatabase ketika menyimpan tabel.
e. Management Index
Menghapus index
1. Pada Object Explorer, klik kanan pada tabel yang ingin diberikan index
kemudian klik Desain.
2. Dari menu Table Designer, klik Indexes / Keys.
3. Pada list Selected Primary / Unique Key or Index, klik index yang
ingin dihapus.
4. Klik Delete.
121
5. Index akan dihapus dari database ketika tabel disimpan.
122
f. Membuat index dengan Transact-SQL
<object> ::=
{
[ database_name. [ schema_name ] . | schema_name. ]
table_or_view_name
}
<relational_index_option> ::=
{
PAD_INDEX = { ON | OFF }
| FILLFACTOR = fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP = max_degree_of_parallelism
}
Contoh :
CREATE INDEX Idx_Pelanggan
ON MsBarang (KodeBarang)
Contoh :
DROP INDEX MsBarang.Idx_Barang
123
Database
Module 13 – Store Procedure
1. Module Description
Pada bagian ini, akan dijelaskan tentang deskripsi dari store procedure dan cara
pemakaiannya beserta implementasi kedalam database.
2. Learning Outcomes
Trainee diharapkan dapat memahami dan menguasai pemakaian store procedure
dan mengetahui kegunaannya.
3. Material
a. Introduction transact SQL Code (Pengenalan Transact SQL)
Deklarasi Variable
Tipe dari variable yang dapat dideklarasikan adalah tipe data dari Ms-
SQL yaitu char, varchar, datetime, int, money dan lainnya.
Contoh :
DECLARE @jumlah int /* deklarasi variable*/
Select @jumlah = 800 /* memberikan nilai 800 ke jumlah */
124
PRINT „Judul dvd yaitu „ + @nama /* mencetak nama */
Hasil :
Judul dvd yaitu Spiderman2 (dari kolom)
PRINT adalah fungsi yang menampilkan teks dan variable pada console
(layar).
IF
If digunakan dalam mengendalikan alur program berdasarkan kondisi.
Sintaks :
IF kondisi
Instruksi
IF kondisi
Instruksi1
ELSE
Instruksi2
IF kondisi
BEGIN
Instruksi1
Instruksi2
…
…
END
Contoh :
Declare @honor int, @rata_rata int
Select @honor = 200000
Select @rata_rata = 100000
Hasil :
Honor di atas rata – rata
125
WHILE
While digunakan untuk mengeksekusi satu blok program berulang –
ulang sampai kondisi pada WHILE menjadi false.
Sintaks :
WHILE kondisi
BEGIN
…
…
END
Contoh :
Declare @i int
Select @i = 0
While @i < 5
BEGIN
PRINT „i = „ + str (@i)
Select @i = @i – 1
END
CASE
Sintaks :
CASE
WHEN kondisi 1 THEN
WHEN kondisi 2 THEN
WHEN kondisi 3 THEN
ELSE
END
Contoh :
126
WHEN @t = „C‟ then „Karakter C‟
ELSE
„Tidak diketahui‟
END
PRINT „Hasil adalah ‘ + @hasil
Hasil :
Hasil adalah Karakter C
RETURN
RETURN akan menghentikan program dari eksekusi. RETURN dapat
digunakan dalam memproses error. RETURN menyebabkan program
yang dieksekusi kembali ke statement pemanggilnya.
Contoh :
127
PARAMETER
Prosedur dapat mempunyai parameter berupa variable yang disuplai oleh
program yang memanggilnya.
Sintaks Membuat prosedur dengan parameter:
Contoh :
USE AdventureWorks
GO
CREATE PROCEDURE sp_Employee
AS
SELECT * FROM dbo.Employee
WHERE FName LIKE '%i%'
ORDER BY EMPID
GO
128
Maka hasilnya akan menghasilkan output sebagai berikut:
Contoh :
129
Maka hasil outputnya akan menghasilkan sebagai berikut :
Gunakan sp_helptext untuk melihat isi dari stored procedure yang telah
dibuat atau diubah.
Contoh :
USE AdventureWorks
GO
sp_helptext sp_getemployee
Kita dapat melihat bahwa nama stored procedure yang tertera pada gambar
diatas,
130
Nama stored procedurenya tidak mengalami perubahan. Tetapi jika kita ingin
mengakses stored procedure yang ada dalam result tersebut, akan
mengalami error
Kesimpulan
Ini terjadi dikarenakan ketika stored procedure tersebut diubah namanya,
sys.prodecures nya dalam system table tidak di – update. Solusinya adalah
menghapus stroed procedure yang ada dan membuat kembali yang baru
dengan nama yang diinginkan.
d. Error Handling
Untuk membuat suatu error handling, diperlukan sintaks yang
namanya @@ERROR. @@ERROR ini berfungsi sebagai bentuk dari suatu
implementasi error handling. @@ERROR terdiri dari error ID yang dihasilkan
dari akhir dari sebuah statement SQL. Ketika suatu statement di execute,
maka @@ERROR adalah 0. Untuk mendeteksi apakah suatu statement error
atau tidaknya berdasarkan dari statement IF yang digunakan untuk
mengecek nilai dari suatu fungsi setelah target telah dieksekusi.
Contoh :
USE tempdb
go
ALTER PROCEDURE ps_NonFatal_INSERT
@Column2 int =NULL
AS
INSERT NonFatal VALUES (@Column2)
IF @@ERROR <>0
BEGIN
PRINT 'Error Occured'
END
Jika terjadi error dalam error handling tersebut, maka akan muncul tampilan
sebagai berikut :
131
Database
Module 14 - Store Procedure Advanced
1. Module Description
Pada bagian ini akan dijelaskan mengenai Cursor. Konsep awal, jenis kursor dan
bagaimana pembaca dapat melakukan pembuatan Code yang berkaitan dengan
Cursor.
2. Learning Outcomes
Trainee dapat mengetahui apa itu kursor, jenis kursor dan melakukan
implementasi menggunakan Cursor.
3. Material
a. Introduction Cursor
Declare Cursor
DECLARE cursor_name CURSOR
FOR select_statement
Deallocate Cursor
DEALLOCATE cursor_name CURSOR
Contoh :
132
--Selama ada datanya maka lakukan pengambilan data
While @@FETCH_STATUS = 0
BEGIN
--Ambil data selanjutnya
FETCH NEXT FROM Cursor_Boneka
END
--Tutup Cursor_Boneka
CLOSE Cursor_Boneka
--Delete Cursor_Boneka
DEALLOCATE Cursor_Boneka
Hasil :
b. Type of Cursors
b. Prior
Mengembalikan baris sebelum baris terakhir diambil.
c. First
133
Mengembalikan baris yang paling pertama.
d. Last
Mengembalikan baris yang paling terakhir.
e. Absolute
Mengembalikan baris ke-n dari baris pertama jika n adalah bilangan bulat
positif. Jika n adalah bilangan bulat negatif, maka akan mengembalikan
baris ke-n dari baris terakhir. Jika n adalah 0, maka tidak ada baris yang
diambil.
f. Relative
Mengembalikan baris ke-n dari baris terakhir diambil. Jika n adalah positif,
maka baris ke-n setelah baris terakhir diambil akan diambil. Jika n adalah
negatif, maka baris ke-n sebelum baris terkahir diambil akan diambil.Jika
n adalah 0, maka baris yang sama yang akan diambil.
Berikut contohnya :
WHILE @@FETCH_STATUS = 0
BEGIN
134
PRINT '- ' + @NamaGame
FETCH NEXT FROM curGame INTO
@NamaGame
END
PRINT ''
CLOSE curGame
DEALLOCATE curGame
FETCH NEXT FROM Cur1 INTO @Kode, @Jenis
END
CLOSE cur1
DEALLOCATE cur1
135
Database
Module 15 - Trigger
1. Module Description
Pada bagian ini akan dijelaskan mengenai Trigger dengan pembahasan konsep
awal, create dan drop trigger serta exception handling.
2. Learning Outcomes
Trainee dapat mengetahui apa itu trigger dan melakukan implementasi
menggunakan trigger.
3. Material
a. Introduction Trigger
Trigger adalah blok program Transact-SQL yang diasosiasikan dengan
Tabel dan disimpan dalam Database. Trigger dieksekusi bila terjadi suatu
database "event". Database event yaitu Insert, Update dan Delete. Jadi
Trigger merupakan suatu aksi (Transact-SQL) yang dilakukan terhadap
kejadian/event yang berlaku pada sebuah tabel dimana trigger berada.
Beberapa manfaat Trigger antara lain :
1. Meluruskan aturan-aturan yang harus berlaku.
2. Menjaga nilai sebelum dimasukkan ke dalam database.
3. Keamanan system.
4. Membuat historical record(riwayat perubahan).
5. Dan lain-lain
b. Create Trigger
136
Contoh Sederhana:
sebuah Trigger diberikan pada Table Pegawai
Maka hasil dari query tersebut setelah insert diberikan trigger adalah :
“Record : Kode Pegawai = PG001, Nama Pegawai = James”
c. Drop Trigger
Contoh Sederhana:
d. Exception Handling
Exception Handling adalah suatu mekanisme penanganan error yang
mungkin terjadi dalam suatu query. Sintaks TRY akan dikerjakan terlebih
dahulu, jika tidak ditemukan error maka sintaks CATCH tidak akan dijalankan,
137
dan sebaliknya jika error ditemukan saat menjalankan query, maka sintaks
CATCH akan dikerjakan untuk menanggulangi error tersebut.
BEGIN TRY
{ SQL Statement }
END TRY
BEGIN CATCH
{ SQL Statement }
END CATCH [;]
Contoh Sederhana:
BEGIN TRY
INSERT INTO Num VALUES („angka‟)
END TRY
BEGIN CATCH
Print „Query Wrong‟
END CATCH
Jika dijalankan hasil query diatas adalah : “Query Wrong” karena tipe
data yang diterima seharusnya int bukan char ataupun varchar pada nilai
„angka‟.
138
Database
Module 16 - Replication and Monitoring
Performance Database
1. Module Description
Pada bagian ini akan dijelaskan mengenai Replication and Monitoring
Performance Database dengan pembahasan Introduction to Distributed Data,
Introduction to SQL Server Replication, SQL Server Replication Types,
Performance Monitoring and Tuning, dan Tools for Monitoring and Tuning. Tasks
2. Learning Outcomes
Trainee mampu mengenal makna data terdistribusi, mengenal SQL Server
Replication dan menggunakannya, mengetahui macam-macam replikasi, dan
melakukan performance monitoring dan tuning
3. Material
a. Introduction to Distributed Data
Distributed Data
Semakin banyak aplikasi yang membutuhkan akses ke beberapa database yang
terletak di lokasi yang berbeda dan mungkin saja terpisah secara geografis.
Dengan adanya sistem database terdistribusi memungkinkan aplikasi untuk
mengakses database di lokasi yang berbeda.
139
Buat Backup plan dan strateginya.
Buat Local views dan synonyms.
Lakukan test (stress test) : loads and failures.
DDBMS
Tipe-tipe DDBMS :
1. Homogeneous DDBMS
2. Heterogeneous DDBMS
Load Balancing
Replikasi memungkinkan untuk menyebarkan data ke sejumlah server dan
kemudian mendistribusikan beban permintaan di antara server-server
tersebut.
140
Offline Processing
Manipulasi data pada database pada perangkat yang tidak selalu
terhubung ke jaringan.
Redundancy
Replikasi memungkinkan untuk membangun sebuah fail-over server
database yang siap untuk mengangkat beban pengolahan pada saat itu
juga.
Subscribers
Substriber merupakan server database yang akan menerima update dari
publisher ketika data dimodifikasi.
Transactional replication
Memelihara kekonsistenan transaksi yang terjadi.
Merge replication
Merge replication memungkinkan publisher dan subscriber untuk
melakukan perubahan data secara independen. Merge replication berguna
untuk menggabungkan berbagai situs replikasi dan menggabungkan data
modifikasi yang dilakukan beberapa kali.
2. Concurrency
Mempermudah lebih dari 1 user untuk mengubah atau mengakses
data pada saat yang bersamaan.
141
d. Performance Monitoring and Tuning
142
Database
Module 17 - Identification Entity and
Its Relationship
1. Module Description
Pada bagian ini akan dijelaskan mengenai Identification Entity and Its
Relationship dengan pembahasan konsep perancangan tabel, entity, relationship
dan multiplicity.
2. Learning Outcomes
Trainee memahami dan mengusai konsep perancangan tabel yang baik dan
benar serta dapat mengimplementasikannya.
3. Material
a. Konsep Perancangan Tabel
Untuk melakukan perancangan table, kita menggunakan teknik seperti
Fact Finding. Teknik Fact Finding adalah :
Secara kritis menangkap fakta penting yang dibutuhkan untuk
membangun suatu aplikasi database.
Fakta ini ditangkap dengan teknik fact-finding.
Proses secara formal digunakan teknik interview dan kuestioner untuk
mengumpulkan fakta mengenai sistem, requirement, and preferensi.
b. Entity
Entity adalah sebuah objek di mana data-data di simpan. Entity hanya
menampung data-data yang kita perlukan. Informasi yang kita perlukan,
disimpan dalam bentuk attribute dan/atau relationships. Jadi jika suatu objek
tidak memiliki attribute atau relationship, maka ia tidak dapat dianggap
sebagai entity. Di dalam database, sebuah entity dilambangkan dengan
sebuah kotak dengan judul. Judul tersebut merupakan nama dari suatu
entity.
143
One to one
Pada relationship ini, 1 data dari suatu table hanya boleh memiliki 1
data yang sesuai pada table pasangannya. Contohnya : satu karyawan
hanya bisa memiliki satu jabatan.
One to many
Pada relationship ini, 1 data dari suatu table boleh memiliki banyak
data yang sesuai pada table pasangannya. Contohnya : satu karyawan
dapat melayani banyak transaksi.
Many to many
Pada relationship ini, banyak data dari suatu table boleh memiliki
banyak data yang sesuai pada table pasangannya. Contohnya : pada
suatu warnet, satu pelanggan dapat menggunakan banyak komputer,
dan satu komputer dapat digunakan banyak pelanggan.
Multiplicity pada database adalah jumlah data yang dapat terhubung antara
2 tabel. Jenis-jenis nya sama seperti yang di atas, yaitu one to one, one to
many, dan many to many.
144
Database
Module 18 – Entity Properties
1. Module Description
Pada bagian ini akan dijelaskan secara singkat definisi entity properties dan cara
pemakaian entity properties.
2. Learning Outcomes
• Trainee memahami penentuan atribut dan relationship antar tabel.
3. Material
a. Entity
Entity adalah objek yang dapat dibedakan dalam dunia nyata. Entity
Set adalah kumpulan dari entity yang sejenis. Entity Set dapat berupa :
Objek secara fisik: Rumah, Kendaraan, Peralatan
Objek secara konsep: Pekerjaan, Perusahaan, Rencana
b. Atribut
Atribut adalah karakteristik dari entity atau relationship, yang
menyediakan penjelasan detail tentang entity atau relationship tersebut.
Jenis-Jenis Atribut
Attribute Value
Data actual atau informasi yang disimpan pada suatu atribut di dalam
suatu entity atau relationship
Key
Atribut yang digunakan untuk menentukan suatu Entity secara unik
Simple Attribute
Atribut yang bernilai tunggal
Contoh:
145
nama
pegawai
Multivalue Attribute
Atribut yang memiliki sekelompok nilai untuk setiap instant Entity
Contoh:
PEGAWAI
Composite Attribute
Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang
mempunyai arti tertentu
Contoh:
Nama
Tengah
Nama Nama
Depan Belakang
Nama
Pegawai
146
Derivatives Attribute
Suatu atribut yang dihasilkan dari atribut yang lain.
Contoh:
PEGAWAI
Jenis-Jenis Key
Primary Key
Primary key merupakan field/column yang menjadi kunci untuk
mengidentifikasikan record-record dari tabel yang bersangkutan. Sifat dari
primary key yaitu unique (tidak ada duplikat atau data yang sama) dan
not null (tidak boleh kosong).
Foreign Key
Foreign key adalah key yang menjadi penghubung di tabel lain. Foreign
key terdapat di tabel child. Tujuan membuat foreign key yaitu untuk
menghubungkannya ke tabel parent yang terdapat dalam satu database.
Superkey
Super key adalah sebuah atribut atau set atribut yang secara unique
mengidentifikasikan tuple dalam dalam relasi.
Candidate Key
Candidate key adalah field yang menjadi calon untuk dijadikan primary
key
Composite Key
Composite key adalah primary key ada lebih dari satu kolom dalam satu
tabel
Alternate Key
Alternate key adalah candidate key yang gagal menjadi primary key.
147
Database
Module 19 - Data Normalization
1. Module Description
Pada bagian ini akan dijelaskan mengenai Normalisasi dengan pembahasan
tujuan dan proses normalisasi, disertai dengan contohnya.
2. Learning Outcomes
Trainee memahami dan menguasai proses normalisasi.
3. Material
a. Pendahuluan
Untuk merancang database yang baik, biasa dilakukan normalisasi.
Normalisasi merupakan sebuah teknik untuk menghasilkan set relasi dengan
property yang desirable dan memberikan data sesuai dengan kebutuhan
enterprise.
b. Tujuan Normalisasi
Mengidentifikasi hubungan antar atribut
Mengkombinasikan atribut untuk membentuk relasi
Mengkombinasikan relasi untuk membentuk database
Menghindari anomaly
c. Proses Normalisasi
Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan
persyaratan tertentu ke beberapa tingkat.
Apabila tabel yang diuji belum memenuhi persyaratan tertentu,maka
tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih
sederhana sampai memenuhi bentuk yang optimal.
1. UNF
Dalam proses normalisasi UNF kita menampilkan semua field atau
atribut yang ada dalam suatu form yang ingin kita normalisasi.
2. 1NF
Sebuah relasi berada dalam 1NF jika relasi tersebut tidak berisi
atribut yang berulang ( repeating group ), field hasil perhitungan
dihilangkan dan sudah mempunyai primary key.
148
3. 2NF
Sebuah relasi berada dalam 2NF jika relasi tersebut dalam 1NF dan
untuk setiap atribut non key bergantung fungsional penuh kepada
primary key. Jadi pada 2NF kita akan menghilangkan
ketergantungan sebagian / partial : ketergantungan field-field
tertentu hanya kepada salah satu key yang composit.
Contoh :
Tabel Mahasiswa ( Nim, Nama, Alamat )
Nama & alamat tergantung pada Nim dalam arti dengan Nim kita
dapat menentukan nama maupun alamat sebaliknya nama /
alamat tidak menentukan nim, maka diartikan bahwa nama &
alamat tergantung secara partial kepada nim.
4. 3NF
Sebuah relasi berada dalam 3NF bila relasi tersebut dalam 1NF dan
2NF dan tidak ada atribut non key yang tergantung fungsional
kepada atribut non key yang lainnya ( transitive dependency ).
Contoh :
Tabel Pegawai ( NoPegawai, honor, KdProyek, Tanggal )
KdProyek & Tanggal adalah atribut non key. Tapi tanggal
bergantung pada KdProyek. Pemecahannya dengan membagi
menjadi 2 relasi :
Proyek ( KdProyek, Tanggal )
PegProyek ( Nopegawai, honor, KdProyek )
149
d. Contoh Normalisasi
1. UNF
Penjualan (NoFaktur, Tanggal, NamaCust, AlamatCust, {KdBarang,
NamaBarang, JenisBarang, Harga, Banyak, Total}, GrandTotal)
2. 1NF
DetailPenjualan (NoFaktur, KdBarang, NamaBarang, JenisBarang, Harga,
Banyak)
HeaderPenjualan (NoFaktur, Tanggal, NamaCust, AlamatCust)
3. 2NF
DetailPenjualan (NoFaktur, KdBarang, Banyak)
HeaderPenjualan (NoFaktur, Tanggal, NamaCust, AlamatCust)
Barang (KdBarang, NamaBarang, JenisBarang, Harga)
4. 3NF
DetailPenjualan (NoFaktur, KdBarang, Banyak)
HeaderPenjualan (NoFaktur, Tanggal, NoCust)
Barang (KdBarang, NamaBarang, KdJenisBarang, Harga)
Customer (NoCust, NamaCust, AlamatCust)
JenisBarang (KdJenisBarang, JenisBarang)
150
Data Warehouse
Module 01 - Tabel master dan tabel
transaksi, Measure data, Rancangan
data warehouse : tabel faka dan tabel
dimensi.
1. Module Description
Pada bagian ini akan dijelaskan mengenai Tabel master dan tabel transaksi,
Measure data, dan Rancangan data warehouse : tabel faka dan tabel dimensi.
2. Learning Outcomes
Trainee dapat mengidentifikasikan tabel master dan tabel transaksi dari OLTP
(Online Transaction Processing), menentukan meassure data dari OLTP dan
informasi lainnya sesuai dengan kebutuhan informasi yang diinginkan, dan
membuat rancangan tabel fakta dan tabel dimensi.
3. Material
a. Pengenalan Data Warehouse ( DWH )
Data warehouse menurut Bill Inmon adalah sebuah kumpulan data yang
subject-oriented, integrated, time-variant, dan non-volatile dalam proses
pengambilan keputusan manajemen. Dari pengertian tersebut maka
didapatlah ciri-ciri data warehouse berikut:
Subject-oriented: data tersebut dapat di-customize untuk keperluan
orang-orang tertentu di dalam perusahaan. Jadi data yang di-generate
disesuaikan dengan permintaan.
Integrated: data yang akan terintegrasi ke dalam data warehouse
disesuaikan tipe datanya dengan database data warehouse.
Time-variant: data yang ada harus bersifat konsisten (tidak
berubah/tetap).
Non-volatile: data yang ada tidak pernah di-update, hanya ditambahkan
jika ada yang lebih baru.
OLTP mengacu pada kelas sistem yang memfasilitasi dan mengelola aplikasi
berorientasi transaksi, biasanya untuk entri data dan pengambilan proses
transaksi
151
Persyaratan
OLTP menggunakan client/server dan software pengolah yang
memungkinkan transaksi untuk dapat dijalankan pada platform komputer
yang berbeda dalam jaringan. OLTP sering diintegrasikan ke dalam Service
Oriented Architecture ( SOA ) dan Web Services.
Manfaat
OLTP memiliki 2 manfaat utama yaitu: simplicity dan efficiency. Mengurangi
penggunaan kertas dan lebih cepat, memiliki perkiraan / ramalan yang akurat
untuk pendapatan dan biaya dalam hal berbisnis.
Table Master
Master atau bisa disebut file induk acuan ( reference master file ) : file
induk yang recordnya relatif statis, jarang berubah nilainya. Misalnya file
daftar gaji, file mata pelajaran.
Selain itu bisa juga dikatakan sebagai file induk dinamik ( dynamic master
file ) : file induk yang nilai dari record – record-nya sering berubah atau
sering di-update sebagai hasil dari suatu transaksi. Misalnya MsBarang, yang
setiap saat harus di-update bila terjadi transaksi.
Table Transaction
Dapat disebut file input. Digunakan untuk merekam data hasil dari transaksi
yang terjadi. Misalnya file penjualan yang berisi data hasil transaksi
penjualan. File transaksi sering terjadi pengulangan data yang sama
dikarenakan produk /barang yang berbeda, sehingga dipecah menjadi
header dan detail.
152
Yang membentuk OLAP adalah DW & BI:
Data Warehouse ( DW )
DW bicara mengenai bagaimana data – data yang besar dan beragam
disimpan dalam satu repository dan disusun sedemikian sehingga
memudahkan pencarian.
Business Inteligence ( BI )
BI bisa dikatakan sebagai konsep database yang multidimensi sehingga
memudahkan analisa dan pengambilan keputusan secara bijak berdasarkan
informasi yang akurat. Perlu diingat yang membentuk BI bukan hanya
konsep database, melainkan metode, orang, software yang bertujuan untuk
mencapai pengambilan keputusan guna meningkatkan keuntungan.
Measure Data
Adalah data – data yang berupa perhitungan. Dan sumber datanya didapat
dari OLTP. Perhitungan yang dihasilkan akan digunakan untuk forcasting
pendapatan dan beban sehingga memudahkan dalam pengambilan
keputusan. Measure Data akan digunakan sebagai record dari sebuah
laporan. Contoh : TotalPenjualanBahanBaku yang merupakan hasil
penjumlahan pendapatan pada transaksi operasional.
Dimensi
Adalah sudut pandang yang akan digunakan dalam melihat laporan historikal
yang dihasilkan oleh DW. Dimensi akan menjadi table pada DW. Contoh:
DimensiWaktu, DimensiSupplier.
Fakta
Laporan utama yang dibutuhkan dalam pengambilan keputusan. Fakta juga
dibentuk dari Measure Data dan Dimensi – dimensi yang didapat dari
OLTP.
d. OLTP vs OLAP
153
4. Query yg digunakan
OLTP : Simple Query.
OLAP : Complex Queries.
5. Kecepatan proses
OLTP : Pada dasarnya sangat cepat.
OLAP : Tergantung dari data yg dilibatkan, proses akan lebih cepat
dengan menggunakan fungsi indexing.
6. Space yg dibutuhkan
OLTP : Relatif kecil.
OLAP : Lebih besar, karena membutuhkan lebih banyak indexing
dibandingkan OLTP.
7. Database Design
OLTP : Normalized dengan banyak table.
OLAP : De-normalized dengan sedikit table dan menggunakan star /
showflake schemas.
Measure Data
Untuk mengidentifikasikan Measure kita perlu menganalisis data apa saja
yang dibutuhkan pada OLTP agar terbentuk suatu measure yang dibutuhkan.
Contoh: data jumlah total penjualan. Berarti kita membutuhkan data – data
quantity dan harga dari tabel penjualan pada OLTP.
Dari ERD diatas maka kita perlu informasi dari seluruh Jumlah jual dikalikan
dengan Harga Sekarang.
Dalam Query ( SQL Server 2008 ) :
Dimensi
Dimensi adalah sudut pandang dari sebuah laporan yang dibutuhkan.
Dimensi dapat diambil dari sebuah master yang terletak pada OLTP yang
154
kemudian di-summary-kan pada Dimensi. Dimensi akan menjadi table pada
OLAP.
Misalnya dari table Pelanggan maka pada table Dimensi akan di-summary-
kan. Primary Key pada Pelanggan tidak menjadi PK pada Dimensi.
Dimensi punya sebutan lain yaitu Surrogates Key sedangkan PK dari OLTP
akan menjadi Business Key pada proses ETL. Surrogates Key berfungsi
hanya sebagai keunikan tiap data yang masuk dalam DW sehingga dapat
dibuat dengan Auto Increment. Sedangkan Business Key digunakan untuk
mengidentifikasikan data yang sama apabila melakukan proses ETL lagi.
Fakta
Merupakan inti dari laporan apa yang dibutuhkan. Fakta juga merupakan
tabel yang dibentuk pada DW. Fakta terbentuk dari Dimensi ( sudut
pandang yang berkaitan dengan Fakta yang dibutuhkan ) dan Measure Data
( perhitungan yang dibutuhkan oleh Fakta tersebut ).
PROSES BISNIS
Contoh 1
155
membantu transaksi perbankan yang mungkin tidak terlayani oleh kantor
cabang utama. Tetapi transaksi yang ada tetap dibedakan. Setiap pegawai
hanya bekerja pada satu kantor cabang, entah itu kantor cabang utama
maupun kantor cabang pembantu. Jenis tabungan pada Bank Bluejacket ada
4 jenis, yaitu: Tahapan Bluejacket, Super Savings, Star Savings, dan
Bluejacket Yunior.
156
OLTP (ONLINE TRANSACTION PROCESSING)
157
ANALISA
Dalam data warehouse, laporan yang dilihat tidak memuat informasi yang
detail karena data yang ada dalam data warehouse hanya ditujukan untuk
laporan secara garis besar saja untuk pengambilan keputusan. Berikut adalah
hasil analisa dari kasus di atas :
1. Dimensi
a. Dimensi Cabang
d. Dimensi Nasabah
e. Dimensi Waktu
158
2. Fakta
a. Fakta Nasabah Aktif
159
e. Fact Setoran
Surrogate key adalah key yang unik yang digunakan sebagai primary key
pada tabel tersebut tapi key ini bukan hasil dari turunan data manapun (alias
kita buat sendiri dan fungsinya hanya sebagai penanda yang sifatnya unik).
Setelah ditambahkan tanggal entri pada OLTP, maka buat satu table
FilterTimeStamp (nama table bebas) yang digunakan untuk menyimpan
waktu terakhir menarik data dari OLTP ke datawarehouse per tiap dimensi
dan fakta.
Contoh table penyimpanan tersebut :
Field Process Date akan selalu diupdate setiap dilakukan perpindahan data
dari OLTP ke data warehouse sehingga akan menunjukkan tanggal dan waktu
terakhir data tersebut dipindahkan.
Field Table Name hanya menunjukkan nama table yang telah dipindahkan
pada tanggal dan waktu yang ditujukan.
STAR SCHEMA
Setelah melakukan analisa di atas, maka akan terbentuk star schema untuk
setiap fakta yang dapat dibuat dari SQL Server 2005.
Contoh star schema Fact Nasabah Aktif:
160
Contoh 2
161
GM membutuhkan laporan mengenai pembelian, meliputi jumlah
pembelian baju dan total pembelian baju. Total Pembelian didapat dari
harga beli baju dikali jumlah baju yang dibeli.
GM membutuhkan laporan mengenai penyewaan, meliputi jumlah
penyewaan baju dan total penyewaan baju. Total Penyewaan didapat dari
harga sewa baju dikali jumlah baju yang disewa.
GM membutuhkan laporan mengenai laundry, meliputi jumlah laundry dan
rata-rata laundry. Rata-rata Laundry didapat dari rata-rata perkalian dari
jumlah laundry dengan harga laundry.
GM membutuhkan laporan tersebut setiap bulan, kuartal (per empat
bulan), dan tahunan.
Laporan tersebut juga harus dapat dilihat dari segi pelanggan, supplier,
baju, toko, jenis laundry, dan karyawan (termasuk jenis kelamin
karyawan dan jabatan).
Dibutuhkan juga laporan ad-hoc yang dapat diminta kapan saja oleh GM.
Keterangan :
Pada transaksi penjualan baju, akan dicatat Kode Karyawan yang
melakukan transaksi, Kode Pelanggan, Tanggal Transaksi, Kode Baju yang
dijual dan Jumlah baju untuk masing – masing baju yang dijual.
Pada transaksi pembelian baju, akan dicatat Kode Karyawan yang
melakukan transaksi, Kode Supplier, Tanggal Transaksi, Kode Baju yang
dibeli dan Jumlah baju untuk masing – masing baju yang dibeli.
Pada transaksi penyewaan baju, akan dicatat Kode Karyawan yang
melakukan transaksi, Kode Pelanggan, Tanggal Transaksi, Kode Baju yang
disewa dan Jumlah baju untuk masing – masing baju yang disewa.
Pada transaksi laundry baju, akan dicatat Kode Karyawan yang melakukan
transaksi, Kode Pelanggan, Tanggal Transaksi, Kode Jenis Laundry yang
dilakukan dan Jumlah untuk masing – masing jenis laundry yang terjadi.
Setiap Karyawan memiliki satu jabatan.
Setiap ada data yang di-insert atau di-update, tanggal dicatat pada field
InsertedDate.
162
Tabel Operasi Relasionalnya
Measure
Jumlah Penjualan = sum(Qty)
Total biaya penjualan = sum(Qty*HargaJual)
163
Jumlah Laundry = sum(Qty)
Rata-rata biaya laundry = avg(Qty*HargaLaundry)
Dimensi
Dimensi Waktu
-----------------
WaktuID
Hari
Bulan
Kuartal
Tahun
Dimensi Karyawan
-----------------------
KaryawanID
KodeKaryawan
NamaKaryawan
JenisKelamin
Jabatan
Dimensi Pelanggan
------------------------
PelangganID
KodePelanggan
NamaPelanggan
Dimensi Toko
-----------------
TokoID
KodeToko
NamaToko
Dimensi JenisLaundry
--------------------------
JenisLaundryID
KodeJenisLaundry
JenisLaundry
Dimensi Baju
----------------
BajuID
KodeBaju
Merk
Dimensi Supplier
---------------------
SupplierID
KodeSupplier
NamaSupplier
JenisSupplier
164
Fakta
Fakta Penjualan
-------------------
WaktuID
KaryawanID
PelangganID
BajuID
TokoID
JumlahBajuTerjual
TotalPenjualanBaju
Fakta Pembelian
--------------------
WaktuID
KaryawanID
SupplierID
BajuID
TokoID
JumlahBajuDibeli
TotalPembelianBaju
Fakta Penyewaan
---------------------
WaktuID
KaryawanID
PelangganID
BajuID
TokoID
JumlahBajuDisewa
TotalPenyewaanBaju
Fakta Laundry
-----------------
WaktuID
KaryawanID
PelangganID
TokoID
JenisLaundryID
JumlahLaundry
RataRataBiayaLaundry
165
Data Warehouse
Module 02 - Data Transformation
Services Basic
1. Module Description
Pada bagian ini akan dijelaskan mengenai Data Transformation Services Basic
dengan pembahasan mengenai cara membuat DTS Package baru dengan Ms.
SQL Server Management Studio 2008.
2. Learning Outcomes
Trainee memahami dan dapat membuat dimensi.
3. Material
a. Membuat Table Dimensi dan Fakta
create table DimensiWaktu
(
WaktuID int identity primary key,
Tgl datetime,
Hari int,
Bulan int,
Kuartal int,
Tahun int,
)
166
create table DimensiJenisLaundry
(
JenisLaundryID int identity primary key,
KodeJenisLaundry varchar(100),
JenisLaundry varchar(100),
)
167
create table FaktaLaundryBaju
(
WaktuID int,
KaryawanID int,
PelangganID int,
TokoID int,
JenisLaundryID int,
JumlahLaundry int,
RataRataBiayaLaundry numeric(15,2),
)
Pilih Create Project untuk membuat DTS Package baru. Setelah itu akan
muncul window seperti di bawah ini :
168
Pilih Integration Services Project. Tentukan nama dan lokasi Project.
Setelah itu pilih OK.
169
Setelah itu DTS Package kita telah jadi dengan nama defaultnya
„Package.dtsx‟. Tab aktif awal adalah Control Flow, pindah ke bagian tab
Data Flow.
Setelah itu klik pada bagian tulisan “No Data Flow tasks have been
added to this package. Click here to add new Data Flow task.”
170
Buat global connection OLTP dan OLAP. Pada Solution Explorer klik
kanan pada Data Sources, pilih New Data Source.
Pilih next
171
Tentukan koneksi OLTP atau OLAP
Setelah kedua koneksi dibuat, akan tampil OLAP.ds dan OLTP.ds di Data
Sources
172
Contoh Dimensi Pelanggan
Double Click pada „OLE DB Source‟. Setelah itu akan muncul Window
berikut :
Pilih New
173
Pilih Localhost.OLTP lalu klik OK
174
Pilih Table or view pada Data access mode dan pilih nama tabel
MsPelanggan yang ada di database OLTP. Setelah itu klik OK.
175
Setelah itu pada bagian Toolbox Data Flow Transformations Slowly
Changing Dimension. Hubungkan OLE BD Source dengan Slowly
Changing Dimension. Double Click pada Slowly Changing Dimension.
176
Ada 3 pilihan atribut :
Fixed Attribute
Jika nilai di dalam kolom tidak boleh diubah
Changing Attribute.
Jika nilai di dalam kolom boleh diubah dan menggantikan nilai
sebelumnya.
Historical Attribute
Jika nilai di dalam kolom boleh diubah namun nilai yang lama tetap di
record.
177
Tekan F5 untuk memindahkan data dari OLTP ke OLAP
178
Jika berhasil maka saat select * from DimensiPelanggan pada dataabse
OLAP, maka akan tampil data sebagai berikut.
Buat SSIS Package baru. Klik kanan pada SSIS Package, pilih New SSIS
Package
179
Sama dengan dimensi pelanggan, koneksi dari LocalHost.OLTP, sedangkan
Data access modenya menjadi SQL command. Adapun SQL command untuk
dimensi waktu adalah sebagai berikut :
180
Query Dimensi Waktu
SELECT
Tgl AS [Tgl],
year( Tgl ) AS [Tahun],
[Kuartal] =
case
WHEN month( Tgl ) BETWEEN 1 AND 4 THEN 1
WHEN month( Tgl ) BETWEEN 5 AND 8 THEN 2
WHEN month( Tgl ) BETWEEN 9 AND 12 THEN 3
END,
month( Tgl ) AS [Bulan],
day( Tgl ) AS [Hari]
FROM
( SELECT DISTINCT TglPenjualan AS Tgl, InsertedDate
FROM [OLTP].[dbo].TrHeaderPenjualan
UNION
SELECT DISTINCT TglPembelian AS Tgl, InsertedDate
FROM [OLTP].[dbo].TrHeaderPembelian
UNION
SELECT DISTINCT TglPenyewaan AS Tgl, InsertedDate
FROM [OLTP].[dbo].TrHeaderPenyewaan
UNION
SELECT DISTINCT TglLaundry AS Tgl, InsertedDate
FROM [OLTP].[dbo].TrHeaderLaundry
) AS Tgl
181
Double Click pada OLE DB Destination. Pilih LocalHost.OLAP, Table or
view, dan Dimensi Waktu.
182
Di bagian Mappings untuk melihat apakah data sudah termapping dengan
benar antara OLTP dan OLAP. Setelah itu klik OK.
183
184
Data Warehouse
Module 03 - Data Transformation
Services Intermediate
1. Module Description
Pada bagian ini akan dijelaskan mengenai Data Transformation Services
Intermediate dengan pembahasan mengenai cara Dynamic Query dengan Global
Variabel dengan Ms. SQL Server Management Studio 2008.
2. Learning Outcomes
Trainee memahami dan dapat membuat fakta.
3. Material
a. Membuat Dynamic Query dengan Global Variabel
Pada database OLAP terdapata Tabel FilterTimeStamp. Pada awal
tabel tersebut masih belum berisi data apa-apa, sehigga untuk fakta perlu
kita validasi dengan IF EXISTS.
Jika belum ada maka kita menarik data ke tabel Fakta di database
OLAP tanpa syarat dan insert data FilterTimeStamp dengan tanggal saat
penarikan, sedangkan jika sudah ada isinya kita menarik data ke tabel Fakta
di database OLAP dengan syarat InsertedDate > Last_ETL dan update
data FilterTimeStamp dengan tanggal saat penarikan.
Query FaktaPenjualanBaju
IF EXISTS
(
SELECT Last_ETL
FROM [OLAP].[dbo].FilterTimeStamp
WHERE NamaTable = 'FaktaPenjualanBaju'
)
BEGIN
SELECT
WaktuID,
KaryawanID,
PelangganID,
BajuID,
TokoID,
sum(Qty) AS [JumlahBajuTerjual],
sum(Qty*HargaJual) AS [TotalPenjualanBaju]
FROM
TrHeaderPenjualan AS header,
TrDetailPenjualan AS detail,
[OLAP].[dbo].DimensiWaktu AS DimWaktu,
[OLAP].[dbo].DimensiKaryawan AS DimKaryawan,
[OLAP].[dbo].DimensiPelanggan AS DimPelanggan,
185
[OLAP].[dbo].DimensiBaju AS DimBaju,
[OLAP].[dbo].DimensiToko AS DimToko,
MsKaryawan AS karyawan,
MsBaju AS baju
WHERE
header.KodePelanggan = DimPelanggan.KodePelanggan AND
header.KodeKaryawan = DimKaryawan.KodeKaryawan AND
header.KodeKaryawan = karyawan.KodeKaryawan AND
karyawan.KodeToko = DimToko.KodeToko AND
detail.KodePenjualan = header.KodePenjualan AND
detail.KodeBaju = DimBaju.KodeBaju AND
header.TglPenjualan = DimWaktu.Tgl AND
baju.KodeBaju = DimBaju.KodeBaju AND
header.InsertedDate >
(
SELECT Last_ETL
FROM [OLAP].[dbo].FilterTimeStamp
WHERE NamaTable = 'FaktaPenjualanBaju'
)
GROUP BY
WaktuID,
KaryawanID,
PelangganID,
BajuID,
TokoID
END
ELSE
BEGIN
SELECT
WaktuID,
KaryawanID,
PelangganID,
BajuID,
TokoID,
sum(Qty) AS [JumlahBajuTerjual],
sum(Qty*HargaJual) AS [TotalPenjualanBaju]
FROM
TrHeaderPenjualan AS header,
TrDetailPenjualan AS detail,
[OLAP].[dbo].DimensiWaktu AS DimWaktu,
[OLAP].[dbo].DimensiKaryawan AS DimKaryawan,
[OLAP].[dbo].DimensiPelanggan AS DimPelanggan,
[OLAP].[dbo].DimensiBaju AS DimBaju,
[OLAP].[dbo].DimensiToko AS DimToko,
MsKaryawan AS karyawan,
MsBaju AS baju
WHERE
header.KodePelanggan = DimPelanggan.KodePelanggan AND
header.KodeKaryawan = DimKaryawan.KodeKaryawan AND
header.KodeKaryawan = karyawan.KodeKaryawan AND
karyawan.KodeToko = DimToko.KodeToko AND
detail.KodePenjualan = header.KodePenjualan AND
detail.KodeBaju = DimBaju.KodeBaju AND
header.TglPenjualan = DimWaktu.Tgl AND
baju.KodeBaju = DimBaju.KodeBaju
GROUP BY
WaktuID,
186
KaryawanID,
PelangganID,
BajuID,
TokoID
END
IF EXISTS
(
SELECT Last_ETL
FROM [OLAP].[dbo].FilterTimeStamp
WHERE NamaTable = 'FaktaPenjualanBaju'
)
BEGIN
UPDATE [OLAP].[dbo].FilterTimeStamp
SET Last_ETL = getdate()
WHERE NamaTable = 'FaktaPenjualanBaju'
END
ELSE
BEGIN
INSERT INTO [OLAP].[dbo].FilterTimeStamp
VALUES ('FaktaPenjualanBaju',getdate())
END
187
Contoh FaktaPenjualanBaju
Sama seperti membuat dimensi, kita menggunakan OLE DB Source dan OLE
DB Destination.
Pada OLE DB Source Editor, pilih LocalHost.OLTP dan SQL command. Isi
dari SQL Command adalah query FaktaPenjualanBaju di atas.
188
Pada OLE DB Destination Editor, pilih LocalHost.OLAP, Table or view,
dan FaktaPenjualanBaju.
189
Di bagian Mappings untuk melihat apakah data sudah termapping dengan
benar antara OLTP dan OLAP. Setelah itu klik OK.
Setelah itu, pada tab Control Flow akan muncul Data Flow Task yang
mewakili isi Data Flow kita. Pada bagian Maintenance Plan Tasks, pilih
Execute T-SQL Statement Task. Lalu hubungkan Data Flow Task dengan
Execute T-SQL Statement Task .
190
Jika Execute T-SQL Statement Task di double click maka akan muncul
window seperti ini, lalu pilih New.
Isi Connection name dan Server name. Tentukan pula apakah memakai
username dan password.
191
Isi T-SQL Statement dengan query Update atau Insert FilterTimeStamp
192
193
Data Warehouse
Module 04 - Membuat Cube, Penyajian
informasi dari data warehouse dengan
aplikasi lainnya
1. Module Description
Pada bagian ini akan dijelaskan mengenai pembuatan cube dan pivot table.
2. Learning Outcomes
Trainee dapat mengetahui dan memahami apa itu cube dan pivot table.
3. Material
a. Membuat cube dan pivot dengan Microsoft SQL Server Management
Studio 2008
194
Buat Data Source baru
195
Pilih default, lalu di next
196
Beri nama kemudian finish
Untuk data source view, masukan table yang berhubungan, lalu next
197
Klik kanan new cube
Klik next
198
Klik next
Klik next
199
Pilih table fakta dan dimensi yang ingin dibuat cube
Klik next
200
Klik next
Klik next
201
Beri nama cube lalu finish
202
b. Membuat pivot table dengan Microsoft Excel
Dari Excel, pilih menu Data, kemudian pilih From Other Sources,
From Analysis Services. Masukkan Server name dan klik Next
Pilih cube yang ada dalam analysis services yang ingin dibuat pivot table.
Atur tampilan pivot table melalui kolom-kolom yang ingin dimasukkan ke
dalam pivot.
203
c. Menampilkan hasil pivot table ke dalam web pages
Pilih save as dalam Microsoft Excel yang sudah ada pivot table-nya.
Lalu save dalam format Single File Web Page
204