id
MATA KULIAH
BASIS DATA LANJUT
MATERI
1. Review Database 1 ( ER-Model,Normalisasi, SQL dan Relasional )
2. Design Basis Data
3. Query Lanjut
4. Optimasi Query
5. Database Trigger
6. Basis data Client Server
7. Basis Data Terdistribusi
8. Basis Data Internet
9. Basis Data Warehousing & Decision Support
10.Data Mining
t
e
N
a
r
d
By
n
e
H
By
Hendra Jatnika, S.Kom
http://www.hendra-jatnika.web.id
Bab 1
Review Database 1
POKOK BAHASAN:
Pendahuluan
ER-Model
Model Relasional
Structured Query Language
Normalisasi
TUJUAN BELAJAR:
t
e
N
a
r
d
By
1.1.
n
e
H
PENDAHULUAN
Pada saat sekarang ini, kesuksesan suatu organisasi bergantung pada
kemampuannya menangkap data secara akurat dan tepat waktu, dalam hal
pengoperasian, pengaturan data secara efektif, maupun penggunaan data untuk
keperluan analisis.
Kemampuan untuk mengatur atau mengolah sejumlah data, dan kecepatan untuk
mencari informasi yang relevan, adalah aset yang sangat penting bagi suatu organisasi.
Untuk mendapatkan himpunan data yang besar dan kompleks, user harus memiliki alat
http://www.hendra-jatnika.web.id
bantu (tools) yang akan menyederhanakan tugas manajemen data dan mengekstrak
informasi yang berguna secara tepat waktu.
Basis data adalah kumpulan data, yang dapat digambarkan sebagai aktifitas dari satu
atau lebih organisasi yang berelasi.
informasi mengenai :
Entiti , semisal mahasiswa, fakultas, mata kuliah, dan ruang kelas
Relasi diantara entitas, seperti pengambilan kuliah yang dilakukan oleh
mahasiswa, staf pengajar di fakultas, dan penggunaan ruang perkuliahan.
Manajemen Sistem Basis Data (Database Management System DBMS) adalah
perangkat lunak yang didesain untuk membantu dalam hal pemeliharaan dan utilitas
kumpulan data dalam jumlah besar. DBMS dapat menjadi alternatif penggunaan secara
khusus untuk aplikasi, semisal penyimpanan data dalam file dan menulis kode aplikasi
yang spesifik untuk pengaturannya.
t
e
N
Tujuan dari pengajaran mata kuliah basis data adalah untuk memberikan suatu
pendahuluan mengenai sistem manajemen basis data, dengan penekanan pada
a
r
d
n
e
H
informasi tersebut dan melakukan pengambilan informasi secara efektif, dan bagaimana
By
cara mendesain suatu basis data dan menggunakan suatu DBMS secara efektif pula.
Penggunaan DBMS untuk suatu aplikasi tergantung pada kemampuan dan dukungan
DBMS yang beroperasi secara efisien.
Pendekatan yang
dilakukan untuk menggunakan DMBS secara baik, meliputi implementasi DBMS dan
arsitektur secara mendetail untuk dapat memahami desain dari suatu basis data.
1.2.
ER-MODEL
Pada ER Model, gambaran dunia nyata diistilahkan dalam obyek dan relasinya.
ER model biasa digunakan untuk mengembangkan inisial dari desain basis data. ER
model menyediakan suatu konsep yang bermanfaat yang dapat mengubah deskripsi
informal dari apa yang diinginkan oleh user menjadi hal yang lebih detail, presisi, dan
deskripsi detail tersebut dapat diimplementasikan ke dalam DBMS.
http://www.hendra-jatnika.web.id
Pada konteks yang lebih luas, ER model digunakan dalam fase desain basis data
konseptual.
t
e
N
a
r
d
n
e
H
By
http://www.hendra-jatnika.web.id
t
e
N
a
r
d
n
e
H
By
Pada suatu contoh kasus, seorang pegawai dapat bekerja pada beberapa
departments; sebuah departement memiliki banyak pegawai
http://www.hendra-jatnika.web.id
t
e
N
partial.
a
r
d
By
n
e
H
Entiti lemah dapat diidentifikasi secara unik jika terdapat peran kunci utama
(primary key) yang berasal dari atau dimiliki oleh entity yang lain (owner).
o Himpunan entity owner dan entity lemah harus berartisipasi dalam
himpunan relasi one-to-many (satu owner, banyak entity lemah).
http://www.hendra-jatnika.web.id
t
e
N
a
r
d
n
e
H
By
http://www.hendra-jatnika.web.id
1.2.5. AGGREGASI
Aggregasi digunakan pada saat kita perlu memodelkan apa saja yang terlibat
dalam suatu himpunan relasi. Aggregasi membolehkan kita untuk memperlakukan
suatu himpunan relasi sebagai himpunan entity untuk tujuan partisipasi dalam relasi
yang lain.
Gambar berikut menunjukkan bahwa Monitors adalah relasi yang distinct dengan
deskripsi atribut. Juga dapat dikatakan bahwa tiap sponsorship dimonitor oleh seorang
pegawai.
t
e
N
a
r
d
n
e
H
By
1.3.
MODEL RELASIONAL
Basis Data Relasional adalah himpunan relasi. Suatu relasi adalah himpunan
http://www.hendra-jatnika.web.id
Pada gambar, contoh instance dari relasi Students memiliki kardinalitas = 3, degree = 5,
semua baris bersifat distinct. (Pertanyaan : Apakah semua kolom dalam instance relasi
juga harus distinct ? )
Kekuatan utama dari model relasional adalah kesederhanaannya, dan
kelebihannya adalah dalam melakukan query atas data. Query dapat ditulis secara
t
e
N
a
r
d
Kita dapat melakukan query pada beberapa table yang saling berelasi. Contoh
pada table berikut jika terdapat table Enrolled yang berelasi dengan table Students
n
e
H
By
Kemudian diberikan query :
SELECT S.name, E.cid
Yaitu mencari data Students (nama Students dan mata kuliah yang diikutinya) yang
mendapat nilai A.
http://www.hendra-jatnika.web.id
t
e
N
a
r
d
n
e
H
o Jika terdapat lebih dari satu key untuk suatu relasi, maka salah satu dari
key tersebut akan dipilih oleh DBA untuk menjadi primary key.
By
Misal : sid adalah key untuk relasi Students. (Bagaimana dengan name),
himpunan key (sid,gpa) adalah merupakan superkey.
Primary dan Candidate Key dalam SQL :
Seorang Students dapat mengambil suatu course dan hanya menerima satu nilai
untuk grade dari course yang diikutinya.
http://www.hendra-jatnika.web.id
10
t
e
N
Hanya Students yang terdaftar dalam relasi Students yang diperbolehkan untuk
a
r
d
n
e
H
By
Referential Integrity
Misal pada relasi Students dan Enrolled; sid dalam Enrolled adalah foreign key
yang mereferensi relasi Students.
Apa yang harus dilakukan jika tupel Enrolled dengan suatu data Students yang
tidak terdaftar dalam relasi Students disisipkan ? (Hindari hal ini).
http://www.hendra-jatnika.web.id
11
t
e
N
a
r
d
o CASCADE (juga men-delete semua tupel yang merefer ke tupel yang didelete).
By
n
e
H
o Set nilai NULL/DEFAULT (Set nilai foreign key dari tupel yang
direferensi).
http://www.hendra-jatnika.web.id
1.4.
12
berdasarkan suatu standart. Bentuk dasar dari SQL adalah sebagai berikut :
SELECT [DISTINCT] select-list
FROM from-list
WHERE qualification
Setiap query dalam SQL harus memiliki klausa SELECT, yang menentukan kolom yang
akan ditampilkan pada hasil, dan klausa FROM yang menentukan cross product table.
Klausa optional WHERE menentukan syarat-syarat seleksi pada table yang ditunjukkan
oleh FROM.
Berikut ini akan dibahas sintaksis query SQL dasar dengan lebih mendetail :
from list pada klausa FROM adalah daftar nama table. Nama tabel dapat diikuti
oleh nama alias; nama alias berguna ketika nama tabel yang sama muncul lebih
t
e
N
a
r
d
n
e
H
yang tercantum pada form list. Nama kolom dapat diawali dengan nama alias
dari tabel.
By
Kata kunci distinct bersifat pilihan yang menghapus duplikat dari hasil query.
SQL menyediakan tiga konstruksi set-manipulation yang memperluas query
dasar, yaitu UNION, INTERSECT dan EXCEPT. Juga operasi set yang lain seperti : IN
(untuk memeriksa apakah elemen telah berada pada set yang ditentukan), ANY dan
ALL (untuk membandingkan suatu nilaid engan elemen pada set tertentu), EXISTS
(untuk memeriksa apakah suatu set kosong atau isi). Operator IN dan EXISTS dapat
diawali dengan NOT.
Fitur SQL yang lain yaitu NESTED QUERY, artinya query yang memiliki query
lain di dalamnya, yang disebut dengan subquery. Nested query digunakan jika terdapat
suatu nilai yang tidak diketahui (unknown values).
http://www.hendra-jatnika.web.id
13
SQL mendukung lima operasi aggregat yang diterapkan pada sembarang kolom
yaitu :
relasi.
Dan
penambahan klausa HAVING jika kita ingin menerapkan suatu kondisi terhadap data
yang sudah dikelompokkan dengan GROUP BY.
1.5.
NORMALISASI
t
e
N
a
r
d
n
e
H
Istilah normalisasi berasal dari E.F. codd, salah seorang perintis teknologi basis
data. Normalisasi adalah proses untuk mengubah suatu relasi tertentu ke dalam dua buah
relasi atau lebih.
By
Berikut ini akan dijelaskan proses Normalisasi sampai dengan bentuk normal
ketiga.
Bentuk Normal Pertama (1NF)
Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut
bernilai
tunggal
untuk
setiap
atribut
bernilai
contoh:
Tabel 1. sebelum bentuk normal pertama
NIP
Nama
Hoby
10113024
10113025
Samsul
Dengar Musik
Makan
tunggal
untuk
setiap
baris
http://www.hendra-jatnika.web.id
14
Nama
Hoby
10113024
Endang C Permana
Olahraga
10113024
Endang C Permana
Baca Buku
10113025
Samsul
Dengar Musik
10113025
Samsul
Makan
Nama
10113024
10113024
10113025
Samsul
10113025
Samsul
By
Kd_Mata_kuliah Nilai
a
r
d
en
t
e
N
100
004
60
Kd_Mata_kuliah
(Primary Key)
Nilai
10113024
001
70
10113024
002
90
10113025
003
100
10113025
004
60
Table 5.
NIP (Primary Key)
Nama
10113024
Endang C Permana
10113025
Samsul
90
003
70
http://www.hendra-jatnika.web.id
15
Suatu relasi dikatakan dalam bentuk normal ketiga jika berada dalam normal kedua dan
setiap atribut bukan kunci tidak memiliki ketergantungan transitif terhadap kunci primer
contoh:
Tabel 6. sebelum bentuk normal ketiga
Kode_proyek Nama
Alamat_kota
001
002
003
Samsul
Jakarta
004
Samsul
Jakarta
Nama
001
Endang C Permana
002
Endang C Permana
003
Samsul
004
Samsul
Table 8.
Nama
Endang C Permana
Samsul
By
t
e
N
a
r
d
n
e
H
Alamat_kota
Bandung
jakarta
RINGKASAN:
Basis data adalah kumpulan data, yang dapat digambarkan sebagai aktifitas dari
satu atau lebih organisasi yang berelasi.
Pada ER Model, gambaran dunia nyata diistilahkan dalam obyek dan relasinya dan
digunakan untuk mengembangkan inisial dari desain basis data.
http://www.hendra-jatnika.web.id
16
Batasan Integritas adalah suatu kondisi yang harus bernilai benar untuk suatu
instance dalam basis data
Structured Query Language (SQL) adalah bahasa database relasional yang dibuat
berdasarkan suatu standart, dan memiliki bentuk dasar :
SELECT [DISTINCT] select-list
FROM from-list
WHERE qualification
Normalisasi adalah perbaikan skema database yang dibuat dengan tujuan untuk
menghindari penyimpanan informasi yang redundan.
t
e
N
LATIHAN SOAL :
a
r
d
n
e
H
By
mengenai musisi yang mengerjakan albumnya (seperti halnya data perusahaan lain)
dalam sebuah database. Pihak perusahaan menyewa anda sebagai desainer database
(dengan biaya konsultasi sebesar $2.500 / hari).
mendapatkan alamat yang sama dengan musisi lain, dan satu alamat mempunyai
satu nomer telpon.
http://www.hendra-jatnika.web.id
17
Tiap lagu yang di catat di Notown mempunyai judul dan pengarang lagu
Tiap musisi mungkin memainkan beberapa instrumen, dan tiap instrumen dapat
dimainkan oleh beberapa musisi
Tiap album mempunyai beberapa lagu di dalamnya tapi tidak ada lagu yang
muncul bersamaan dalam satu album.
Tiap lagu dibawakan oleh satu atau lebih musisi dan seorang musisi bisa
membawakan beberapa lagu.
t
e
N
a
r
d
n
e
H
Berikan contoh constraint foreign key yang melibatkan relasi Dept. Apa saja pilihan
yang ada untuk melaksanakan constraint ini pada saat user berusaha untuk menghapus
record pada Dept ?
By
3. Untuk skema relasional pada nomer 2, definisikan relasi Dept pada SQL sehingga
setiap department dipastikan memiliki seorang manajer.
4. Untuk skema relasional pada nomer 2, tuliskan pernyataan SQL untuk menampilkan
karyawan yang bekerja di department IT.
5. Untuk skema relasional pada nomer 2, tuliskan pernyataan SQL untuk menampilkan
karyawan yang bekerja di department IT dan memiliki usia yang lebih dari usia
rata-rata orang-orang yang bekerja di department IT
6. Lakukan normalisasi data pada tabel Kuliah yang memiliki atribut : kode kuliah,
nama kuliah, sks, semester, nama dosen, waktu kuliah, ruang.
http://www.hendra-jatnika.web.id
Bab 2
Desain Basis Data
POKOK BAHASAN:
Pendahuluan
Aturan Sistem Informasi dalam Organisasi
Proses Desain Basis Data
t
e
N
TUJUAN BELAJAR:
a
r
d
By
n
e
H
2.1 PENDAHULUAN
Aktifitas desain basis data menggunakan proses yang sistematis yang disebut
metodologi desain, dimana target basis data diatur dengan RDBMS, ORDBMS atau
ODBMS.
Oracle, ERWin, BPWin dan Paradigm Plus oleh Platinum Technology dan lain
sebagainya.
Biasanya, desain basis data kecil sekitar 20 pemakai tidak perlu sangan
kompleks. Tetapi untuk ukuran medium atau basis data besar yang melayani beberapa
grup alikasi yang luas, puluhan sampai ratusan pemakain, pendekatan sistematis
menjadi sangat perlu untuk melakukan desain basis data.
18
http://www.hendra-jatnika.web.id
19
Basis data yang besar dengan data beberapa puluh sampai gigabyte dan skema
dengan lebih dari 30 sampai 40 tipe entity yang berbeda, dapat memenuhi array yang
besar dari basis data pemerintahan, industri dan institusi financial dan komersial. Sektor
industri termasuk di dalamnya bank, hotel, airline, asuransi, utilitas dan komunikasi
menggunakan basis data untuk operasi setiap hari 24 jam, 7 hari per minggu atau
operasi 24 kali 7. Sistem aplikasi untuk basis data tersebut disebut system pemrosesan
transaksi untuk volume transaksi besar.
t
e
N
Tahun 1960 an sistem informasi didominasi dengan sistem file, tetapi sejak awal 1970
a
r
d
n
e
H
By
diperkenalkan oleh organisasi yang besar sebagai kunci kesuksesan manajemen bisnis.
Terdapat beberapa alasan :
Data dianggap sebagai resource yang bekerjasama, dan manajemen dan kontrol
dilakukan terpusan untuk pekerjaan yang lebih efisien dalam organisasi
Seiring pertumbuhan data dan aplikasi relasi yang lebih kompleks dari data perlu
dimodelkan dan diatur.
ukuran besar. Dua karakteristik tambahan dari sistem basis data yang juga sangat
bernilai :
http://www.hendra-jatnika.web.id
20
External shemas (views) memungkinkan data yang sama digunakan untuk beberapa
aplikasi dengan setiap aplikasi mempunyai pandangan sendiri terhadap data.
Sistem basis data menyediakan aplikasi baru yaitu :
Kemungkinan didukung untuk browsing dan query oleh manajer dalam pemrosesan
transaksi level produksi yang besar.
Sejak awal 1970 sampai pertengahan 1980, perubahan pembuatan data
repository tersentral yang besar dengan DBMS tunggal tersentral. Selama 10 sampai 15
tahun, pengembangan basis data meliputi :
1.
Personal computer dan produk software seperti basis data, seperti EXCEL,
FOXPRO, MSSQL, ACCESS atau SQL
2.
DBMS
terdistribusi
dan
t
e
N
client-server
a
r
d
sebagai
pembuka
pilihan
en
By
berikut :
a. Deskripsi skema sistem basis data.
b. Informasi detail dari desain fisik basis data, seperti struktur penyimpan,
akses path, ukuran file dan record.
c. Deskripsi pemakai basis data, tanggung jawab dan hak akses.
d. Deskripsi tingkat tinggi dari transaksi basis data dan aplikasi dan relasi
pemakai ke transaksi.
http://www.hendra-jatnika.web.id
21
e. Relasi antara transaksi basis data dan data item yang dirujuk. Hal ini
sangat berguna untuk menentukan transaksi mana yang diakibatkan jika
definisi data diubah
f. Penggunakan stasitik seperti frekuensi query dan transaksi dan jumlah
akses ke basis data
2.2.2
t
e
N
a
r
d
Siklus sistem informasi disebut siklus makro, dimana siklus sistem basis data
n
e
H
By
2.
dengan
pemakai
potensial
dan
kelompok
pemakai
untuk
Ketergantungan
Desain : Tahanp ini mempunayi dua aspek yaitu mendesain sistem basis data
dan mendesain sistem aplikasi (program) yang menggunkaan dan memproses
basis data.
4.
http://www.hendra-jatnika.web.id
5.
22
Validation and acceptance testing : Tingkat akses dari sistem dalam memenuhi
kebutuhan pemakai dan kriteria performansi divalidasi.
Sistem diujicoba
Monitoring
t
e
N
tahap berikut :
1.
System definition :
didefinisikan.
a
r
d
n
e
H
By
Database design : Pada akhir dari tahap ini , desain logika dan fisik dari sistem
basisi data dari DBMS sudah siap.
3.
4.
5.
6.
7.
Operation : sistem basis data dan aplikasi dioperasikan. Biasanya sistem lama
dan baru dioperasikan secara paralel dalam beberapa waktu.
8.
http://www.hendra-jatnika.web.id
23
pada isi data maupun aplikasi perangkat lunak. Modifikasi dan reorganisasi
diperlukan dari waktu ke waktu.
t
e
N
a
r
d
n
e
H
By
mungkin memodifikasi desain dari awal tahap selama tahap kemudian. Feedback loop
antar tahap juga dalam tahap sering terjadi. Summary tahap 2, 4, dan 5 adalah berikut :
Desain basis data konseptual (Tahap 2) : Tujuan dari tahap ini adalah
memproduksi skema konseptual untuk basis data yang independen dari DBMS
tertentu. Biasanya menggunakan model data tingkat tinggi seperti model ER
atau EER.
Pemetaan model data (Tahap 4) : Selama tahap ini yang djuga disebut desain
basis data logika, dilkaukan pemetaan skema konseptual dari model data tingkat
tinggi ke model data DBMS.
http://www.hendra-jatnika.web.id
24
Desain basis data fisik (Tahap 5) : Selama tahap ini, didesain spesifikasi basis
data yang disimpat dalam hal struktur penyimpan fisik, penempatan record dan
indeks. Hal ini berhugungan dengan terminologi arsitektur DBMS 3 level.
Implementasi sistem basis data dan tuning (Tahap 6) : Selama tahap ini , basis
data dan program aplikasi diimplementasikan, diuji cobakan dan diatur
layanannya.
t
e
N
a
r
d
By
n
e
H
Gambar 2-1: Tahap perancangan basis data untuk basis data besar
http://www.hendra-jatnika.web.id
2.3.1
25
keinginan pemakai terhadap suatu basis data sedetail mungkin. Proses ini disebut
koleksi dan analisa kebutuhan.
diidentifikasi bagian lain dari sistem informasi yang berhubungan dengan sistem basisi
data. Termasuk di dalamnya pemakai dan aplikasi baru dan yang sudah ada, kemudian
kebutuhan dikoleksi dan dianalisa. Aktifitas yang merupakan bagian dari tahap ini
adalah :
1. Area aplikasi mayor dan kelompok pemakai yang akan menggunakan basis data
atau pekerjaan apa yang akan diakibatkan diidentifikasi.
2. Dokumen yang sudah ada yang berhubungan dengan aplikasi dipelajari dan
dianalisa.
t
e
N
a
r
d
n
e
H
By
ditentukan.
4. Penulisan respon untuk menentukan pertanyaan terkadang dikelompokkan dari
pemakai basis data potensial atau kelompok pemakai. Pertanyaan ini melibatkan
prioritas pemakai dan tempat yang penting untuk suatu aplikasi.
Individu
mentransformasi keebutuhan awal ke aplikasi yang lebih spesifik yang dapat digunakan
oleh pengembangan sebagai langkah awal untuk menulis implementasi dan uji coba.
Untuk transformasi kebutuhan ke struktur yang lebih baik, teknik spesifikasi
kebutuhan digunakan. Misalnya OOA (object-oriented analysis) dan DFD (data flow
http://www.hendra-jatnika.web.id
26
Aktifitas pertama yaitu desain skema konseptual, menentukan kebutuhan data yang
dihasilkan pada tahap 1 dan menghasilkan skema basis data konseptual. Aktifitas
kedua, desain transaksi dan aplikasi, menentukan analisa aplikasi basis data pada tahap
1 dan menghasilkan spesifikasi level tinggi untuk aplikasi tersebut.
Tahap 2a : Desain Skema Konseptual
Skema konseptual diproduksi dari tahap ini terdiri dari model data tingkat
t
e
N
1. Tujuan desain skema konseptual adalah skema lengkap tentang struktur basis
a
r
d
data, semantik, interrelationship dan constraint. Hal ini tergantung dari DBMS
yang digunakan.
By
n
e
H
2. Skema konseptual tidak tersedia sebagai deskripsi stabil dari isi basis data.
Pemilihan DBMS dan keputusan desain dapat berubah tanpa mengubah skema
konseptual DBMS-independent.
3. Skema konseptual yang baik sangat penting untuk pemakai basis data dan
desainer. Penggunaan model data tingkat tingga lebih ekspresif dan umum
daripada model data dari DBMS.
4. Deskripsi diagram dari skema konseptual dapat menawarkan kendaraan
komunikasi yang baik diantara pemakai basis data, desainer dan analyst. Karena
model data level tinggi biasanya berbentuk konsep dan mudah untuk mengerti
daripada model data DBMS yang level lebih rendah, atau definisi sintak data,
komunikasi yang berhubungan dengan desain skema menjadi lebih kelihatan.
Pada tahap desain basis data, perlu menggunakan model data konseptual level
tinggi dengan karakteristik :
1. Expressiveness : model data cukup ekspresif untuk membedakan perbedaan tipe
data, relationship dan constraint.
http://www.hendra-jatnika.web.id
27
t
e
N
a
r
d
n
e
H
By
dimana kebutuhan dari aplikasi yang berbeda dan kelompok pemakai pada tahap 1
digabungkan ke dalam satu himpunan kebutuhan sebelum desain skema dimulai. Suatu
skema berhubungan digabungkan ke himpunan kebutuhan kemudian dilakukan desain.
Jika terdapat banyak pemakai dan banyak aplikasi, penggabungan semua kebutuhan
dapat menghabiskan waktu. Asumsikan DBA bertanggung jawab untuk menentukan
bagaimana menggabungkan kebutuhan dan untuk merancang skema konseptual untuk
keseluruhan basis data.
eksternal untuk kelompok pemakai dan aplikasi dapat ditentukan oleh DBA
Pendekatan kedua adalah pendekatan view integration, dimana kebutuhan tidak
digabungkan.
http://www.hendra-jatnika.web.id
28
Perbedaan kedua pendekatan terletak pada tujuan dimana banyak view atau
kebutuhan dari banyak pemakai dan aplikasi digabungkan. Pada pendekatan terpusat,
rekonsiliasi dilakukan secara manual oleh DBA. Hal ini dapat mengakibatkan terjadi
konflik pada staff DBA. Permasalahan ini dipecahkan dengan menggunakan konsultan
luar.
Pada pendekatan view integration, setiap kelompok pemakai merancang skema
konseptual (EER) masing-masing. Kemudian proses integrasi diaplikasikan pada skema
ini (view) oleh DBA untuk membentuk skema integrasi global.
Meskipun view
integration dapat dilakukan manual, aplikasi ini adalah basis data besar yang melibatkan
puluhan kelompok pemakai membutuhkan suatu metodologi dan penggunaan alat bantu
otomatis untuk integrasi. Korespondensi antara atribut, tipe entiti dan relasionship
harus ditentukan sebelum integrasi dapat dilakukan.
t
e
N
a
r
d
1. Top-down strategy : Dimulai dengan skema yang berisi abstraksi level tinggi
n
e
H
By
hanya beberapa tipe entiti level tinggi dan kemudian lakukan pembagian ke
dalam tipe entiti level lebih rendah dan relationship.
2. Bottom-up strategy : Mulai dengan skema yang berisi abstraksi dasar dan
kemudian kombinasikan atau tambahkan abstraksi tersebut. Sebagai contoh,
mulai dengan atribut dan kelompok ke dalam tipe entiti dan relationship.
Tambahkan relasi baru pada tipe entiti selama proses perancangan.
3. Inside-out strategy : Merupakan kasus khusus dari bottom-up strategi, dimana
atensi difokuskan pada himpunan konsep terpusat yang lebih nyata. Model
kemudian diisi dengan konsep baru pada konsep yang sudah ada. Kita dapat
tentukan beberapa tipe entiti nyata dalam skema dan dilanjutkan dengan
menambah tipe entiti dan relasi yang berhubungan.
4. Mixed strategy : Kebutuhan dibagi berdasarkan top-down strategy, bagian
skema dirancang untuk setiap partisi berdasarkan bottom-up strategy.
strategi ini mengkombinasikan beberapa skema.
Jadi
http://www.hendra-jatnika.web.id
29
t
e
N
a
r
d
By
n
e
H
Gambar 2-2 dan 2-3 menggambarkan top-down strategy dan bottom-up strategy.
Contoh top-down didekomposisi dari tipe entiti ke dalam beberapa tipe entiti. Gambar
2-2(a) menunjukkan COURSE dibagi dalam COURSE dan SEMINAR, dan relasi
TEACHES dihubungkan terpisah dalam TEACHES dan OFFERS.
Gambar 2-2(b)
terlihat tipe entiti COURSE_OFFERING dibagi dalam dua tipe entiti COURSE dan
INSTRUCTOR dan relasi antar keduanya. Gambar 2-3(a) memperlihatkan bottom-up
strategy dari generalisasi relasi baru diantara tipe entiti.
Bottom-up menggunakan
kategory (tipe union) yang diilustrasikan pada Gambar 2-3(b) dimana konsep baru
http://www.hendra-jatnika.web.id
30
VEHICLE_OWNER ditemukan dari tipe entiti yang sudah ada yaitu FACULTY,
STAFF dan STUDENT.
t
e
N
a
r
d
By
n
e
H
Gambar 2-3: Contoh strategi bottom-up. (a) menemukan dan menambah relasi
baru. (b) menemukan katagori baru (tipe union) dan menghubungkannya.
http://www.hendra-jatnika.web.id
31
t
e
N
a
r
d
n
e
H
By
a. Domain (value set) confict : Suatu atribut berbeda domain dalam dua
skema.
Konflik unit
http://www.hendra-jatnika.web.id
32
skema global dan pemetaan antara view dan skema global ditentukan. Hal ini
merupakan langkah yang sulit untuk melakukan pada basis data
sebenarnya yang melibatkan ratusan entiti dan relasi.
yang
t
e
N
ra
Gambar 2-5
d
n
e
By
Atribut
Publisher diaplikasikan hanya pada tipe entiti BOOK dimana atribut Size dan relasi tipe
PUBLISHED_IN diaplikasikan hanya ke ARTICLE.
Tahap 2b : Desain Transaksi
Tujuan dari tahap 2b, dimana proses dilakukan paralel dengan tahap 2, untuk
mendesain karaktersitik transaksi basis data yang diketahui (aplikasi) dengan cara
DBMS-independent. Jika suatu sistem basis data dirancang, perancang sadar beberapa
aplikasi yang diketahui (atau transaksi) yang akan dijalankan dalam basis data
diimplementasikan. Bagian terpenting dari perancangan basis data adalah menentukan
karakteristik fungsi transaksi tersebut sebelumnya dalam proses perancangan. Hal ini
menjamin skema basis data akan memasukan semua informasi yang dibutuhkan oleh
transaksi tersebut.
http://www.hendra-jatnika.web.id
33
t
e
N
a
r
d
By
n
e
H
http://www.hendra-jatnika.web.id
34
Teknik yang umum digunakan untuk menentukan transaksi pada level konseptual
t
e
N
a
r
d
parameter input dan ouput dan aliran fungsi internal, desainer dapat mennetukan
transaksi secara konseptual dan dengan cara system-independent.
en
Transaksi
By
(1) Retrieval transaction, yang digunakan untuk menampilkan data ke layar atau untuk
produksi pelaporan.
(2) Update transaction, yang digunakan untuk memasukkan data baru atau
memodifikasi data yang sudah ada pada basis data.
(3) Mixed transaction, yaitu digunakan untuk aplikasi yang komplek yang melakukan
retrieval dan update. Sebagai contoh, misalnya basis data pemesanan tiket pesawat
(airline reservation). Retrieve transaction menampilkan daftar semua pesawat pagi
antara dua kota.
http://www.hendra-jatnika.web.id
2.3.3
35
kebijakan organisasi. Faktor teknis berhubungan dengan ketepatan DBMS yang dipilih.
Yang termasuk faktor teknis adalah tipe DBMS (relational, object-relational, object,
lainnya), struktur penyimpan dan akses path yang didukung DBMS, ketersediaan antar
muka pemakai dan pemrogram, tipe bahasa query tingkat tinggi, ketersediaan alat bantu
pengembangan, kemampuan berhubungan dengan DBMS lain melalui media standatd,
pilihan arsitektur yang berhubungan dengan operator client-server dan lain sebagainya.
Faktor non teknis termasuk di dalamnya status finansial dan dukungan organisasi
terhadap vendor.
organisasi adalah ;
1. Software acquisiton cost : Merupakan harga up-front dalam pembelian perangakt
lunak, termasuk pilihan bahasa, pilihan antar muka seperti form, menu dan antar
t
e
N
muka Web berbasis GUI, pilihan recovery/backup, metode akses khusu dan
dokumentasi.
a
r
d
Biasanya, alat bantu pengembangan, alat bantu desain dan dukungan bahasa
n
e
H
By
http://www.hendra-jatnika.web.id
36
7. Operating cost : Biaya operasi lanjutan dari sistem basis data biasanya tidak
termasuk dalam evaluasi.
Keuntungan
DBMS mempunyai
pengembangan aplikasi, mengurangi redudancy data dan keamanan dan kontrol yang
lebih baik. Basis data sudah digunakan pada banyak organisasi, keputusan berpindah
dari aplikasi berbasis file ke basis data terpusat dikarenakan faktor-faktor berikut :
1. Kompleksitas data : Relasi data menjadi lebih kompleks, memerlukan DBMS
yang kuat.
2. Sharing diantara aplikasi : Semakin besar sharing antar aplikasi, semakin banyak
t
e
N
3. Perumbuhan dan perubahan data secara dinamis : Jika data berubah secara
a
r
d
By
n
e
H
4. Frekuensi permintaan ad hoc data : Sistem file tidak cukup tepat untuk
penampilan data ad hoc
5. Voleme data dan kebutuhan untuk kontrol : Volume data yang besar dan
kebutuhan mengontrol memerlukan DBMS
Beberapa faktor ekonomi dan organisasi yang berakibat pemilihan suatu DBMS:
1. Organization-wide adoption of a certain philosopy : Biasanya merupakan faktor
dominan yang berakibat pada penerimaan model data (misalnya, relational
versus obyek), vendor, metodologi pengembangan dan alat bantu (misalnya,
penggunaan analisa berorientasi obyek dan alat bantu desain dan methodologi
dibutuhkan oleh semua aplikasi baru.
2. Familiarity of personnel with the system : Jika staff programming dalam
organisasi familiar dengan DBMS tertentu, dapat mengurangi biaya training dan
waktu pembelajaran.
http://www.hendra-jatnika.web.id
37
Entri data dan menampilkan form, layar, dan menu dengan pengeditan otomatis
2.3.4
t
e
N
a
r
d
n
e
H
By
mapping
Pada
bentuk
ini,
pemetaan
tidak
http://www.hendra-jatnika.web.id
2.3.5
38
dan mengakses path untuk file basis data untuk mendapatkan performansi yang baik
pada aplikasi basis data. Setiap DBMS menawarkan berbagai pilihan organisasi file dan
akses path. Termasuk di dalamnya berbagai tipe pengindeksan, clustering record yang
berhubungan melalui pointer dan berbagai tipe hashing. Bila suatu DBMS dipilih,
proses perancangan basis data fisik dibatasi pada struktur yang tepat utuk file basis data
melalui pilihan yang ditawarkan DBMS. Kriteria berikut biasanya digunakan untuk
menuntun pemilihan rancangan basis data fisik :
1. Waktu respon : Merupakan waktu antara pengiriman transaksi basis data untuk
eksekusi dan penerimaan respon.
2. Utilitas ruang penyimpan : Merupakan jumlah ruang penyimpan yang
t
e
N
digunakan file basis data dan struktur akses path pada disk, termasuk
pengindeksan dan akses path lain.
a
r
d
n
e
H
diproses per metnin, merupakan parameter kritis dari sistem transaksi seperti
By
sistem basis data. Hal ini merupakan tanggung jawab DBA bersama desainer basis data.
Pernyataan dalam DDL (data definition language) termasuk SDL (storage definition
language) dari DBMS terpilih dikompilasi dan digunakan untuk membuat skema basis
data dan file basis data (kosong). Basis data dapat kemudian dipopulasikan dengan
data. Jika data diubah dari sistem komputerisasi sebelumnya, rutin konversi diperlukan
untuk format kembali data untuk menyimpan ke basis data baru.
http://www.hendra-jatnika.web.id
39
RINGKASAN:
Terdapat aturan system informasi dalam organisasi, system basis data dilihat
sebagai bagian system informasi dalam aplikasi berskala besar.
t
e
N
model data) dan rancangan fisik. Sedangkan tahap inisial adalah koleksi dan
a
r
d
n
e
H
By
Pada basis data relasional, factor yang berakibat pada keputusan rancangan basis
data fisik dan mnyediakan tuntunan pemilihan alternative rancangan desain
http://www.hendra-jatnika.web.id
40
LATIHAN SOAL :
1. Sebutkan 6 tahap perancangan basis data!
2. Manakah dari 6 tahap tersebut sebagai aktifitas utama dalam proses perancangan
basis data ? Mengapa ?
3. Mengapa perancangan skema dan aplikasi dilakukan secara parallel ?
4. Mengapa digunakan model data implementation-independent selama perancangan
skema konseptual ?
5. Mengapa diperlukan koleksi dan analisa kebutuhan ?
6. Buatlah aplikasi actual dari suatu system basis data. Tentukan kebutuhan dari level
pemakai yang berbeda dalam hal kebutuhan data, tipe query dan transaksi yang
diproses.
t
e
N
7. Bagaimana karakteristik dari model data untuk rancangan skema konseptual harus
a
r
d
diproses ?
n
e
H
By
9. Strategi apa yang digunakan untuk merancang skema konseptual dari kebutuhan ?
10. Sebutkan langkah-langkah view integration ke rancangan skema konseptual.
11. Sebutkan factor untuk memperlancar pemilihan paket DBMS untuk system
informasi dalam organisasi.
12. Apa yang dimaksud pemetaan data model system-independent ? Apa perbedaannya
dengan system-dependent ?
http://www.hendra-jatnika.web.id
Bab 3
Query Lanjutan
POKOK BAHASAN:
Subquery dan penggunaannya
Subquery dengan banyak kolom
Pairwise Comparison SubQuery
NonPairwise Comparison SubQuery
Penggunaan Query dalam Klausa FROM
Ekspresi Scalar
Korelasi SubQuery dan penggunaannya
Penggunaan Query dengan Klausa WITH
TUJUAN BELAJAR:
By
t
e
N
a
r
d
n
e
H
41
http://www.hendra-jatnika.web.id
3.1.
42
Bagian ini menjelaskan mengenai tabel yang digunakan pada pembahasan bab
Query Lanjutan.
Ada 3 buah tabel yang digunakan masing-masing memiliki struktur sebagai
berikut :
1. Tabel DEPARTMENTS
t
e
N
a
r
d
By
2. Tabel EMPLOYEES
n
e
H
http://www.hendra-jatnika.web.id
43
3. Tabel JOB_HISTORY
3.2.
t
e
N
a
r
d
Main
query
n
e
H
SELECT ...
FROM
...
WHERE ...
By
(SELECT ...
FROM
...
WHERE ...)
Subquery
Pada gambar diatas, subquery (inner query) dijalankan sekali sebelum main
query. Kemudian hasil dari subquery digunakan oleh main query (outer query).
Berikut posisi penulisan subquery dalam SQL command :
SELECT select_list
FROM
table
WHERE expr operator (SELECT select_list
FROM table);
http://www.hendra-jatnika.web.id
44
menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown
values). Berikut ini diberikan contoh penggunaan subquery.
SELECT last_name
10500
FROM
employees
WHERE salary >
(SELECT salary
FROM
employees
WHERE employee_id = 149) ;
t
e
N
a
r
d
Query diatas akan menampilkan nama pegawai yang gajinya lebih dari pegawai
n
e
H
dengan nomer pegawai 149. Sebelumnya, gaji dari pegawai dengan nomer pegawai 149
By
tidak diketahui, untuk itu kita tempatkan sebagai subquery agar nilai yang tidak
diketahui tersebut dapat diketahui dan pada ilustrasi gambar diatas nilai gaji dari
pegawai 149 adalah 10500.
Main query
WHERE (MANAGER_ID, DEPARTMENT_ID) IN
Subquery
100
102
124
90
60
50
http://www.hendra-jatnika.web.id
45
t
e
N
a
r
d
n
e
H
By
SELECT
FROM
WHERE
AND
AND
http://www.hendra-jatnika.web.id
46
SELECT
FROM
WHERE
AND
a.last_name, a.salary,
a.department_id, b.salavg
employees a, (SELECT
department_id,
AVG(salary) salavg
FROM
employees
GROUP BY department_id) b
a.department_id = b.department_id
a.salary > b.salavg;
t
e
N
a
r
d
By
n
e
H
Query diatas menampilkan nama dan gaji dari pegawai yang gajinya lebih besar
dari rata-rata gaji pegawai pada departemen tempat dia bekerja.
Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE.
Semua klausa dari SELECT Statement kecuali GROUP BY.
http://www.hendra-jatnika.web.id
47
SELECT
employee_id, last_name
FROM
employees e
ORDER BY (SELECT department_name
FROM departments d
WHERE e.department_id = d.department_id);
t
e
N
a
r
d
By
n
e
H
AMBIL
Baris dari outer query
JALANKAN
GUNAKAN
Nilai dari inner query untuk qualify /
disqualify baris kandidat
Gambar 3-2 : Proses Korelasi Subquery
Tiap-tiap
http://www.hendra-jatnika.web.id
48
Pada gambar 3-2, proses korelasi dimulai dengan mengambil baris dari outer
query, kemudian inner query dijalankan dengan menggunakan nilai baris kandidat,
kemudian nilai dari inner query digunakan untuk melakukan kualifikasi atau
mendiskualifikasi baris kandidat.
Berikut ini cara penulisan dari Korelasi SubQuery :
colum1, column2
table2
expr1 =
outer .expr2);
Pada gambar diatas, subquery merefer ke kolom dari tabel yang ada pada parent
atau outer query.
t
e
N
Berikut ini contoh penggunaan korelasi subquery untuk mencari pegawai yang
a
r
d
n
e
H
SELECT last_name, salary, department_id
youter
FROM
employees
B
WHERE salary >
(SELECT AVG(salary)
FROM
employees
WHERE department_id =
outer.department_id) ;
Setiap saat baris dari
outer query diproses,
maka inner query
dievaluasi.
Berikut ini contoh yang lain dari korelasi subquery yaitu untuk menampilkan
pegawai yang pernah berganti job maksimal dua kali.
http://www.hendra-jatnika.web.id
49
Korelasi Subquery juga dapat digunakan untuk meng-update baris pada satu
table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan
Korelasi Update.
Berikut cara penulisan Korelasi Update :
t
e
N
a
r
d
By
n
e
H
Kemudian
isi
dari
kolom
nama
departemen
didapatkan
dari
tabel
http://www.hendra-jatnika.web.id
50
Korelasi Subquery juga dapat digunakan untuk menghapus baris pada satu table
berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan
Korelasi Delete.
Berikut cara penulisan Korelasi Delete :
t
e
N
a
r
d
n
e
H
y
B
3.9. PENGGUNAAN OPERATOR EXIST DAN NOT EXIST
Operator EXISTS dan NOT EXIST digunakan untuk menguji keberadaan dari
baris dalam himpunan hasil dari subquery.
Jika ditemukan, maka :
pencarian tidak dilanjutkan dalam inner query dan kondisi ditandai TRUE.
Kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.
http://www.hendra-jatnika.web.id
51
t
e
N
a
r
d
n
e
H
By
http://www.hendra-jatnika.web.id
52
WITH
dept_costs AS (
SELECT d.department_name, SUM(e.salary) AS dept_total
FROM
employees e, departments d
WHERE
e.department_id = d.department_id
GROUP BY d.department_name),
avg_cost
AS (
SELECT SUM(dept_total)/COUNT(*) AS dept_avg
dept_costs)
FROM
SELECT *
dept_costs
FROM
WHERE dept_total >
(SELECT dept_avg
FROM avg_cost)
ORDER BY department_name;
t
e
N
a
r
d
departemen dan total gaji untuk tiap departemen yang memiliki total gaji lebih besar
n
e
H
RINGKASAN:
By
(pairwise
comparison)
dan
tidak
berpasangan
(nonpairwise
comparison).
Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer,
dan dikenal juga dengan istilah inline view.
Korelasi SubQuery digunakan untuk pemrosesan baris per baris.
Klausa WITH dapat menggunakan blok query yang sama dalam statement SELECT
pada saat terjadi lebih dari sekali dalam complex query.
http://www.hendra-jatnika.web.id
53
LATIHAN SOAL :
1) Buat query untuk menampilkan nama, nomer departemen, dan gaji dari pegawai
yang yang memiliki nomer departemen dan gaji yang sama dengan nomer
departemen dan gaji dari pegawai yang memiliki komisi.
2) Buat query untuk menampilkan nama pegawai, nama departemen, dan gaji dari
pegawai yang memiliki gaji dan komisi yang sama dengan gaji dan komisi dari
pegawai yang memiliki location ID 1700.
3) Buat query untuk menampilkan nama pegawai, tanggal mulai masuk kerja (hire
date), dan gaji untuk semua pegawai yang memiliki gaji dan komisi seperti yang
dimiliki oleh pegawai yang bernama Kochhar.
Note: Data Kochhar tidak ditampilkan dalam hasil query.
4) Buat query untuk menampilkan detail dari nomer pegawai, nama pegawai dan
t
e
N
nomer pegawai yang sama dengan pegawai yang bertempat tinggal di kota yang
a
r
d
n
e
H
5) Buat query untuk menampilkan data semua pegawai yang memiliki gaji yang lebih
dari rata-rata gaji pada departemen tempat mereka bekerja. Data yang ditampilkan
By
yaitu nama pegawai, gaji, nomer departemen, dan rata-rata gaji pada departemen
tempat mereka bekerja. Urutkan berdasarkan rata-rata gaji.
6) Tampilkan semua pegawai yang bukan supervisor
a. Cara pertama gunakan operator NOT EXISTS.
b. Apakah persoalan dapat dipecahkan dengan menggunakan operator NOT IN? Jika
bisa bagaimana caranya, dan jika tidak bisa mengapa ?
(Supervisor adalah pegawai yang punya bawahan pegawai yang lain => employee_id
nya menjadi manager_id dari pegawai yang lain)
7) Buat query untuk menampilkan nama pegawai yang gajinya kurang dari rata-rata
gaji pada departemen tempat dia bekerja.
8) Buat query untuk menampilkan nama dari pegawai yang memiliki satu atau lebih
kolega (teman satu departemen) dimana kolega tersebut masuk lebih akhir tapi
memiliki gaji lebih tinggi.
http://www.hendra-jatnika.web.id
54
9) Buat query untuk menampilkan nomer pegawai, nama pegawai dan nama
departemen dari semua pegawai yang ada.
Note: Gunakan scalar subquery untuk mendapatkan nama departemen dalam statemen
SELECT.
10) Buat query untuk menampilkan nama departemen dari tiap departemen yang
memiliki total gaji diatas 1/8 dari total gaji keseluruhan pada perusahaan. Gunakan
klausa WITH untuk menulis query tersebut. Beri nama SUMMARY.
11) Buat query untuk menampilkan peagwai yang memiliki gaji yang lebih tinggi dari
gaji semua sales managers (JOB_ID = '
SA_MAN'
). Urutkan berdasarkan jumlah
gaji dari tinggi ke rendah.
t
e
N
a
r
d
By
n
e
H
http://www.hendra-jatnika.web.id
Bab 4
Optimasi Query
POKOK BAHASAN:
Optimasi Perintah SQL
Informasi Jalur Akses Query
Faktor-faktor yang berpengaruh terhadap kecepatan akses data
t
e
N
TUJUAN BELAJAR:
a
r
d
By
4.1.
n
e
H
PENDAHULUAN
Data yang tersimpan dalam database semakin lama akan semakin besar ukuran atau
volumenya. Kalau tidak didukung dengan kecepatan akses yang memadai maka akan
semakin menurun unjuk kerjanya. Ukuran unjuk kerja dalam hal ini kecepatan akses
data dipengaruhi oleh banyak faktor. Pada bab ini akan membahas tentang optimasi
query serta faktor-faktor lain yang berpengaruh terhadap optimalisasi kecepatan akses
data.
55
http://www.hendra-jatnika.web.id
4.2.
56
dengan optimasi dari perintah SQL yang digunakan pada aplikasi tersebut. Dalam
mendesain database, seringkali lokasi fisik data tidak menjadi perhatian penting.
Karena hanya desain logik saja yang diperhatikan. Padahal untuk menampilkan hasil
query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Inti dari
optimasi query adalah meminimalkan jalur pencarian untuk menemukan data yang
disimpan dalam lokasi fisik.
Index pada database digunakan untuk meningkatkan kecepatan akses data. Pada
saat query dijalankan, index mencari data dan menentukan nilai ROWID yang
membantu menemukan lokasi data secara fisik di disk. Akan tetapi penggunaan index
yang tidak tepat, tidak akan meningkatkan unjuk kerja dalam hal ini kecepatan akses
data.
t
e
N
Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan
a
r
d
kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :
CREATE INDEX idx_kota_prop_kodepos
n
e
H
By
TABLESPACE INDX;
http://www.hendra-jatnika.web.id
57
Query ini akan melakukan scan terhadap sedikit data block jika tabel karyawan
diatas diurutkan berdasarkan kolom id. Untuk mengurutkan berdasarkan kolom yang
berbeda-beda maka tabel disimpan dalam flat file, kemudian tabel diekspor dan
diurutkan sesuai kebutuhan.
Alternatif yang lain, bisa digunakan perintah untuk membuat tabel lain yang
memiliki urutan yang berbeda dari tabel asal, seperti perintah SQL berikut :
CREATE TABLE karyawan_urut
AS SELECT * FROM karyawan
ORDER BY id;
Pada SQL diatas, tabel karyawan_urut berisi data yang sama dengan tabel karyawan
hanya datanya terurut berdasarkan kolom id.
4.3.
PERENCANAAN EKSEKUSI
t
e
N
Bagaimana cara melihat jalur akses yang akan digunakan database saat
a
r
d
melakukan query ? Pada Database Oracle, informasi ini dapat dilihat dengan
n
e
H
menggunakan perintah explain plan, yang akan memberi informasi tentang rencana
By
eksekusi dari suatu query. Informasi ini disimpan dalam tabel PLAN_TABLE yang
terdapat di schema user yang mengeksekusi perintah tersebut.
Sebelum melakukan perintah explain plan, terlebih dahulu buat table
PLAN_TABLE
dengan
menggunakan
script
utlxplan.sql
yang
diambil
dari
\%ORACLE_HOME%\RDBMS\ADMIN.
Setelah itu table PLAN_TABLE dapat digunakan seperti contoh berikut :
SQL> explain plan
Set statement_id=test1
Into plan_table for
Select * from karyawan where gaji=2000000;
Dalam PLAN_TABLE rencana eksekusi diatas dikenal dengan nama test1 yang
terdefinisi pada kolom statement_id.
http://www.hendra-jatnika.web.id
58
Untuk melihat rencana eksekusi dari test1, digunakan perintah SELECT berikut :
SELECT LPAD( ,2*Level)||Operation|| ||Options|| ||Object_Name Q_Plan
FROM plan_table
WHERE statement_id=test1
CONNECT BY PRIOR id=parent_id AND statement_id=test1
START WITH id=0 AND statement_id=test1;
Contoh hasil dari eksekusi query tersebut :
Q_PLAN
-------------------------------------------------------------------SELECT STATEMENT
TABLE ACCESS FULL KARYAWAN
Output tersebut dibaca mulai dari
t
e
N
a
r
d
n
e
H
seluruh tabel karyawan selesai dibaca, selanjutnya adalah SELECT STATEMENT yang
By
4.4.
pada optimasi perintah SQL, tapi terhadap hal-hal lain yang berpengaruh. Diantaranya
adalah optimasi aplikasi dan penggunaan cluster dan index. Hal yang akan dibahas
dalam optimasi query berikut ini tidak melibatkan penggunaan komponen yang ada
dalam Arsitektur database engine, misal pada database Oracle kecepatan akses data
dipengaruhi oleh penyesuaian pada shared pool, buffer cache, redo log buffer dan sistem
operasi yang digunakan.
http://www.hendra-jatnika.web.id
59
t
e
N
akses data dari beberapa tabel yang sering di-query. Penggunaan cluster secara tepat
a
r
d
dilaksanakan setelah menganalisa tabel-tabel mana saja yang sering di-query secara
n
e
H
Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang
By
berada pada klausa WHERE, maka harus digunakan index yang melibatkan kolom
tersebut. Penggunaan index yang tepat bergantung pada jenis nilai yang terdapat dalam
kolom yang akan diindex. Dalam RDBMS Oracle, index B-Tree digunakan untuk
kolom yang mengandung nilai yang cukup bervariasi, sedangkan untuk nilai yang tidak
memiliki variasi cukup banyak, lebih baik menggunakan index bitmap.
http://www.hendra-jatnika.web.id
60
RINGKASAN:
Data yang tersimpan dalam jumlah yang sangat besar, Terdapat aturan system
informasi dalam organisasi, system basis data dilihat sebagai bagian system
informasi dalam aplikasi berskala besar.
Untuk meningkatkan unjuk kerja tidak hanya desain logik saja yang diperhatikan
tapi juga struktur fisik penyimpanan data.
Informasi tentang jalur akses yang digunakan oleh database untuk melaksanakan
query dalam database Oracle dapat dengan menggunakan perintah explain plan.
Selain optimasi perintah SQL, faktor lain yang berpengaruh terhadap kecepatan
akses data adalah optimasi aplikasi dan penggunaan cluster dan index.
Pada sebuah database engine semisal pada database Oracle kecepatan akses data
t
e
N
a
r
d
n
e
H
kecepatan akses seperti index atau cluster, dan normalisasi data pada desain
database.
By
LATIHAN SOAL :
http://www.hendra-jatnika.web.id
Bab 5
Database Trigger
POKOK BAHASAN:
Pembuatan dan Penggunaan Trigger
Statement trigger
Row Trigger
Menggunakan Old dan New Qualifiers
Klausa WHEN pada trigger
Perintah-perintah umum pada Trigger
TUJUAN BELAJAR:
t
e
N
a
r
d
By
5.1.
n
e
H
PENDAHULUAN
Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,
skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event.
Tipe dari trigger adalah :
Application trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
sebuah aplikasi
Database trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
data (seperti operasi DML) atau event yang berhubungan dengan sistem (semisal
logon atau shutdown) yang terjadi pada sebuah skema atau database.
61
http://www.hendra-jatnika.web.id
5.2.
62
PENGGUNAAN TRIGGER
Trigger dibuat sesuai dengan keperluan. Ada kalanya trigger perlu dibuat, dan
trigger. Jika penggunaan trigger terlalu berlebihan, maka akan menyebabkan terjadi
sifat ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit
pemeliharaan dari aplikasi yang besar.
t
e
N
a
r
d
By
n
e
H
Pada gambar tersebut, database trigger CHECK_SAL memeriksa nilai gaji pada
saat suatu aplikasi mencoba untuk memasukkan baris baru ke dalam table
http://www.hendra-jatnika.web.id
63
EMPLOYEES. Nilai yang terletak pada jangkauan diluar kategori pekerjaan akan
diabaikan.
Sintak penulisan dari database trigger, berisi komponen berikut :
1. Trigger timing :
a. Untuk tabel : BEFORE, AFTER
b. Untuk view : INSTEAD OF
2. Trigger event : INSERT, UPDATE atau DELETE
3. Nama tabel : yaitu nama tabel atau view yang berhubungan dengan trigger
4. Tipe trigger : Baris atau Pernyataan (statement)
5. klausa WHEN : untuk kondisi pembatasan
6. trigger body : bagian prosedur yang dituliskan pada trigger
5.3.
KOMPONEN TRIGGER
t
e
N
Komponen dari sebuah trigger ada 6 (enam), yaitu : trigger timing, trigger event,
a
r
d
n
e
H
Trigger timing adalah waktu kapan trigger diaktifkan. Ada tiga macam trigger
timing, yaitu :
By
mengidentifikasi kolom mana yang berubah untuk mengaktifkan sebuah trigger (contoh
: UPDATE OF salary ... ). Jika tidak ditentukan, maka perubahannya akan berlaku
untuk semua kolom pada semua baris.
Tipe trigger ada 2 macam, yaitu :
Statement : trigger dijalankan sekali saja pada saat terjadi sebuah event.
Statement trigger juga dijalankan sekali, meskipun tidak ada satupun baris yang
dipengaruhi oleh event yang terjadi.
http://www.hendra-jatnika.web.id
64
Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya
sebuah event.
5.4.
t
e
N
a
r
d
Ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
By
n
e
H
Jika DML statement berlaku untuk lebih dari satu baris yang ada pada tabel
(multiple row), semisal :
UPDATE employees
SET salary = salary * 1.1
WHERE department_id = 30;
http://www.hendra-jatnika.web.id
65
Maka ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
5.5.
t
e
N
a
r
d
ON table_name
trigger_body
By
n
e
H
http://www.hendra-jatnika.web.id
66
user menyisipkan baris baru diluar ketentuan tersebut, missal pada hari SAbtu maka
akan tampil pesan kesalahan.
Perintah berikut ini akan menguji trigger SECURE_EMP dengan memberikan
perintah SQL berikut ini pada jam diluar jam kerja, sebagai berikut :
INSERT INTO employees (employee_id, last_name,first_name, email, hire_date,
job_id, salary, department_id)
VALUES (300, 'Smith', 'Rob', 'RSMITH', SYSDATE,'IT_PROG', 4500, 60);
Perintah tersebut akan memberikan pesan kesalahan :
t
e
N
5.6.
a
r
d
n
e
H
By
http://www.hendra-jatnika.web.id
67
5.7.
ROW TRIGGER
Berikut ini sintak atau cara penulisan untuk membuat Row Trigger :
t
e
N
a
r
d
By
n
e
H
Contoh berikut ini akan dibuat row trigger dengan timing BEFORE untuk
membatasi operasi DML pada table EMPLOYEES hanya diperbolehkan untuk pegawai
yang memiliki kode pekerjaan AD_PRES dan AD_VP serta memiliki gaji kurang
dari 15000.
CREATE OR REPLACE TRIGGER restrict_salary
BEFORE INSERT OR UPDATE OF salary ON employees
FOR EACH ROW
BEGIN
IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP'))
AND :NEW.salary > 15000
THEN
RAISE_APPLICATION_ERROR (-20202,'Employee
cannot earn this amount');
END IF;
END;
/
Jika kita mencoba memberikan perintah SQL sebagai berikut, maka akan ditampilkan
pesan kesalahan :
http://www.hendra-jatnika.web.id
68
UPDATE employees
SET salary = 15500
WHERE last_name = '
Russell'
;
5.8.
pernyataan dalam perintah SQL. Jika qualifier ini terlibat dalam pembatasan kondisi
pada klausa WHEN, maka tidak digunakan prefiks (:).
Row triggers akan menurunkan unjuk kerja jika banyak dilakukan update pada
table yang cukup besar.
Contoh Trigger berikut ini menggunakan OLD dan NEW qualifier pada Row Trigger :
t
e
N
a
r
d
By
n
e
H
Untuk memeriksa hasil dari pembuatan trigger diatas, diberikan perintah SQL sebagai
berikut :
INSERT INTO employees
(employee_id, last_name, job_id, salary, ...)
VALUES (999, 'Temp emp', 'SA_REP', 1000, ...);
UPDATE employees
SET salary = 2000, last_name = 'Smith'
WHERE employee_id = 999;
http://www.hendra-jatnika.web.id
69
Hasil dari perintah SQL tersebut adalah akan disimpan record perubahan pada
table AUDIT_EMP_TABLE sebagai hasil dari operasi Trigger :
SELECT user_name, timestamp, ... FROM audit_emp_table
5.9.
tertentu, maka digunakan klausa WHEN. Berikut ini akan dibuat trigger pada tabel
EMPLOYEES yang menghitung komisi yang diterima oleh seorang pegawai pada saat
sebuah baris ditambahkan ke dalam tabel EMPLOYEES, atau pada saat dilakukan
modifikasi pada gaji pegawai.
t
e
N
a
r
d
By
n
e
H
Pada klausa WHEN, penggunaan OLD dan NEW qualifier tidak dengan prefiks
(:). Untuk menggunakan NEW qualifier, gunakan BEFORE Row Trigger, jika timing
BEFORE pada trigger diatas diganti dengan AFTER, maka akan didapat pesan
kesalahan :
CREATE OR REPLACE TRIGGER derive_commission_pct*
ERROR at line 1:
ORA-04084: cannot change NEW values for this trigger type
http://www.hendra-jatnika.web.id
70
t
e
N
a
r
d
RINGKASAN:
n
e
H
Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,
skema atau database yang dijalankan secara implicit pada saat terjadi event.
By
Tipe dari trigger adalah : Application trigger (diaktifkan pada saat terjadi event
yang berhubungan dengan sebuah aplikasi) dan database trigger (diaktifkan pada
saat terjadi event yang berhubungan dengan data)
Trigger dibuat pada saat yang tepat jika diperlukan yaitu untuk membentuk sebuah
aksi tertentu terhadap suatu event dan memusatkan operasi global
yang
terlalu
kompleks
sehingga
akan
mempersulit
Trigger berisi komponen-komponen : trigger timing, trigger event, nama tabel, tipe
trigger, klausa WHEN dan trigger body.
Beberapa event pada trigger bisa dikombinasikan dalam sebuah trigger dengan
menggunakan predikat kondisional INSERTING, UPDATING dan DELETING
Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data dapat
dirujuk dengan menggunakan OLD dan NEW qualifier.
http://www.hendra-jatnika.web.id
71
LATIHAN SOAL :
1.
Perubahan pada data hanya diperbolehkan selama jam kerja dari jam 8:45 pagi
sampai 17.30 , dari Senin hingga Jumat. Buat stored procedure dengan nama
SECURE_DML untuk mencegah DML statement dijalankan diluar dari jam kerja,
dengan menampilkan pesan Perubahan pada data hanya diperbolehkan hanya pada
jam kerja
2.
Buat statement trigger pada tabel JOBS untuk memanggil prosedur diatas.
3.
Implementasikan trigger berikut pada table JOBS sehubungan dengan kenaikan gaji
pegawai. Buat stored procedure dengan nama UPD_EMP_SAL untuk mengupdate
jumlah gaji. Prosedur ini menerima dua parameter : job id dari gaji yang akan
diubah dan nilai minimum salary yang baru. Prosedur ini dijalankan dari trigger
yang dibuat pada table JOBS.
4.
Lanjutan
dari
soal
nomer
UPDATE_EMP_SALARY
pada
3,
buat
a
r
d
t
e
N
table
n
e
H
row
JOBS
trigger
yang
dengan
memanggil
nama
prosedur
UPD_EMP_SAL, pada saat minimum gaji pada table JOBS diubah untuk suatu job
ID tertentu.
By
http://www.hendra-jatnika.web.id
Bab 6
Basis Data Client / Server
POKOK BAHASAN:
Pendahuluan
Arsitektur Client-Server
Pengaksesan Query pada Basis Data Client-Server
t
e
N
TUJUAN BELAJAR:
a
r
d
By
n
e
H
6.1 PENDAHULUAN
Aplikasi basis data terdistribusi dikembangkan dalam bentuk arsitektur clientserver. Teknologi client-server berkembang secara cepat sebagai teknologi lanjut. Pada
beberapa waktu yang lalu, sangat sulit memprediksikan status saat ini teknologi clientserver yang terjadi saat ini. Hal ini sama sulitnya dengan memprediksi teknologi untuk
beberapa tahun ke depan. Beberapa faktor yang berpengaruh pada fungsi client atau
server atau keduanya, melibatkan perangkat keras dan perangkat lunak, protocol
network, teknologi LAN/WAN dan komunikasi. Penurunan biaya dari beberapa faktor
tersebut menyebabkan semakin besar kemungkinan mempunyai sistem yang kuat.
72
http://www.hendra-jatnika.web.id
73
t
e
N
Antar muka pemakai, aturan dan pengaksesan data bertindak sebagai three tiers. Cient
a
r
d
biasanya dihubungkan ke server melalui LAN dan server dihubungkan ke host melalui
n
e
H
WAN. Client melakukan remote yang dihubungkan ke server melalui WAN juga.
Sistem ini sangat cocok untuk perusahaan besar dimana basis data terpusat dapat
By
disimpan dalam host dan biaya pembangunan LAN dan WAN dapat diatur dan
dioptimasi menggunakan teknologi yang baru untuk setiap bagian yang berbeda dalam
organisasi.
memasukkan fungsi dari DBMS terpusat pada level server. Sejumlah DBMS relasional
menggunakan pendekatan ini, dimana SQL server disediakan untuk client. Setiap client
harus menggunakan query SQL yang tepat dan menyediakan antar muka pemakai dan
fungsi antar muka untuk bahasa pemrograman. Karena SQL adalah bahasa standard
relasional, berbagai SQL server, meskipun disediakan oleh vendor yang berbeda, dapat
menerima perintah SQL. Client juga merujuk pada data dictionary yang didalamnya
http://www.hendra-jatnika.web.id
74
terdapat informasi pada data distribusi diantara server SQL yang berbeda, sebagai
modul untuk dekomposisi query global ke dalam sejumlah query local yang dapat
dieksekusi pada berbagai tempat. Interaksi antara client dan serber selama pemrosesan
query SQL adalah sebagai berikut :
1. Client melakukan parsing query pemakai dan memecahnya ke dalam sejumlah
query independent untuk setiap tempat. Setiap query terseut dikirim ke server
yang sesuai.
2. Setiap server memproses query lokal dan mengirim relasi hasil ke client.
3. Client mengkombinasikan hasil sub query untuk mempruksi hasi dari query asal
yang dikirim.
Pada pendekatan ini, server SQL juga disebut transaction server (atau database
processor (DP) atau back-end machine), sedangkan client disebut application processor
(AP) atau front-end machine. Interaksi antara client dan server ditentukan oleh pemakai
t
e
N
pada level client atau melalui modul khusu pada DBMS client yang merupakan bagian
dari paket DBMS. Sebagai contoh, pemakai mengetahui apa data yang dikirim setiap
a
r
d
server, membagi permintaan query ke sub query secara manual adan mengirimkan sub
n
e
H
query secara individu ke tempat yang berbeda. Tabel hasil dikombinasikan secara
By
eksplisit dengan query user pada level client. Alternatif lain adalah mempunyai modul
client yang melakukan kegiatan diatas secara otomatis.
Dalam DDBMS yang banyak digunakan, model perangkat lunak dibagi ke
dalam tiga level :
1. Perangkat lunak server bertanggung jawab pada manajemen data lokal,
kebanyakan sama dengan perangkat lunak DBMS
2. Perangkat lunak client bertanggung jawab untuk fungsi distribusi; mengakses
informasi distribusi data dari katalog DDBMS dan memproses semua
permintaan yang membutuhkan akses ke lebih dari satu tempat. Hal ini juga
ditangani semua antar muka user.
3. Perangkat lunak komunikasi (biasanya dihubungkan dengan sistem operasi
terdistribusi) menyediakan primitif komunikasi yang digunakanoleh client untuk
mengirim perintah dan data ke tempat yang berbeda sesuai kebutuhan. Hal ini
bukan bagian yang terpenting dalam DDBMS, tetapi menyediakan primitf
komunikasi dan pelayanan yang esensial.
http://www.hendra-jatnika.web.id
75
konsistensi dari copy replika dari item data dengan teknik concurrency control
terdistribusi (global).
mungkin dari client adalah menyembunyikan detail distribusi data dari pemakai, yang
memungkinkan pemakai menulis query global dan transaksi seperti basis data yang
terpusat, tanpa harus menentukan tempat dimana data dirujuk dalam query atau
transaksi berada. Properti ini disebut distribution transparency. Beberapa DDBMS
tidak melakukan distribution tranparency, sehingga pemakai harus berhati-hati terhadap
t
e
N
a
r
d
RINGKASAN:
By
n
e
H
Modul perangkat lunak yang terdapat pada DDBMS dapat dibagi dalam tiga level,
yaitu perangkat lunak server, client dan komunikasi
http://www.hendra-jatnika.web.id
76
LATIHAN SOAL :
1. Apa yang dimaksud system client-server ?
2. Apa perbedaan konsep arsitektur client-server yang ada sekarang dengan
arsitektur system terdistribusi ?
3. Sebutkan bagaimana tugas host, server dan server pada three-tier architechtur.
4. Jelaskan bagaimana pengaksesan query dari client ke server dan hasil query dari
server ke client.
5. Perangkat lunak apa saja yang diperlukan pada system client-server ?
t
e
N
a
r
d
By
n
e
H
http://www.hendra-jatnika.web.id
Bab 7
Basis Data Terdistribusi
POKOK BAHASAN:
Pendahuluan
Tipe Basis Data Terdistribusi
Arsitektur Basis Data Terdistribusi
Penyimpanan Data pada Sistem Terdistribusi
Manajemen Katalog Terdistribusi
Query Terdistribusi
Joins pada DBMS Terdistribusi
Optimasi Query pada DBMS Terdistribusi
Mengubah Data Terdistribusi
Locking pada Sistem Terdistribusi
Distributed Recovery
t
e
N
a
r
d
By
n
e
H
TUJUAN BELAJAR:
7.1 PENDAHULUAN
Pada basis data terdistribusi (distributed database), data disimpan pada beberapa
tempat (site), setiap tempat diatur dengan suatu DBMS (Database Management System)
77
http://www.hendra-jatnika.web.id
78
yang dapat berjalan secara independent. Properti yang terutama terdapat pada basis data
terdistribusi :
Independensi data terdistribusi : pemakai tidak perlu mengetahui dimana data berada
(merupakan pengembangan prinsip independensi data fisik dan logika).
data ditempatkan, juga harus mengetahui dimana system yang tidak mendukung
independensi data terdistribusi dan transaksi terdistribusi atomic.
tersebut harus mendukung system secara efisien.
Kedua property
t
e
N
a
r
d
By
n
e
H
Homogen : yaitu sistem dimana setiap tempat menjalankan tipe DBMS yang sama
Heterogen : yaitu sistem dimana setiap tempat yang berbeda menjalankan DBMS
yang berbeda, baik Relational DBMS (RDBMS) atau non relational DBMS.
Gambaran basis data terdistribusi yang heterogen dapat dilihat pada Gambar 7-1.
Gateway
DBMS1
DBMS2
DBMS3
http://www.hendra-jatnika.web.id
79
Client-Server
Sistem client-server mempunyai satu atau lebih proses client dan satu atau lebih
proses server, dan sebuah proses client dapat mengirim query ke sembarang proses
server seperti pada Gambar 7-2. Client bertanggung jawab pada antar muka untuk
user, sedangkan server mengatur data dan mengeksekusi transaksi. Sehingga suatu
proses client berjalan pada sebuah personal computer dan mengirim query ke
t
e
N
a
r
d
n
e
H
QUERY
By CLIENT
SERVER
CLIENT
SERVER
SERVER
Pertama,
implementasi yang relatif sederhana karena pembagian fungis yang baik dank arena
server tersentralisasi.
terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga,
http://www.hendra-jatnika.web.id
80
Collaboration Server
Arsitektur client-server tidak mengijinkan satu query mengakses banyak server
karena proses client harus dapat membagi sebuah quer ke dalam beberapa subquery
untuk dieksekusi pada tempat yang berbeda dan kemudian membagi jawaban ke
subquery. Proses client cukup komplek dan terjadi overlap dengan server; sehingga
perbedaan antara client dan server menjadi jelas. Untuk mengurangi perbedaan
diguankan alternatif arsitektur client-server yaitu sistem Collaboration Server. Pada
t
e
N
sistem ini terdapat sekumpulan server basis data, yang menjalankan transaksi data
lokal yang bekerjasama mengeksekusi transaksi pada beberapa server seperti pada
a
r
d
Gambar 7-3..
n
e
H
Jika server menerima query yang membutuhkan akses ke data pada server lain,
By
SERVER
SERVER
SERVER
QUERY
Gambar 7-3: Collaboration System
http://www.hendra-jatnika.web.id
81
Fragmentasi
t
e
N
a
r
d
TI
t
t
By
n
e
H
t
t
Fragmentasi vertikal
Fragmentasi horisontal
Bila sebuah relasi difragmentasi, harus meliputi relasi asal dari fragmen :
o Fragmentasi horisontal : union dari fragmen horisontal harus sama dengan
relasi asal. Fragmen biasanya dibutuhkan disjoint.
http://www.hendra-jatnika.web.id
82
t
e
N
a
r
d
By
n
e
H
R1
R3
SITE A
SITE B
R1
R2
http://www.hendra-jatnika.web.id
83
Evaluasi query yang lebih cepat : query dapat mengeksekusi lebih cepat
menggunakan copy local dari relasi termasuk ke remote site.
et
Untuk
N
a
r
d
n
e
<local-name, birth-site>
By
suatu tempat dan menyimpan data replika dari relasi yang dibuat pada tempat tersebut.
Untuk menemukan relasi, lihat pada katalog birth-site. Birth-site tidak pernah berubah
meskipun relasi dipindahkan.
http://www.hendra-jatnika.web.id
84
Fragmentasi horisontal : tupel dengan rating < 5 pada Shanghai, >= 5 pada
Tokyo. Harus menghitung SUM(age), COUNT(age) pada kedua tempat. Jika
WHERE berisi hanya S.rating>6, maka hanya satu tempat.
Fragmentasi vertikal : sid dan rating pada Shanghai, sname dan age pada Tokyo,
tid pada kedua tempat. Harus melakukan rekonstruksi relasi dengan join pada tid
kemudian mengevaluasi query.
t
e
N
LONDON
Sailors
By
PARIS
n
e
H
aReserves
r
d
500 halaman
1000 halaman
Ambil halaman sesuai kebutuhan, pada suatu nested loop join di London dengan
Sailor sebagai outer dan setiap halaman Sailor, ambil semua halaman Reserver
dari Paris.
halaman akan diambil sekali, tetapi asumsikan bahwa halaman Reserves tidak
diambil semul sampai selesai, maka biaya akan menjadi mahal.
Biaya : 500 D + 500 * 1000 (D+S)
D adalah biaya membaca/menulis halaman; S adalah biaya pengiriman
halaman.
http://www.hendra-jatnika.web.id
85
Semijoin
Teknik semijoin ditujukan untuk mengurangi jumlah tupelo Reserves yang
dikirim. Idenya terdiri dari langkah-langkah berikut :
1. Di London, proyeksikan Sailors ke kolom join dan kirimkan ke Paris.
t
e
N
2. Di Paris, lakukan join pada proyeksi Sailors dengan Reserves. Hasil join disebut
a
r
d
n
e
H
By
Ide dari langkah semijoin tersebut adalah mengurangi biaya komputasi dan
proyeksi pengiriman dan komputasi dan proyeksi pengiriman untuk biaya pengiriman
relasi Reserves penuh. Semijoin terutama bermanfaan jika terdapat sebual seleksi pada
Sailors dan jawaban tersedia di London.
Bloomjoin
Teknik bloomjoin juga ditujukan untuk mengurangi jumlah tupelo Reserves yang
dikirim. Idenya terdiri dari langkah-langkah berikut :
1. Di London, hitung sebuat bit-vector dari beberapa ukuran k. Nilai kolom hash join
mempunyai jangkauan 0 sampai k-1. Jika beberapa tupel melakukan teknik hashing
ke I, set bit I menjadi 1 (I dari 0 sampai k-1). Kirimkan bit-vector ke Paris
2. Di Paris, lakukan hashing setiap tupel Reserves dengan cara yang sama dan abaikan
tupel yang melakukan hashing ke 0 di bit-vector Sailors. Hasilnya disebut reduksi
Reserves with Sailors.
http://www.hendra-jatnika.web.id
86
Kedua, otonomi
tempat lokal harus diperhatikan. Ketiga, menggunakan metode join terdistribusi yang
baru.
Query site membangun daerah global, dengan daerah local menggambarkan
t
e
N
pemrosesan pada setiap tempat. Jika sebuah tempat dapat melakukan improvisasi pada
daerah lokal, dapat dilakukan dengan bebas.
a
r
d
n
e
H
By
transparan ke pemakai.
Synchronous Replication
Terdapat dua teknik dasar untuk menjamin transaksi terlihat nilai yang sama
dengan copy, yaitu :
http://www.hendra-jatnika.web.id
87
satu dari copy saat itu. Misalnya terdapat 10 copy, 7 penulisan untuk perubahan
dan 4 copy untuk pembacaan. Setiap copy mempunyai nomor versi. Teknik ini
biasanya tidak atraktif karena pembacaan adalah hal yang biasa.
Read-any Write-all:
replication
Pemilihan teknik synchronous replication akan menentukan tempat mana yang terkunci
untuk seting.
Biaya pada synchronous replication adalah sebagai berikut : sebelum transaksi
yang diubah commit, harus dilihat penguncian pada semua copy yang dimodifikasi.
Kirimkan perintah lock ke remote site, dan sementara menunggu respon, pegang kunci
yang lain. Jika tempat atau saluran gagal, transaksi tidak dapat commit sampai transaksi
t
e
N
kembali. Meskipun tidak terjadi kegagalan, commit harus mengikuti commit protocol
dengan beberapa pesan yang mahal.
replication banyak digunakan.
By
Asynchronous Replication
a
r
d
n
e
H
http://www.hendra-jatnika.web.id
88
t
e
N
Perubahan dibuat dengan transaksi commit ke primary copy yang diidentifikasi selama
langkah Capture dan dipropaganda ke copy sekunder selama langkah Apply.
a
r
d
n
e
H
By
Log-Based
Capture
log
(menyimpan
recovery)
digunakan
untuk
membangkitkan Change Data Table (CDT). Jika hal ini dikerjakan ketika log
terakhir ditulis ke disk, harus menghapus perubaan ke subsequent yang
dihentikan transaksi.
Implementasi capture dengan Log-Based Capture lebih baik karena lebih murah dan
lebih cepat tetapi harus memahami detail dari property log.
Mengimplementasikan Langkah Apply
Proses Apply pada tempat sekunder secara periodic mengakibatkan perubahan
ke table CDT dari primary site, dan mengubah copy. Periode didefinisikan oleh timer
http://www.hendra-jatnika.web.id
89
atau pemakai/aplikasi. Replika dapat dipandang lebih dari relasi yang dimodifikasi.
Jika hal ini terjadi, replica terdiri dari pengubahan pandangan material yang naik
sebagai perubahan relasi.
Log-Based Capter ditambah Apply yang terus-menerus akan meminimalkan
delay pada propaganda perubahan. Procedureal Capture ditambah application-driven
Apply merupakan cara yang fleksibel untuk perubahan proses.
Data Warehousing : Sebuah contoh Replication
Trend yang berkembang saat ini adalah membangun warehouses data yang
sangat besar dari beberapa tempat. Hal ini memungkinkan untuk query pendukung
keputusan yang kompleks dari data pada keseluruhan organisasi. Warehouse dapat
dipandang sebagai instance dari asynchronous replication.
dikontrol dengan DBMS yang berbadi, penekanannya pada cleaning data dan
t
e
N
menghapus kesalahan pada pembuatan replikasi. Prosedur Capture dan aplikasi Apply
baik untuk lingkungan ini.
a
r
d
n
e
H
By
Primary Copy : semua penguncian untuk suatu obyek dikerjakan pada tempat
primary copy dari obyek tersebut. Untuk pembacaan membutuhkan akses ke
tempat terkunci sebaik tempat dimana obyek disimpan.
http://www.hendra-jatnika.web.id
T1
T2
90
T1
SITE A
T2
SITE B
T1
T2
GLOBAL
t
e
N
Proses pemulihan pada DBMS terdistribusi lebih kompleks daripada pada DBMS
a
r
d
n
e
H
Terjadi kegagalan yang baru, misalnya saluran komunikasi dan remote site.
Jika sub transaksi dari suatu transaksi mengeksekusi tempat yang berbeda,
By
semua atau tidak ada yang harus commit. Hal ini memerlukan commit protocol
untuk menangani hal tersebut.
Suatu log ditangani pada setiap tempat, sebagaimana pada DBMS tersentralisasi
dan aksi commit protocol ditambahkan pada log.
Two-Phase Commit (2PC)
Tempat dimana transaksi asal disebut koordinator, sedangkan tempat lain
dimana transaksi mengeksekusi disebut sub ordinat. Jika sebuah transaksi ingin commit
maka coordinator mengirim pesan prepare ke semua sub ordinat.
Sub ordinat
memaksa menulis rekaman log abort atau prepare dan mengirim suatu pesan no or
yes ke coordinator. Jika coordinator menerima pesan yes, maka coordinator memaksa
menulis suatu rekaman log commit dan mengirim pesan commit ke semua sub ordinat.
Sebaliknya, memaksa menulis rekaman log abort dan mengirim pesan abort. Sub
Ordinat memaksa menulis rekaman log abort/commit berdasarkan pesan yang didapat,
http://www.hendra-jatnika.web.id
91
kemudian mengirim pesan ack ke koordinator. Koordinator menulis rekaman log end
setelah mendapatkan semua pesan ack.
Pada 2PC terdapat dua bentuk komunikasi, pertama voting kemudian terminasi.
Kedua bentuk komunikasi diinisialisasi oleh coordinator.
memutuskan untuk abort suatu transaksi.
pengirim, untuk menjamin bahwa keputusan bertahan dari kegatalah. Untuk itu pertama
kali disimpan pada local log. Semua commit protocol menyimpan log untuk suatu
transaksi yang terdiri dari id transaksi dan id coordinator. Rekaman abort/commit oleh
coordinator juga termasi id semua sub ordinat.
Restart Setelah Suatu Kegagalan pada Suatu Tempat
Jika kita mempunyai rekaman log commit atau abort untuk transaksi T, tetapi
tidak mempunyai rekaman end, maka harus redo/undo T. Jika tempat ini adalah
t
e
N
a
r
d
Jika kita menyiapkan rekaman log transaksi T, tetapi tidak commit/abort, tempat
n
e
H
ini adalah sub ordinat untuk T. Sub ordinat terus menghubungi coordinator
By
Jika kita tidak meyiapkan rekaman log untuk T, secara sepihak akan abort dan
undo T. Tempat ini kemungkinan coordinator. Jika ya, sub ordinat mungkin
mengirim pesan
Jika coordinator untuk transaksi gagal, sub ordinat yang memilih yes tidak dapat
memutuskan apakah commit atau abort T sampai coordinator pulih. Pada saat itu T
akan diblok.
tersedia pesan) maka transaksi adakn diblok sampai satu dari sub ordinat memilih no.
Jika suatu remote site tidak merespon selama commit protocol untuk transaksi
T, aik karena tempat gagal atau saluran gagal :
Jika tempat tersebut adalah coordinator untuk T, maka abort T
Jika tempat tersebut adalah sub ordinat, dan tidak memilih yes, maka harus abort T
http://www.hendra-jatnika.web.id
92
Jika tempat tersebut sub ordinat dan memilih yes, maka akan diblok sampai
coordinator me-respon.
Pesan ack digunakan untuk menyampaikan coordinator bahwa koordinat dapat
melupakan suatu transaksi, sampai coordinator menerimas semua ack, harus menyimpan
T pada table transaksi.
Jika coordinator gagal setelah mengirim pesan siap tetapi sebelum menulis
rekaman log commit/abort, jika coordinator kembali maka akan abort transaksi
Jika sub transaksi tidak diubah, status commit atau abort tidak relevan.
Apabila coordinator menghentikan (abort) T, koordiator tidak mengerjakan T
dan menghapusnya dari table transaksi segera. Jadi coordinator tidak menunggu acks,
presumes abort jika transaksi tidak di dalam table transaksi. Nama sub ordinat tidak
disimpan dalam rekaman log abort. Sub ordinat tidak mengirim ack pada abort. Jika
sb transaksi tidak diubah, sub ordinat merespon pesan prepare dengan menulis yes/no.
t
e
N
Koordinat mengabaikan pembaca. Jika semua sub transaksi adalah pembaca, fase kedua
a
r
d
tidak diperlukan.
RINGKASAN:
By
n
e
H
Pada basis data terdistribusi, data disimpat pada beberapa lokasi dengan tujuan
distributed data independence (pemakai tidak perlu mengetahui lokasi data ) dan
distributed transaction atomicity (dimana tidak ada perbedaan antara transaksi
terdistribusi dan transaksi local). Jika semua lokasi menjalankan perangkat lunak
DBMS yang sama, system disebut homogen, selain itu disebut heterogen.
Arsitektur sistem basis data terdistribusi terdapat tiga tipe. Pada system ClientServer, server menyediakan fungsi DBMS dan client menyediakan antar muka
pemakai.
Pada DBMS terdistribusi, suatu relasi difragmentasi dan direplikasi pada beberapa
tempat. Dalam fragmentasi horizontal, setiap partisi terdiri dari himpunan baris
dari relasi asal. Dalam fragmentasi vertika, setiap partisi terdiri dari himpunan
kolom pada relasi asal. Pada replikasi, disimpan beberapa copy dari relasi atau
suatu partisi pada beberapa tempat.
http://www.hendra-jatnika.web.id
93
Jika suatu relasi difragmen dan direplika, setiap partisi memerlukan nama global
yang unik yang disebut relation name. Manajemen catalog terdistribusi diperlukan
untuk menyimpan rekaman dimana data disimpan.
Pada pemrosesan query dalam DBMS terdistribusi, lokasi partisi dari relasi perlu
dihitung. Join dua relasi dapat dilakukan dengan mengirim satu relasi ke tempat
lain dan membentuk local join. Jika join melibatkan kondisi seleksi, jumlah tupel
yang diperlukan kemungkinan kecil. Semijoin dan Bloomjoin mengurangi jumlah
tupel yang dikirim ke jaringan dengan mengirim informasi terlebih dahulu yang
mengijinkan mem-filter tupel yang tidak relevan. Optimasi query pada system
terdistribusi harus mempertimbangkan komunikasi dengan model biaya.
Pada synchronous replication, semua copy dari relasi replica diubah sebelum
transaksi commit.
t
e
N
voting, perubahan harus menulis mayoritas copy dan membaca harus mengakses
a
r
d
cukup copy untuk menjamin bahwa satu copy sudah tersedia. Pada replikasi peerto-peer, lebih dari satu copy dapat diubah dan strategi conflict resolution dapat
n
e
H
mengubah konflik yang terjadi. Pada replikasi primary site, terdapat satu primary
By
copy yang dapat diubah, copy sekunder lain tidak dapat diubah. Pengubahan pada
primary copy dipropaganda menggunakan capter dan kemudian apply ke tempat
lain.
Jika suatu transaksi melibatkan aktivitas pada tempat yang berbeda, maka
memanggil aktivitas sub transaksi.
Pada DBMS terdistribusi, manajemen lock berupa lokasi sentral, primary copy
atau terdistribusi penuh. Deteksi deadlock pada system terdistribusi dibutuhkan.
Protokol
menjamin bahwa perubahan dibuat oleh beberapa transaksi dapat dipulihkan. Jika
tempat coordinator bertabrakan, sub ordinat di blok, dan sub ordinat harus
menunggu coordinator pulih.
http://www.hendra-jatnika.web.id
94
LATIHAN SOAL :
1. Apakah
keuntungan
DBMS
terdistribusi
dibandingkan
dengan
DBMS
tersentralisasi?
2. Gambarkan arsitektur Client-Server dan Collaboration-Server.
3. Pada arsitektur collaboration server, jika suatu transaksi dikirim ke DBMS, akan
digambarkan bagaimana aktivitas tempat yang berbeda dikoordinasi.
Secara
khusus, gambarkan aturan manager transaksi pada tempat berbeda, konsep atomic
transaksi terdistribusi.
4. Definisikan fragmentasi dan repkasi dalam hal dimana data disimpan.
5. Apakah perbedaan antara replikasi synchronous dan asynchronous ?
6. Definisikan distributed data independence.
t
e
N
a
r
d
synchronous ?
n
e
H
By
http://www.hendra-jatnika.web.id
Bab 8
Basis Data Internet
POKOK BAHASAN:
World Wide World
Pendahuluan HTML
Basis Data dan Web
Arsitektur Application Server dan Server-Side Java
Pendahuluan XML
XML : DTDs
Spesifikasi Domain pada DTDs
Melakukan Query Data XML (XML-QL)
Model Data Semi-terstruktur
t
e
N
a
r
d
By
TUJUAN BELAJAR:
n
e
H
95
http://www.hendra-jatnika.web.id
96
URL diatas mengidentifikasi suatu file bernama index.html, disimpan pada direktory
~database pada mesin www.eepis-its.edu. File ini adalah suatu dokumen yang
mempunyai format Hypertext Markup Language (HTML) dan berisi beberapa link ke
file lain (yang diidentifikasi melalui URL-nya).
Perintah diterjemahkan oleh Web browser seperti Microsoft Internet Explorer,
Netscape Navigator atau Opera untuk menampilkan dokumen secara atraktif dan
pemakai kemudian dapat menavigasi ke dokumen yang berhubungan dengan memilih
link.
Suatu koleksi beberapa dokumen disebut web iste dan diatur menggunakan
program yang disebut web server, yang menerima URL dan menampilkan dokumen
yang diperlukan. Beberapa organisasi saat ini menangani web site. World Wide Web
atau Web, adalah kumpulan web site yang dapat diakses di internet.
HTML menghubungkan isi URL, yang mengidentifikasi tempat yang berisi file
yang berhubungan.
t
e
N
a
r
d
en
berdasarkan tipe file dan jika perlu memanggil program aplikasi untuk menangani file.
By
Sebagai contoh, sebuah file yang diakhiri .txt merupakan file teks tak berformat, web
browser menampilkan dengan menterjemahkan karakter ASCII dalam file. Struktur
dokumen yang lebih tepat dapat dikodekan dalam HTML, yang menjadi cara standart
struktur web page. Contoh lain, file .doc merupakan dokumen Microsoft Word dan
Web browser menampilkna file dengan menggunakan Microsoft Word.
disebut tags, biasanya terdiri dari start tag dan end tag.
Contoh skrip HTML untuk melihat daftar buku :
http://www.hendra-jatnika.web.id
97
<HTML><BODY>
Fiction:
<UL><LI>Author: Milan Kundera</LI?
<LI>Title: Identity</LI>
<LI>Published: 1998</LI>
</UL>
Science:
<UL><LI>Author: Richard Feynman</LI>
<LI>Title: The Character of Physical Law</LI>
<LI>Hardcover</LI>
</UL></BODY></HTML>
t
e
N
a
r
d
n
e
H
Halaman web berisi hasil dari query database. Untuk membangkitkan halaman
web, dilakukan hal-hal sebagai berikut :
By
Web server membuat proses baru dari program yang berinteraksi dengan basis data.
Web server berkomunikasi dengan program tersebut melalui CGI (Common
gateway interface).
Program membangkitkan halaman hasil dengan isinya berasal dari basis data.
Protokol lain selain CGI adalah ISAPI (Microsoft Internet Server API) atau NSAPI
(Netscape Server API).
Fungsi dari
http://www.hendra-jatnika.web.id
98
Tempat koneksi basis data (dan menggunakan kembali koneksi yang tersedia)
Manajemen session
Pemrosesan pada sisi server dapat menggunakan :
Java Servlet : yaitu program java yang berjalan pada server dan berinteraksi
dengan server melalui API yang didefinisikan dengan baik (well-defined)
Java Server Page dan Active Server Page : yaitu kode yang berada di dalam
halaman web yang diterjemahkan oleh web server.
t
e
N
a
r
d
Extensible HTML (XML) merupakan bahasa skrip versi lanjutan dari HTML.
n
e
H
XML merupakan penggabungan antara SGML dan HTML dimana kekuatan SGML
By
tambahan mengenai elemen tersebut. Entiti pada XML serupa dengan makro yang
berupa teks biasa. Pada XML juga tersedia perintah untuk komentar dan elemen yang
terpenting adalah document type declaration (DTDs).
Contoh skrip XML untuk melihat daftar buku adalah sebagai berikut :
http://www.hendra-jatnika.web.id
99
t
e
N
</BOOK></BOOKLIST>
a
r
d
By
n
e
H
http://www.hendra-jatnika.web.id
100
<!DOCTYPE BOOKLIST [
<!ELEMENT BOOKLIST (BOOK)*>
<!ELEMENT BOOK (AUTHOR, TITLE, PUBLISHED?)>
<!ELEMENT AUTHOR (FIRST, LAST)>
<!ELEMENT FIRST (#PCDATA)>
<!ELEMENT LAST (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT PUBLISHED (#PCDATA)>
<!ATTLIST BOOK genre (Science|Fiction) #REQUIRED>
<!ATTLIST BOOK format (Paperback|Hardcover) Paperback>
]>
t
e
N
a
r
d
n
e
H
By
standarisasi DTDs untuk memungkinkan domain dapat menukar data diantara sumbersumber yang heterogen. Contohnya adalah domain pada DTDs untuk mengkodekan
material matematika pada web dengan menggunakan Mathematical Markup Language
(MathML).
Dalam MathML :
<apply> <power/>
<apply> <plus/> <ci>x</ci> <ci>y</ci> </apply>
<cn>2</cn>
</apply>
http://www.hendra-jatnika.web.id
101
t
e
N
$b
<BOOK> IN
a
r
d
www.booklist.com/books.xml,
n
e
H
<AUTHOR> $n </AUTHOR>
<PUBLISHED> $p </PUBLISHED> in $e
By
CONSTRUCT
<RESULT>
<PUBLISHED> $p </PUBLISHED>
WHERE <LAST> $l </LAST> IN $n
CONSTRUCT <LAST> $l </LAST>
</RESULT>
http://www.hendra-jatnika.web.id
102
Obyek yang kompleks di dekomposisi secara hirarki ke dalam obyek yang lebih
kecil.
Contoh model data daftar buku menggunakan OEM dapat dilihat pada Gambar
8-1.
BOOK
AUTHOR
TITLE
Identity
Milan
Kundera
By
PUBLISHED
1998
et
N
a
r
d
n
e
AUTHOR
Richard
FORMAT
TITLE
The
character
of physical law
Hardcover
Feynman
RINGKASAN:
File pada World Wide Web diidentifikasi melalui universal resource locator
(URL). Web browser membawa URL ke tempat yang berisi file dan bertanya
pada Web server pada tempat tersebut untuk file yang dimaksud. Jika kemudian
menampilkan file yang tepat, membawa ke tipe file dan instruksi terformat.
Browser memanggil program aplikasi untuk menangani tipe file tersebut, misalnya
memanggil Microsoft Word untuk menangani dokumen Word. HTML adalah
markup language yang sederhana yang digunakan untuk menggambarkan
dokumen. Program Java, audio dan video dalap disertakan dalam dokumen
http://www.hendra-jatnika.web.id
103
HTML. Data yang diakses melalui Web disimpan dalam DBMS. Web server
dapat mengakses data dalam DBMS untuk membentuk halaman yang diminta oleh
Web browser
Web server terkadang harus mengeksekusi program pada tempat secara berurutan
untuk memenuhi permintaan dari
mengakses data dalam DBMS.
Web browser.
Fungsi
t
e
N
Java yang menuntun ke pembuatan dapn pengaturan program yang didesain untuk
digunakan pada Web server.
a
r
d
XLM adalah deskripsi standar dokumen yang menggambarkan isi dan struktur
n
e
H
dokumen dalam hal penampilan langsung. XML berdasarkan HTML dan SGML,
By
yang merupakan standar dokumen yang banyak digunakan. SML didesain cukup
sederhana untuk manipulasi yang lebih mudah, berbeda dengan SGML, yang
hanya memungkinkan pemakai mengembangkan deskripsi dokumen sendiri, tidak
seperti HTML. Secara khusus, DTD adalah diskripsi dokumen yang independen
dari isi dokumen, seperti halnya skema basis data relasional merupkaan deskripsi
basis data yang independen dari instance basis data aktual.
Dokumen XML
mempunyai struktur yang lebih baik daripada basis data relasional yang disebut
semistruktur.
http://www.hendra-jatnika.web.id
104
LATIHAN SOAL :
b. URL
c. CGI
d. pemrosesan server-side
e. Java Servlet
2. Apakah CGI itu ? Apa kerugian arsitektur menggunakan skrip CGI
3. Apa perbedaan antara Web server dan application server ?
4. Bagaimanan dokumen XML dibentuk dengan baik ?
5. Misalnya pada toko buku.
berdasarkan judul.
t
e
N
a
r
d
Eggface menjual hardware dan software. Kita menjual Palm Pilot V baru seharga
n
e
H
$400; nomor perangkat 345. Kita juga menjual IBM ThinkPad 570 seharga $1999;
nomor perangkat 3784.
By
Microsoft Office 2000 baru datang dan anda dapat membeli Standard Edition
dengan harga $140, nomor perangkat 974. Software dari Adobe yang berjudul
InDesign seharga $200, nomor perangkat 664.
berjudul Diablo II seharga $30, nomor perangkat 12, dan anda dapat membeli
Starcraft seharga $10, nomor perangkat 812
a. Desain dokumen HTML yang menampilkan item yang ditawarkan Eggface
b. Buatlah dokumen XML yang menggambarkan isi dari katalog Eggface
c. Buatlah DTD untuk dokumen XML anda dan pastikan dokumen yang anda
buat pada pertanyaan terakhir adalah valid untuk DTD.
d. Tuliskan query XML-QL yang menampilkan semua software pada katalog
e. Tuliskan query XML-QL yang menampilkan harga semua hardware pada
katalog.
http://www.hendra-jatnika.web.id
Bab 9
Data Warehousing dan
Decision Support
POKOK BAHASAN:
Hubungan antara Data Warehouse dan Decision Support
Model Data Multidimensi
Online Analytical Processing (OLAP)
Arsitektur Data Warehouse
Implementasi Data Warehouse
View dan Decision Support
t
e
N
a
r
d
By
n
e
H
TUJUAN BELAJAR:
9.1.
PENDAHULUAN
Data Warehouse adalah suatu database penunjang keputusan yang dikelola
105
http://www.hendra-jatnika.web.id
106
9.2.
aspek perusahaan, sehingga organisasi membuat data warehouse gabungan yang berisi
data yang berasal dari berbagai sumber. DBMS juga didesain untuk mendukung query
t
e
N
OLAP secara efisien dan dioptimalisasi untuk mendukung aplikasi decision support.
9.3.
a
r
d
n
e
H
By
transaksi. Model ini umum digunakan dalam data warehouse. Memiliki konsep intuitif
dari banyak dimensi atau perspektif pengukuran bisnis atau fakta-fakta. Contohnya :
untuk melihat penjualan dari perspektif customer, product dan time.
Model data multi dimensi adalah himpunan pengukuran numerik yang tergantung
pada himpunan dimensi. Misalnya untuk mengetahui Penjualan/Sales, dimensinya
adalah Produk (pid), Lokasi (locid), dan Waktu (timeid).
Data multi dimensi dapat disimpan secara fisik dalam sebuah array yang disebut
sistem MOLAP. Alternatif lainnya, data dapat disimpan sebagai relasi yang disebut
sistem ROLAP. Relasi utama yang berhubungan dengan dimensi yang diukur
dinamakan tabel fakta (fact table). Tiap dimensi dapat diberi tambahan atribut dan
berasosiasi dengan suatu tabel dimensi (dimension table). Tabel fakta mempunyai
ukuran yang lebih besar dibandingkan dengan tabel dimensi.
http://www.hendra-jatnika.web.id
107
timeid
locid
sales
11
13
11
11
12
21
12
16
12
13
17
13
13
12
11 12 13
Pid
21 16 6
13 4
locid
pid
17 5 12
t
e
N
a
r
d
n
e
H
timeid
By
9.4.
yang umum di dalam query OLAP adalah melakukan agregasi pada satu atau lebih
dimensi. Misalnya, cari total penjualan (sales), cari total penjualan tiap propinsi, cari 5
ranking produk teratas berdasarkan total penjualan. Jenis-jenis query OLAP adalah :
1. Roll up
Yaitu dengan melakukan agregasi pada level yang berbeda dari hirarki dimensi.
Misalnya untuk setiap kota diberikan total penjualan, maka untuk total penjualan tiap
propinsi bisa didapatkan dengan menambahkan total penjualan pada semua kota dalam
satu propinsi.
http://www.hendra-jatnika.web.id
108
2. Drill down
Adalah kebalikan dari roll up. Misalnya untuk setiap propinsi dapat diberikan total
penjualan, maka total penjualan tiap kota dapat di-drill down.
3. Pivoting
Yaitu melakukan agregasi pada dimensi terpilih. Misalnya jika dilakukan pivoting pada
Location dan Time didapatkan cross-tabulation sebagai berikut :
LA NY
tota
1998
25
41
66
1999
64
53
11
tota
89
94
18
t
e
N
By
a
r
d
n
e
H
http://www.hendra-jatnika.web.id
9.5.
109
process model
Tipe apa yang akan dimodelkan?
grain
Apa dasar data dan level atom data yang akan disajikan?
dimensi
Dimensi apa yang dipakai untuk masing-masing record tabel fakta?
ukuran
Ukuran apa yang akan mengumpulkan masing-masing record tabel fakta?
Suatu data warehouse didasarkan kepada suatu model data multidimensi yang
t
e
N
a
r
d
n
e
H
By
Tabel fakta memuat ukuran (seperti dollars_sold) dan kunci untuk setiap
dimensi tabel terkait
Berikut, arsitektur dari Data Warehouse :
http://www.hendra-jatnika.web.id
110
9.6.
t
e
N
a
r
d
n
e
H
aplikasi, misal: customer, product, sales. Perhatian dipusatkan pada pemodelan dan
analisa data untuk pembuat keputusan, bukan untuk operasi harian atau pemrosesan
By
transaksi. View sederhana dan ringkas disekitar subjek pembicaraan disediakan dengan
cara memisahkan data-data yang tidak berkaitan dengan proses penunjang keputusan.
Data Warehouse dibangun dengan memadukan banyak sumber data yang
heterogen, misal : Database relasional, flat file, catatan transaksi on-line. Teknik
pembersihan dan integrasi data juga diterapkan dalam datawarehouse.
Dikarenakan data berasal dari sumber yang berbeda-beda, maka harus dapat
dijamin konsistensi penamaan, penyandian struktur, ukuran atribut, dsb., dari antara
sumber-sumber data yang berbeda, misal, tarif hotel: mata uang, pajak, breakfast
covered, dsb. Ketika data dipindahkan ke warehouse, data ini telah terkonversi
http://www.hendra-jatnika.web.id
9.7.
111
yang berbeda dalam suatu organisasi biasanya berhubungan dengan aspek bisnis yang
berbeda, dan akan lebih memudahkan untuk mendefinisikan view yang memberi tiap
grup wawasan detil bisnis yang sesuai. Setelah view didefinisikan, barulah dapat ditulis
query atau definisi view baru yang menggunakannya.
diajukan untuk view sangat penting untuk aplikasi decision support. Berikut ini akan
dibahas bagaimana query dapat dievaluasi secara efisien setelah menempatkan view ke
dalam konteks aplikasi decision support.
View berhubungan erat dengan OLAP dan data warehousing. Query OLAP
biasanya merupakan query aggregasi. Data warehouse adalah kumpulan table yang
direplikasi secara asynchronous dan view yang disinkronisasi secara periodik.
t
e
N
View berikut ini menghitung penjualan produk berdasarkan kategori dan Negara bagian:
a
r
d
n
e
H
By
http://www.hendra-jatnika.web.id
112
RINGKASAN:
Data Warehouse adalah suatu database penunjang keputusan yang dikelola secara
terpisah dari database operasional perusahaan, yang menyediakan suatu platform
untuk analisa data yang mengandung histori dan yang terkonsolidasi.
Aplikasi Decision Support memerlukan view yang menyeluruh pada segala aspek
perusahaan, dan didapatkan dari data yang berasal dari berbagai sumber.
Model data multidimensional dirancang untuk melakukan analisa data dan umum
digunakan dalam data warehouse.
Model data multidimensi memiliki konsep intuitif dari banyak dimensi atau
perspektif pengukuran bisnis atau fakta-fakta.
Jenis-jenis dari query OLAP yaitu : Roll up, Drill down, Pivoting, Slicing dan
Dicing.
t
e
N
a
r
d
model, level atom data yang akan disajikan, dimensi dan ukuran
n
e
H
View digunakan secara luas dalam aplikasi decision support dan berhubungan erat
dengan OLAP dan data warehousing dan perlu disinkronisasi secara periodik.
By
LATIHAN SOAL :
1. Apa yang dimaksud dengan aplikasi decision support ?
2. Apa pertimbangan yang digunakan dalam mendesain Data Warehouse ?
3. Deskripsikan dimensi dan pengukuran dalam model data multidimensi, dan jelaskan
perbedaan antara table fakta dan table dimensi.
4. Apa yang dimaksud dengan table fakta, dan mengapa sangat penting dari sudut
pandang performa ?
5. Perhatikan contoh relasi sales pada gambar 10.1, tunjukkan hasil pivoting relasi
pada pid dan timeid.
6. Pada gambar 10.1, tunjukkan hasil rool-up pada locid (misalnya, negara bagian).
http://www.hendra-jatnika.web.id
113
7. Tuliskan query dalam SQL, sesuai dengan data yang ada pada gambar 10.1
a. Carilah perubahan persentase dalam penjualan bulanan total untuk tiap
lokasi
b. Carilah perubahan persentase dalam penjualan kuartalan total untuk tiap
produk
c. Carilah tiga besar lokasi yang diurutkan berdasarkan penjualan total.
8. Mengapa view begitu penting dalam lingkungan decision support ? Bagaimana view
dihubungkan dalam lingkungan data warehousing dan OLAP ?
t
e
N
a
r
d
By
n
e
H
http://www.hendra-jatnika.web.id
Bab 10
Data Mining
POKOK BAHASAN:
Model Data Mining
Tahapan dalam Data Mining
Fungsionalitas dalam Data Mining
Teknik-teknik Data Mining
t
e
N
TUJUAN BELAJAR:
a
r
d
By
n
e
H
10.1. PENDAHULUAN
Seiring
dengan
perkembangan
teknologi,
semakin
berkembang
pula
kemampuan kita dalam menggumpulkan dan meng olah data. Penggunaan sistem
komputerisasi dalam berbagai bidang baik itu dalam transaksi-transaksi bisnis, maupun
untuk kalangan pemerintah dan sosial, telah menghasilkan data yang berukuran sangat
besar. Data-data yang terkumpul ini merupakan suatu tambang emas yang dapat
digunakan sebagai informasi dalam dunia bisnis.
114
http://www.hendra-jatnika.web.id
115
Aplikasi basis data telah banyak diterapkan dalam berbagai antara lain bidang
manajemen, manajemen data untuk industri, ilmu pegetahuan, administrasi pemerintah
dan bidang-bidang lainnya. Akibatnya data yang dihasilkan oleh bidang-bidang tersebut
sangatlah besar dan berkembang dengan cepat. Hal ini menyebabkan timbulnya
kebutuhan terhadap teknik-teknik yang dapat melakukan pengolahan data sehingga dari
data-data yang ada dapat diperoleh informasi penting yang dapat digunakan untuk
perkembangan masing-masing bidang tersebut.
Istilah data mining sudah berkembang jauh dalam mengadaptasi setiap bentuk
analisa data. Pada dasarnya data mining berhubungan dengan analisa data dan
penggunaan teknik-teknik perangkat lunak untuk mencari pola dan keteraturan dalam
himpunan data yang sifatnya tersembunyi.
Data mining diartikan sebagai suatu proses ekstraksi informasi berguna dan
t
e
N
potensial dari sekumpulan data yang terdapat secara implisit dalam suatu basis data.
Banyak istilah lain dari data mining yang dikenal luas seperti knowledge mining from
a
r
d
databases, knowledge extraction, data archeology, data dredging, data analysis dan lain
sebagainya [AGR-93].
By
n
e
H
http://www.hendra-jatnika.web.id
116
t
e
N
a
r
d
n
e
H
By
pembelian pelanggah sebelumnya dan data tentang keadaan pelanggan, dapat digunakan
untuk melakukan perbandingan antara pembelian dan karakteristik pelanggan untuk
menetapkan dan menguji target yang telah diperkirakan sebelumnya. Dari keseluruhan
operasi yang ada selanjutnya dapat dilakukan penyaringan dengan cermat sehingga
jumlah perkiraan (hypothesys) yang sebelumnya banyak akan menjadi semakin
berkurang sesuai dengan keadaan yang sebenarnya.Permasalahan utama dengan model
ini adalah tidak ada informasi bare yang dapat dibuat, melainkan hanya pembuktian atau
melemahkan perkiraan (hypothesys) dengan data-data yang ada sebelumnya. Datadata
yang ada pada model ini hanya digunakan untuk membuktikan mendukung perkiraan
(hypothesis) yang telah diambil sebelumnya. Jadi model ini sepenuhnya tergantung pads
kemampuan user untuk melakukan analisa terhadap permasalahan yang ingin digali dan
diperoleh informasinya.
http://www.hendra-jatnika.web.id
117
10.3.
t
e
N
a
r
KEBUTUHAN DAN TANTANGANd
DALAM DATA MINING
n
He
By
http://www.hendra-jatnika.web.id
118
khusus untuk tipe-tipe data khusus seperti dalam basis data relasional, basis data
transaksi, basis data spasial, basis data multimedia dan lain sebagainya.
t
e
N
perkiraan-perkiraan yang masuk akal. Noise dan data-data yang tidak diperlukan harus
a
r
d
ditangani dengan rapi dalam sistem data mining. Hal ini juga akan memotivasi suatu
n
e
H
studi sistematik untuk mengukur kualitas dari informasi yang dihasilkan, termasuk
seberapa menariknya dan tingkat kepercayaannya yang dapat diukur secara statistik,
By
http://www.hendra-jatnika.web.id
119
t
e
N
a
r
d
n
e
H
Ketika data dapat diperlihatkan dari berbagai sudut pandang dan dalam level
By
abstrak yang berbeda, hal ini akan mengancam tujuan dari proteksi dan keamanan data,
dan pelanggaran terhadap sifat kerahasiaan informasi. Sangatlah penting untuk
mempelajari apakah penemuan informasi yang berguna itu akan mengakibatkan
pelanggaran kerahasiaan dan ukuran keamanan yang diperiukan untuk menghalangi
akses terhadap data-data yang sifatnya sensitif.
http://www.hendra-jatnika.web.id
120
Interpretasi
& Evaluasi
Data Mining
Transformasi
Patterm
Praproses
Transformed
Data
Seleksi
Target Data
Data
Preprocess
Data
Dewasa ini, hampir semua Data bisnis disimpan dalam basis data relasional. Sebuah
t
e
N
model basis data relasional dibangun dari serangkaian tabel, setiap tabel disimpan
a
r
d
sebagai sebuah file. Sebuah tabel relasional terdiri dari baris dan kolom. Kebanyakan
n
e
H
model basis data relasional saat ini dibangun diatas lingkungan OLTP. OLTP (Online
Transaction Processing ) adalah tipe akses yang digunakan oleh bisnis yang
By
membutuhkan transaksi konkuren dalam jumlah besar. Bentuk data yang tersimpan
dalam basis data relasional inilah yang dapat diolah oleh sistem data mining.
Ekstraksi Data
Data-data yang dikumpulkan dalam proses transaksi seringkali ditempatkan pada lokasi
yang berbeda-beds. Maka dari itu dibutuhkan kemampuan dari sistem utuk dapat
mengumpulkan data dengan cepat. Jika data tersebut disimpan dalam kantor regional,
seringkali data tersebut di upload ke sebuah server yang lebih terpusat. Ini bisa
dilakukan secara harian, mingguan, atau bulanan tergantung jumlah .data, keamanan
dan biaya. Data dapat diringkas dulu sebelum dikirimkan ke tempat penyimpanan pusat.
Sebagai contoh, sebuah toko perangkat keras mungkin mengirim data yang menunjukan
bahwa 10 rol kabel telah terjual pada hari ini oleh karyawan nomer 10 dibanding
pengiriman data detail transaksi.
Transformasi Data
http://www.hendra-jatnika.web.id
121
Pembersihan Data
t
e
N
akurat. Adalah sangat penting untuk membuat data konsisten dan seiagam. Pembersihan
data juga dapat membantu perusahaan untuk mengkonsolidasikan record. ini sangat
a
r
d
n
e
H
pelanggan.Setiap record atau file pelanggan mempunyai nomor pelanggan yang sama,
By
Bentuk Standar
Selanjutnya setelah data mengalami proses pembersihan maka data ditranfer kedalam
bentuk standar. Bentuk standar adalah adalah bentuk data yang akan diakses oleh
algoritma data mining. Bentuk standar ini biasanya dalam bentuk spreadsheet like.
Bentuk spreadsheet bekerja dengan baik karena baris merepresentasikan kasus dan
kolom merepresentasikan feature.
Setelah data berada dalam bentuk standar spreadsheet perlu dipertimbangkan untuk
mereduksi jumlah feature. Ada beberapa alasan untuk mengurangi jumlah feature dalam
spreadsheet kita. Sebuah bank mungkin mempunyai ratusan feature ketika hendak
memprediksi resiko kredit. Hal ini berarti perusahaan mempunyai data dalam jumlah
http://www.hendra-jatnika.web.id
122
yang sangat besar. Bekerja dengan data sebanyak ini membuat algoritma prediksi
menurun kinerjanya.
Menjalankan Algoritma
Setelah semua proses diatas dikerjakan, maka algoritma data mining sudah siap untuk
dijalankan.
t
e
N
akan informasi dengan penerapan teknik pencarian yang akan digunakan. Untuk
a
r
d
memberikan gambaran yang lebih jelas tentang macam-macam informasi yang dapat
ditemukan dalam sekumpulan data, berikut akan diberikan sedikit bahasan rinci
mengenai hal tersebut.
By
n
e
H
http://www.hendra-jatnika.web.id
123
maka waktu dan biaya komputasi tentunya juga akan sangat besar, sehingga untuk
menemukan hubungan tersebut diperlukan suatu algoritma yang efisien dan metodemetode tertentu.
( OLAP ), basis data multi dimensi, data cubes, abstraksi data, dan lain
t
e
N
Data dan obyek dalam basis data seringkali memuat informasi yang mendetail
pada level primitif. Sebagai contoh, item relasi dalam suatu basis data sales mungkin
a
r
d
saja mengandung atribut level primitif tentang informasi item seperti nomor item, nama
n
e
H
item, tanggal pembuatan, harga dan lain sebagainya. Seringkali kita menginginkan
By
untuk mencatat sejumlah besar himpunan data dan menampilkannya dalam level tingkat
tinggi. Misalnya seseorang mungkin ingin mencatat sejumlah besar himpunan item yang
terhubung ke beberapa sales untuk memberikan
classification
rules.
Sebagai
contoh,
sebuah
dealer
mobil
ingin
http://www.hendra-jatnika.web.id
124
pada
sebuah
himpunan
obyek
di
dalarn
sebuah
basis
data,
dan
t
e
N
untuk model ini adalah prediksi terhadap resiko pemberian kredit. Data terdiri dari
a
r
d
orang orang yang telah menerima kredit. Sebagian kreditur menjalankan kewajiban
n
e
H
dengan balk, dan sebagian lagi tidak. Data mining, harus mampu mendefinisikan atribut
atribut apa yang paling berpengaruh dalam hal ini.
By
dasamya
clustering
terhadap
data
adalah
suatu
proses
untuk
mengelompokkan sekumpulan data tanpa suatu atribut kelas yang telah didefinisikart
sebelumnya, berdasarkan pada prinsip konseptual clustering yaitu memaksimalkan dan
juga meminimalkan kemiripan intra kelas. Misalnya, sekumpulan obyek-obyek
komoditi pertama-tama dapat di clustering menjadi sebuah himpunan kelas-kelas dan
lalu menjadi sebuah himpunan aturan-aturan yang dapat diturunkan berdasarkan suatu
klasifikasi tertentu.
Proses untuk mengelompokkan secara fisik atau abstrak obyek-obyek ke dalam
bentuk kelas-kelas atau obyek-obyek yang serupa,disebut dengan clustering atau
unsupervised classification. Melakukan analisa dengan clustering, akan sangat
membantu untuk membentuk partisi-parti si yang berguna terhadap sejumlah besar
http://www.hendra-jatnika.web.id
125
himpunan obyek dengan didasarkan pada prinsip "divide and conquer" yang
mendekomposisikan suatu sistem skala besar, menjadi komponen-komponen yang lebih
kecil, untuk menyederhanakan proses desain dan implementasi. Perbedaan utama antara
Clustering Analysis dan klasifikasi adalah bahwa Clustering Analysis digunakan untuk
memprediksi kelas dalam format bilangan real dad pada format katagorikal atau
Boolean.
t
e
N
melakukan transaksi membeli kopi. Dari semua transaksi membeli gula ternyata hampir
a
r
d
seluruhnya terdapat transaksi membeli kopi. Maka dari pola-pola yang ada ini dapat
dijadikan masukan bahwa telah terjadi suatu kecendrungan (trend) dari pelanggan
n
e
H
dimana setiap pelanggan melakukan transaksi membeli gula maka akan diikuti oleh
By
transaksi membeli kopi. Untuk itu pihak manajemen dapat menempatkan letak item
kopi dekat dengan item gula. Sehingga memudahkan pelanggan untuk melakukan
transaksi selanjutnya.
http://www.hendra-jatnika.web.id
126
akhir-akhir ini dikembangkan. Klasifikasi skema yang berbeda dapat digunakan untuk
mengkategorikan metode dan sistem data mining dengan didasarkan pada jenis basis
data yang akan dipelajari, dan teknik apa yang akan digunakan.
Jenis Basis Data yang akan dijadikan obyek.
Suatu sistem data mining dapat diklasifikasikan menurut jenis basis data
dimana proses data mining tersebut dilakukan. Sebagai contoh, sebuah sistern
adalah relationar data miner jika sistem tersebut menemukan informasi dad basis
data relasional, atau suatu object oriented data miner bila informasi diperoleh dari
basis data yang berorientasi pada obyek. Secara umum, data miner dapat
digolongkan menurut jenis basis data apa yang diolahnya seperti misalnya basis
data relasional, basis data transaksi, basis data yang berorientasi obyek, basis data
deduktif, basis data spasial, basis data multimedia, basis-data-heterogen, dan lain
sebagainya.
t
e
N
a
r
d
n
e
H
Beberapa jenis informasi dapat dihasilkan dad proses data mining ini, termasuk
By
http://www.hendra-jatnika.web.id
127
hasil penelitian menunjukkan ada satu skema utama yang menjadi patokan, yaitu jenis
informasi yang dibutuhkan. Mengapa demikian, adalah karena dengan kiasifikasi ini
akan memberikan gambaran yang jelas mengenai teknik dan kebutuhan datamining
yang beragam. Metode-metode pencarianinformasi yang ada berdasarkan jenis
informasinya seperti association rules, characterization rules, classification rules,
sequence patterns, clustering dan ;ain-Iainnya telah diteliti secara mendalam. Untuk
proses pencarian suatu informasi tertentu, berbagai pendekatan seperti pendekatan
secara statistik, pendekatan berorientasi pada basis data yang besar dan sebagainya akan
dibandingkan dengan penekanan utama pada basis data, dimana efektifitas dan efisiensi
merupakan salah satu tujuan utamanya.
t
e
N
yang digunakan untuk menemukan relasi atau korelasi diantara himpunan item2. Market
a
r
d
Basket Analysis adalah Analisis dari kebiasaan membeli customer dengan mencari
n
e
H
asosiasi dan korelasi antara item-item berbeda yang diletakkan customer dalam
keranjang belanjaannya.
By
Fungsi ini paling banyak digunakan untuk menganalisa data dalam rangka
keperluan strategi pemasaran, desain katalog, dan proses pembuatan keputusan bisnis.
Tipe association rule bisa dinyatakan sebagai misal : "70% dari orangorang yang
membeli mie, juice dan saus akan membeli juga roti tawar". Aturan asosiasi
mengcapture item atau kejadian dalam data berukuran besar yang berisi data transaksi.
Dengan kemajuan teknologi, data penjualan dapat disimpan dalam jumlah besar yang
disebut dengan "basket data." Aturan asosiasi yang didefinisikan pada basket data,
digunakan untuk keperluan promosi, desain katalog, segmentasi customer dan target
pemasaran. Secara tradisional, aturan asosiasi digunakan untuk menemukan trend bisnis
dengan menganalisa transaksi customer. Dan dapat digunakan secara efektif pada
bidang Web Mining yang diilustrasikan sebagai berikut : pada Web access log, kita
menemukan bahwa aturan asosiasi : "A and B implies C," memiliki nilai confidence
80%, dimana A, B, dan C adalah halaman Web yang bisa diakses. Jika seorang user
mengunjungi halaman A dan B, maka terdapat 80% kemungkinan dia akan
http://www.hendra-jatnika.web.id
128
mengunjungi halaman C juga pada session yang sama, sehingga halaman C perlu diberi
direct link dari A atau B. Informasi ini dapat digunakan untuk membuat link secara
dinamik ke halaman C dari halaman A atau B sehingga user dapat melakukan direct link
ke halaman C. Informasi semacam ini digunakan untuk melakukan link ke halaman
produk yang berbeda secara dinamik berdasarkan interaksi customer.
Apa Itu Kaidah Asosiasi?
Diberikan:
Suatu database transaksi
Setiap transaksi adalah suatu himpunan item-item
Cari seluruh kaidah asosiasi yang memenuhi kendala minimum support dan
minimum confidence yang diberikan user.
t
e
N
Contoh:
a
r
d
30% dari transaksi yang memuat bir juga memuat popok 5% dari transaksi
memuat item-item berikut:
n
e
H
By
Kita berminat untuk mencari seluruh kaidah ketimbang memeriksa apakah suatu
kaidah berlaku.
Definisi Umum
Support, supp(X) dari suatu itemset X adalah rasio dari jumlah transaksi
dimana suatu itemset muncul dengan total jumlah transaksi.
http://www.hendra-jatnika.web.id
129
Database transaksi menyimpan data transaksi. Data transaksi bisa juga disimpan
dalam suatu bentuk lain dari suatu database mxn.
Ukuran Support
Misalkan I={I1, I2, ,Im} merupakan suatu himpunan dari literal, yang disebut
item-item.
t
e
N
a
r
d
n
e
H
Didalam setiap item adalah nilainilai yang menyatakan besaran item terjual.
By
Item A muncul dalam 3 transaksi (|TA|) yakni di transaksi T1, T3,dan T8.
http://www.hendra-jatnika.web.id
130
Jika minsupport diberikan oleh user sebagai ambang adalah 0.2, maka frequent
itemset adalah semua itemset yang supportnya besar sama dengan 0.2, yakni A,
C, D, AC, AD, CD, ACD
CA
AD
DA
CD
D C,
A,C D
A,D C
By
C,D A
t
e
N
a
r
d
n
e
H
Analisis dari kebiasaan membeli customer dengan mencari asosiasi dan korelasi antara
item-item berbeda yang diletakkan customer dalam keranjang belanjaannya.
http://www.hendra-jatnika.web.id
131
Diberikan :
Suatu database transaksi customer (misal, keranjang belanja), dimana
setiap transaksi dalah suatu himpunan item-item (misal produk)
Cari:
Grup item-item yang sering dibeli secara bersama-sama
t
e
N
a
r
d
n
e
H
By
"IF membeli bir dan sosis, THEN juga membeli mostar dengan peluang
tinggi"
Basket
Chips, Salsa, coke, crakers, cookies, beer
Lettuce, Spinach, Oranges, Cellery, Apples, Grapes
Chips, Salsa, Frozen Pizza, Frozen cake
Lettuce, Spinach, Milk, Butter
Gambar 11.6. Bentuk Analisa Keranjang Belanja
http://www.hendra-jatnika.web.id
132
Kepemahaman:
Sederhana untuk dipahami
Kegunaan:
menyediakan informasi yang bias ditindaklanjuti
Efisiensi:
t
e
N
a
r
d
Aplikasi:
n
e
H
By
http://www.hendra-jatnika.web.id
133
t
e
N
Minimum support :
High
a
r
d
n
e
H
By
Minimum confidence :
High
Low
Transaksi:
< 1, {item1,item2}>
< 2, {item3}>
http://www.hendra-jatnika.web.id
134
frequent
itemsets
untuk
men-generate
aturan
yang
t
e
N
a
r
d
Algoritma Apriori yang bertujuan untuk menemukan frequent itemsets dijalankan pada
n
e
H
sekumpulan data. Pada iterasi ke -k, akan ditemukan semua itemsets yang memiliki k
items, disebut dengan k -itemsets. Tiap iterasi berisi dua tahap. Misal Oracle Data
By
http://www.hendra-jatnika.web.id
135
Untuk menemukan suatu pola yang sering dari ukuran 100, misal, {a1, a2,
, a100}, seseorang perlu membangun 2100
t
e
N
a
r
d
Dalam praktek:
1030 kandidat.
Untuk pendekatan apriori dasar, jumlah atribut dalam baris biasanya lebih kritis
n
e
H
Contoh:
-
By
Perhatian:
-
http://www.hendra-jatnika.web.id
136
Ada beberapa cara untuk mengatasi problem dalam algoritma apriori ini berikut,
Perbaikan Kinerja Apriori :
1. Hitungan itemset berbasis hash:
Suatu k-itemset yang hitungan ember hash terkaitnya dibawah ambang tidak bisa
frequent.
2. Reduksi transaksi:
Suatu transaksi yang tidak memuat frequent k itemset apapun adalah sia-sia
dalam scan berikutnya.
3. Partisi:
Itemset apapun yang potensial frequent dalam DB haruslah frequent dalam
paling tidak satu dari partisi dari DB
4. Sampling:
Penambangan atas suatu subset dari data yang diberikan, menurunkan ambang
t
e
N
Diberikan: (1) database transaksi, (2) setiap adalah suatu daftar dari item-item
a
r
d
By
n
e
H
Disebut trik Apriori: suatu subset tak hampa dari suatu frequent itemset
haruslah juga suatu frequent itemset:
-
Artinya, jika {AB} adalah suatu frequent itemset, kedua {A} dan {B}
harus juga frequent itemsets.
http://www.hendra-jatnika.web.id
137
Secara iteratif cari frequent itemsets dengan ukuran dari 1 hingga k (kitemset)
Setiap transaksi yang memiliki {beer, popok, kacang} juga memuat {bir,
popok}.
Jika A atau B memiliki support kecil dari a maka {A, B} memiliki support
lebih kecil dari a.
t
e
N
a
r
d
By
n
e
H
L1 = {frequent items};
http://www.hendra-jatnika.web.id
138
t
e
N
Contoh apriori :
Price
a
r
d
1500
1/4/99
MS Office
300
1/4/99
MCSE Book
100
1/4/99
201
Hard disk
500
1/8/99
102
201
MCSE Book
100
1/8/99
103
202
Computer
1500
1/21/99
103
202
Hard disk
500
1/21/99
103
202
MCSE Book
100
1/21/99
TID
CID
Item
101
201
Computer
101
201
101
201
102
By
n
e
H
Date
{Hard disk}
Jumlah seluruh transaksi adalah 3 (oleh customer 201 dua kali yakni
pada 1/4/99 dan 1/8/99, customer 202 sekali yakni pada 1/21/99. Catatan
perhatikan Customer dan tanggal transaksi )
http://www.hendra-jatnika.web.id
139
Jumlah transaksi Computer dan Hard Disk adalah 1 ( oleh customer 202
pada 1/21/99 )
Jumlah transaksi hanya Computer adalah 2 (pada 1/4/99 oleh 201 dan
pada 1/21/99 oleh 202)
> Support(Computer Hard disk) = 1/3=33.3%
> Conf(Computer Hard disk) = 1/2=50%
{MCSE book}
Jumlah seluruh transaksi adalah 3 (oleh customer 201 dua kali, customer
202 sekali. Catatan perhatikan Customer dan tanggal transaksi)
Jumlah transaksi Computer dan MCSE book adalah 2 (oleh customer 201
dan 202)
t
e
N
a
r
d
By
n
e
H
http://www.hendra-jatnika.web.id
140
t
e
N
d
n
e
MCSE Book
By
Conf(Computer
Computer
ra
MCSE Book
MCSE Book)=2/2=100%
Conf(MCSE Book
Computer)=2/3=66.7%
Conf(MCSE Book
Hard Disk)=2/3=66.7%
Conf(Hard Disk
MCSE Book)=2/2=100%
Jadi, asosiasi yang memenuhi minsupport 60% dan minconfidence 80% adalah:
Hard Disk
Computer
MCSE Book
http://www.hendra-jatnika.web.id
141
RINGKASAN:
Pada dasarnya data mining berhubungan dengan analisa data dan penggunaan
teknik-teknik perangkat lunak untuk mencari pola dan keteraturan dalam
himpunan data yang sifatnya tersembunyi.
Data mining diartikan sebagai suatu proses ekstraksi informasi berguna dan
potensial dari sekumpulan data yang terdapat secara implisit dalam suatu basis
data
t
e
N
a
r
d
data multilevel, klasifikasi data, analisa cluster, dan pencarian pola sekuensial
n
e
H
Teknik-teknik dalam Data Mining yang bisa diterapkan antara lain : market basket
analysis dan Algoritma Apriori.
By
http://www.hendra-jatnika.web.id
142
LATIHAN SOAL :
1. Apa perbedaan antara klasifikasi dan clustering ?
2. Apa peranan visualisasi informasi dalam data mining ?
3. Definisikan support dan confidence untuk aturan asosiasi
4. Jelaskan mengapa aturan asosiasi tidak dapat digunakan secara langsung untuk
prediksi, tanpa analisis yang lebih lanjut atau domain pengetahuan !
5. Perhatikan table Purchase berikut ini :
Transid
Custid
Date
Item
Qty
111
201
5/1/2002
Ink
111
201
5/1/2002
Milk
111
201
5/1/2002
Juice
112
105
6/3/2002
Pen
112
105
6/3/2002
t
e
N
Ink
112
105
6/3/2002
Water
113
106
5/10/2002
Pen
113
106
5/10/2002
Water
113
106
5/10/2002
Milk
114
201
6/1/2002
Pen
114
201
6/1/2002
Ink
114
201
6/1/2002
Juice
114
201
6/1/2002
Water
114
201
6/1/2002
Milk
nd
ra
By
He
Simulasikan algoritma untuk menemukan frequent itemset pada table degan minimum
support = 90 persen, lalu cari aturan asosiasi dengan minimum confidence = 90 persen.