MATA KULIAH
BASIS DATA LANJUT
POLITEKNIK PIKSI GANESHA
By
Hendra Jatnika, S.Kom
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
“Pendalaman Materi dan Latihan diberikan pada waktu kuliah”
By
HendraNet
http://www.hendra-jatnika.web.id
1
Bab1
Review Database 1
POKOK BAHASAN:
Pendahuluan
ER-Model
Model Relasional
Structured Query Language
Normalisasi
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami Database Management System dan komponen utamanya
Memahami ER-Model dan dapat menggunakannya sebagai desain awal dari
database
Memahami SQL dan apa saja yang tercakup dalam bahasa SQL
Memahami konsep normalisasi dan dapat melakukan normalisasi data
1.1. 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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 2
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. Sebagai contoh, basis data universitas berisi
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.
Tujuan dari pengajaran mata kuliah basis data adalah untuk memberikan suatu
pendahuluan mengenai sistem manajemen basis data, dengan penekanan pada
baagimana cara mengorganisasi suatu informasi dalam DBMS, untuk memelihara
informasi tersebut dan melakukan pengambilan informasi secara efektif, dan bagaimana
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. Sehingga agar bisa menggunakan DBMS
dengan baik, perlu diketahui cara kerja dari DBMS tersebut. 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 3
Pada konteks yang lebih luas, ER model digunakan dalam fase desain basis data
konseptual.
1.2.1. ENTITI, ATRIBUT, DAN HIMPUNAN ENTITI
Entiti adalah obyek dunia nyata yang dapat dibedakan dari obyek yang lain. Entiti
digambarkan (dalam basis data) dengan menggunakan himpunan atribut. Himpunan
entiti yang sejenis disimpan dalam himpunan entiti.
Himpunan entity : Kumpulan entity yang sejenis.
Gambar 1-1: Entiti Pegawai (Employee)
Misal : himpunan data pegawai
o Semua entity dalam himpunan entity memiliki himpunan atribut yang
sama
o Tiap himpunan entity memiliki kunci (key)
o Tiap atribut memiliki domain.
1.2.2. RELASI DAN HIMPUNAN RELASI
Relasi adalah asosiasi diantara dua atau lebih entity
Misal : Ani bekerja di Departemen Farmasi
Gambar 1-2: Relasi antar Entiti
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 4
Himpunan Relasi : Himpunan dari relasi-relasi yang sejenis
Himpunan relasi n-ary R berelasi dengan sejumlah himpunan entity n E1 … En
Himpunan entity yang sama dapat berpartisipasi dalam himpunan relasi yang berbeda,
atau mempunyai peran yang berbeda dalam suatu himpunan yang sama.
Gambar 1-3: Self Relationship
1.2.3. FITUR TAMBAHAN UNTUK ER-MODEL
Berikut ini dibahas beberapa fitur tambahan untuk ER-Model :
Batasan Kunci (Key Constraints)
• Pada suatu contoh kasus, seorang pegawai dapat bekerja pada beberapa
departments; sebuah departement memiliki banyak pegawai
• Sebaliknya, tiap departement hanya memiliki seorang manager, yang
berhubungan dengan key constraint pada Manages.
Gambar 1-4: Contoh Key Constraint antar Entiti
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 5
Gambar 1-5: Macam-macam Key Constraint
Batasan Partisipasi (Participation Constraints)
• Apakah setiap departemen mempunyai seorang manager ?
o Jika semua departemen pasti mempunyai manager maka partisipasi
Departements dalam Manages dapat dikatakan total. Sebaliknya jika
tidak semua departement memiliki manager maka partisipasinya adalah
partial.
Gambar 1-6: Contoh Participation Constraint
Entiti Lemah (Weak Entity)
• 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).
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 6
Gambar 1-7: Contoh Weak Entity
1.2.4. HIRARKI KLAS
Seperti pada C++, dan bahasa pemrograman yang lain, suatu atribut dapat diturunkan.
Jika kita deklarasikan A ISA B, setiap entity A juga termasuk entity B.
♦ Overlap constraints : Bolehkah seorang pegawai mempunyai status sebagai
pegawai dengan hitungan gaji perjam (Hourly_Emps) sama halnya seperti
pegawai dengan perjanjian kontrak (Contract_Emps) ? (Boleh/Tidak)
♦ Covering constraints : Apakah setiap entity Employees juga merupakan entity
Hourly_Emps dan Contract_Emps ?
Gambar 1-8 : Hirarki Klas
Alasan menggunakan ISA :
♦ Untuk menambahkan deskripsi atribut yang lebih spesifik pada subclass.
♦ Untuk mengidentifikasi entity yang berpartisipasi dalam suatu relasi.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 7
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.
Gambar 1-9: Contoh Aggregasi
1.3. MODEL RELASIONAL
Basis Data Relasional adalah himpunan relasi. Suatu relasi adalah himpunan
kolom atau tupel (semua barisnya bersifat distinct/unik).
Sedangkan relasi itu sendiri terdiri dari dua bagian yaitu :
♦ Instance : table dengan baris dan kolom
#baris = kardinalitas, #kolom/fields = degree/arity
♦ Skema : menentukan nama relasi, plus nama dan tipe kolom
Contoh relasi misal :
Students(sid : string, name : string, login : string, age : integer, gpa : real).
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 8
Gambar 1-10 : Contoh Instance dari Relasi Students
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
intuitif, dan DBMS bertanggungjawab untuk mengevaluasinya secara efisien.
Kita dapat melakukan query pada beberapa table yang saling berelasi. Contoh
pada table berikut jika terdapat table Enrolled yang berelasi dengan table Students
sebelumnya dengan key field sid :
Kemudian diberikan query :
SELECT S.name, E.cid
FROM Students S, Enrolled E
WHERE S.sid=E.sid and E.grade=”A”
Maka table yang dihasilkan dari query tersebut adalah :
Yaitu mencari data Students (nama Students dan mata kuliah yang diikutinya) yang
mendapat nilai “A”.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 9
1.3.1. BATASAN INTEGRITAS (INTEGRITY CONSTRAINT)
Batasan Integritas adalah suatu kondisi yang harus bernilai benar untuk suatu
instance dalam basis data, misal : batasan domain
♦ Dispesifikasi saat skema didefinisikan
♦ Diperiksa pada saat suatu relasi dimodifikasi
Instance dari relasi disebut legal jika bisa memenuhi semua batasan integritas
(integrity constraints) yang telah dispesifikasi. Batasan integritas juga digunakan untuk
menghindari kesalahan dari entry data
Berikut akan dibahas satu persatu batasan integritas dalam model relasional.
Batasan Kunci Primer (Primary Key Constraints)
Himpunan suatu fields merupakan suatu key dari suatu relasi jika :
♦ Tidak ada dua tupel yang distinct yang mempunyai nilai yang sama untuk semua
key fields, dan
♦ Key tersebut tidak memiliki subset.
o Pernyataan 2 salah ? bagaimana dengan superkey
o Jika terdapat lebih dari satu key untuk suatu relasi, maka salah satu dari
key tersebut akan dipilih oleh DBA untuk menjadi primary key.
Misal : sid adalah key untuk relasi Students. (Bagaimana dengan name),
himpunan key (sid,gpa) adalah merupakan superkey.
Primary dan Candidate Key dalam SQL :
• Dari kemungkinan banyak candidate keys (dispesifikasi dengan menggunakan
UNIQUE), salah satunya dapat dipilih menjadi primary key.
• Seorang Students dapat mengambil suatu course dan hanya menerima satu nilai
untuk grade dari course yang diikutinya.
Berikut contoh penggunaan batasan kunci primer :
CREATE TABLE Enrolled
( sid CHAR(20),
cid CHAR(20),
grade CHAR(2),
PRIMARY KEY (sid,cid)
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 10
CREATE TABLE Enrolled
(sid CHAR(20),
cid CHAR(20),
grade CHAR(2),
PRIMARY KEY (sid)
UNIQUE(cid,grade))
Foreign Keys
Foreign key adalah himpunan fields dalam satu relasi yang digunakan untuk
melakukan referensi ke tupel pada relasi yang lain (Harus berkorespondensi dengan
primary key pada relasi yang kedua). Berlaku seperti logical pointer
Misal sid adalah foreign key yang direfer dari relasi Students :
o Enrolled(sid : string, cid : string, grade : string)
Foreign Keys dalam SQL :
• Hanya Students yang terdaftar dalam relasi Students yang diperbolehkan untuk
mengikuti suatu perkuliahan (course).
CREATE TABLE Enrolled
(sid CHAR(20), cid CHAR(20), grade CHAR(2),
PRIMARY KEY(sid,cid),
FOREIGN KEY(sid) REFERENCES Students)
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).
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 11
Apa yang harus dilakukan jika tupel Students di-hapus ?
o Hapus juga semua tupel Enrolled yang merefer ke tupel Students yang
dihapus tersebut
o Tidak mengijinkan dilakukan penghapusan jika tupel tersebut merefer ke
tupel pada relasi yang lain (alternatif lain dari yang pertama)
o Ubah sid dalam tupel Enrolled menjadi default sid (alternatif yang lain
lagi).
o (Dalam SQL, juga dapat dilakukan setting pada tupel Enrolled yang
direfer oleh tupel Students yang dihapus tersebut dengan memberikan
nilai khusus yaitu null, yang artinya ‘tidak diketahui’ (unknown atau
inapplicable).
Sama halnya jika primary key dari tupel Students dilakukan perubahan (update).
SQL/92 mendukung pilihan berikut untuk perintah delete dan update :
o Default-nya adalah tidak dilakukan apa-apa (pembatalan perintah
delete/update).
o CASCADE (juga men-delete semua tupel yang merefer ke tupel yang di-
delete).
o Set nilai NULL/DEFAULT (Set nilai foreign key dari tupel yang
direferensi).
Contoh pembuatan referential integrity :
CREATE TABLE Enrolled
(sid : CHAR(20),
cid : CHAR(20),
grade : CHAR(2),
PRIMARY KEY(sid,cid),
FOREIGN KEY(sid)
REFERENCES Students
ON DELETE CASCADE
ON UPDATE SET DEFAULT)
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 12
1.4. STRUCTURED QUERY LANGUAGE
Structured Query Language (SQL) adalah bahasa database relasional yang dibuat
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
dari sekali pada from list
• select-list adalah daftar nama kolom (termasuk ekspresinya) dari tabel-tabel
yang tercantum pada form list. Nama kolom dapat diawali dengan nama alias
dari tabel.
• Kualifikasi pada klausa WHERE merupakan kombinasi boolean atau
pernyataan kata sambung logika dari kondisi yang menggunakan eksepresi yang
melibatkan operator pembanding. Sedangkan ekspresi itu sendiri dapat berupa
nama kolom, konstanta atau aritmatika dan string.
• 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).
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 13
SQL mendukung lima operasi aggregat yang diterapkan pada sembarang kolom
yaitu :
• COUNT : untuk menghitung cacah
• SUM : menghitung jumlah seluruh nilai
• AVG : menghitung rata-rata nilai
• MAX : mencari nilai paling besar
• MIN : mencari nilai paling kecil.
Kadangkala operasi aggregat diperlukan pada sekeompok grup dari baris pada
relasi. Untuk menulis query semacam itu, dibutuhkan klausa GROUP BY. Dan
penambahan klausa HAVING jika kita ingin menerapkan suatu kondisi terhadap data
yang sudah dikelompokkan dengan GROUP BY.
1.5. NORMALISASI
Normalisasi adalah perbaikan skema database. Latar belakang diperlukannya
normalisasi adalah karena adanya penyimpanan informasi yang redundan.
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.
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 tunggal untuk setiap baris
contoh:
Tabel 1. sebelum bentuk normal pertama
NIP Nama Hoby
10113024 Endang C Permana Olahraga
Baca Buku
10113025 Samsul Dengar Musik
Makan
Table 2. yang sudah dalam bentuk normal pertama
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 14
NIP (Primary Key) Nama Hoby
10113024 Endang C Permana Olahraga
10113024 Endang C Permana Baca Buku
10113025 Samsul Dengar Musik
10113025 Samsul Makan
Bentuk Normal Kedua (2NF)
Suatu relasi dikatakan dalam bentuk normal kedua jika berada dalam normal pertama
dan setiap atribut bukan kunci memiliki ketergantungan sepenuhnya terhadap kunci
primer
contoh:
Tabel 3. sebelum bentuk normal kedua
NIP (Primary Key) Nama Kd_Mata_kuliah Nilai
10113024 Endang C Permana001 70
10113024 Endang C Permana002 90
10113025 Samsul 003 100
10113025 Samsul 004 60
Table 4. yang sudah dalam bentuk normal kedua
NIP (Primary Key)
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
Bentuk Normal Ketiga (3NF)
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 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 Endang C Permana Bandung
002 Endang C Permana Ebandung
003 Samsul Jakarta
004 Samsul Jakarta
Table 7. yang sudah dalam bentuk normal ketiga
Kode_Proyek Nama
001 Endang C Permana
002 Endang C Permana
003 Samsul
004 Samsul
Table 8.
Nama Alamat_kota
Endang C Permana Bandung
Samsul jakarta
RINGKASAN:
• Basis data adalah kumpulan data, yang dapat digambarkan sebagai aktifitas dari
satu atau lebih organisasi yang berelasi.
• 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.
• Pada ER Model, gambaran dunia nyata diistilahkan dalam obyek dan relasinya dan
digunakan untuk mengembangkan inisial dari desain basis data.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 16
• Kelebihan dari model relasional adalah kesederhanaannya dalam melakukan query
atas data. Query dapat ditulis secara intuitif, dan DBMS bertanggungjawab untuk
mengevaluasinya secara efisien.
• 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.
LATIHAN SOAL :
1. Gambarlah sebuah diagram ER yang mengungkapkan informasi ini.
Perusahaan rekaman Notown memutuskan untuk menyimpan semua informasi
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).
• Tiap musisi yang melakukan rekaman di Notown mempunyai SSN, nama,
alamat dan nomer telpon. Para musisi yang dibayar lebih rendah akan
mendapatkan alamat yang sama dengan musisi lain, dan satu alamat mempunyai
satu nomer telpon.
• Tiap instrumen yang digunakan untuk merekam berbagai macam lagu di
Notown mempunyai nama (contoh : gitar, sinthesizer, flute) dan kunci musik
(contoh : C, B-flat, E-flat).
• Tiap album yang dicatata di Notown mempunyai judul rekaman, tanggal
copyright, format (contoh : CD atau MC) DAN SEBUAH INDENTIFIKASI
ALBUM.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 1 REVIEW DATABASE 1 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.
• Tiap album dibawakan seorang musisi yang berperan sebagai produser.
Seorang musisi bisa menghasilkan beberapa album.
2. Perhatikan skema relasional berikut ini :
Emp(eid:integer, ename : string, age : integer, salary: real)
Works(eid:integer, did:integer, pct_time: integer)
Dept(did:integer, dname: string, budget: real, managerid: integer)
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 ?
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.
By
HendraNet
http://www.hendra-jatnika.web.id
18
Bab2
Desain Basis Data
POKOK BAHASAN:
Pendahuluan
Aturan Sistem Informasi dalam Organisasi
Proses Desain Basis Data
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami aturan system informasi dalam organisasi
Memahami proses desain basis data
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. Metodologi desain menggunakan alat Bantu seperti Designer 2000 dari
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 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.
2.2ATURAN SISTEM INFORMASI DALAM ORGANISASI
2.2.1 Organizational Context untuk Penggunaan Sistem Basis Data
Sistem basis data menjadi bagian dari sistem informasi dari beberapa organisasi.
Tahun 1960 an sistem informasi didominasi dengan sistem file, tetapi sejak awal 1970
an organisasi mulai berpindah ke sistem basis data. Untuk mengakomodasi sistem,
beberapa organisasi menbuat posisi administrator basisi data (DBA) auntuk mengontrol
aktifitas basis data. Kemudian, information resource management (IRM) juga
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
• Fungsi dalam organisasi dikomputerisasi, sebagai kebutuhan ketersediaan data yang
besar dan up to date.
• Seiring pertumbuhan data dan aplikasi relasi yang lebih kompleks dari data perlu
dimodelkan dan diatur.
• Terdapat konsolidasi dari information resource pada beberapa organisasi.
Sistem basis data memenuhi 4 kebutuhan seperti dijelaskan sebelumnya dalam
ukuran besar. Dua karakteristik tambahan dari sistem basis data yang juga sangat
bernilai :
• Data independence mem-proteksi program aplikasi dari perubahan dalam organisasi
logika dan akses fisik dan struktur penyimpan.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 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 :
• Integritas data pada multiple aplikasi ke dalam basis data tunggal.
• Pengembangan yang simple dengan menggunakan bahasa tingkat tinggi seperti
SQL.
• 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 client-server sebagai pembuka pilihan
mendistribusikan basis data ke banyak sistem komputer untuk kontrol yang
lebih baik dan proses lokal yang lebih cepat. Alat bantu pengembangan
aplikasi seperti POWERBUILDER atau Developer 2000 (oleh Oracle) lebih
mudah digunakan dengan fasilitas built-in untuk menghubungkan aplikasi ke
server basis data.
3. Beberapa organisasi sekarang menggunakan sistem data dictionary atau
information repository, yaitu DBMS min yang mengatur metadata yaitu data
yang menggambarkan struktur basis data, constraints, aplikasi, autorisasi dan
sebagainya. Sistem data dictionary menyimpan dan mengatur informasi
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 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 Siklus Sistem Informasi
Pada organisasi yang besar, sistem basis data adalah baigan dari sistem
informasi, di dalamnya termasi semua resource yang dilibatkan dalam koleksi,
manajemen, penggunaan dan disseminasi information resource dari organisasi. Pada
sistem komputerisasi, resoruce adalah data itu sendiri, perangkat lunak DBMS,
perangkat keras komputer siste, media penyimpan, personal yang menggunakan dan
mengatur data (DBA, pemakai akhir, dan pemakai dsb), perangkat lunak aplikasi yang
mengakses dan mengubah data dan programmer aplikasi yang mengembangkan
aplikasi.
Siklus sistem informasi disebut siklus makro, dimana siklus sistem basis data
dirujuk ke siklus mikro. Siklus makro meliputi beberapa tahap yaitu :
1. Feasibility analysis : tahap ini berhubungan dengan analisa area aplikasi
potensial, mengidentifikasi sisi ekonomi dari information gathering and
dissemination, membentuk studi keuntungan awal, menentukan kompleksitas
data dan proses, mengatur prioritas aplikasi.
2. Requirement collection and analysis : Kebutuhan detai dikumpulkan dengan
interaksi dengan pemakai potensial dan kelompok pemakai untuk
mengidentifikasi permasalahan dan kebutuhan khusus. Ketergantungan
aplikasi, komunikasi dan prosedur pelaporan diindetifikasi.
3. Desain : Tahanp ini mempunayi dua aspek yaitu mendesain sistem basis data
dan mendesain sistem aplikasi (program) yang menggunkaan dan memproses
basis data.
4. Implementasi : Sistem informasi diimplementasi, basisi data dibentuk dan
transaksi basis data diimplementasikan dan diujicoba.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 22
5. Validation and acceptance testing : Tingkat akses dari sistem dalam memenuhi
kebutuhan pemakai dan kriteria performansi divalidasi. Sistem diujicoba
dengan kriteria performanisi dan spesifikasi kelakukan.
6. Deployment, operation and maintenance : Pada tahap ini dilakukan konversi
pemakai dari sistem lama ke sistem baru melalui training. Tahap operasional
mulai jika semua fungsi sistem dioperasikan dan divalidasi. Jika kebutuhan
baru atau aplikasi bertambah, maka harus melalui semua tahap sebelumnya
sampai semua divalidasi dan berhubungan dengan sistem. Monitoring
performansi sistem dan pemeliharaan sistem merupakan aktifitas yang penting
selama tahap operasi.
2.2.3 Siklus Sistem Aplikasi Basis Data
Aktifitas yang berhubungan dengan siklus sistem aplikasi basis data meliputi
tahap berikut :
1. System definition : Scope dari sistem basis data, pemakai dan aplikasi
didefinisikan. Antarmuka untuk pemakai, batasan response time dan
kebutuhan penyimpan dan pemrosesan diidentifikasi.
2. Database design : Pada akhir dari tahap ini , desain logika dan fisik dari sistem
basisi data dari DBMS sudah siap.
3. Database implementation : Tahap ini meliputi proses menentukan definisi basis
data konseptual, eksternal dan internal, membuat file basis data kosong dan
implementasi aplikasi perangkat lunak.
4. Loading or data conversion : Basis data dipopulasikan denan menyimpan data
langsung atau mengubah file yang sudah ada ke format sistem basis data.
5. Application conversion : aplikasi perangkat lunak dari sistem pendahulu
dikonversikan ke sistem baru.
6. Testing and validation : sistem baru diuji coba dan divalidasi
7. Operation : sistem basis data dan aplikasi dioperasikan. Biasanya sistem lama
dan baru dioperasikan secara paralel dalam beberapa waktu.
8. Monitoring and maintenance : selama tahap operasional, sistem secara tetap
dimonitor dan dipelihara. Perubahan dan pengembangan dapat terjadi baik
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 23
pada isi data maupun aplikasi perangkat lunak. Modifikasi dan reorganisasi
diperlukan dari waktu ke waktu.
2.3 PROSES DESAIN BASIS DATA
Sekarang kita fokuskan ke siklus sistem aplikasi basisi data yaitu desain basis
data. Tujuan desain basis data adalah :
• Memenuhi kebutuhan isi informasi dari pemakai dan aplikasi tertentu.
• Menyediakan struktur informasi alami dan mudah dipahami.
• Mendukung kebutuhan pemrosesan dan performansi obyektif seperti response
time, processing time dan storage space.
Terdapat enam tahap utama pada proses desain basis ata yaitu :
1. Koleksi dan analisa kebutuhan
2. Desain basis data konseptual
3. Pemilihan DBMS
4. Pemetaan model data (disebut juga desain basis data logika)
5. Desain basis data fisik.
6. Implementasi dan tuning sistem basis data
Proses desain terdiri dari dua aktifitas paralel seperti pada Gambar 2-1. Aktifitas
pertama meliputi desain data content dan struktur basis data, kedua berhubungan dengan
aplikasi basis data.
Enam tahap diatas tidak diproses secara berurutan. Pada beberapa kasus
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 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.
Gambar 2-1: Tahap perancangan basis data untuk basis data besar
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 25
2.3.1 Tahap 1 : Koleksi dan Analisa Kebutuhan
Sebelum melakukan desain basis data, harus mengetahui dan menganalisa
keinginan pemakai terhadap suatu basis data sedetail mungkin. Proses ini disebut
koleksi dan analisa kebutuhan. Untuk menentukan kebutuhan, pertama kali harus
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. Dokumen lain seperti police manual, form, report dan diagram
organisasi di-review untuk menentukan apakah terdapat tambahan pada koleksi
kebutuhan dan spesifikasi proses.
3. Lingkungan operasi saat ini dan rencana penggunaan informasi dipelajari.
Termasuk di dalamnya analisa tipe transaksi dan frekuensi penggunaannya dan
aliran informasi dalam sistem. Karakteristik geografi seperti pemakai, transaksi
asli, tujuan pelaporan dipelajari. Data input dan output untuk transaksi
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
dilakukan interview untuk menolong dalam memperoleh informasi yang
berharga dan setting prioritas.
Analisa kebutuhan dibawa ke user akhir atau pelanggan sistem basis data oleh
tim ahli analis kebutuhan. Kebutuhan awal lebih informal, tidak lengkap, tidak
konsisten dan sebagian tidak benar. Perlu pekerjaan yang lebih banyak untuk
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 26
diagram). Metode tersebut menggunakan teknik diagram untuk mengorganisasi dan
menampilkan kebutuhan proses informasi. Dokumentasi tambahan dalam bentuk teks,
tabel, grafik dan keputusan melengkapi diagram tersebut.
2.3.2 Tahap 2 : Desain Basis Data Konseptual
Tahap kedua dari perancangan basis data melibatkan dua aktifitas paralel.
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
tinggi DBMS-independent dengan beberapa alasan :
1. Tujuan desain skema konseptual adalah skema lengkap tentang struktur basis
data, semantik, interrelationship dan constraint. Hal ini tergantung dari DBMS
yang digunakan.
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 27
2. Simplicity and understandability : model cukup sederhana untuk pemakai yang
tidak mengerti dan menggunakan konsep tersebut.
3. Minimality : model mempunyai sejumlah kecil konsep dasar yang berbeda dan
tidak overlapping.
4. Diagrammatic representation : model dalam bentuk notasi diagram untuk
menampilkan skema konseptual yang mudah diintepretasikan.
5. Formality : skema konseptual ditampilkan dalam model data aharus
merepesentasikan spesifikasi formal data. Sehingga, konsep model harus
ditentukan secara akurat dan tidak berganda.
Pendekatan ke Desain Skema Konseptual
Untuk desain skema konseptual, harus diidentifikasi komponen dasar dari skema
: tipe entiti, tipe relationship dan atribut. Harus juga menentukan key attributes,
cardinality dan participation constraint, weak entity dan hierarki spesification /
generatization. Terdapat dua pendekatan untuk merancang skema konseptual, yang
diturunkan dari kebutuhan yang dikoleksi.
Pendekatan pertama adalah pendekatan desain skema terpusat (one-shot),
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. Jika suatu skema konseptual dirancang dan final, skema
eksternal untuk kelompok pemakai dan aplikasi dapat ditentukan oleh DBA
Pendekatan kedua adalah pendekatan view integration, dimana kebutuhan tidak
digabungkan. Suatu skema dirancang untuk setiap kelompok user atau aplikasi
berdasarkan kebutuhan masing-masing. Kemudian dikembangkan skema level tinggin
(view) untuk setiap kelompok user atau aplikasi. Selama tahap view integration, skema
bagian digabungkan ke dalam skema konseptual global untuk keseluruhan basis data.
Individual view dapat dibentuk sebagai skema eksternal setelah view integration.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 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.
Strategi untuk Desain Skema
Terdapat beberapa stategi untuk merancang skema, yaitu :
1. Top-down strategy : Dimulai dengan skema yang berisi abstraksi level tinggi
dan kemudian mengaplikasikan ketentuan top-down. Sebagai contoh, tentukan
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. Jadi
strategi ini mengkombinasikan beberapa skema.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 29
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
Gambar 2-2: Strategi top-down. (a) membangkitkan tipe entiti baru.
(b) dekomposisi tipe entiti ke dalam dua tipe entiti dan relasi
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 30
VEHICLE_OWNER ditemukan dari tipe entiti yang sudah ada yaitu FACULTY,
STAFF dan STUDENT.
Skema Integrasi (View)
Untuk basis data yang besar dengan pemakai dan aplikasi yang diharapkan,
pendekatan view integration untuk merancang skema individan dan kemudian
menggabungkannya. Karena individual view relatif kecil, perancangan skema lebih
sederhana. Tetapi diperlukan metodologi untuk integrasi view ke skema basis data
global. Skema integrasi dibagi ke dalam beberapa bagian :
Gambar 2-3: Contoh strategi bottom-up. (a) menemukan dan menambah relasi
baru. (b) menemukan katagori baru (tipe union) dan menghubungkannya.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 31
1. Indentifikasi korespondensi dan konflik diantara skema : Karena skema
dirancang individual, perlu menentukan konstruksi khusus dalam skema yang
merepresentasikan konsep dunia nyata yang sama. Korespondensi diidentifikasi
sebelum integrasi diproses. Selama proses tersebut, beberapa tipe konflik
diantara skema ditemukan, antara lain :
a. Naming conflict : Terdapat dua tipe synonym dan homonym. Synonym
terjadi jika dua skema menggunakan nama yang berbeda dan
menggambarkan konsep yang sama, misalnya, tipe entiti CUSTOMER
pada satu skema mungkin digunakan sama dengan konsep tipe entiti
CLIENT pada skema lain. Homonym terjadi jika dua skema
menggunakan nama yang sama untuk enggambarkan konsep yang
berbeda, sebagai contoh tipe entiti PART merepresentasikan perangkat
komputer dalam skema satu dan perangkat mebel dalam skema dua.
b. Type conflicts : Konsep yang sama kemungkinan direpresentasikan
dalam dua skema dengan konstruksi pemodelan yang berbeda. Sebagai
contoh, konsep DEPARTMENT mungkin tipe entiti dalam skema satu
dan atribut dalam skema lain.
a. Domain (value set) confict : Suatu atribut berbeda domain dalam dua
skema. Sebagai contoh, SSN dideklarasikan sebagai integer dalam
skema satu dan karakter string dalam skema lain. Konflik unit
pengukuran dapa terjadi jika satu skema merepresentasikan WEIGHT
dalam pon dan lainnya dalam kilogram.
b. Konflik diantara constraint : Dua skema mungkin mempunyai constrain
berbeda, sebagai contoh, key pada tipe entiti mungkin berbeda setiap
skema. Contoh lain melibatkan constraint terstruktur yang berbeda pada
relasi seperti TEACHES; satu skema mungkin direpresentasikan 1:N
sementara lainnya M:N.
2. Modifikasi view untuk kesesuaian dengan lainnya : satu skema dimodifikasi
sehigga sesuai dengan skema lainnya. Beerapa konflik diidentifikasi sebagai hal
perama yang harus dipecahkan.
3. Menggabungkan view : Skema global dibuat dengan menggabungkan skema
individu. Konsep yang berhubungan direpresaentasikan hanya sekali dalam
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 32
skema global dan pemetaan antara view dan skema global ditentukan. Hal ini
merupakan langkah yang sulit untuk melakukan pada basis data yang
sebenarnya yang melibatkan ratusan entiti dan relasi. Hal ini melibatkan
sejumlah intervensi manusia dan negosiasi untuk memecahkan konflig dan
mendapatkan solusi yang dapat diterima untuk skema global.
4. Restrukturisasi : sebagai langkah akhir, skema global dianalisa dan
direstrukturisasi untuk memindahkan redundansi dan konpleksitas yang tidak
perlu.
Beberapa ide diatas dapat dilihat pada contoh sederhana Gambar 2-4 dan 2-5.
Gambar 2-4, dua view digabungkan untuk membuat basis data bibliografi. Selama
identifikasi dari korespondensi antara dua view, ditemukan RESEARCHER dan
AUTHOR adalah synonym, demikian juga CONTRIBUTED_BY dan WRITTEN_BY.
Kemudian, menentukan modifikasi VIEW 1 untuk memasukan SUBJECT untuk
ARTICLE, seperti Gambar 2-4, untuk konfirmasi ke VIEW 2. Gambar 2-5
menunjukkan hasil penggabungan sebagai MODIFIED VIEW 1 dengan VIEW 2.
Generalisasi tipe entiti ARTICLE dan BOOK ke dalam tipe entiti PUBLICATION,
dengan atribut umum Title. Relasi CONTRIBUTED_BY dan WRITTEN_BY
digabungkan, demikian juga tipe entiti RESEARCHER dan AUTHOR. 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 33
Gambar 2-4: Modifikasi view untuk konfirmasi sebelum integrasi.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 34
Teknik yang umum digunakan untuk menentukan transaksi pada level konseptual
adalah mengidentifikasi input/output dan functional behavior. Dengan menentukan
parameter input dan ouput dan aliran fungsi internal, desainer dapat mennetukan
transaksi secara konseptual dan dengan cara system-independent. Transaksi
dikelompokkan dalam tiga kategori :
(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. Update transaction berupa booking tempat duduk pada jalur
tertentu. Mixed transaksi pada penampilan beberapa data seperti menampikan
reservasi pelanggan pada beberapa penerbangan, dan kemudian mengubah basis
data seperti membatalkan reservasi dengan menghapusnya, atau menambah segmen
penerbangan untuk reservasi yang sudah ada. Transaksi (aplikasi) dapat
menggunakan POWER BUILDER atau Developer 2000 (Oracle).
Gambar 2-5: Skema terintegrasi setelah menggabungkan view 1 dan view 2.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 35
2.3.3 Tahap 3 : Pemilihan DBMS
Pemilihan DBMS berdasarkan beberapa faktor, beberapa hal teknis, ekonomi dan
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. Hal-hal yang harus dipertimbangkan secara ekonomi dan faktor
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
muka Web berbasis GUI, pilihan recovery/backup, metode akses khusu dan
dokumentasi. Versi DBMS yang tepat untuk sistem operasi harus dipilih
Biasanya, alat bantu pengembangan, alat bantu desain dan dukungan bahasa
tambahan tidak termasuk dalam harga dasar.
2. Maintenance cost : Berhubungan dengan harga layanan pemeliharaan standart dari
vendor dan untuk menjaga versi DBMS tetap up to date.
3. Hardware acquisition cost : perangkat keras baru mungkin diperlukan, seperti
memory, terminal, disk drive dan controller baru, atau penyimpan DBMS khusus.
4. Database creation and conversion cost : Berhubungan dengan biaya pembuatan
sistem basis data dari konversi sistem yang sudah ada ke perangkat lunak DBMS
baru. Operasi sistem yang sudah ada dilakukan paralel dengaan sistem baru sampai
semua aplikasi diimplementasikan penuh dan diujicoba.
5. Personal cost : Akuisisi perangkat lunak DBMS untuk pertama kali oleh organisasi
biasanya dilakukan dengan reorganisasi departemen data processing.
6. Training cost : Karena DBMS biasanya berupa sistem komplek, personal harus
ditraining menggunakan dan memprogram DBMS. Training diperlukan pada
semua level, termasuk programming, pengembangan aplikasi dan administrasi
basis data.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 36
7. Operating cost : Biaya operasi lanjutan dari sistem basis data biasanya tidak
termasuk dalam evaluasi.
Keuntungan DBMS tidak mudah diukur dan dihitung. DBMS mempunyai
beberapa keuntungan dibandingkan sistem file, seperti mudah penggunaan, konsolidasi
informasi perusahaan yang lebih luas, ketersediaan data yang lebih luas, dan akses yang
lebih cepat ke informasi. Dengan akses berbasis Web, bagian data dapat dibuat akses
global seperti pemakai luar. Keuntungan lainnya adalah mengurangi biaya
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
redundansi file dan lebih besar kebutuhan akan DBMS
3. Perumbuhan dan perubahan data secara dinamis : Jika data berubah secara
konstan, lebih mudah untuk melakukan perubahan dengan DBMS dibandingkan
dengan sistem file.
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 37
3. Availability of vendor service : ketersediaan asisten vendor dalam pemecahan
permasalahan dengan sistem sangat penting, karena perubahan dari non-DBMS
ke lingkungan DBMS kebanyakan membutuhkan bantuan vendor pada awalnya.
Beberapa DBMS sekarang mempunyai versi yang berjalan pada beberapa
konfigurasi perangkat keras / perangkat lunak (platform). Kebutuhan aplikasi untuk
backup, recovery, performansi, integritas dan sekuriti harus juga dipertimbangkan.
Beberapa DBMS sekarang dirancang sebagai solusi total untuk pemrosesan informasi
dan manajemen sumber daya informasi yang diperlukan dalam organisasi. Kebanyakan
vendor DBMS mengkombinasikan produk mereka dengan pilihan berikut :
• Editor teks dan browser
• Pembangkit laporan dan daftar utilitas
• Perangkat lunak komunikasi
• Entri data dan menampilkan form, layar, dan menu dengan pengeditan otomatis
• Alat bantu untuk mengakses World Wide Web
• Alat bantu merancang basis data grafis.
2.3.4 Tahap 4 : Pemetaan Model Data (Desain Basis Data Logika)
Tahap berikutnya dari perancangan basis data adalah membuat skema
konseptual dan skema eksernal damal model data dari DBMS terpilih dengan
memetakan skema tersebut. Proses pemetaan dalam dua bentuk :
1. System-independet mapping : Pada bentuk ini, pemetaan tidak
mempertimbangkan karakteristik khusus datau kasus khusus yang diaplikasikan
ke implementasi DBMS dari model data.
2. Tailoring the schemas to aspecific DBMS : DBMS yang berbeda
mengimplementasikan model data dengan menggunakan pemodelah khusus.
Hasil dari tahap ini berupa pernyataan DDK dalam bahasa DBMS terpilih yang
merupakan skema level konseptual dan eksternal dalam sistem basis data. Tetapi jika
pernyataan DDL termasuk beberapa parameter rancangan fisik, spesifikasi DDL yang
lengkap harus menuggu setelah tahap rancangan basis data fisik selesai. Beberapa alat
bantu CASE (computer-assisted software engineering) otomatis dapat membangkitkan
DDb untuk sistem komersial dari rancangan skema konseptual.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 38
2.3.5 Tahap 5 : Desain Basis Data Fisik
Perancangan basis data fisik adalah proses memilih struktur penyimpan khusus
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
digunakan file basis data dan struktur akses path pada disk, termasuk
pengindeksan dan akses path lain.
3. Transaction throughput : Merupakan jumlah transaksi rata-rata yang dapat
diproses per metnin, merupakan parameter kritis dari sistem transaksi seperti
yang digunakan pada reservasi pesawat atau bank.
Hasil dari rancangan basis data fisik dalam tahap ini merupakan ketentuan awal
dari struktur penyimpan dan akses path untuk file basis data. Juga selalu diperlukan
modifikasi rancangan berdasarkan observasi performansi setelah sistem basis data
diimplementasikan. Aktifitas tahap berikutnya adalah tuning basis data.
2.3.6 Tahap 6 : Implementasi Basis Data dan Tuning
Setelah rancangan logika dan fisik selesai, kita dapat mengimplementasikan
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 39
Transaksi basis data harus diimplementasikan dengan aplikasi yang dibuat
programming berdasarkan spesifikasi konseptual dari transaksi dan kemudian menulis
dan melakukan uji coba kode porgram dengan perintah DML. Jika transaksi siap dan
data disimpan ke basis data, tahap rancangan dan implementasi selesai dan tahap operasi
dari sistem basis data dimulai.
RINGKASAN:
• Terdapat aturan system informasi dalam organisasi, system basis data dilihat
sebagai bagian system informasi dalam aplikasi berskala besar.
• Basis data sebagai manajemen resourse informasi dalam organisasi dan
kelangsungan hidupnya harus tetap berjalan.
• Terdapat 6 tahap dalam proses perancangan. Tiga tahap yang umum dalam
rancangan basis data adalah rancangan konseptual, rancangan logika (pemetaan
model data) dan rancangan fisik. Sedangkan tahap inisial adalah koleksi dan
analisa kebutuhan yang biasanya termasuk dalam tahap pra desain.
• Ada beberapa criteria organisasi dalam pemilihan DBMS
• Jika permasalahan performansi terdeteksi dan aplikasi baru diaplikasikan,
rancangan harus dimodifikasi
• Pada basis data relasional, factor yang berakibat pada keputusan rancangan basis
data fisik dan mnyediakan tuntunan pemilihan alternative rancangan desain
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 2 DESAIN BASIS DATA 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.
7. Bagaimana karakteristik dari model data untuk rancangan skema konseptual harus
diproses ?
8. Apa perbedaan dua pendekatan utama dalam rancangan skema konseptual
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 ?
By
HendraNet
http://www.hendra-jatnika.web.id
41
Bab3
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:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan :
Dapat menulis subquery dengan banyak kolom
Dapat menggambarkan dan menjelaskan karakteristik dari subqueries pada saat
didapatkan nilai NULL
Dapat menulis subquery dalam klausa FROM
Dapat menggunakan scalar subqueries dalam SQL
Dapat menggambarkan tipe dari persoalan yang dapat dipecahkan dengan
menggunakan sub query yang berkorelasi.
Dapat menulis subquery yang berkorelasi.
Melakukan Update dan Delete baris dengan menggunakan subqueries yang
berkorelasi.
Dapat menggunakan operator EXISTS dan NOT EXISTS
Dapat menggunakan klausa WITH
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 42
3.1. TABEL YANG DIGUNAKAN PADA PEMBAHASAN
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
2. Tabel EMPLOYEES
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 43
3. Tabel JOB_HISTORY
3.2. APA ITU SUBQUERY ?
Bagian ini membahas tentang penggunaan subquery dalam Query Lanjutan. Apa
yang disebut dengan SubQuery ? Subquery adalah statement SELECT yang
dilampirkan sebagai klausa dalam SQL Statement yang lain.
Gambar 3-1: Subquery dalam Main Query
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 ...
FROM ...
WHERE ...
(SELECT ...
FROM ...
WHERE ...)
MainMain
queryquery
SubquerySubquery
SELECT select_list
FROM table
WHERE expr operator (SELECT select_list
FROM table);
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 44
3.3 PENGGUNAAN SUBQUERY
Subquery mengembalikan nilai ke main query. Subquery digunakan untuk
menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown
values). Berikut ini diberikan contoh penggunaan subquery.
Query diatas akan menampilkan nama pegawai yang gajinya lebih dari pegawai
dengan nomer pegawai 149. Sebelumnya, gaji dari pegawai dengan nomer pegawai 149
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.
3.4. SUBQUERY BANYAK KOLOM
Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan
dengan nilai dari subquery multiple-row dan multiple-column. Berikut ini contoh
pembandingan dengan banyak kolom dan baris :
SELECT last_name
FROM employees
WHERE salary >
(SELECT salary
FROM employees
WHERE employee_id = 149) ;
1050010500
Main query
WHERE (MANAGER_ID, DEPARTMENT_ID) IN
Subquery
100 90
102 60
124 50
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 45
3.5. PEMBANDINGAN KOLOM
Pembandingan kolom dalam subquery banyak kolom dapat berupa :
• Pembandingan berpasangan (Pairwise Comparison SubQuery)
• Pembandingan tidak berpasangan (NonPairwise Comparison SubQuery)
3.5.1. PAIRWISE COMPARISON SUBQUERY
Berikut contoh pembandingan berpasangan untuk menampilkan detail dari data
pegawai yang dimanajeri oleh manajer dan department yang sama dengan yang dimiliki
oleh nomer pegawai 178
3.5.2. NONPAIRWISE COMPARISON SUBQUERY
Berikut contoh pembandingan tidak berpasangan untuk menampilkan detail dari
data pegawai yang dimanajeri oleh manager yang sama dengan pegawai dengan nomer
pegawai 174 atau 141 dan bekerja dalam departement yang sama dengan pegawai yang
memiliki nomer pegawai 174 atau 141.
SELECT employee_id, manager_id, department_id
FROM employees
WHERE (manager_id, department_id) IN
(SELECT manager_id, department_id
FROM employees
WHERE employee_id IN (178,174))
AND employee_id NOT IN (178,174);
SELECT employee_id, manager_id, department_id
FROM employees
WHERE manager_id IN
(SELECT manager_id
FROM employees
WHERE employee_id IN (174,141))
AND department_id IN
(SELECT department_id
FROM employees
WHERE employee_id IN (174,141))
AND employee_id NOT IN(174,141);
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 46
3.6. PENGGUNAAN QUERY DALAM KLAUSA FROM
Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer.
Query semacam ini dikenal juga dengan istilah inline view, karena tidak membentuk
object database. Berikut ini contoh penggunaan Query dalam klausa FROM.
Query diatas menampilkan nama dan gaji dari pegawai yang gajinya lebih besar
dari rata-rata gaji pegawai pada departemen tempat dia bekerja.
3.7. EKSPRESI SCALAR SUBQUERY
Ekspresi scalar subquery adalah subquery yang mengembalikan hanya satu nilai
kolom dari satu baris. Scalar subquery pada standart SQL-92 hanya terbatas pada :
• SELECT Statement (klausa FROM dan WHERE saja)
• Daftar VALUE dari statement INSERT
Pada standart SQL-99, scalar subqueries dapat diguanakan dalam :
• Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE.
• Semua klausa dari SELECT Statement kecuali GROUP BY.
SELECT a.last_name, a.salary,
a.department_id, b.salavg
FROM employees a, (SELECT department_id,
AVG(salary) salavg
FROM employees
GROUP BY department_id) b
WHERE a.department_id = b.department_id
AND a.salary > b.salavg;
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 47
Berikut ini contoh penggunaan scalar subquery dalam ekspresi CASE :
Berikut ini contoh penggunaan scalar subquery dalam klausa ORDER BY :
3.8. KORELASI SUBQUERY
Korelasi SubQuery digunakan untuk pemrosesan baris per baris. Tiap-tiap
subquery dijalankan sekali untuk setiap baris dari outer query.
Prosesnya sebagai berikut :
Gambar 3-2 : Proses Korelasi Subquery
SELECT employee_id, last_name,
(CASE
WHEN department_id =
THEN 'Canada' ELSE 'USA' END) location
FROM employees;
(SELECT department_id FROM departments
WHERE location_id = 1800)
2020
SELECT employee_id, last_name
FROM employees e
ORDER BY (SELECT department_name
FROM departments d
WHERE e.department_id = d.department_id);
AMBIL
Baris dari outer query
JALANKAN
inner query dengan menggunakan nilai baris kandidat
GUNAKAN
Nilai dari inner query untuk qualify /
disqualify baris kandidat
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 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 :
Pada gambar diatas, subquery merefer ke kolom dari tabel yang ada pada parent
atau outer query.
Berikut ini contoh penggunaan korelasi subquery untuk mencari pegawai yang
penghasilannya melebihi rata-rata penghasilan pada departemen tempat mereka bekerja.
Berikut ini contoh yang lain dari korelasi subquery yaitu untuk menampilkan
pegawai yang pernah berganti job maksimal dua kali.
SELECT column1, column2, ...
FROM table1
WHERE column1 operator
(SELECT colum1, column2
FROM table2
WHERE expr1 =
.expr2);
outer
outer
SELECT last_name, salary, department_id
FROM employees outer
WHERE salary >
Setiap saat baris dari
outer query diproses,
maka inner query
dievaluasi.
(SELECT AVG(salary)
FROM employees
WHERE department_id =
outer.department_id) ;
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 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 :
Lakukan denormalisasi pada table EMPLOYEES dengan menambahkan satu
kolom pada tabel EMPLOYEES untuk menyimpan nama departemen.
Kemudian isi dari kolom nama departemen didapatkan dari tabel
DEPARTMENTS dengan menggunakan Korelasi Update :
SELECT e.employee_id, last_name,e.job_id
FROM employees e
WHERE 2 <= (SELECT COUNT(*)
FROM job_history
WHERE employee_id = e.employee_id);
UPDATE table1 alias1
SET column = (SELECT expression
FROM table2 alias2
WHERE alias1.column =
alias2.column);
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 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 :
Berikut contoh penggunaan Korelasi DELETE untuk menghapus baris-baris dari
tabel EMPLOYEES yang juga terdapat pada tabel EMP_HISTORY.
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.
Jika tidak ditemukan, maka :
• Kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.
Berikut penggunaan operator EXISTS untuk mencari pegawai yang memiliki
sedikitnya satu orang bawahan.
DELETE FROM table1 alias1
WHERE column operator
(SELECT expression
FROM table2 alias2
WHERE alias1.column = alias2.column);
DELETE FROM employees E
WHERE employee_id =
(SELECT employee_id
FROM emp_history
WHERE employee_id = E.employee_id);
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 51
Berikut contoh penggunaan operator NOT EXIST untuk menampilkan semua
departemen yang tidak mempunyai pegawai.
3.10. PENGGUNAAN KLAUSA WITH
Dengan menggunakan klausa WITH, kita dapat menggunakan blok query yang
sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query.
Klausa WITH mendapatkan hasil dari blok query dan menyimpannya dalam tablespace
temporer kepunyaan user. Klausa WITH dapat meningkatkan performansi.
SELECT employee_id, last_name, job_id, department_id
FROM employees outer
WHERE EXISTS ( SELECT 'X'
FROM employees
WHERE manager_id =
outer.employee_id);
SELECT department_id, department_name
FROM departments d
WHERE NOT EXISTS (SELECT 'X'
FROM employees
WHERE department_id
= d.department_id);
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 52
Berikut ini contoh penggunaan klausa WITH :
Contoh penggunaan klausa WITH diatas digunakan untuk menampilkan nama
departemen dan total gaji untuk tiap departemen yang memiliki total gaji lebih besar
dari gaji rata-rata pada sembarang department.
RINGKASAN:
Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai
yang tidak diketahui (unknown values)
Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan
dengan nilai dari subquery multiple-row dan multiple-column.
Pembandingan kolom dalam subquery banyak kolom dapat berupa pembandingan
berpasangan (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.
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
FROM dept_costs)
SELECT *
FROM dept_costs
WHERE dept_total >
(SELECT dept_avg
FROM avg_cost)
ORDER BY department_name;
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 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
nomer pegawai yang sama dengan pegawai yang bertempat tinggal di kota yang
nama kotanya diawali dengan huruf T.
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
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 3 QUERY LANJUTAN 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.
By
HendraNet
http://www.hendra-jatnika.web.id
55
Bab4
Optimasi Query
POKOK BAHASAN:
Optimasi Perintah SQL
Informasi Jalur Akses Query
Faktor-faktor yang berpengaruh terhadap kecepatan akses data
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami latar belakang diperlukannya optimasi query
Memahami cara melakukan optimasi perintah SQL
Memahami faktor-faktor yang berpengaruh terhadap kecepatan akses data
4.1. 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 4 OPTIMASI QUERY 56
4.2. OPTIMASI PADA PERINTAH SQL
Desain aplikasi saja tidak cukup untuk meningkatkan unjuk kerja harus didukung
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.
Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan
kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :
CREATE INDEX idx_kota_prop_kodepos
ON karyawan(kota, propinsi, kode_pos)
TABLESPACE INDX;
Kemudian user melakukan query sebagai berikut :
SELECT * FROM karyawan WHERE propinsi=’Jawa Barat’;
Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama
(kota) tidak digunakan dalam klausa WHERE. Jika user sering melakukan query ini,
maka kolom index harus diurutkan menurut propinsi. Selain itu, proses pencarian data
akan lebih cepat jika data terletak pada block tabel yang berdekatan daripada harus
mencari di beberapa datafile yang terletak pada block yang berbeda.
Misal pada perintah SQL berikut ini :
SELECT * FROM karyawan
WHERE id BETWEEN 1010 AND 2010;
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 4 OPTIMASI QUERY 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
Bagaimana cara melihat jalur akses yang akan digunakan database saat
melakukan query ? Pada Database Oracle, informasi ini dapat dilihat dengan
menggunakan perintah explain plan, yang akan memberi informasi tentang rencana
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%RDBMSADMIN.
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 4 OPTIMASI QUERY 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 yang indent-nya paling dalam yaitu : TABLE
ACCESS FULL KARYAWAN. Dikarenakan klausa WHERE melibatkan kolom gaji
namun kolom gaji tidak ada index-nya, maka Oracle melakukan full table scan. Setelah
seluruh tabel karyawan selesai dibaca, selanjutnya adalah SELECT STATEMENT yang
berfungsi untuk menampilkan hasil query.
4.4. FAKTOR LAIN YANG BERPENGARUH TERHADAP KECEPATAN
AKSES DATA
Faktor lain yang berpengaruh terhadap kecepatan akses data, tidak hanya terletak
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 4 OPTIMASI QUERY 59
4.4.1. OPTIMASI APLIKASI
Dalam pembuatan aplikasi, yang perlu mendapat perhatian adalah apakah akses
terhadap data sudah efisien. Efisien dalam hal penggunaan obyek yang mendukung
kecepatan akses, seperti index atau cluster. Kemudian juga bagaimana cara database di-
desain. Apakah desain database sudah melakukan normalisasi data secara tepat.
Kadangkala normalisasi sampai level yang kesekian, tidak menjamin suatu
desain yang efisien. Untuk membuat desain yang lebih tepat, kadang setelah melakukan
normalisasi perlu dilakukan denormalisasi. Misalnya tabel yang hubungannya one-to-
one dan sering diakses bersama lebih baik disatukan dalam satu tabel.
4.4.2. CLUSTER DAN INDEX
Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda
dalam suatu struktur fisik disk yang berdekatan. Konfigurasi ini bermanfaat untuk
akses data dari beberapa tabel yang sering di-query. Penggunaan cluster secara tepat
dilaksanakan setelah menganalisa tabel-tabel mana saja yang sering di-query secara
bersamaan menggunaan perintah SQL join.
Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 4 OPTIMASI QUERY 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.
• Penggunaan Index pada database secara tepat, dapat digunakan untuk
meningkatkan kecepatan akses 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
dipengaruhi oleh beberapa komponen arsitektur pembentuknya seperti shared
pool, buffer cache, dan redo log buffer.
• Optimasi aplikasi tergantung pada efisiensi penggunaan obyek yang mendukung
kecepatan akses seperti index atau cluster, dan normalisasi data pada desain
database.
LATIHAN SOAL :
1. Apa latar belakang dari diperlukannya optimalisasi kecepatan akses data ?
2. Optimasi query dalam hubungannya dengan desain database melibatkan dua hal,
yaitu ….. dan ……
3. Proses pencarian data yang telah diindeks akan lebih cepat jika data yang dicari
terletak pada ………………
4. Bagaimana cara melihat jalur akses yang akan digunakan database saat melakukan
query ? Tunjukkan tahap-tahap yang digunakan untuk melakukan hal tersebut !
5. Sebutkan factor-faktor lain yang berpengaruh terhadap kecepatan akses data selain
optimasi pada perintah SQL !
6. Beberapa database engine melibatkan komponen pada arsitekturnya untuk
disesuaikan agar akses data lebih cepat dan efisien, berikan contohnya !
By
HendraNet
http://www.hendra-jatnika.web.id
61
Bab5
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:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami macam-macam tipe trigger
Memahami trigger dan penggunaannya
Dapat membuat database trigger
Memahami database trigger yang dapat mengaktifkan sebuah aturan
Menghapus database trigger
5.1. 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 62
5.2. PENGGUNAAN TRIGGER
Trigger dibuat sesuai dengan keperluan. Ada kalanya trigger perlu dibuat, dan
kadangkala tidak perlu dibuat.
Trigger perlu dibuat pada saat :
• membentuk sebuah aksi tertentu terhadap suatu event
• Memusatkan operasi global
Trigger tidak perlu dibuat, jika :
• Fungsionalitas yang diperlukan suatu ada pada Oracle server
• Duplikat atau sama dengan fungsi trigger yang lain.
Prosedur bisa dibuat dalam database, kemudian prosedur tersebut dipanggil pada
trigger. Jika penggunaan trigger terlalu berlebihan, maka akan menyebabkan terjadi
sifat ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit
pemeliharaan dari aplikasi yang besar.
Gambar berikut ini menunjukkan ilustrasi dari penggunaan trigger :
Gambar 5.1. Penggunaan Trigger
Pada gambar tersebut, database trigger CHECK_SAL memeriksa nilai gaji pada
saat suatu aplikasi mencoba untuk memasukkan baris baru ke dalam table
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 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
Komponen dari sebuah trigger ada 6 (enam), yaitu : trigger timing, trigger event,
nama tabel, tipe trigger, klausa WHEN, dan trigger body. Berikut ini penjelasan
komponen dari trigger.
Trigger timing adalah waktu kapan trigger diaktifkan. Ada tiga macam trigger
timing, yaitu :
• BEFORE : trigger dijalankan sebelum DML event pada tabel
• AFTER : trigger dijalankan setelah DML event pada tabel
• INSTEAD OF : trigger dijalankan pada sebuah view.
Trigger event ada 3 kemungkinan : INSERT, UPDATE atau DELETE.
Pada saat trigger event UPDATE, kita dapat memasukkan daftar kolom untuk
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 64
• Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya
sebuah event. Row trigger tidak dijalankan jika event dari trigger tidak
berpengaruh pada satu baris pun.
Trigger body mendefinisikan tindakan yang perlu dikerjakan pada saat
terjadinya event yang mengakibatkan sebuah trigger menjadi aktif.
5.4. CONTOH PEMBUATAN TRIGGER
Contoh berikut ini akan mengaktifkan sebuah trigger pada saat sebuah baris
tunggal dimanipulasi pada tabel :
Misal diberikan perintah DML untuk menyisipkan baris baru ke dalam tabel
sebagai berikut :
INSERT INTO departments (department_id, department_name, location_id)
VALUES (400, 'CONSULTING', 2400);
Ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
Gambar 5.2. Ilustrasi timing pada Trigger
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;
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 65
Maka ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
5.5. DML STATEMENT TRIGGER
Berikut ini sintak atau cara penulisan untuk pembuatan DML Statement trigger :
CREATE [OR REPLACE] TRIGGER trigger_name
timing
event1 [OR event2 OR event3]
ON table_name
trigger_body
Berikut contoh pembuatan DML Statement trigger :
CREATE OR REPLACE TRIGGER secure_emp
BEFORE INSERT ON employees
BEGIN
IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR
(TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND '18:00')
THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data pada table
EMPLOYEES hanya diperbolehkan selama jam kerja');
END IF;
END;
/
Contoh trigger diatas akan membatasi penyisipan baris baru ke dalam table
EMPOYEES diperbolehkan hanya pada jam kerja mulai hari Senin sampai Jum’at. Jika
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 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 :
5.6. MENGKOMBINASIKAN EVENT PADA TRIGGER
Beberapa event pada trigger bisa dikombinasikan dalam sebuah trigger dengan
menggunakan predikat kondisional INSERTING, UPDATING dan DELETING.
Berikut ini akan dibuat trigger yang menggunakan predikat kondisional INSERTING,
UPDATING dan DELETING untuk membatasi manipulasi data pada tabel
EMPLOYEES hanya diperbolehkan pada setiap jam kerja mulai hari Senin sampai
Jum’at.
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
IF (TO_CHAR (SYSDATE,'DY') IN ('SAT','SUN')) OR
(TO_CHAR (SYSDATE, 'HH24') NOT BETWEEN '08' AND '18')
THEN
IF DELETING THEN
RAISE_APPLICATION_ERROR (-20502,'You may delete from
EMPLOYEES table only during business hours.');
ELSIF INSERTING THEN
RAISE_APPLICATION_ERROR (-20500,'You may insert into
EMPLOYEES table only during business hours.');
ELSIF UPDATING ('SALARY') THEN
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 67
RAISE_APPLICATION_ERROR (-20503,'You may update
SALARY only during business hours.');
ELSE
RAISE_APPLICATION_ERROR (-20504,'You may update
EMPLOYEES table only during normal hours.');
END IF;
END IF;
END;
5.7. ROW TRIGGER
Berikut ini sintak atau cara penulisan untuk membuat Row Trigger :
CREATE [OR REPLACE] TRIGGER trigger_name
timing
event1 [OR event2 OR event3]
ON table_name
[REFERENCING OLD AS old | NEW AS new]
FOR EACH ROW
[WHEN (condition)]
trigger_body
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 :
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 68
UPDATE employees
SET salary = 15500
WHERE last_name = 'Russell';
5.8. MENGGUNAKAN OLD DAN NEW QUALIFIERS
Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data dapat
dirujuk dengan menggunakan OLD dan NEW qualifier. OLD dan NEW hanya
digunakan pada Row Trigger. OLD dan NEW menggunakan prefiks (:) untuk
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 :
CREATE OR REPLACE TRIGGER audit_emp_values
AFTER DELETE OR INSERT OR UPDATE ON employees
FOR EACH ROW
BEGIN
INSERT INTO audit_emp_table (user_name, timestamp,
id, old_last_name, new_last_name, old_title,
new_title, old_salary, new_salary)
VALUES (USER, SYSDATE, :OLD.employee_id,
:OLD.last_name, :NEW.last_name, :OLD.job_id,
:NEW.job_id, :OLD.salary, :NEW.salary );
END;
/
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;
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 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. PENGGUNAAN KLAUSA WHEN PADA TRIGGER
Untuk membatasi operasi trigger hanya pada baris yang memenuhi kondisi
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.
CREATE OR REPLACE TRIGGER derive_commission_pct
BEFORE INSERT OR UPDATE OF salary ON employees
FOR EACH ROW
WHEN (NEW.job_id = 'SA_REP')
BEGIN
IF INSERTING
THEN :NEW.commission_pct := 0;
ELSIF :OLD.commission_pct IS NULL
THEN :NEW.commission_pct := 0;
ELSE
:NEW.commission_pct := :OLD.commission_pct + 0.05;
END IF;
END;
/
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 70
5.10. PERINTAH UMUM
Berikut ini perintah-perintah umum yang digunakan pada trigger.
Untuk mengaktifkan atau menonaktifkan database trigger, digunakan perintah :
ALTER TRIGGER trigger_name DISABLE | ENABLE
Untuk mengaktifkan atau menonaktifkan semua trigger yang berlaku untuk
sebuah tabel, digunakan perintah :
ALTER TABLE table_name DISABLE | ENABLE ALL
Untuk melakukan kompilasi ulang sebuah trigger, digunakan perintah :
ALTER TRIGGER trigger_name COMPILE
Untuk menghapus trigger dari database, digunakan perintah :
DROP TRIGGER trigger_name
Catatan : Semua trigger yang berlaku pada sebuah tabel akan dihapus pada saat tabel
tersebut dihapus dari database.
RINGKASAN:
• Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,
skema atau database yang dijalankan secara implicit pada saat terjadi event.
• 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
• Penggunaan trigger yang terlalu berlebihan akan menyebabkan terjadi sifat
ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit
pemeliharaan dari aplikasi yang besar.
• 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 5 DATABASE TRIGGER 71
LATIHAN SOAL :
1. Perubahan pada data hanya diperbolehkan selama jam kerja dari jam 8:45 pagi
sampai 17.30 , dari Senin hingga Jum’at. 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 3, buat row trigger dengan nama
UPDATE_EMP_SALARY pada table JOBS yang memanggil prosedur
UPD_EMP_SAL, pada saat minimum gaji pada table JOBS diubah untuk suatu job
ID tertentu.
By
HendraNet
http://www.hendra-jatnika.web.id
72
Bab6
Basis Data Client / Server
POKOK BAHASAN:
Pendahuluan
Arsitektur Client-Server
Pengaksesan Query pada Basis Data Client-Server
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami konsep basis data client-server.
Memahami arsitektur client- server
Memahami pengaksesan query pada basis data client-server dan bagaimana
perangkat lunak client-server.
6.1 PENDAHULUAN
Aplikasi basis data terdistribusi dikembangkan dalam bentuk arsitektur client-
server. Teknologi client-server berkembang secara cepat sebagai teknologi lanjut. Pada
beberapa waktu yang lalu, sangat sulit memprediksikan status saat ini teknologi client-
server 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 6 BASIS DATA CLIENT-SERVER 73
6.2 ARSITEKTUR CLIENT-SERVER
Saat ini arsitektur client-server yang banyak digunakan dalam industri disebut
two-tier architecture. Pada arsitektur ini, server mengirim data dan client mengakses
data. Server memainkan peranan yang dominan pada arsitektur ini. Keuntungan sistem
ini adalah kesederhanaan dan kompatibilitas dengan sistem yang legal.
Arsitektur client-server yang dikembangkan kemudian adalah three-tier
architecture. Pada model ini, layer direpresentasikan sebagai host, server dan client.
Server memainkan peranan sebagai penengah dengan mengirim aturan bisnis (prosedur
atau constraint) yang digunakan untuk mengakses data dari host. Client berisi antar
muka GUI dan beberapa aplikasi tambahan mengenai aturan bisnis. Kemudian server
bertindak sebagai conduit of passing memproses data dari host ke client dimana
kemudian diproses atau difilter dan dipresentasikan ke pemakai dalam format GUI.
Antar muka pemakai, aturan dan pengaksesan data bertindak sebagai three tiers. Cient
biasanya dihubungkan ke server melalui LAN dan server dihubungkan ke host melalui
WAN. Client melakukan remote yang dihubungkan ke server melalui WAN juga.
Sistem ini sangat cocok untuk perusahaan besar dimana basis data terpusat dapat
disimpan dalam host dan biaya pembangunan LAN dan WAN dapat diatur dan
dioptimasi menggunakan teknologi yang baru untuk setiap bagian yang berbeda dalam
organisasi.
6.3 PENGAKSESAN QUERY PADA BASIS DATA CLIENT-SERVER
Bagaimana membagi fungsi DBMS antara client dan server tidak ada ketentuan.
Sehingga banyak pendekatan yang berbeda ditawarkan. Satu kemungkinan adalah
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 6 BASIS DATA CLIENT-SERVER 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
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
server, membagi permintaan query ke sub query secara manual adan mengirimkan sub
query secara individu ke tempat yang berbeda. Tabel hasil dikombinasikan secara
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 6 BASIS DATA CLIENT-SERVER 75
Client bertanggung jawab untuk membangkitkan eksekusi terdistribusi untuk
beberapa tempat server suatu query atau transaksi dan untuk melakukan supervisi
eksekusi terdistribusi dengan mengirim perintah ke server. Perintah ini termasuk query
lokal dan transaksi yang dieksekusi selain perintah untuk mengirim data ke client atau
server lain. Fungsi lain dikontrol oleh client (atau koordinator) adalah menjamin
konsistensi dari copy replika dari item data dengan teknik concurrency control
terdistribusi (global). Client harus menjamin transaksi global atomik dengan
membentuk global recovery jika tempat yang dimaksud gagal. Satu fungsi yang
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
distribusi data secara detail.
RINGKASAN:
• Konsep arsitektur client-server berhubungan dengan basis data terdistribusi.
• Arsitektur client-server yang dikembangkan saat ini menggunakan three-tier
arsitektur dimana terdapat tiga komponen utama yaitu host, server dan client.
• Pengaksesan Query dilakukan dengan cara client melakukan permintaan query
dengan mengirimkan sub query ke beberapa tempat server dan setelah server
mengirimkan hasilnya ke client, client mengkombinasikan hasil sub query ke
query asal.
• Modul perangkat lunak yang terdapat pada DDBMS dapat dibagi dalam tiga level,
yaitu perangkat lunak server, client dan komunikasi
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 6 BASIS DATA CLIENT-SERVER 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 ?
By
HendraNet
http://www.hendra-jatnika.web.id
77
Bab7
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
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami perbedaan DBMS terdistribusi dan DBMS terpusat.
Memahami arsitektur basis data terdistribusi.
Memahami penyimpanan data, catalog data pada system terdistribusi.
Memahami query, join dan optimasi query pada DBMS terdistribusi
Memahami bagaimana mengubah data, melakukan locking data pada DBMS
terdistribusi.
Memahami bagaimana menangani kegagalan pada sistem terdistribusi
7.1 PENDAHULUAN
Pada basis data terdistribusi (distributed database), data disimpan pada beberapa
tempat (site), setiap tempat diatur dengan suatu DBMS (Database Management System)
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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).
• Transaksi terdistribusi yang atomic : pemakai dapat menulis transaksi yang
mengakses dan mengubah data pada beberapa tempat seperti mengakses transaksi
local.
Untuk trend basis data terdistribusi saat ini, pemakai harus mengetahui dimana
data ditempatkan, juga harus mengetahui dimana system yang tidak mendukung
independensi data terdistribusi dan transaksi terdistribusi atomic. Kedua property
tersebut harus mendukung system secara efisien. Untuk system terdistribusi yang
bersifat global, properti-properti tersebut kemungkinan tidak tepat karena adanya
administrasi yang terlalu berlebihan dalam membuat lokasi data yang transparan.
7.2 TIPE BASIS DATA TERDISTRIBUSI
Terdapat dua tipe basis data terdistribusi :
• 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.
DBMS1 DBMS2 DBMS3
Gateway
Gambar 7-1: Basis data terdistribusi heterogen
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 79
7.3 ARSITEKTUR BASIS DATA TERDISTRIBUSI
Terdapat tiga pendekatan alternatif untuk membagi fungsi pada proses DBMS
yang berbeda. Dua arsitektur alternatif DBMS terdistribusi adalah Client/Server dan
Collaboration Server.
• 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
sebuah server yang berjalan pada mainframe.
Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama,
implementasi yang relatif sederhana karena pembagian fungis yang baik dank arena
server tersentralisasi. Kedua, mesin server yang mahal utilisasinya tidak
terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga,
CLIENT CLIENT
SERVER SERVER SERVER
QUERY
Gambar 7-2: Sistem client-server
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 80
pemakai dapat menjalankan antarmuka berbasis grafis sehingga pemakai lebih
mudah dibandingkan antar muka pada server yang tidak user-friendly.
Pada saat menulis aplikasi client-server, perlu diingat batasan antara client dan
server dan untuk menjaga komunikasi antara keduanya yang berorientasi himpunan.
Khususnya membuka kursor dan mengambil tupel pada satu waktu membangkitkan
beberapa pesan dan dapat diabaikan.
• 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
sistem ini terdapat sekumpulan server basis data, yang menjalankan transaksi data
lokal yang bekerjasama mengeksekusi transaksi pada beberapa server seperti pada
Gambar 7-3..
Jika server menerima query yang membutuhkan akses ke data pada server lain,
sistem membangkitkan subquery yang dieksekusi server lain dan mengambil
hasilnya bersama-sama untuk menggabungkan jawaban menjadi query asal.
SERVER
SERVER
SERVER
QUERY
Gambar 7-3: Collaboration System
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 81
7.4 PENYIMPANAN DATA PADA SISTEM TERDISTRIBUSI
Pada DBMS terdistribusi, relasi disimpan pada beberapa tempat. Pengaksesan
relasi yang disimpan pada remote side mengakibatkan biaya melewatkan pesan dan
untuk menguranginya, sebuah relasi dipartisi atau difragmentasi ke beberapa tempat,
dengan fragmen dikirim pada tempat dimana fragmen tersebut sering diakses, atau
replika pada pada setiap tempat dimana relasi menjadi kebutuhan yang tinggi
• Fragmentasi
Fragmentasi terdiri dari relasi yang dibagi ke relasi atau fragmen yang lebih kecil
dan mengirim fragmen, pada beberapa tempat. Terdapat dua macam fragmentasi,
fragmentasi horizontal dan fragmentasi vertikal. Pada fragmentasi horisontal, setiap
fragmen terdiri dari sebuah subset baris dari relasi asal. Pada fragmentasi vertikal,
setiap fragment terdiri dari sebuah subset kolom dari relasi asal. Fragmentasi
horisontal dan vertikal diilustrasikan pada Gambar 7-4.
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.
TI
t
t
t
t
Fragmentasi vertikal Fragmentasi horisontal
Gambar 7-4: Fragmentasi horisontal dan vertikal
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 82
o Fragmentasi vertikal : koleksi fragmen vertikal seharusnya dekomposisi
lossless-join.
Untuk menjamin fragmentasi vertikal lossless-join, sistem harus menyediakan id
tupel yang unik untuk setiap tupel dalam relasi asli. Jika kita berpilir bahwa relasi
asal sebagai field yang berisi tambahan tupel-id sebagai kunci, field ini ditambahkan
ke setiap fragmen vertikal. Sehingga dekomposisi dijamin lossless-join.
• Replikasi
Replikasi berarti bahwa kita menyimpan beberapa copy sebuah relasi atau fragmen
relasi. Keseluruan relasi dapat direplikasi pada satu atau lebih tempat. Sebagai
contoh, jika relasi R difragmentasi ke R1, R2 dan R3, kemungkinan terdapat hanya
satu copy R1, dimana R2 adalah replikasi pada dua tempat lainnya dan R3 replikasi
pada semua tempat. Hal ini dapat diilustrasikan pada Gambar 7-5.
R1
R1 R2
R3
SITE A
SITE B
Gambar 7-5: Replikasi
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 83
Motivasi untuk replikasi adalah :
o Meningkatkan ketersediaan data : Jika sebuah tempat yang berisi replika
melambat, kita dapat menemuka data yang sama pada tempat lain. Demikian
pula, jika copy lokal dari relasi yang diremote tersedia, maka tidak terpengaruh
saluran komunikasi yang gagal.
o Evaluasi query yang lebih cepat : query dapat mengeksekusi lebih cepat
menggunakan copy local dari relasi termasuk ke remote site.
7.5 MANAJEMEN KATALOG TERDISTRIBUSI
Menyimpan data terdistribusi pada beberapa tempat dapat menjadi sangat
kompleks. Kita harus menyimpan data bagaimana relasi difragmentasi dan replikasi,
bagaimana fragmen relasi didistribusikan ke beberapa tempat dan dimana kopi dari
fragmen disimpan. Nama setiap replika dari setiap fragmen harus ada. Untuk
menyediakan otonomo lokal digunakan format sebagai berikut :
<local-name, birth-site>
Katalog setiap tempat menggambarkan semua obyek (fragmen, replika) pada
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.
7.6 QUERY TERDISTRIBUSI
Misalnya pada dua relasi :
Sailors(sid: integer, sname: string, rating: integer, age: real)
Reserves(sid: integer, bid: integer, day: date, rname: string)
Kemudian dilakukan query berikut :
SELECT AVG(S.age) FROM Sailors S WHERE S.rating > 3 AND
S.rating < 7
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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.
• Replikasi : Sailor di-copy kan pada kedua tempat.
7.7 JOINS PADA DBMS TERDISTRIBUSI
Sebagai contoh, London menyimpan 500 halaman Sailor dan Paris mempunyai
1000 halaman Reserves seperti Gambar 7-6.
Untuk menangani joing pada DBMS terdistribusi harus diperhatikan hal-hal
berikut :
• 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. Jika halaman Reserves di London diambil sampai join selesai,
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.
Sailors Reserves
LONDON PARIS
500 halaman 1000 halaman
Gambar 7-5: Contoh Sistem Terdistribusi
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 85
– Jika query tidak dikirim ke London, harus menambah biaya hasil
pengiriman ke query site.
– Dapat juga mengerjakan inner nested loop di London, ambil tupelo
Reserves yang sesuai ke London sesuai kebutuhan.
• Pengiriman ke satu tempat : Kirimkan Reserves ke London.
– Biayat: 1000 S + 4500 D (Semi Join; biaya = 3*(500+1000))
– Jika ukuran hasil sangat besar, lebih baik mengirimkan kedua relasi ke
result site dan kemudian lakukan join.
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.
2. Di Paris, lakukan join pada proyeksi Sailors dengan Reserves. Hasil join disebut
reduksi dari Reserves dengan Sailors
3. Kirimkan reduksi Reserves ke London
4. Pada London, join Sailors dengan Reserves yang sudah direduksi
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 86
3. Kirimkan bit-vector hasil reduksi Reserves ke London
4. Di London, join Sailors dengan hasil reduksi Reserves
5. Bit-vector biaya pengirimannya lebih murah, juga lebih efektif
7.8 OPTIMASI QUERY PADA DBMS TERDISTRIBUSI
Untuk optimasi query pada sistem terdistribusi, menggunakan pendekatan
biaya, misalnya pada semua plan, mengambil yang termurah, sama dengan optimasi
tersentralisasi. Perbedaan optimasi query pada sistem terdistribusi dan sistem
tersentralisasi, pertama, biaya komunikasi harus dipertimbangkan. Kedua, otonomi
tempat lokal harus diperhatikan. Ketiga, menggunakan metode join terdistribusi yang
baru.
Query site membangun daerah global, dengan daerah local menggambarkan
pemrosesan pada setiap tempat. Jika sebuah tempat dapat melakukan improvisasi pada
daerah lokal, dapat dilakukan dengan bebas.
7.9 MENGUBAH DATA TERDISTRIBUSI
Untuk melakukan pengubahan data terdistribusi, dilakukan replikasi transaksi
yang dapat dilakukan dengan cara :
• Synchronous Replication : semua copy dari relasi yang dimodifikasi (fragmen)
harus diubah sebelum modifikasi transaksi commit. Distribusi data dibuat
transparan ke pemakai.
• Asynchronous Replication : Copy dari sebuah relasi yang dimodifikasi hanya
diubah secara periodik, copy yang berbeda akan keluar dari sinkronisasi. User
harus waspada pada distribusi data. Produk saat ini mengikuti pendekatan ini.
Synchronous Replication
Terdapat dua teknik dasar untuk menjamin transaksi terlihat nilai yang sama
dengan copy, yaitu :
• Voting : transaksi harus menulis mayoritas copy untuk memodifikasi sebuah
obyek, harus membaca cukup copy untuk meyakinkan bahwa terlihat setidaknya
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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: penulisan lebih lambah dan pembacaan lebih cepat
daripada teknik Voting. Teknik ini banyak digunakan pada synchronous
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
kembali. Meskipun tidak terjadi kegagalan, commit harus mengikuti commit protocol
dengan beberapa pesan yang mahal. Karena itu alternative teknik asynchronous
replication banyak digunakan.
Asynchronous Replication
Asynchronous replication mengijinkan memodifikasi transaksi commit sebelum
semua copy diubah (dan pembaca tidak hanya melihat satu copy). Pemakai harus
waspada copy yang keluar dari sinkronisasi untuk suatu periode waktu yang pendek.
Teknik asynchronous replication menggunakan dua pendekatan, yaitu Primary
Site dan Peer to Peer replication. Perbedaan kedua teknik ini terletak pada berapa
banyak copy yang dapat diubah atau copy master.
• Peer to Peer replication.
Lebih dari satu copy dari suatu obyek dapat menjadi sebuah master. Perubahan ke
copy master harus dipropaganda ke copy lain dengan cara yang berlainan. Jika dua
copy master diubah dan terjadi suatu konflik, konflik harus dipecahkan (misalnya
Tempat 1 : umur Joe mengubah 35, Tempat 2 : mengubah 36. Teknik ini bagus
digunakan jika konflik tidak terjadi, misalnya setiap tempat master memiliki
fragmen disjoin dan yang memiliki hak pengubahan dimiliki oleh satu master pada
satu waktu.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 88
• Primary Site replidation.
Tepat satu copy dari suatu relasi digunakan sebagai primary copy atau master copy.
Replika pada tempat lain tidak langsung diubah. Primary copy dipublikasikan.
Tempat lain menjalankan (fragmen) ke relasi ini, terdapat beberapa copy sekunder.
Isu utama adalah bagaimana pengubahan primary copy dapat dipropaganda ke copy
sekunder ? Hal in idapat dilakukan dalam dua langkah. Langkah pertama ambil
pengubahan yang dibuat dengan transaksi commit, kemudian aplikasikan perubahan
tersebut. Exactly one copy of a relation is designated the primary or master copy.
Replicas at other sites cannot be directly updated.
Implementasi Primary Site pada Asynchronous Replication
Isu utama dalam mengimplementasikan primary site replication adalah
menentukan barapa banyak perubahan ke primary copy dipropaganda ke copy sekunder.
Perubahan biasanya dipropaganda dalam dua langkah yaitu Capture dan Apply.
Perubahan dibuat dengan transaksi commit ke primary copy yang diidentifikasi selama
langkah Capture dan dipropaganda ke copy sekunder selama langkah Apply.
Mengimplementasikan Langkah Capture
Langkah Capture diimplementasikan dengan satu dari dua pendekatan, yaitu
Log-Based Capture dan Procedureal Capture.
• 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.
• Procedural Capture: suatu prosedur yang secara otomatis dibangkitkan (trigger)
mengerjakan capture.
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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. Data sumber biasanya
dikontrol dengan DBMS yang berbadi, penekanannya pada cleaning data dan
menghapus kesalahan pada pembuatan replikasi. Prosedur Capture dan aplikasi Apply
baik untuk lingkungan ini.
7.10 LOCKING PADA SISTEM TERDISTRIBUSI
Untuk menangani penguncian obyek pada beberapa tempat digunakan cara :
• Sentralisasi : satu tempat melakukan semua penguncian dan membuka kunci
untuk semua obyek
• 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.
• Terdistribusi penuh : penguncian untuk suatu copy dilakukan pada tempat
dimana copy disimpan. Hal in akan mengunci semua tempat pada saat menulis
obyek.
Distributed Deadlock Detection
Setiap tempat menangani local wait-for graph. Deadlock global akan terjadi jika
local graph tidak membentuk siklus seperti dapat dilihat pada Gambar 7-6 menunjukkan
terjadi deadlock global.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 90
Untuk mendeteksi deadlock digunakan tiga solusi yaitu : Sentralisasi, yaitu
mengirim semua local graph ke satu tempat. Hierarki yaitu mengorganisasi tempat ke
dalam suatu hirarki dan mengirim local graph ke parent dari hirarki. Timeout yaitu
menghentikan transaksi jika menunggu terlalu lama.
7.11 DISTRIBUTED RECOVERY
Proses pemulihan pada DBMS terdistribusi lebih kompleks daripada pada DBMS
tersentralisasi karena sebab berikut :
• Terjadi kegagalan yang baru, misalnya saluran komunikasi dan remote site.
• Jika sub transaksi dari suatu transaksi mengeksekusi tempat yang berbeda,
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,
T1 T1 T1T2 T2 T2
SITE A SITE B GLOBAL
Gambar 7-6: Deadlock Global
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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. Setiap tempat dapat
memutuskan untuk abort suatu transaksi. Setiap pesan merupakan keputusan oleh
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
coordinator untuk T, tetap kirimkan pesan commit/abort ke sub ordinat sampai
diterima pesan ack.
• Jika kita menyiapkan rekaman log transaksi T, tetapi tidak commit/abort, tempat
ini adalah sub ordinat untuk T. Sub ordinat terus menghubungi coordinator
untuk menemukan status T, kemunian menulis rekaman log commit/abort
redo/undo T dan menulis rekaman log end.
• 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. Meskipun jika semua sub ordinat saling mengetahui (melebihi yang
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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.
Koordinat mengabaikan pembaca. Jika semua sub transaksi adalah pembaca, fase kedua
tidak diperlukan.
RINGKASAN:
• Pada basis data terdistribusi, data disimpat pada beberapa lokasi dengan tujuan
untuk membuat distribusi yang transparan. Pada basis data terdistribusi,
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 Client-
Server, server menyediakan fungsi DBMS dan client menyediakan antar muka
pemakai. Pada Collaboration system system, tidak terdapat perbedaan antara
proses client dan server.
• 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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. Pada asynchronous replication, copy hanya diubah secara
periodic. Terdapat dua teknik untuk menjamin synchronous replication. Secara
voting, perubahan harus menulis mayoritas copy dan membaca harus mengakses
cukup copy untuk menjamin bahwa satu copy sudah tersedia. Pada replikasi peer-
to-peer, lebih dari satu copy dapat diubah dan strategi conflict resolution dapat
mengubah konflik yang terjadi. Pada replikasi primary site, terdapat satu primary
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.
• Pemulihan pada DBMS terdistribusi dilakukan menggunakan commit protocol
yang mengkoordinasi aktivitas pada tempat yang berbeda yang dilibatkan pada
transaksi. Pada Two-Phase Commit, setiap transaksi didesain oleh tempat
coordinator. Sub transaksi dieksekusi pada tempat sub ordinat. 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 7 BASIS DATA TERDISTRIBUSI 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.
7. Bagaimana teknik voting dan read-one write-all diimplementasikan pada replikasi
synchronous ?
8. Berikan penjelasan bagaimana asynchronous replication diimplementasikan.
Khususnya, jelaskan maksud capture dan apply.
9. Apakah perbedaan antara log-based dan procedureal untuk implementasi capture?
10. Mengapa pemberian nama unik pada obyek basis data lebih kompleks pada DBMS
terdistribusi ?
By
HendraNet
http://www.hendra-jatnika.web.id
95
Bab8
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
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami konsep world wide world dan html pada database berbasis web
Memahami arsitektur pada database web
Memahami XML
Memahami dan mengimplementasikan model data semi-terstruktur
1.1 WORLD WIDE WORLD
Web memungkinkan mengaksen suatu file dimanapun pada internat. Suatu file
diidentifikasi dengan universal resource locater (URL), contohnya :
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 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. Jika seorang pemakai click pada suatu link, Web browser
menghubungkan ke Web server tujuan menggunakan protokol koneksi HTTP dan
mengirim link URL. Jika browser menerima file dari web server, akan diperiksa tipe
file dengan melihat extension dari nama file. Web browser menampilkan fijle
berdasarkan tipe file dan jika perlu memanggil program aplikasi untuk menangani file.
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.
1.2 HIPERTEXT MARKUP LANGUAGE (HTML)
Hipertext Markup Language (HTML) merupakan bahasa pemrograman
berbentuk skrip yang sederhana. Teks diawali dan diakhiri dengan perintah yang
disebut tags, biasanya terdiri dari start tag dan end tag.
Contoh skrip HTML untuk melihat daftar buku :
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 97
1.3 BASIS DATA DAN WEB
Halaman web berisi hasil dari query database. Untuk membangkitkan halaman
web, dilakukan hal-hal sebagai berikut :
– 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).
1.4 ARSITEKTUR APPLICATION SERVER DAN SERVER-SIDE JAVA
Pada CGI, setiap halaman merupakan hasil pembuatan sebuah proses baru
sehingga sangat tidak efisien. Oleh karena itu dikembangkan arsitektur application
server yaitu suatu perangkat lunak antara web server dan aplikasi. Fungsi dari
application server adalah
• Mengendalikan thread atau proses pre-fork untuk performansi
<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>
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 98
• Tempat koneksi basis data (dan menggunakan kembali koneksi yang tersedia)
• Integrasi antara sumber data yang heterogen
• Manajemen transaksi melibatkan beberapa sumber data
• 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)
• JavaBeans : yaitu komponen perangkat lunak yang dapat digunakan kembali
(reusable) yang ditulis dalam bahasa pemrograman Java
• Java Server Page dan Active Server Page : yaitu kode yang berada di dalam
halaman web yang diterjemahkan oleh web server.
1.5 PENDAHULUAN XML
Extensible HTML (XML) merupakan bahasa skrip versi lanjutan dari HTML.
XML merupakan penggabungan antara SGML dan HTML dimana kekuatan SGML
digabungkan dengan kesederhanaan HTML. XML menggunakan definisi markup
language baru yang disebut document type declaration (DTDs).
Elemen yang terdapat pada XML meliputi :
• blok utama yang dibangun secara terstruktur dengan XML
• tag mulai (start tag) dan akhir (end tag)
• harus secara tepat berulang
Elemen pada XML dapat mempunyai atribut yang merupakan informasi
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 :
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 99
1.6 XML : DTDs
Sebuah document type declaration (DTDs) adalah himpunan aturan yang
mendefinisikan elemen, atribut dan entiti yang diperbolehkan pada dokumen. Dokumen
pada XML mempunyai bentuk yang baik jika tidak mempunyai asosiasi DTD tetapi
digunakan berulang dengan tepat. Dokumen XML valid jika mempunyai DTD an
dokumen mengikuti aturan dalam DTD.
Contoh DTDs untuk melihat daftar buku adalah sebagai berikut :
<?XML version=“1.0” standalone=“yes”?>
<!DOCTYPE BOOKLIST SYSTEM “booklist.dtd”>
<BOOKLIST>
<BOOK genre=“Fiction”>
<AUTHOR>
<FIRST>Milan</FIRST><LAST>Kundera</LAST>
</AUTHOR>
<TITLE>Identity</TITLE>
<PUBLISHED>1998</PUBLISHED>
<BOOK genre=“Science” format=“Hardcover”>
<AUTHOR>
<FIRST>Richard</FIRST><LAST>Feynman</LAST>
</AUTHOR>
<TITLE>The Character of Physical Law</TITLE>
</BOOK></BOOKLIST>
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 100
1.7 SPESIFIKASI DOMAIN PADA DTDs
Untuk menangani sumber-sumber data yang berlainan, dikembangkan
standarisasi DTDs untuk memungkinkan domain dapat menukar data diantara sumber-
sumber yang heterogen. Contohnya adalah domain pada DTDs untuk mengkodekan
material matematika pada web dengan menggunakan Mathematical Markup Language
(MathML). Perbedaan HTML dengan MathML dapat dilihat pada persamaan
matematika di bawah ini ;
• Dalam HTML : <IMG SRC=“xysq.gif” ALT=“(x+y)^2”>
• Dalam MathML :
<apply> <power/>
<apply> <plus/> <ci>x</ci> <ci>y</ci> </apply>
<cn>2</cn>
</apply>
<!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”>
]>
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 101
1.8 MELAKUKAN QUERY DATA XML (XML-QL)
Tujuan melakukan query data XML adalah melakukan manipulasi dokumen
XML dengan menggunakan bahasa deklaratif tingkat tinggi. Query data XML belum
dilakukan standarisasi.
Contoh query dengan XML-QL :
Contoh query dengan XML-QL yang lebih kompleks :
1.9 MODEL DATA SEMI TERSTRUKTUR
Data semi terstruktur adalah data dengan struktur parsial. Semua model data
untuk data semi terstruktur menggunakan beberapa tipe graph berlabel. Pada sub bab ini
diperkenalkan model data semi terstruktur yang disebut object exchage model (OEM).
OEM mempunyai karakteristik sebagai berikut :
WHERE
<BOOK>
<NAME><LAST>$1</LAST></NAME>
</BOOK> in “www.booklist.com/books.xml
CONSTRUCT <RESULT> $1 </RESULT>
WHERE <BOOK> $b <BOOK> IN “www.booklist.com/books.xml”,
<AUTHOR> $n </AUTHOR>
<PUBLISHED> $p </PUBLISHED> in $e
CONSTRUCT
<RESULT>
<PUBLISHED> $p </PUBLISHED>
WHERE <LAST> $l </LAST> IN $n
CONSTRUCT <LAST> $l </LAST>
</RESULT>
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 102
• Obyek berbentuk triple (label, tipe, nilai).
• 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.
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
Milan Kundera
Identity 1998
BOOK
AUTHOR TITLE PUBLISHED AUTHOR FORMAT
TITLE
Richard Feynman
The
character
of phy-
sical law
Hard-
cover
Gambar 8-1: Model data daftar buku dengan menggunakan OEM
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 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 Web browser. Contohnya, kita dapat
mengakses data dalam DBMS. Terdapat dua cara untuk Web server untuk
mengeksekusi program : membuat proses baru dan mengkomunikasikan
menggunakan protokol CGI, atau membuat thread baru untuk Java Servlet.
Pendekatan kedua menghindari banyaknya pembentukan proses baru untuk setiap
permintaan. Application server mengatur beberapa thread dan menyediakan
fungsi lain untuk memfasilitasi eksekusi program pada Web server. Fungsi
tambahan termasuk didalamnya keamanan, manajemen sesi, koordinasi akses ke
multipel sumber data. JavaBeans dan Java Server Page adalah teknologi berbasis
Java yang menuntun ke pembuatan dapn pengaturan program yang didesain untuk
digunakan pada Web server.
• XLM adalah deskripsi standar dokumen yang menggambarkan isi dan struktur
dokumen dalam hal penampilan langsung. XML berdasarkan HTML dan SGML,
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 8 BASIS DATA INTERNET 104
LATIHAN SOAL :
1. Definisikan arti dan gambarkan penggunaan
a. HTML 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. Diasumsikan pelanggan juga ingin mencari buku
berdasarkan judul. Buatlah dokumen HTML yang memungkinkan pemakai
menginputkan judul buku.
6. Diketahui katalog Eggface computer mail-order.
“Eggface menjual hardware dan software. Kita menjual Palm Pilot V baru seharga
$400; nomor perangkat 345. Kita juga menjual IBM ThinkPad 570 seharga $1999;
nomor perangkat 3784. Kita menjual baik software bisnis dan entertainment.
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. Software Game dari Blizzard
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.
By
HendraNet
http://www.hendra-jatnika.web.id
105
Bab9
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
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami hubungan antara Data Warehouse dan Decision Support
Dapat mendesain model data multidimensi
Memahami Online Analytical Processing (OLAP)
Memahami Arsitektur dan Implementasi Data Warehouse
Memahami penggunaan view pada aplikasi Decision Support
9.1. PENDAHULUAN
Data Warehouse adalah suatu database penunjang keputusan yang dikelola
secara terpisah dari database operasional perusahaan. Dan merupakan penunjang
pemrosesan informasi dengan menyediakan suatu platform yang kokoh untuk analisa
data yang mengandung histori dan yang terkonsolidasi.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 106
Berikut beberapa definisi tentang data warehouse :
“Suatu DW adalah suatu koleksi data yang bisa digunakan untuk menunjang
pengambilan keputusan manajemen, yang berorientasi subjek (topik), terpadu, time
variant, dan tidak mudah berubah” —W. H. Inmon (Bp. Data Warehousing)
“Suatu data warehouse sederhananya adalah suatu penyimpanan data tunggal,
lengkap dan konsisten, yang diperoleh dari berbagai sumber dan dibuat tersedia bagi
end user dalam suatu cara yang bisa mereka pahami dan bisa mereka gunakan dalam
suatu konteks bisnis.” - - Barry Devlin, IBM Consultant.
9.2. DARI DATA WAREHOUSE KE DECISION SUPPORT
Pembuatan keputusan organisasi memerlukan view menyeluruh pada segala
aspek perusahaan, sehingga organisasi membuat data warehouse gabungan yang berisi
data yang berasal dari berbagai sumber. DBMS juga didesain untuk mendukung query
OLAP secara efisien dan dioptimalisasi untuk mendukung aplikasi decision support.
9.3. MODEL DATA MULTIDIMENSI
Model data multidimensional dirancang untuk memfasilitasi analisis dan bukan
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 107
Pid timeid locid sales
11 1 1 13
11 2 1 4
11 3 1 3
12 1 1 21
12 2 1 16
12 3 1 6
13 1 1 17
13 2 1 5
13 3 1 12
Gambar 10.1. Model Data Multidimensi
9.4. ONLINE ANALYTICAL PROCESSING (OLAP)
Query OLAP dipengaruhi oleh dua hal, yaitu : SQL dan spreadsheet. Operasi
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.
1 2 3
timeid
17 5
21 16 6
13 4 3
12
pid
111213
locid
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 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 :
Cross-tabulation tersebut merupakan kumpulan dari query SQL berikut :
SELECT SUM (S.Sales)
FROM Sales S, Times T
WHERE S.timeid = T.timeid
GROUP BY T.year
dan
SELECT SUM (S.Sales)
FROM Sales S, Location L
WHERE S.timeid = L.timeid
GROUP BY L.state
Sehingga menjadi query baru sebagai berikut :
SELECT SUM (S.Sales)
FROM Sales S, Times T, Location L
WHERE S.timeid = T.timeid AND S.timeid = L.timeid
GROUP BY T.year, L.state
4. Slicing dan Dicing
Yaitu mencari kesamaan dan jangkauan seleksi pada satu atau lebih dimensi.
25 41 66
64 53 11
89 94 18tota
tota
1999
1998
LA NY
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 109
9.5. ARSITEKTUR DATA WAREHOUSE
Pilihan berikut harus dibuat didalam perancangan data warehouse
• 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
melihat data dalam bentuk suatu kubus data. Suatu kubus data seperti Sales
memungkinkan data untuk dimodelkan dan dilihat dari banyak dimensi
– Dimensi tabel, seperti item (item_name, brand, type), atau time(day,
week, month, quarter, year)
– Tabel fakta memuat ukuran (seperti dollars_sold) dan kunci untuk setiap
dimensi tabel terkait
Berikut, arsitektur dari Data Warehouse :
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 110
Gambar 10.2. Arsitektur Data Warehouse
9.6. IMPLEMENTASI DATA WAREHOUSE
Data Warehouse diorganisasikan berdasarkan kegunaan disekitar subjek bukan
aplikasi, misal: customer, product, sales. Perhatian dipusatkan pada pemodelan dan
analisa data untuk pembuat keputusan, bukan untuk operasi harian atau pemrosesan
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 111
9.7. VIEW DAN DECISION SUPPORT
View digunakan secara luas dalam aplikasi decision support. Kelompok analis
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. Mengevaluasi query yang
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.
View berikut ini menghitung penjualan produk berdasarkan kategori dan Negara bagian:
CREATE VIEW RegionalSales(category, sales, state)
AS SELECT P.category, S.sales, L.state
FROM Products P, Sales S, Locations L
WHERE P.pid=S.pid AND S.locid=L.locid
Query berikut menghitung penjualan total untuk tiap kategori berdasarkan
Negara bagian :
SELECT R.category, R.state, SUM(R.sales)
FROM RegionalSales R
GROUP BY R.category, R.state
Query berikut ini adalah hasil modifikasi dari query sebelumnya dengan
menggantikan RegionalSales dengan sebuah view yang ditempatkan pada klausa FROM
yaitu :
SELECT R.category, R.state, SUM(R.sales)
FROM (SELECT P.category, S.sales, L.state
FROM Products P, Sales S, Locations L
WHERE P.pid = S.pid AND S.locid=L.locid) AS R
GROUP BY R.category, R.state
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 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. Contohnya : untuk melihat
penjualan dari perspektif customer, product dan time.
• Jenis-jenis dari query OLAP yaitu : Roll up, Drill down, Pivoting, Slicing dan
Dicing.
• Pilihan-pilihan yang harus dibuat didalam perancangan data warehouse : process
model, level atom data yang akan disajikan, dimensi dan ukuran
• View digunakan secara luas dalam aplikasi decision support dan berhubungan erat
dengan OLAP dan data warehousing dan perlu disinkronisasi secara periodik.
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).
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 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 ?
By
HendraNet
http://www.hendra-jatnika.web.id
114
Bab10
Data Mining
POKOK BAHASAN:
Model Data Mining
Tahapan dalam Data Mining
Fungsionalitas dalam Data Mining
Teknik-teknik Data Mining
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami pemodelan Data Mining
Memahami setiap tahapan dalam Data Mining
Memahami fungsionalitas dalam Data Mining
Memahami beberapa teknik yang digunakan dalam Data Mining
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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
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
databases, knowledge extraction, data archeology, data dredging, data analysis dan lain
sebagainya [AGR-93].
Dengan diperolehnya informasi-informasi yang berguna dari data-data yang
ada, hubungan antara item dalam transaksi, maupun informasi informasi-yang potensial,
selanjutnya dapat diekstrak dan dianalisa dan diteliti lebih lanjut dari berbagai sudut
pandang.
Informasi yang ditemukan ini selanjutnya dapat diaplikasi kan untuk aplikasi
manajemen, melakukan query processing, peng ambilan keputusan dan lain sebagainya.
Dengan semakin ber kembang nya kebutuhan akan informasi-informasi, semakin
banyak pula bidang-bidang yang rnenerapkan konsep data mining.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 116
10.2. MODEL DATA MINING
Dalam perkembangan teknologi data mining, terdapat model atau mode yang
digunakan untuk melakukan proses penggalian informasi terhadap data-data yang ada.
Menurut IBM model data mining dapat dibagi menjadi 2 bagian yaitu: verification
model dan discovery model.
10.2.1. VERIFICATION MODEL
Model ini menggunakan perkiraan (hypothesis) dari pengguna, dan melakukan
test terhadap perkiraan yang diambil sebelumnya dengan menggunakan data-data yang
ada. Penekanan terhadap model ini adalah terletak pada user yang bertanggung jawab
terhadap penyusunan perkiraan (hypothesis) dan permasalahan pada data untuk
meniadakan atau menegaskan hasil perkiraan (hypothesis) yang diambil.
Sebagai contoh misalnya dalam bidang pemasaran, sebelum sebuah
perusahaan mengeluarkan suatu produk baru kepasaran, perusahaan tersebut harus
memiliki informasi tentang kecenderungan pelanggan untuk membeli produk yang
akan di keluarkan. Perkiraan (hypothesis) dapat disusun untuk mengidentifikasikan
pelanggan yang potensial dan karakteristik dari pelanggan yang ada. Data-data tentang
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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 117
10.2.2. DISCOVERY MODEL
Model ini berbeda dengan verification model, dimana pada model ini system
secara langsung menemukan informasi-informasi penting yang tersembunyi dalam
suatu data yang besar. Data-data yang ada kemudian dipilah-pilah-untuk-menemukan
suatu pola, trend yang ada, dan keadaaan umum pada saat itu tanpa adanya campur
tangan dan tuntunan dari pengguna. Hasil temuan ini menyatakan fakta-fakta yang ada
dalam datadata yang ditemukan dalam waktu yang sesingkat rnungkin.Sebagai
contoh, misalkan sebuah bank ingin menemuan kelompok-kelompok pelanggan yang
dapat dijadikan target suatu produk yang akan di keluaran.
Pada data-data yang ada selanjutnya diadakan proses pencarian tanpa adanya
proses perkiraan (hypothesis) sebelumnya. Sampai akhirnya semua pelanggan
dikelompokan berdasarkan karakteristik yang sama.
10.3. KEBUTUHAN DAN TANTANGAN DALAM DATA MINING
Untuk memperoleh efektifitas dalam data mining, seseorang harus melakukan
evaluasi kebutuhan dan memperhitungkan tantangan-tantangan apa saja yang mungkin
dihadapinya dalam me ngembangkan suatu teknik data mining. Hal-hal yang harus diper
hatikan tersebut antara lain adalah sebagai berikut
10.3.1. PENANGANAN BERBAGAI TIPE DATA
Karena ada bermacam data dan basis data yang digunakan dalam berbagai
aplikasi, seseorang mungkin saja berpikir bahwa suatu sistem knowledge discovery
harus bisa melakukan proses data mining yang efektif terhadap berbagai jenis data.
Selanjutnya, banyak aplikasi basis data memuat tipe data yang kompleks seperti data
terstruktur, objek data kompleks, data multimedia, data spasial dan data sementara, data
transaksi dan lain sebagainya.
Oleh karena adanya beragam tipe data, tujuan yang berbeda dari data mining,
maka adalah tidak realistis untuk mengharapkan bahwa suatu sistem data mining
mampu menangani semua jenis data. Sistem data mining harus dikonstruksikan secara
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 118
khusus untuk tipe-tipe data khusus seperti dalam basis data relasional, basis data
transaksi, basis data spasial, basis data multimedia dan lain sebagainya.
10.3.2. EFISIENSI DARI ALGORITMA DATA MINING
Untuk secara efektif melakukan ekstraksi informasi dari sejumlah besar data,
algoritma yang digunakan untuk mewujudkannya haruslah efisien untuk basis data yang
besar. Yaitu, waktu eksekusi dari algoritma tersebut haruslah sesuai dan realistis untuk
data dengan ukuran besar.
10.3.3. KEGUNAAN, KEPASTIAN DAN KEAKURATAN HASIL
Informasi yang diperoleh harus secara akurat menggambarkan isi basis data dan
berguna untuk aplikasi terkait. Kekurangsempurnaan yang ada haruslah dapat
diekspresikan dengan suatu ukuran yang pasti dalam bentuk aturan-aturan kuantitif dan
perkiraan-perkiraan yang masuk akal. Noise dan data-data yang tidak diperlukan harus
ditangani dengan rapi dalam sistem data mining. Hal ini juga akan memotivasi suatu
studi sistematik untuk mengukur kualitas dari informasi yang dihasilkan, termasuk
seberapa menariknya dan tingkat kepercayaannya yang dapat diukur secara statistik,
analitis dan menggunakan model simulasi.
10.3.4. EKSPRESI TERHADAP BERBAGAI JENIS HASIL
Berbagai macam jenis informasi dapat diperoleh dari sejumlah besar data.
Seseorang mungkin ingin menguji informasi yang diperoleh dan sudut pandang yang
berbeda dan menampilkannya dalam bentuk yang berbeda. Ini menuntut kita untuk
mengekspresikan permintaan datamining dan informasi yang diperoleh dalam sebuah
bahasa tingkat tinggi atau graphical user interface yang baik, sehingga program dapat
digunakan oleh para pemakai biasa yang bukan ahli, dan hasil yang diperoleh dapat
dimengerti serta langsung digunakan oleh pemakainya. Oleh karenanya, sistem harus
bisa mengadopsi teknik-teknik penyajian informasi yang baik.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 119
10.3.5.MEMPEROLEH INFORMASI DARI SUMBER-SUMBER DATA YANG
BERBEDA
Dengan adanya LAN (Local Area Network) dan WAN ( Wide Area Network)
yang tersebar secara luas dewasa ini, termasuk Internet, maka terhubunglah - berbagai
sumber data yang terdistribusi secara luas dan membentuk suatu basis data heterogen.
Untuk memperoleh informasi dari berbagai sumber dan dalam berbagai format dengan
berbagai semantik data menimbulkan tantangan baru dalam data mining. Di lain pihak,
datamining bisa membantu mengungkapkan informasi-informasi yang ada dalam suatu
basis data heterogen, dimana hal tersebut sulit untuk diwujudkan dengan sebuah sistem
query sederhana. Lebih lanjut, ukuran data yang besar, distribusi yang luas dad data dan
kompleksitas dari proses komputasi beberapa metode data mining, semakin memotivasi
pengembangan algoritma untuk paralel data mining dan data mining untuk basis data
terdistribusi.
10.3.6.PROTEKSI DAN KEAMANAN DATA
Ketika data dapat diperlihatkan dari berbagai sudut pandang dan dalam level
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.
10.4. TAHAPAN DALAM DATA MINING
Data-data yang ada, tidak dapat langsung diolah dengan menggunakan sistem data
mining. Data-data tersebut harus dipersiapkan terlebih dahulu agar hasil yang diperoleh
dapat lebih maksimal, dan waktu komputasinya lebih minimal. Proses persiapan data ini
sendiri dapat mencapai 60 % dari keseluruhan proses dalam data mining. Adapun
tahapan-tahapan yang harus dilalui dalam proses data mining antara lain:
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 120
Data
Seleksi
Praproses
Transformasi
Data Mining
Interpretasi
& Evaluasi
Target Data
Preprocess
Data
Transformed
Data
Patterm
Gambar 11.1. Tahapan Data Mining
• Basis Data Relasional
Dewasa ini, hampir semua Data bisnis disimpan dalam basis data relasional. Sebuah
model basis data relasional dibangun dari serangkaian tabel, setiap tabel disimpan
sebagai sebuah file. Sebuah tabel relasional terdiri dari baris dan kolom. Kebanyakan
model basis data relasional saat ini dibangun diatas lingkungan OLTP. OLTP (Online
Transaction Processing ) adalah tipe akses yang digunakan oleh bisnis yang
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 121
Transformasi data melakukan peringkasan data dengan mengasumsikan bahwa data
telah tersimpan dalam tempat penyimpanan tunggal. Pada langkah terakhir, data telah di
ekstrak dari banyak basis data ke dalam basis data tunggal. Tipe peringkasan yang
dikerjakan dalam langkah ini mirip dengan peringkasan yang dikerjakan selama tahap
ekstraksi. Beberapa perusahaan memilih untuk menngkas data dalam sebuah tempat
penyimpanan tunggal. Fungsi fungsi Agregate yang sering digunakan antara lain:
summarizations, averages, minimum, maximum, dan count.
• Pembersihan Data
Data-data yang telah terkumpul selanjutnya akan mengalami proses pembersihan.
Proses pembersihan data dilakukan untuk membuang record yang keliru, menstandarkan
attribut-attribut, merasionalisasi struktur data, dan mengendalikan data yang hilang.
Data yang tidak konsisten dan banyak kekeliruan membuat hasil data mining tidak
akurat. Adalah sangat penting untuk membuat data konsisten dan seiagam. Pembersihan
data juga dapat membantu perusahaan untuk mengkonsolidasikan record. ini sangat
berguna ketika sebuah perusahaan mempunyai banyak record untuk seorang
pelanggan.Setiap record atau file pelanggan mempunyai nomor pelanggan yang sama,
tetapi informasi dalam tiap filenya berbeda.
• 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.
• Reduksi Data dan 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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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.
10.5. FUNGSIONALITAS DALAM DATA MINING
Kebutuhan akan Data mining semakin dirasakan dalam berbagai bidang. Data
mining bersifat dependen terhadap aplikasi terkait, ini berarti untuk aplikasi basis data
yang berbeda, maka teknik data mining yang digunakannya mungkin juga akan berbeda.
Hal ini dikarenakan terdapat kelebihan dan kekurangan dari masing-masing metode
pencarian informasi, sehingga kita harus menyesuaikan antara keperluan dan kebutuhan
akan informasi dengan penerapan teknik pencarian yang akan digunakan. Untuk
memberikan gambaran yang lebih jelas tentang macam-macam informasi yang dapat
ditemukan dalam sekumpulan data, berikut akan diberikan sedikit bahasan rinci
mengenai hal tersebut.
10.5.1. MINING ASSOCIATION RULE
Mining association rules atau pencarian aturan-aturan hubungan antar item dari
suatu basis data transaksi atau basis data relasional, telah menjadi perhatian utama
dalam masyarakat basis data. Tugas utamanya adalah untuk menemukan suatu
himpunan hubungan antar item dalam bentuk A1A...AAm => B1A...ABn dimana A, (
for i E {1,...,m}) dan B; ( for j C {1,...,n} ) adalah himpunan atribut nilai, dari
sekumpulan data yang relevan dalam suatu basis data. Sebagai contoh, dari suatu
himpunan data transaksi, seseorang mungkin menemukan suatu hubungan berikut, yaitu
jika seorang pelanggan membeli selai, ia biasanya juga membeli roti dalam satu
transaksi yang sama. Oleh karena proses untuk menemukan hubungan antar item ini
mungkin memerlukan pembacaan data transaksi secara berulang-ulang dalam sejumlah
besar data-data transaksi untuk menemukan pola-pola hubungan yang berbeda-beda,
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 123
maka waktu dan biaya komputasi tentunya juga akan sangat besar, sehingga untuk
menemukan hubungan tersebut diperlukan suatu algoritma yang efisien dan metode-
metode tertentu.
10.5.2.GENERALISASI, PENCATATAN DAN KARAKTERISASI DATA MULTI
LEVEL
Salah satu aplikasi data mining dan analisa data yang paling sering digunakan
dalam hubungannya dengan basis data sistem produksi adalah generalisasi dan
pencatatan data, yang juga dikenal dengan beberapa nama lain seperti on-line analytical
processing ( OLAP ), basis data multi dimensi, data cubes, abstraksi data, dan lain
sebagainya. Generalisasi dan pencatatan data ini menampilkan karakteristik umum
terhadap sekumpulan data yang dispesifikasikan oleh pemakai dalam basis data.
Data dan obyek dalam basis data seringkali memuat informasi yang mendetail
pada level primitif. Sebagai contoh, item relasi dalam suatu basis data sales mungkin
saja mengandung atribut level primitif tentang informasi item seperti nomor item, nama
item, tanggal pembuatan, harga dan lain sebagainya. Seringkali kita menginginkan
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
10.5.3. KLASIFIKASI DATA
Aplikasi lain yang penting dari data mining adalah kemampuannya untuk
melakukan proses klasifikasi pada suatu data dalam jumlah besar. Hal ini sering disebut
mining classification rules. Sebagai contoh, sebuah dealer mobil ingin
mengkiasifikasikan pelanggannya menurut kecenderungan mereka untuk menyukai
mobil jenis tertentu, sehingga para sales yang bekerja disitu akan mengetahui siapa yang
harus didekati, kemana katalog mobil jenis baru harus dikirim, sehingga hal ini akan
sangat membantu dalam hal promosi.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 124
Klasifikasi data adalah suatu proses yang menemukan properti-properti yang
sama pada sebuah himpunan obyek di dalarn sebuah basis data, dan
mengklasifikasikannya ke dalam kelas-kelas yang berbeda menurut model klasifikasi
yang ditetapkan. 'Untuk membentuk sebuah model klasifikasi, suatu sampel basis data
'E' diperlakukan sebagai training set, dimana setiap tupel terdiri dari himpunan yang
sama yang memuat atribut yang beragam seperti tupel-tupel yang terdapat dalam suatu
basis data yang besar 'W'. Setiap tupel diidentifkasikan dengan sebuah label atau
identitas kelas. Tujuan dari klasifikasi ini adalah pertama-tama untuk menganalisa
training data dan membentuk sebuah deskripsi yang akurat atau sebuah model untuk
setiap kelas berdasarkan feature-feature yang tersedia di dalam data itu.
Deskripsi dari masing-masing kelas itu nantinya akan digunakan untuk
mengklasifikasikan data yang hendak di test dalam basis data 'W', atau untuk
membangun suatu deskripsi yang lebih balk untuk setiap kelas dalam basis data. Contoh
untuk model ini adalah prediksi terhadap resiko pemberian kredit. Data terdiri dari
orang orang yang telah menerima kredit. Sebagian kreditur menjalankan kewajiban
dengan balk, dan sebagian lagi tidak. Data mining, harus mampu mendefinisikan atribut
atribut apa yang paling berpengaruh dalam hal ini.
10.5.4. ANALISA CLUSTER
Pada 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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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.
10.5.5. PENCARIAN POLA, SEKUENSIAL
Fungsi pola sekuensial menganalisa sekumpulan rekord pada suatu periode
waktu, misalnya untuk menganalisa trend. Anggaplah kita memiliki suatu basis data
yang ukurannya besar, yaitu basis data transaksi dimana setiap transaksi terdiri dari
nomor pelanggan, waktu transaksi dan item-item yang ditransaksikan. Suatu pola dapat
ditampilkan dalam contoh sebagai berikut, pelanggan biasanya membeli gula Iangsung
melakukan transaksi membeli kopi. Dari semua transaksi membeli gula ternyata hampir
seluruhnya terdapat transaksi membeli kopi. Maka dari pola-pola yang ada ini dapat
dijadikan masukan bahwa telah terjadi suatu kecendrungan (trend) dari pelanggan
dimana setiap pelanggan melakukan transaksi membeli gula maka akan diikuti oleh
transaksi membeli kopi. Untuk itu pihak manajemen dapat menempatkan letak item
kopi dekat dengan item gula. Sehingga memudahkan pelanggan untuk melakukan
transaksi selanjutnya.
10.6. TEKNIK-TEKNIK DATA MINING
Perkembangan bidang data mining yang semakin pesat, menimbulkan banyak
tantangan baru, aplikasi-aplikasi dari metode dan teknik, statistik serta sistem basis data
yang ada tidak dapat secara langsung menyelesaikan masalah-masalah yang ada dalam
data mining.
Oleh karena itu maka perlu dilakukan studi-studi terkait untuk menemukan
metode data mining baru atau suatu teknik terintegrasi untuk sebuah sistem data mining
yang efektif dan efisien. Dalam konteks ini, data mining itu sendiri telah menjadi suatu
bidang baru yang independen. Telah banyak kemajuan dalam hal riset dan
pengembangan dari data mining, juga banyak teknik data mining dan sistem baru yang
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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.
• Jenis informasi yang hendak dicari
Beberapa jenis informasi dapat dihasilkan dad proses data mining ini, termasuk
association rules, characteristic rules, classification rules, discriminant rules,
clustering, sequential pattern, dan deviation analysis [AGR-93]. Lebih lanjut, ada
kiasifikasi lainnya menurut level abstraksi dari informasi yang diperoleh, antara lain
generalized knowledge, primitive level knowledge dan multiple level knowledge. Suatu
sistem data mining yang fleksibel dapat menggali informasi pada berbagai level
abstraksi.
• Teknik yang hendak digunakan.
Cara kiasifikasi yang lainnya adalah berdasarkan teknik yang digunakan.
Misalnya, dikategorikan berdasarkan metode kendalinya seperti autonomous knowledge
miner, data driven miner, query driven miner dan interactive data miner. Dapat juga
dikategorikan berdasarkan pendekatan yang dipakai dalam melakukan data mining,
yaitu generalization based mining, statistics and mathematical based mining, integrated
approach mining dan lain sebagainya.Diantara berbagai macam klasifikasi yang ada,
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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.
10.6.1. MARKET BASKET ANALYSIS
Fungsi Association Rules seringkali disebut dengan "market basket analysis",
yang digunakan untuk menemukan relasi atau korelasi diantara himpunan item2. Market
Basket Analysis adalah Analisis dari kebiasaan membeli customer dengan mencari
asosiasi dan korelasi antara item-item berbeda yang diletakkan customer dalam
keranjang belanjaannya.
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
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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?
• Kaidah asosiasi penambangan
– Pertama kali diusulkan oleh Agrawal, Imielinski dan Swami [AIS93]
• 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.
• Contoh:
30% dari transaksi yang memuat bir juga memuat popok 5% dari transaksi
memuat item-item berikut:
– 30% : confidence dari kaidah ini
– 5% : support dari kaidah ini
• Kita berminat untuk mencari seluruh kaidah ketimbang memeriksa apakah suatu
kaidah berlaku.
Definisi Umum
• Itemset: himpunan dari item-item yang muncul bersama-sama
• Kaidah asosiasi: peluang bahwa item-item tertentu hadir bersama-sama.
oX → Y dimana X n Y = 0
• Support, supp(X) dari suatu itemset X adalah rasio dari jumlah transaksi
dimana suatu itemset muncul dengan total jumlah transaksi.
• Konfidence (keyakinan) dari kaidah X . Y, ditulis conf(X . Y) adalah
– conf(X → Y)=supp(X ∪ Y) / supp(X)
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 129
– Konfindence bisa juga didefinisikan dalam terminologi peluang bersyarat
conf(X → Y)=P(Y|X)=P(X ∩ Y)/P(X)
• 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.
• Misalkan D={T1, T2, …, Tn} merupakan suatu himpunan dari n transaksi,
dimana untuk setiap transaksi T∈ D, T ⊆ I.
• Suatu himpunan item X ⊆⊆⊆⊆ I disebut itemset.
• Suatu transaksi T memuat suatu itemset X jika X ⊆ T.
• Setiap itemset X diasosiasikan dengan suatu himpunan transaksi TX ={T∈ D | T
⊇⊇⊇⊇ X} yang merupakan himpunan transaksi yang memuat itemset X.
• Support supp(X) dari itemset X sama dengan |TX|/|D|.
• Didalam setiap item adalah nilainilai yang menyatakan besaran item terjual.
Gambar 11.2. Bentuk Transaksi Database
• Item A muncul dalam 3 transaksi (|TA|) yakni di transaksi T1, T3,dan T8.
• Ada sebanyak 10 transaksi (|D|)
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 130
• Supp(A)= |TA|/|D| = 3/10 = 0.3
• Kombinasi CD muncul didalam 5 transaksi ((|TCD|) yakni di transasi T1, T3,
T5, T6, dan T9.
• Supp(CD)= |TCD|/|D|= 5/10 = 0.5
• Frequent itemset didefinisikan sebagai itemset dimana support-nya lebih besar
atau sama dengan minsupport yang merupakan ambang yang diberikan oleh
user.
• 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
• Dari frequent itemset bisa dibangun kaidah asosiasi sbb:
A →→→→ C C →→→→ A A →→→→ D
D →→→→ A C →→→→ D D →→→→ C,
A,C →→→→ D A,D →→→→ C C,D →→→→A
Gambar 11.3. Hasil nilai support untuk setiap items
Analisis dari kebiasaan membeli customer dengan mencari asosiasi dan korelasi antara
item-item berbeda yang diletakkan customer dalam keranjang belanjaannya.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 131
Gambar 11.4. Keranjang Belanja
• 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
Gambar 11.5. Bentuk Transaksi Keranjang Belanja
• Mengekstraksi informasi perilaku pembelian
– "IF membeli bir dan sosis, THEN juga membeli mostar dengan peluang
tinggi"
• Informasi yang bisa ditindak-lanjuti:
– Bisa menyarankan Tata letak toko yang baru dan campuran produk
– Bisa menyarankan Produk apa untuk diletakkan dalam promosi ?
• Menganalisis tabel transaksi
Person
Basket
A
Chips, Salsa, coke, crakers, cookies, beer
B
Lettuce, Spinach, Oranges, Cellery, Apples, Grapes
C
Chips, Salsa, Frozen Pizza, Frozen cake
D
Lettuce, Spinach, Milk, Butter
Gambar 11.6. Bentuk Analisa Keranjang Belanja
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 132
• Bisakah kita membuat hipotesa?
– Chips => Salsa Lettuce => Spinach
Dasar Kaidah Asosiasi:
• Kaidah asosiasi penambangan:
– Mencari pola yang sering muncul, asosiasi, korelasi, atau struktur sebab
musabab diantara himpunan item-item atau objek-objek dalam database
transaksi, database relasional, dan penyimpanan informasi lainnya
• Kepemahaman:
– Sederhana untuk dipahami
• Kegunaan:
– menyediakan informasi yang bias ditindaklanjuti
• Efisiensi:
– ada algoritma pencarian yang efisient
• Aplikasi:
– Analisis data keranjang pasar, pemasaran silang, rancangan katalog,
analisis lossleader, clustering, klasifikasi, dsb.
• Format penyajian kaidah asosiasi yang biasa:
– popok . bir [0.5%, 60%]
– beli:popok . beli:bir [0.5%, 60%]
– "IF membeli popok, THEN membeli bir dalam 60% kasus. Popok dan
bir dibeli bersama-sama dalam 0.5% dari baris-baris dalam database."
• Penyajian lainnya (digunakan dalam buku Han):
– Beli ( x, “popok” ) beli ( x, “bir” ) [ 0.5%, 60% ]
– Major ( x, "CS" ) ^ mengambil ( x, "DB" ) grade( x,"A" ) [ 1%, 75% ]
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 133
1. Antecedent, left-hand side (LHS), body
2. Consequent, right-hand side (RHS), head
3. Support, frekuensi (“dalam berapa besar bagian dari data benda-benda dalam
LHS dan RHS terjadi bersama-sama”)
4. Confidence, kekuatan (“jika LHS terjadi, bagaimana kirakira RHS terjadi”)
• Support: menunjukkan frekuensi dari kaidah didalam transaksi.
• Confidence: menunjukkan persentasi dari transaksi yang memuat A yang juga
memuat B.
• Minimum support σ :
– High sedikit itemset yang sering
sedikit kaidah yang sah yang sangat sering terjadi
– Low banyak kaidah yang sah yang jarang terjadi
• Minimum confidence γ :
– High sedikit kaidah, tetapi selurhnya “hampir secara logika true”
– Low banyak kaidah, banyak diantaranya sangat “takpasti”
• Nilai-nilai biasanya: σ = 2 s/d 10 %, γ = 70 s/d 90 %
• Transaksi:
– Relational format Format Kompak
< Tid, item > < Tid, itemset >
< 1, item1 > < 1, {item1,item2}>
< 1, item2 > < 2, {item3}>
< 2, item3 >
• Item vs itemsets : elemen tunggal vs. himpunan item
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 134
• Support dari suatu itemset I: jumlah transaksi yang memuat I
• Minimum support σσσσ: ambang untuk support
• Frequent itemset : dengan support = σ
10.6.2. ALGORITMA APRIORI
Persoalan association rule mining terdiri dari dua sub persoalan :
1. Menemukan semua kombinasi dari item, dise but dengan frequent itemsets,yang
memiliki support yang lebih besar daripada minimum support.
2. Gunakan frequent itemsets untuk men-generate aturan yang
dikehendaki.Semisal, ABCD dan AB adalah frequent, maka didapatkan aturan
AB -> CD jika rasio dari support(ABCD) terhadap support(AB) sedikitnya sama
dengan minimum confidence. Aturan ini memiliki minimum support karena
ABCD adalah frequent.
Algoritma Apriori yang bertujuan untuk menemukan frequent itemsets dijalankan pada
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
Mining Fk merepresentasikan himpunan dari frequent k -itemsets, dan Ck adalah
himpunan candidate k-itemsets (yang potensial untuk menjadi frequent itemsets). Tahap
pertama adalah men-generate kandidat, dimana himpunan dari semua frequent (k- 1)
itemsets, Fk-1, ditemukan dalam iterasi ke-(k-1), digunakan untuk men-generate
candidate itemsets Ck. Prosedur generate candidate memastikan bahwa Ck adalah
superset dari himpunan semua frequent k-itemsets. Struktur data hash-tree digunakan
untuk menyimpan Ck. Kemudian data di-scan dalam tahap penghitungan support. Untuk
setiap transaksi, candidates dalam Ck diisikan ke dalam transaksi, ditentukan dengan
menggunakan struktur data hash-tree hashtree dan nilai penghitungan support
dinaikkan. Pada akhir dari tahap kedua, nilai Ck diuji untuk menentukan yang mana dari
candidates yang merupakan frequent. Kondisi penghitung (terminate condition) dari
algoritma ini dicapai pada saat Fk atau Ck+1 kosong.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 135
Inti dari algoritma apriori :
• Gunakan frequent (k – 1)-itemsets untuk membangun kandidat frequent k-
itemsets.
• Gunakan scan database dan pencocokan pola untuk mengumpulkan hitungan
untuk kandidat itemsets
Penyumbatan dari apriori : generasi kandidat
• Himpunan kandidat yang besar sekali:
- 104
frequent 1-itemset akan membangun 107
kandidat 2-itemsets.
- Untuk menemukan suatu pola yang sering dari ukuran 100, misal, {a1, a2,
…, a100}, seseorang perlu membangun 2100
1030
kandidat.
• Scan database berkali-kali:
- Perlu (n +1 ) scans, n adalah panjang dari pola terpanjang
Dalam praktek:
• Untuk pendekatan apriori dasar, jumlah atribut dalam baris biasanya lebih kritis
ketimbang jumlah baris transaksi
• Contoh:
- 50 atribut masing-masing memiliki 1-3 nilai, 100.000 baris (tidak sangat
buruk)
- 50 atribut masing-masing memiliki 10-100 nilai, 100.000 baris (cukup
buruk)
• Perhatian:
- Satu atribut bisa memiliki beberapa nilai berbeda
- Algoritma kaidah asosiasi biasanya memperlakukan setiap pasangan
atribut-nilai sebagai satu atribut (2 atribut dengan masingmasing 5 nilai
=> "10 atribut")
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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
support suatu metoda untuk menentukan kelengkapan.
Diberikan: (1) database transaksi, (2) setiap adalah suatu daftar dari item-item
yang dibeli (dibeli seorang customer pada suatu kunjungan)
cari: seluruh kaidah dengan minimum support dan confidence
If min. support 50% dan min. confidence 50%, then A => C [50%, 66.6%], C =>
A [50%, 100%].
Langkah-langkah untuk mencari nilai minimum support dam confidence dengan
algoritma apriori
STEP 1: cari frequent itemsets: himpunan item-item yang memiliki
minimum support.
• 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.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 137
• Secara iteratif cari frequent itemsets dengan ukuran dari 1 hingga k (k-
itemset)
STEP 2: gunakan frequent itemsets untuk membangun kaidah asosiasi..
• Jika {bir,popok, kacang} frequent, maka {bir, popok} juga frequent.
• Setiap transaksi yang memiliki {beer, popok, kacang} juga memuat {bir,
popok}.
• Jika {A,B} memiliki support paling tidak a , maka A dan B keduanya
memiliki support paling tidak a.
• Jika A atau B memiliki support kecil dari a maka {A, B} memiliki support
lebih kecil dari a.
Step Gabungan: Ck dibangun dgn menggabungkan Lk-1dengan dirinya
Step Pemangkasan: setiap (k-1)-itemset yg bukan frequent tidak boleh menjadi
suatu subset dari suatu frequent k-itemset.
Pseudo-code: Ck: Kandidate itemset dari ukuran k; Lk : Frequent itemset dari
ukuran k.
L1 = {frequent items};
for (k = 1; Lk !=0; k++) do begin
Ck+1 = {kandidat dibangun dari Lk };
for each transaksi t dalam database do naikkan hitungan dari seluruh
kandidat dalam Ck+1 yang dimuat dalam t
Lk+1 = {kandidat dalam Ck+1 dengan min_support}
end
return .k Lk;
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 138
Bentuk Ilustrasi Algoritma Apriori
Gambar 11.7. Ilustrasi Algoritma Apriori
Contoh apriori :
TID CID Item Price Date
101 201 Computer 1500 1/4/99
101 201 MS Office 300 1/4/99
101 201 MCSE Book 100 1/4/99
102 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
• Dalam contoh ini untuk kaidah asosiasi
{Computer} {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 )
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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%
• Bagaimana dengan {Computer} {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)
- Jumlah transaksi hanya Computer adalah 2
> Support(Computer {MCSE book)= 2/3 = 66.6%
> Conf(Computer {MCSE book)= 2/2 = 100%
• Berapa support dari 2-itemset {Computer , Hard disk} ?
- Jumlah transaksi 2-itemset {Computer, Hard disk}adalah 1.
- Jumlah transaksi keseluruhan adalah 3.
> Support dari 2-itemset {Computer, Hard disk} adalah 1/3=33.3%
• Berapa support dari 1-itemset {Computer}?
- Jumlah transaksi 1-itemset {Computer}adalah 2.
- Jumlah transaksi keseluruhan adalah 3.
> Support dari 1-itemset {Computer} adalah 2/3=66.6%
• 2 Step dalam kaidah asosiasi penambangan:
- Cari seluruh itemsets yang supportnya diatas minimum support yang
diberikan oleh user. Kita sebut itemsets ini itemsets besar.
- Untuk setiap itemset besar L, carilah seluruh kaidah asosiasi dalam
bentuk a (L-a) dimana a dan (L-a) adalah himpunan bagian L yang tak
hampa.
• Step 2 adalah jelas yang dikaitkan dengan step 1:
- Ruang pencarian eksponensial
- Ukuran dari transaksi database
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 140
Supp(Computer)=2/3=66.7%, supp(MS Office)=1/3=33.3%
Supp(MCSE Book)=3/3=100%, supp(Hard Disk)=2/3=66.7%
Supp(Computer,MSOffice)=1/3=33.3%
Supp(Computer,MCSE Book)=2/3=66.7%
Supp(Computer,Hard Disk)=1/3=33.3%
Supp(MCSE Book, MS Office)=1/3=33.3%
Supp(MCSE Book, Hard Disk)=2/3=66.7%
Supp(MSOffice,Hard Disk)=0/3=0%
Supp(Computer, MCSE Book,MSOffice)=1/3=33.3%
Supp(Computer, MCSE Book, Hard Disk)=1/3=33.3%
Supp(MCSE Book, MSOffice,Hard Disk)=0/3=0%
Supp(Computer,MCSE Book, MSOffice,HardDisk)=0/3=0%
Asosiasi dengan minsupport 60% adalah:
Computer MCSE Book, MCSE Book Computer
MCSE Book Hard Disk, Hard Disk MCSE Book
Conf(Computer 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 MCSE Book dan
Computer MCSE Book
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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
• Tantangan-tantangan dalam Data Mining meliputi : penanganan berbagai tipe data,
efisiensi dari algoritma data mining, kegunaan, kepastian dan keakuratan hasil,
ekspresi terhadap berbagai jenis hasil dan data yang diambil dari berbagai sumber
yang berbeda.
• Tahapan dalam Data Mining meliputi : proses seleksi, pembersihan data,
tranformasi, implementasi teknik data mining dan interprestasi hasil
• Fungsionalitas dalam Data Mining meliputi mining association rule, karakterisasi
data multilevel, klasifikasi data, analisa cluster, dan pencarian pola sekuensial
• Teknik-teknik dalam Data Mining yang bisa diterapkan antara lain : market basket
analysis dan Algoritma Apriori.
By
HendraNet
http://www.hendra-jatnika.web.id
BAB 10 DATA MINING 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 1
111 201 5/1/2002 Milk 2
111 201 5/1/2002 Juice 1
112 105 6/3/2002 Pen 1
112 105 6/3/2002 Ink 1
112 105 6/3/2002 Water 1
113 106 5/10/2002 Pen 1
113 106 5/10/2002 Water 2
113 106 5/10/2002 Milk 1
114 201 6/1/2002 Pen 2
114 201 6/1/2002 Ink 2
114 201 6/1/2002 Juice 4
114 201 6/1/2002 Water 1
114 201 6/1/2002 Milk 1
Simulasikan algoritma untuk menemukan frequent itemset pada table degan minimum
support = 90 persen, lalu cari aturan asosiasi dengan minimum confidence = 90 persen.
By
HendraNet
http://www.hendra-jatnika.web.id

basis data lanjut modul

  • 1.
    MATA KULIAH BASIS DATALANJUT POLITEKNIK PIKSI GANESHA By Hendra Jatnika, S.Kom 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 “Pendalaman Materi dan Latihan diberikan pada waktu kuliah” By HendraNet http://www.hendra-jatnika.web.id
  • 2.
    1 Bab1 Review Database 1 POKOKBAHASAN: Pendahuluan ER-Model Model Relasional Structured Query Language Normalisasi TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami Database Management System dan komponen utamanya Memahami ER-Model dan dapat menggunakannya sebagai desain awal dari database Memahami SQL dan apa saja yang tercakup dalam bahasa SQL Memahami konsep normalisasi dan dapat melakukan normalisasi data 1.1. 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 By HendraNet http://www.hendra-jatnika.web.id
  • 3.
    BAB 1 REVIEWDATABASE 1 2 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. Sebagai contoh, basis data universitas berisi 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. Tujuan dari pengajaran mata kuliah basis data adalah untuk memberikan suatu pendahuluan mengenai sistem manajemen basis data, dengan penekanan pada baagimana cara mengorganisasi suatu informasi dalam DBMS, untuk memelihara informasi tersebut dan melakukan pengambilan informasi secara efektif, dan bagaimana 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. Sehingga agar bisa menggunakan DBMS dengan baik, perlu diketahui cara kerja dari DBMS tersebut. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 4.
    BAB 1 REVIEWDATABASE 1 3 Pada konteks yang lebih luas, ER model digunakan dalam fase desain basis data konseptual. 1.2.1. ENTITI, ATRIBUT, DAN HIMPUNAN ENTITI Entiti adalah obyek dunia nyata yang dapat dibedakan dari obyek yang lain. Entiti digambarkan (dalam basis data) dengan menggunakan himpunan atribut. Himpunan entiti yang sejenis disimpan dalam himpunan entiti. Himpunan entity : Kumpulan entity yang sejenis. Gambar 1-1: Entiti Pegawai (Employee) Misal : himpunan data pegawai o Semua entity dalam himpunan entity memiliki himpunan atribut yang sama o Tiap himpunan entity memiliki kunci (key) o Tiap atribut memiliki domain. 1.2.2. RELASI DAN HIMPUNAN RELASI Relasi adalah asosiasi diantara dua atau lebih entity Misal : Ani bekerja di Departemen Farmasi Gambar 1-2: Relasi antar Entiti By HendraNet http://www.hendra-jatnika.web.id
  • 5.
    BAB 1 REVIEWDATABASE 1 4 Himpunan Relasi : Himpunan dari relasi-relasi yang sejenis Himpunan relasi n-ary R berelasi dengan sejumlah himpunan entity n E1 … En Himpunan entity yang sama dapat berpartisipasi dalam himpunan relasi yang berbeda, atau mempunyai peran yang berbeda dalam suatu himpunan yang sama. Gambar 1-3: Self Relationship 1.2.3. FITUR TAMBAHAN UNTUK ER-MODEL Berikut ini dibahas beberapa fitur tambahan untuk ER-Model : Batasan Kunci (Key Constraints) • Pada suatu contoh kasus, seorang pegawai dapat bekerja pada beberapa departments; sebuah departement memiliki banyak pegawai • Sebaliknya, tiap departement hanya memiliki seorang manager, yang berhubungan dengan key constraint pada Manages. Gambar 1-4: Contoh Key Constraint antar Entiti By HendraNet http://www.hendra-jatnika.web.id
  • 6.
    BAB 1 REVIEWDATABASE 1 5 Gambar 1-5: Macam-macam Key Constraint Batasan Partisipasi (Participation Constraints) • Apakah setiap departemen mempunyai seorang manager ? o Jika semua departemen pasti mempunyai manager maka partisipasi Departements dalam Manages dapat dikatakan total. Sebaliknya jika tidak semua departement memiliki manager maka partisipasinya adalah partial. Gambar 1-6: Contoh Participation Constraint Entiti Lemah (Weak Entity) • 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). By HendraNet http://www.hendra-jatnika.web.id
  • 7.
    BAB 1 REVIEWDATABASE 1 6 Gambar 1-7: Contoh Weak Entity 1.2.4. HIRARKI KLAS Seperti pada C++, dan bahasa pemrograman yang lain, suatu atribut dapat diturunkan. Jika kita deklarasikan A ISA B, setiap entity A juga termasuk entity B. ♦ Overlap constraints : Bolehkah seorang pegawai mempunyai status sebagai pegawai dengan hitungan gaji perjam (Hourly_Emps) sama halnya seperti pegawai dengan perjanjian kontrak (Contract_Emps) ? (Boleh/Tidak) ♦ Covering constraints : Apakah setiap entity Employees juga merupakan entity Hourly_Emps dan Contract_Emps ? Gambar 1-8 : Hirarki Klas Alasan menggunakan ISA : ♦ Untuk menambahkan deskripsi atribut yang lebih spesifik pada subclass. ♦ Untuk mengidentifikasi entity yang berpartisipasi dalam suatu relasi. By HendraNet http://www.hendra-jatnika.web.id
  • 8.
    BAB 1 REVIEWDATABASE 1 7 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. Gambar 1-9: Contoh Aggregasi 1.3. MODEL RELASIONAL Basis Data Relasional adalah himpunan relasi. Suatu relasi adalah himpunan kolom atau tupel (semua barisnya bersifat distinct/unik). Sedangkan relasi itu sendiri terdiri dari dua bagian yaitu : ♦ Instance : table dengan baris dan kolom #baris = kardinalitas, #kolom/fields = degree/arity ♦ Skema : menentukan nama relasi, plus nama dan tipe kolom Contoh relasi misal : Students(sid : string, name : string, login : string, age : integer, gpa : real). By HendraNet http://www.hendra-jatnika.web.id
  • 9.
    BAB 1 REVIEWDATABASE 1 8 Gambar 1-10 : Contoh Instance dari Relasi Students 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 intuitif, dan DBMS bertanggungjawab untuk mengevaluasinya secara efisien. Kita dapat melakukan query pada beberapa table yang saling berelasi. Contoh pada table berikut jika terdapat table Enrolled yang berelasi dengan table Students sebelumnya dengan key field sid : Kemudian diberikan query : SELECT S.name, E.cid FROM Students S, Enrolled E WHERE S.sid=E.sid and E.grade=”A” Maka table yang dihasilkan dari query tersebut adalah : Yaitu mencari data Students (nama Students dan mata kuliah yang diikutinya) yang mendapat nilai “A”. By HendraNet http://www.hendra-jatnika.web.id
  • 10.
    BAB 1 REVIEWDATABASE 1 9 1.3.1. BATASAN INTEGRITAS (INTEGRITY CONSTRAINT) Batasan Integritas adalah suatu kondisi yang harus bernilai benar untuk suatu instance dalam basis data, misal : batasan domain ♦ Dispesifikasi saat skema didefinisikan ♦ Diperiksa pada saat suatu relasi dimodifikasi Instance dari relasi disebut legal jika bisa memenuhi semua batasan integritas (integrity constraints) yang telah dispesifikasi. Batasan integritas juga digunakan untuk menghindari kesalahan dari entry data Berikut akan dibahas satu persatu batasan integritas dalam model relasional. Batasan Kunci Primer (Primary Key Constraints) Himpunan suatu fields merupakan suatu key dari suatu relasi jika : ♦ Tidak ada dua tupel yang distinct yang mempunyai nilai yang sama untuk semua key fields, dan ♦ Key tersebut tidak memiliki subset. o Pernyataan 2 salah ? bagaimana dengan superkey o Jika terdapat lebih dari satu key untuk suatu relasi, maka salah satu dari key tersebut akan dipilih oleh DBA untuk menjadi primary key. Misal : sid adalah key untuk relasi Students. (Bagaimana dengan name), himpunan key (sid,gpa) adalah merupakan superkey. Primary dan Candidate Key dalam SQL : • Dari kemungkinan banyak candidate keys (dispesifikasi dengan menggunakan UNIQUE), salah satunya dapat dipilih menjadi primary key. • Seorang Students dapat mengambil suatu course dan hanya menerima satu nilai untuk grade dari course yang diikutinya. Berikut contoh penggunaan batasan kunci primer : CREATE TABLE Enrolled ( sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid) By HendraNet http://www.hendra-jatnika.web.id
  • 11.
    BAB 1 REVIEWDATABASE 1 10 CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid) UNIQUE(cid,grade)) Foreign Keys Foreign key adalah himpunan fields dalam satu relasi yang digunakan untuk melakukan referensi ke tupel pada relasi yang lain (Harus berkorespondensi dengan primary key pada relasi yang kedua). Berlaku seperti logical pointer Misal sid adalah foreign key yang direfer dari relasi Students : o Enrolled(sid : string, cid : string, grade : string) Foreign Keys dalam SQL : • Hanya Students yang terdaftar dalam relasi Students yang diperbolehkan untuk mengikuti suatu perkuliahan (course). CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students) 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). By HendraNet http://www.hendra-jatnika.web.id
  • 12.
    BAB 1 REVIEWDATABASE 1 11 Apa yang harus dilakukan jika tupel Students di-hapus ? o Hapus juga semua tupel Enrolled yang merefer ke tupel Students yang dihapus tersebut o Tidak mengijinkan dilakukan penghapusan jika tupel tersebut merefer ke tupel pada relasi yang lain (alternatif lain dari yang pertama) o Ubah sid dalam tupel Enrolled menjadi default sid (alternatif yang lain lagi). o (Dalam SQL, juga dapat dilakukan setting pada tupel Enrolled yang direfer oleh tupel Students yang dihapus tersebut dengan memberikan nilai khusus yaitu null, yang artinya ‘tidak diketahui’ (unknown atau inapplicable). Sama halnya jika primary key dari tupel Students dilakukan perubahan (update). SQL/92 mendukung pilihan berikut untuk perintah delete dan update : o Default-nya adalah tidak dilakukan apa-apa (pembatalan perintah delete/update). o CASCADE (juga men-delete semua tupel yang merefer ke tupel yang di- delete). o Set nilai NULL/DEFAULT (Set nilai foreign key dari tupel yang direferensi). Contoh pembuatan referential integrity : CREATE TABLE Enrolled (sid : CHAR(20), cid : CHAR(20), grade : CHAR(2), PRIMARY KEY(sid,cid), FOREIGN KEY(sid) REFERENCES Students ON DELETE CASCADE ON UPDATE SET DEFAULT) By HendraNet http://www.hendra-jatnika.web.id
  • 13.
    BAB 1 REVIEWDATABASE 1 12 1.4. STRUCTURED QUERY LANGUAGE Structured Query Language (SQL) adalah bahasa database relasional yang dibuat 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 dari sekali pada from list • select-list adalah daftar nama kolom (termasuk ekspresinya) dari tabel-tabel yang tercantum pada form list. Nama kolom dapat diawali dengan nama alias dari tabel. • Kualifikasi pada klausa WHERE merupakan kombinasi boolean atau pernyataan kata sambung logika dari kondisi yang menggunakan eksepresi yang melibatkan operator pembanding. Sedangkan ekspresi itu sendiri dapat berupa nama kolom, konstanta atau aritmatika dan string. • 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). By HendraNet http://www.hendra-jatnika.web.id
  • 14.
    BAB 1 REVIEWDATABASE 1 13 SQL mendukung lima operasi aggregat yang diterapkan pada sembarang kolom yaitu : • COUNT : untuk menghitung cacah • SUM : menghitung jumlah seluruh nilai • AVG : menghitung rata-rata nilai • MAX : mencari nilai paling besar • MIN : mencari nilai paling kecil. Kadangkala operasi aggregat diperlukan pada sekeompok grup dari baris pada relasi. Untuk menulis query semacam itu, dibutuhkan klausa GROUP BY. Dan penambahan klausa HAVING jika kita ingin menerapkan suatu kondisi terhadap data yang sudah dikelompokkan dengan GROUP BY. 1.5. NORMALISASI Normalisasi adalah perbaikan skema database. Latar belakang diperlukannya normalisasi adalah karena adanya penyimpanan informasi yang redundan. 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. 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 tunggal untuk setiap baris contoh: Tabel 1. sebelum bentuk normal pertama NIP Nama Hoby 10113024 Endang C Permana Olahraga Baca Buku 10113025 Samsul Dengar Musik Makan Table 2. yang sudah dalam bentuk normal pertama By HendraNet http://www.hendra-jatnika.web.id
  • 15.
    BAB 1 REVIEWDATABASE 1 14 NIP (Primary Key) Nama Hoby 10113024 Endang C Permana Olahraga 10113024 Endang C Permana Baca Buku 10113025 Samsul Dengar Musik 10113025 Samsul Makan Bentuk Normal Kedua (2NF) Suatu relasi dikatakan dalam bentuk normal kedua jika berada dalam normal pertama dan setiap atribut bukan kunci memiliki ketergantungan sepenuhnya terhadap kunci primer contoh: Tabel 3. sebelum bentuk normal kedua NIP (Primary Key) Nama Kd_Mata_kuliah Nilai 10113024 Endang C Permana001 70 10113024 Endang C Permana002 90 10113025 Samsul 003 100 10113025 Samsul 004 60 Table 4. yang sudah dalam bentuk normal kedua NIP (Primary Key) 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 Bentuk Normal Ketiga (3NF) By HendraNet http://www.hendra-jatnika.web.id
  • 16.
    BAB 1 REVIEWDATABASE 1 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 Endang C Permana Bandung 002 Endang C Permana Ebandung 003 Samsul Jakarta 004 Samsul Jakarta Table 7. yang sudah dalam bentuk normal ketiga Kode_Proyek Nama 001 Endang C Permana 002 Endang C Permana 003 Samsul 004 Samsul Table 8. Nama Alamat_kota Endang C Permana Bandung Samsul jakarta RINGKASAN: • Basis data adalah kumpulan data, yang dapat digambarkan sebagai aktifitas dari satu atau lebih organisasi yang berelasi. • 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. • Pada ER Model, gambaran dunia nyata diistilahkan dalam obyek dan relasinya dan digunakan untuk mengembangkan inisial dari desain basis data. By HendraNet http://www.hendra-jatnika.web.id
  • 17.
    BAB 1 REVIEWDATABASE 1 16 • Kelebihan dari model relasional adalah kesederhanaannya dalam melakukan query atas data. Query dapat ditulis secara intuitif, dan DBMS bertanggungjawab untuk mengevaluasinya secara efisien. • 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. LATIHAN SOAL : 1. Gambarlah sebuah diagram ER yang mengungkapkan informasi ini. Perusahaan rekaman Notown memutuskan untuk menyimpan semua informasi 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). • Tiap musisi yang melakukan rekaman di Notown mempunyai SSN, nama, alamat dan nomer telpon. Para musisi yang dibayar lebih rendah akan mendapatkan alamat yang sama dengan musisi lain, dan satu alamat mempunyai satu nomer telpon. • Tiap instrumen yang digunakan untuk merekam berbagai macam lagu di Notown mempunyai nama (contoh : gitar, sinthesizer, flute) dan kunci musik (contoh : C, B-flat, E-flat). • Tiap album yang dicatata di Notown mempunyai judul rekaman, tanggal copyright, format (contoh : CD atau MC) DAN SEBUAH INDENTIFIKASI ALBUM. By HendraNet http://www.hendra-jatnika.web.id
  • 18.
    BAB 1 REVIEWDATABASE 1 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. • Tiap album dibawakan seorang musisi yang berperan sebagai produser. Seorang musisi bisa menghasilkan beberapa album. 2. Perhatikan skema relasional berikut ini : Emp(eid:integer, ename : string, age : integer, salary: real) Works(eid:integer, did:integer, pct_time: integer) Dept(did:integer, dname: string, budget: real, managerid: integer) 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 ? 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. By HendraNet http://www.hendra-jatnika.web.id
  • 19.
    18 Bab2 Desain Basis Data POKOKBAHASAN: Pendahuluan Aturan Sistem Informasi dalam Organisasi Proses Desain Basis Data TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami aturan system informasi dalam organisasi Memahami proses desain basis data 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. Metodologi desain menggunakan alat Bantu seperti Designer 2000 dari 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. By HendraNet http://www.hendra-jatnika.web.id
  • 20.
    BAB 2 DESAINBASIS DATA 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. 2.2ATURAN SISTEM INFORMASI DALAM ORGANISASI 2.2.1 Organizational Context untuk Penggunaan Sistem Basis Data Sistem basis data menjadi bagian dari sistem informasi dari beberapa organisasi. Tahun 1960 an sistem informasi didominasi dengan sistem file, tetapi sejak awal 1970 an organisasi mulai berpindah ke sistem basis data. Untuk mengakomodasi sistem, beberapa organisasi menbuat posisi administrator basisi data (DBA) auntuk mengontrol aktifitas basis data. Kemudian, information resource management (IRM) juga 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 • Fungsi dalam organisasi dikomputerisasi, sebagai kebutuhan ketersediaan data yang besar dan up to date. • Seiring pertumbuhan data dan aplikasi relasi yang lebih kompleks dari data perlu dimodelkan dan diatur. • Terdapat konsolidasi dari information resource pada beberapa organisasi. Sistem basis data memenuhi 4 kebutuhan seperti dijelaskan sebelumnya dalam ukuran besar. Dua karakteristik tambahan dari sistem basis data yang juga sangat bernilai : • Data independence mem-proteksi program aplikasi dari perubahan dalam organisasi logika dan akses fisik dan struktur penyimpan. By HendraNet http://www.hendra-jatnika.web.id
  • 21.
    BAB 2 DESAINBASIS DATA 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 : • Integritas data pada multiple aplikasi ke dalam basis data tunggal. • Pengembangan yang simple dengan menggunakan bahasa tingkat tinggi seperti SQL. • 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 client-server sebagai pembuka pilihan mendistribusikan basis data ke banyak sistem komputer untuk kontrol yang lebih baik dan proses lokal yang lebih cepat. Alat bantu pengembangan aplikasi seperti POWERBUILDER atau Developer 2000 (oleh Oracle) lebih mudah digunakan dengan fasilitas built-in untuk menghubungkan aplikasi ke server basis data. 3. Beberapa organisasi sekarang menggunakan sistem data dictionary atau information repository, yaitu DBMS min yang mengatur metadata yaitu data yang menggambarkan struktur basis data, constraints, aplikasi, autorisasi dan sebagainya. Sistem data dictionary menyimpan dan mengatur informasi 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. By HendraNet http://www.hendra-jatnika.web.id
  • 22.
    BAB 2 DESAINBASIS DATA 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 Siklus Sistem Informasi Pada organisasi yang besar, sistem basis data adalah baigan dari sistem informasi, di dalamnya termasi semua resource yang dilibatkan dalam koleksi, manajemen, penggunaan dan disseminasi information resource dari organisasi. Pada sistem komputerisasi, resoruce adalah data itu sendiri, perangkat lunak DBMS, perangkat keras komputer siste, media penyimpan, personal yang menggunakan dan mengatur data (DBA, pemakai akhir, dan pemakai dsb), perangkat lunak aplikasi yang mengakses dan mengubah data dan programmer aplikasi yang mengembangkan aplikasi. Siklus sistem informasi disebut siklus makro, dimana siklus sistem basis data dirujuk ke siklus mikro. Siklus makro meliputi beberapa tahap yaitu : 1. Feasibility analysis : tahap ini berhubungan dengan analisa area aplikasi potensial, mengidentifikasi sisi ekonomi dari information gathering and dissemination, membentuk studi keuntungan awal, menentukan kompleksitas data dan proses, mengatur prioritas aplikasi. 2. Requirement collection and analysis : Kebutuhan detai dikumpulkan dengan interaksi dengan pemakai potensial dan kelompok pemakai untuk mengidentifikasi permasalahan dan kebutuhan khusus. Ketergantungan aplikasi, komunikasi dan prosedur pelaporan diindetifikasi. 3. Desain : Tahanp ini mempunayi dua aspek yaitu mendesain sistem basis data dan mendesain sistem aplikasi (program) yang menggunkaan dan memproses basis data. 4. Implementasi : Sistem informasi diimplementasi, basisi data dibentuk dan transaksi basis data diimplementasikan dan diujicoba. By HendraNet http://www.hendra-jatnika.web.id
  • 23.
    BAB 2 DESAINBASIS DATA 22 5. Validation and acceptance testing : Tingkat akses dari sistem dalam memenuhi kebutuhan pemakai dan kriteria performansi divalidasi. Sistem diujicoba dengan kriteria performanisi dan spesifikasi kelakukan. 6. Deployment, operation and maintenance : Pada tahap ini dilakukan konversi pemakai dari sistem lama ke sistem baru melalui training. Tahap operasional mulai jika semua fungsi sistem dioperasikan dan divalidasi. Jika kebutuhan baru atau aplikasi bertambah, maka harus melalui semua tahap sebelumnya sampai semua divalidasi dan berhubungan dengan sistem. Monitoring performansi sistem dan pemeliharaan sistem merupakan aktifitas yang penting selama tahap operasi. 2.2.3 Siklus Sistem Aplikasi Basis Data Aktifitas yang berhubungan dengan siklus sistem aplikasi basis data meliputi tahap berikut : 1. System definition : Scope dari sistem basis data, pemakai dan aplikasi didefinisikan. Antarmuka untuk pemakai, batasan response time dan kebutuhan penyimpan dan pemrosesan diidentifikasi. 2. Database design : Pada akhir dari tahap ini , desain logika dan fisik dari sistem basisi data dari DBMS sudah siap. 3. Database implementation : Tahap ini meliputi proses menentukan definisi basis data konseptual, eksternal dan internal, membuat file basis data kosong dan implementasi aplikasi perangkat lunak. 4. Loading or data conversion : Basis data dipopulasikan denan menyimpan data langsung atau mengubah file yang sudah ada ke format sistem basis data. 5. Application conversion : aplikasi perangkat lunak dari sistem pendahulu dikonversikan ke sistem baru. 6. Testing and validation : sistem baru diuji coba dan divalidasi 7. Operation : sistem basis data dan aplikasi dioperasikan. Biasanya sistem lama dan baru dioperasikan secara paralel dalam beberapa waktu. 8. Monitoring and maintenance : selama tahap operasional, sistem secara tetap dimonitor dan dipelihara. Perubahan dan pengembangan dapat terjadi baik By HendraNet http://www.hendra-jatnika.web.id
  • 24.
    BAB 2 DESAINBASIS DATA 23 pada isi data maupun aplikasi perangkat lunak. Modifikasi dan reorganisasi diperlukan dari waktu ke waktu. 2.3 PROSES DESAIN BASIS DATA Sekarang kita fokuskan ke siklus sistem aplikasi basisi data yaitu desain basis data. Tujuan desain basis data adalah : • Memenuhi kebutuhan isi informasi dari pemakai dan aplikasi tertentu. • Menyediakan struktur informasi alami dan mudah dipahami. • Mendukung kebutuhan pemrosesan dan performansi obyektif seperti response time, processing time dan storage space. Terdapat enam tahap utama pada proses desain basis ata yaitu : 1. Koleksi dan analisa kebutuhan 2. Desain basis data konseptual 3. Pemilihan DBMS 4. Pemetaan model data (disebut juga desain basis data logika) 5. Desain basis data fisik. 6. Implementasi dan tuning sistem basis data Proses desain terdiri dari dua aktifitas paralel seperti pada Gambar 2-1. Aktifitas pertama meliputi desain data content dan struktur basis data, kedua berhubungan dengan aplikasi basis data. Enam tahap diatas tidak diproses secara berurutan. Pada beberapa kasus 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. By HendraNet http://www.hendra-jatnika.web.id
  • 25.
    BAB 2 DESAINBASIS DATA 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. Gambar 2-1: Tahap perancangan basis data untuk basis data besar By HendraNet http://www.hendra-jatnika.web.id
  • 26.
    BAB 2 DESAINBASIS DATA 25 2.3.1 Tahap 1 : Koleksi dan Analisa Kebutuhan Sebelum melakukan desain basis data, harus mengetahui dan menganalisa keinginan pemakai terhadap suatu basis data sedetail mungkin. Proses ini disebut koleksi dan analisa kebutuhan. Untuk menentukan kebutuhan, pertama kali harus 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. Dokumen lain seperti police manual, form, report dan diagram organisasi di-review untuk menentukan apakah terdapat tambahan pada koleksi kebutuhan dan spesifikasi proses. 3. Lingkungan operasi saat ini dan rencana penggunaan informasi dipelajari. Termasuk di dalamnya analisa tipe transaksi dan frekuensi penggunaannya dan aliran informasi dalam sistem. Karakteristik geografi seperti pemakai, transaksi asli, tujuan pelaporan dipelajari. Data input dan output untuk transaksi 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 dilakukan interview untuk menolong dalam memperoleh informasi yang berharga dan setting prioritas. Analisa kebutuhan dibawa ke user akhir atau pelanggan sistem basis data oleh tim ahli analis kebutuhan. Kebutuhan awal lebih informal, tidak lengkap, tidak konsisten dan sebagian tidak benar. Perlu pekerjaan yang lebih banyak untuk 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 By HendraNet http://www.hendra-jatnika.web.id
  • 27.
    BAB 2 DESAINBASIS DATA 26 diagram). Metode tersebut menggunakan teknik diagram untuk mengorganisasi dan menampilkan kebutuhan proses informasi. Dokumentasi tambahan dalam bentuk teks, tabel, grafik dan keputusan melengkapi diagram tersebut. 2.3.2 Tahap 2 : Desain Basis Data Konseptual Tahap kedua dari perancangan basis data melibatkan dua aktifitas paralel. 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 tinggi DBMS-independent dengan beberapa alasan : 1. Tujuan desain skema konseptual adalah skema lengkap tentang struktur basis data, semantik, interrelationship dan constraint. Hal ini tergantung dari DBMS yang digunakan. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 28.
    BAB 2 DESAINBASIS DATA 27 2. Simplicity and understandability : model cukup sederhana untuk pemakai yang tidak mengerti dan menggunakan konsep tersebut. 3. Minimality : model mempunyai sejumlah kecil konsep dasar yang berbeda dan tidak overlapping. 4. Diagrammatic representation : model dalam bentuk notasi diagram untuk menampilkan skema konseptual yang mudah diintepretasikan. 5. Formality : skema konseptual ditampilkan dalam model data aharus merepesentasikan spesifikasi formal data. Sehingga, konsep model harus ditentukan secara akurat dan tidak berganda. Pendekatan ke Desain Skema Konseptual Untuk desain skema konseptual, harus diidentifikasi komponen dasar dari skema : tipe entiti, tipe relationship dan atribut. Harus juga menentukan key attributes, cardinality dan participation constraint, weak entity dan hierarki spesification / generatization. Terdapat dua pendekatan untuk merancang skema konseptual, yang diturunkan dari kebutuhan yang dikoleksi. Pendekatan pertama adalah pendekatan desain skema terpusat (one-shot), 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. Jika suatu skema konseptual dirancang dan final, skema eksternal untuk kelompok pemakai dan aplikasi dapat ditentukan oleh DBA Pendekatan kedua adalah pendekatan view integration, dimana kebutuhan tidak digabungkan. Suatu skema dirancang untuk setiap kelompok user atau aplikasi berdasarkan kebutuhan masing-masing. Kemudian dikembangkan skema level tinggin (view) untuk setiap kelompok user atau aplikasi. Selama tahap view integration, skema bagian digabungkan ke dalam skema konseptual global untuk keseluruhan basis data. Individual view dapat dibentuk sebagai skema eksternal setelah view integration. By HendraNet http://www.hendra-jatnika.web.id
  • 29.
    BAB 2 DESAINBASIS DATA 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. Strategi untuk Desain Skema Terdapat beberapa stategi untuk merancang skema, yaitu : 1. Top-down strategy : Dimulai dengan skema yang berisi abstraksi level tinggi dan kemudian mengaplikasikan ketentuan top-down. Sebagai contoh, tentukan 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. Jadi strategi ini mengkombinasikan beberapa skema. By HendraNet http://www.hendra-jatnika.web.id
  • 30.
    BAB 2 DESAINBASIS DATA 29 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 Gambar 2-2: Strategi top-down. (a) membangkitkan tipe entiti baru. (b) dekomposisi tipe entiti ke dalam dua tipe entiti dan relasi By HendraNet http://www.hendra-jatnika.web.id
  • 31.
    BAB 2 DESAINBASIS DATA 30 VEHICLE_OWNER ditemukan dari tipe entiti yang sudah ada yaitu FACULTY, STAFF dan STUDENT. Skema Integrasi (View) Untuk basis data yang besar dengan pemakai dan aplikasi yang diharapkan, pendekatan view integration untuk merancang skema individan dan kemudian menggabungkannya. Karena individual view relatif kecil, perancangan skema lebih sederhana. Tetapi diperlukan metodologi untuk integrasi view ke skema basis data global. Skema integrasi dibagi ke dalam beberapa bagian : Gambar 2-3: Contoh strategi bottom-up. (a) menemukan dan menambah relasi baru. (b) menemukan katagori baru (tipe union) dan menghubungkannya. By HendraNet http://www.hendra-jatnika.web.id
  • 32.
    BAB 2 DESAINBASIS DATA 31 1. Indentifikasi korespondensi dan konflik diantara skema : Karena skema dirancang individual, perlu menentukan konstruksi khusus dalam skema yang merepresentasikan konsep dunia nyata yang sama. Korespondensi diidentifikasi sebelum integrasi diproses. Selama proses tersebut, beberapa tipe konflik diantara skema ditemukan, antara lain : a. Naming conflict : Terdapat dua tipe synonym dan homonym. Synonym terjadi jika dua skema menggunakan nama yang berbeda dan menggambarkan konsep yang sama, misalnya, tipe entiti CUSTOMER pada satu skema mungkin digunakan sama dengan konsep tipe entiti CLIENT pada skema lain. Homonym terjadi jika dua skema menggunakan nama yang sama untuk enggambarkan konsep yang berbeda, sebagai contoh tipe entiti PART merepresentasikan perangkat komputer dalam skema satu dan perangkat mebel dalam skema dua. b. Type conflicts : Konsep yang sama kemungkinan direpresentasikan dalam dua skema dengan konstruksi pemodelan yang berbeda. Sebagai contoh, konsep DEPARTMENT mungkin tipe entiti dalam skema satu dan atribut dalam skema lain. a. Domain (value set) confict : Suatu atribut berbeda domain dalam dua skema. Sebagai contoh, SSN dideklarasikan sebagai integer dalam skema satu dan karakter string dalam skema lain. Konflik unit pengukuran dapa terjadi jika satu skema merepresentasikan WEIGHT dalam pon dan lainnya dalam kilogram. b. Konflik diantara constraint : Dua skema mungkin mempunyai constrain berbeda, sebagai contoh, key pada tipe entiti mungkin berbeda setiap skema. Contoh lain melibatkan constraint terstruktur yang berbeda pada relasi seperti TEACHES; satu skema mungkin direpresentasikan 1:N sementara lainnya M:N. 2. Modifikasi view untuk kesesuaian dengan lainnya : satu skema dimodifikasi sehigga sesuai dengan skema lainnya. Beerapa konflik diidentifikasi sebagai hal perama yang harus dipecahkan. 3. Menggabungkan view : Skema global dibuat dengan menggabungkan skema individu. Konsep yang berhubungan direpresaentasikan hanya sekali dalam By HendraNet http://www.hendra-jatnika.web.id
  • 33.
    BAB 2 DESAINBASIS DATA 32 skema global dan pemetaan antara view dan skema global ditentukan. Hal ini merupakan langkah yang sulit untuk melakukan pada basis data yang sebenarnya yang melibatkan ratusan entiti dan relasi. Hal ini melibatkan sejumlah intervensi manusia dan negosiasi untuk memecahkan konflig dan mendapatkan solusi yang dapat diterima untuk skema global. 4. Restrukturisasi : sebagai langkah akhir, skema global dianalisa dan direstrukturisasi untuk memindahkan redundansi dan konpleksitas yang tidak perlu. Beberapa ide diatas dapat dilihat pada contoh sederhana Gambar 2-4 dan 2-5. Gambar 2-4, dua view digabungkan untuk membuat basis data bibliografi. Selama identifikasi dari korespondensi antara dua view, ditemukan RESEARCHER dan AUTHOR adalah synonym, demikian juga CONTRIBUTED_BY dan WRITTEN_BY. Kemudian, menentukan modifikasi VIEW 1 untuk memasukan SUBJECT untuk ARTICLE, seperti Gambar 2-4, untuk konfirmasi ke VIEW 2. Gambar 2-5 menunjukkan hasil penggabungan sebagai MODIFIED VIEW 1 dengan VIEW 2. Generalisasi tipe entiti ARTICLE dan BOOK ke dalam tipe entiti PUBLICATION, dengan atribut umum Title. Relasi CONTRIBUTED_BY dan WRITTEN_BY digabungkan, demikian juga tipe entiti RESEARCHER dan AUTHOR. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 34.
    BAB 2 DESAINBASIS DATA 33 Gambar 2-4: Modifikasi view untuk konfirmasi sebelum integrasi. By HendraNet http://www.hendra-jatnika.web.id
  • 35.
    BAB 2 DESAINBASIS DATA 34 Teknik yang umum digunakan untuk menentukan transaksi pada level konseptual adalah mengidentifikasi input/output dan functional behavior. Dengan menentukan parameter input dan ouput dan aliran fungsi internal, desainer dapat mennetukan transaksi secara konseptual dan dengan cara system-independent. Transaksi dikelompokkan dalam tiga kategori : (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. Update transaction berupa booking tempat duduk pada jalur tertentu. Mixed transaksi pada penampilan beberapa data seperti menampikan reservasi pelanggan pada beberapa penerbangan, dan kemudian mengubah basis data seperti membatalkan reservasi dengan menghapusnya, atau menambah segmen penerbangan untuk reservasi yang sudah ada. Transaksi (aplikasi) dapat menggunakan POWER BUILDER atau Developer 2000 (Oracle). Gambar 2-5: Skema terintegrasi setelah menggabungkan view 1 dan view 2. By HendraNet http://www.hendra-jatnika.web.id
  • 36.
    BAB 2 DESAINBASIS DATA 35 2.3.3 Tahap 3 : Pemilihan DBMS Pemilihan DBMS berdasarkan beberapa faktor, beberapa hal teknis, ekonomi dan 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. Hal-hal yang harus dipertimbangkan secara ekonomi dan faktor 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 muka Web berbasis GUI, pilihan recovery/backup, metode akses khusu dan dokumentasi. Versi DBMS yang tepat untuk sistem operasi harus dipilih Biasanya, alat bantu pengembangan, alat bantu desain dan dukungan bahasa tambahan tidak termasuk dalam harga dasar. 2. Maintenance cost : Berhubungan dengan harga layanan pemeliharaan standart dari vendor dan untuk menjaga versi DBMS tetap up to date. 3. Hardware acquisition cost : perangkat keras baru mungkin diperlukan, seperti memory, terminal, disk drive dan controller baru, atau penyimpan DBMS khusus. 4. Database creation and conversion cost : Berhubungan dengan biaya pembuatan sistem basis data dari konversi sistem yang sudah ada ke perangkat lunak DBMS baru. Operasi sistem yang sudah ada dilakukan paralel dengaan sistem baru sampai semua aplikasi diimplementasikan penuh dan diujicoba. 5. Personal cost : Akuisisi perangkat lunak DBMS untuk pertama kali oleh organisasi biasanya dilakukan dengan reorganisasi departemen data processing. 6. Training cost : Karena DBMS biasanya berupa sistem komplek, personal harus ditraining menggunakan dan memprogram DBMS. Training diperlukan pada semua level, termasuk programming, pengembangan aplikasi dan administrasi basis data. By HendraNet http://www.hendra-jatnika.web.id
  • 37.
    BAB 2 DESAINBASIS DATA 36 7. Operating cost : Biaya operasi lanjutan dari sistem basis data biasanya tidak termasuk dalam evaluasi. Keuntungan DBMS tidak mudah diukur dan dihitung. DBMS mempunyai beberapa keuntungan dibandingkan sistem file, seperti mudah penggunaan, konsolidasi informasi perusahaan yang lebih luas, ketersediaan data yang lebih luas, dan akses yang lebih cepat ke informasi. Dengan akses berbasis Web, bagian data dapat dibuat akses global seperti pemakai luar. Keuntungan lainnya adalah mengurangi biaya 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 redundansi file dan lebih besar kebutuhan akan DBMS 3. Perumbuhan dan perubahan data secara dinamis : Jika data berubah secara konstan, lebih mudah untuk melakukan perubahan dengan DBMS dibandingkan dengan sistem file. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 38.
    BAB 2 DESAINBASIS DATA 37 3. Availability of vendor service : ketersediaan asisten vendor dalam pemecahan permasalahan dengan sistem sangat penting, karena perubahan dari non-DBMS ke lingkungan DBMS kebanyakan membutuhkan bantuan vendor pada awalnya. Beberapa DBMS sekarang mempunyai versi yang berjalan pada beberapa konfigurasi perangkat keras / perangkat lunak (platform). Kebutuhan aplikasi untuk backup, recovery, performansi, integritas dan sekuriti harus juga dipertimbangkan. Beberapa DBMS sekarang dirancang sebagai solusi total untuk pemrosesan informasi dan manajemen sumber daya informasi yang diperlukan dalam organisasi. Kebanyakan vendor DBMS mengkombinasikan produk mereka dengan pilihan berikut : • Editor teks dan browser • Pembangkit laporan dan daftar utilitas • Perangkat lunak komunikasi • Entri data dan menampilkan form, layar, dan menu dengan pengeditan otomatis • Alat bantu untuk mengakses World Wide Web • Alat bantu merancang basis data grafis. 2.3.4 Tahap 4 : Pemetaan Model Data (Desain Basis Data Logika) Tahap berikutnya dari perancangan basis data adalah membuat skema konseptual dan skema eksernal damal model data dari DBMS terpilih dengan memetakan skema tersebut. Proses pemetaan dalam dua bentuk : 1. System-independet mapping : Pada bentuk ini, pemetaan tidak mempertimbangkan karakteristik khusus datau kasus khusus yang diaplikasikan ke implementasi DBMS dari model data. 2. Tailoring the schemas to aspecific DBMS : DBMS yang berbeda mengimplementasikan model data dengan menggunakan pemodelah khusus. Hasil dari tahap ini berupa pernyataan DDK dalam bahasa DBMS terpilih yang merupakan skema level konseptual dan eksternal dalam sistem basis data. Tetapi jika pernyataan DDL termasuk beberapa parameter rancangan fisik, spesifikasi DDL yang lengkap harus menuggu setelah tahap rancangan basis data fisik selesai. Beberapa alat bantu CASE (computer-assisted software engineering) otomatis dapat membangkitkan DDb untuk sistem komersial dari rancangan skema konseptual. By HendraNet http://www.hendra-jatnika.web.id
  • 39.
    BAB 2 DESAINBASIS DATA 38 2.3.5 Tahap 5 : Desain Basis Data Fisik Perancangan basis data fisik adalah proses memilih struktur penyimpan khusus 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 digunakan file basis data dan struktur akses path pada disk, termasuk pengindeksan dan akses path lain. 3. Transaction throughput : Merupakan jumlah transaksi rata-rata yang dapat diproses per metnin, merupakan parameter kritis dari sistem transaksi seperti yang digunakan pada reservasi pesawat atau bank. Hasil dari rancangan basis data fisik dalam tahap ini merupakan ketentuan awal dari struktur penyimpan dan akses path untuk file basis data. Juga selalu diperlukan modifikasi rancangan berdasarkan observasi performansi setelah sistem basis data diimplementasikan. Aktifitas tahap berikutnya adalah tuning basis data. 2.3.6 Tahap 6 : Implementasi Basis Data dan Tuning Setelah rancangan logika dan fisik selesai, kita dapat mengimplementasikan 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. By HendraNet http://www.hendra-jatnika.web.id
  • 40.
    BAB 2 DESAINBASIS DATA 39 Transaksi basis data harus diimplementasikan dengan aplikasi yang dibuat programming berdasarkan spesifikasi konseptual dari transaksi dan kemudian menulis dan melakukan uji coba kode porgram dengan perintah DML. Jika transaksi siap dan data disimpan ke basis data, tahap rancangan dan implementasi selesai dan tahap operasi dari sistem basis data dimulai. RINGKASAN: • Terdapat aturan system informasi dalam organisasi, system basis data dilihat sebagai bagian system informasi dalam aplikasi berskala besar. • Basis data sebagai manajemen resourse informasi dalam organisasi dan kelangsungan hidupnya harus tetap berjalan. • Terdapat 6 tahap dalam proses perancangan. Tiga tahap yang umum dalam rancangan basis data adalah rancangan konseptual, rancangan logika (pemetaan model data) dan rancangan fisik. Sedangkan tahap inisial adalah koleksi dan analisa kebutuhan yang biasanya termasuk dalam tahap pra desain. • Ada beberapa criteria organisasi dalam pemilihan DBMS • Jika permasalahan performansi terdeteksi dan aplikasi baru diaplikasikan, rancangan harus dimodifikasi • Pada basis data relasional, factor yang berakibat pada keputusan rancangan basis data fisik dan mnyediakan tuntunan pemilihan alternative rancangan desain By HendraNet http://www.hendra-jatnika.web.id
  • 41.
    BAB 2 DESAINBASIS DATA 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. 7. Bagaimana karakteristik dari model data untuk rancangan skema konseptual harus diproses ? 8. Apa perbedaan dua pendekatan utama dalam rancangan skema konseptual 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 ? By HendraNet http://www.hendra-jatnika.web.id
  • 42.
    41 Bab3 Query Lanjutan POKOK BAHASAN: Subquerydan 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: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan : Dapat menulis subquery dengan banyak kolom Dapat menggambarkan dan menjelaskan karakteristik dari subqueries pada saat didapatkan nilai NULL Dapat menulis subquery dalam klausa FROM Dapat menggunakan scalar subqueries dalam SQL Dapat menggambarkan tipe dari persoalan yang dapat dipecahkan dengan menggunakan sub query yang berkorelasi. Dapat menulis subquery yang berkorelasi. Melakukan Update dan Delete baris dengan menggunakan subqueries yang berkorelasi. Dapat menggunakan operator EXISTS dan NOT EXISTS Dapat menggunakan klausa WITH By HendraNet http://www.hendra-jatnika.web.id
  • 43.
    BAB 3 QUERYLANJUTAN 42 3.1. TABEL YANG DIGUNAKAN PADA PEMBAHASAN 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 2. Tabel EMPLOYEES By HendraNet http://www.hendra-jatnika.web.id
  • 44.
    BAB 3 QUERYLANJUTAN 43 3. Tabel JOB_HISTORY 3.2. APA ITU SUBQUERY ? Bagian ini membahas tentang penggunaan subquery dalam Query Lanjutan. Apa yang disebut dengan SubQuery ? Subquery adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL Statement yang lain. Gambar 3-1: Subquery dalam Main Query 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 ... FROM ... WHERE ... (SELECT ... FROM ... WHERE ...) MainMain queryquery SubquerySubquery SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table); By HendraNet http://www.hendra-jatnika.web.id
  • 45.
    BAB 3 QUERYLANJUTAN 44 3.3 PENGGUNAAN SUBQUERY Subquery mengembalikan nilai ke main query. Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values). Berikut ini diberikan contoh penggunaan subquery. Query diatas akan menampilkan nama pegawai yang gajinya lebih dari pegawai dengan nomer pegawai 149. Sebelumnya, gaji dari pegawai dengan nomer pegawai 149 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. 3.4. SUBQUERY BANYAK KOLOM Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-column. Berikut ini contoh pembandingan dengan banyak kolom dan baris : SELECT last_name FROM employees WHERE salary > (SELECT salary FROM employees WHERE employee_id = 149) ; 1050010500 Main query WHERE (MANAGER_ID, DEPARTMENT_ID) IN Subquery 100 90 102 60 124 50 By HendraNet http://www.hendra-jatnika.web.id
  • 46.
    BAB 3 QUERYLANJUTAN 45 3.5. PEMBANDINGAN KOLOM Pembandingan kolom dalam subquery banyak kolom dapat berupa : • Pembandingan berpasangan (Pairwise Comparison SubQuery) • Pembandingan tidak berpasangan (NonPairwise Comparison SubQuery) 3.5.1. PAIRWISE COMPARISON SUBQUERY Berikut contoh pembandingan berpasangan untuk menampilkan detail dari data pegawai yang dimanajeri oleh manajer dan department yang sama dengan yang dimiliki oleh nomer pegawai 178 3.5.2. NONPAIRWISE COMPARISON SUBQUERY Berikut contoh pembandingan tidak berpasangan untuk menampilkan detail dari data pegawai yang dimanajeri oleh manager yang sama dengan pegawai dengan nomer pegawai 174 atau 141 dan bekerja dalam departement yang sama dengan pegawai yang memiliki nomer pegawai 174 atau 141. SELECT employee_id, manager_id, department_id FROM employees WHERE (manager_id, department_id) IN (SELECT manager_id, department_id FROM employees WHERE employee_id IN (178,174)) AND employee_id NOT IN (178,174); SELECT employee_id, manager_id, department_id FROM employees WHERE manager_id IN (SELECT manager_id FROM employees WHERE employee_id IN (174,141)) AND department_id IN (SELECT department_id FROM employees WHERE employee_id IN (174,141)) AND employee_id NOT IN(174,141); By HendraNet http://www.hendra-jatnika.web.id
  • 47.
    BAB 3 QUERYLANJUTAN 46 3.6. PENGGUNAAN QUERY DALAM KLAUSA FROM Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer. Query semacam ini dikenal juga dengan istilah inline view, karena tidak membentuk object database. Berikut ini contoh penggunaan Query dalam klausa FROM. Query diatas menampilkan nama dan gaji dari pegawai yang gajinya lebih besar dari rata-rata gaji pegawai pada departemen tempat dia bekerja. 3.7. EKSPRESI SCALAR SUBQUERY Ekspresi scalar subquery adalah subquery yang mengembalikan hanya satu nilai kolom dari satu baris. Scalar subquery pada standart SQL-92 hanya terbatas pada : • SELECT Statement (klausa FROM dan WHERE saja) • Daftar VALUE dari statement INSERT Pada standart SQL-99, scalar subqueries dapat diguanakan dalam : • Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE. • Semua klausa dari SELECT Statement kecuali GROUP BY. SELECT a.last_name, a.salary, a.department_id, b.salavg FROM employees a, (SELECT department_id, AVG(salary) salavg FROM employees GROUP BY department_id) b WHERE a.department_id = b.department_id AND a.salary > b.salavg; By HendraNet http://www.hendra-jatnika.web.id
  • 48.
    BAB 3 QUERYLANJUTAN 47 Berikut ini contoh penggunaan scalar subquery dalam ekspresi CASE : Berikut ini contoh penggunaan scalar subquery dalam klausa ORDER BY : 3.8. KORELASI SUBQUERY Korelasi SubQuery digunakan untuk pemrosesan baris per baris. Tiap-tiap subquery dijalankan sekali untuk setiap baris dari outer query. Prosesnya sebagai berikut : Gambar 3-2 : Proses Korelasi Subquery SELECT employee_id, last_name, (CASE WHEN department_id = THEN 'Canada' ELSE 'USA' END) location FROM employees; (SELECT department_id FROM departments WHERE location_id = 1800) 2020 SELECT employee_id, last_name FROM employees e ORDER BY (SELECT department_name FROM departments d WHERE e.department_id = d.department_id); AMBIL Baris dari outer query JALANKAN inner query dengan menggunakan nilai baris kandidat GUNAKAN Nilai dari inner query untuk qualify / disqualify baris kandidat By HendraNet http://www.hendra-jatnika.web.id
  • 49.
    BAB 3 QUERYLANJUTAN 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 : Pada gambar diatas, subquery merefer ke kolom dari tabel yang ada pada parent atau outer query. Berikut ini contoh penggunaan korelasi subquery untuk mencari pegawai yang penghasilannya melebihi rata-rata penghasilan pada departemen tempat mereka bekerja. Berikut ini contoh yang lain dari korelasi subquery yaitu untuk menampilkan pegawai yang pernah berganti job maksimal dua kali. SELECT column1, column2, ... FROM table1 WHERE column1 operator (SELECT colum1, column2 FROM table2 WHERE expr1 = .expr2); outer outer SELECT last_name, salary, department_id FROM employees outer WHERE salary > Setiap saat baris dari outer query diproses, maka inner query dievaluasi. (SELECT AVG(salary) FROM employees WHERE department_id = outer.department_id) ; By HendraNet http://www.hendra-jatnika.web.id
  • 50.
    BAB 3 QUERYLANJUTAN 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 : Lakukan denormalisasi pada table EMPLOYEES dengan menambahkan satu kolom pada tabel EMPLOYEES untuk menyimpan nama departemen. Kemudian isi dari kolom nama departemen didapatkan dari tabel DEPARTMENTS dengan menggunakan Korelasi Update : SELECT e.employee_id, last_name,e.job_id FROM employees e WHERE 2 <= (SELECT COUNT(*) FROM job_history WHERE employee_id = e.employee_id); UPDATE table1 alias1 SET column = (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column); By HendraNet http://www.hendra-jatnika.web.id
  • 51.
    BAB 3 QUERYLANJUTAN 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 : Berikut contoh penggunaan Korelasi DELETE untuk menghapus baris-baris dari tabel EMPLOYEES yang juga terdapat pada tabel EMP_HISTORY. 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. Jika tidak ditemukan, maka : • Kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query. Berikut penggunaan operator EXISTS untuk mencari pegawai yang memiliki sedikitnya satu orang bawahan. DELETE FROM table1 alias1 WHERE column operator (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column); DELETE FROM employees E WHERE employee_id = (SELECT employee_id FROM emp_history WHERE employee_id = E.employee_id); By HendraNet http://www.hendra-jatnika.web.id
  • 52.
    BAB 3 QUERYLANJUTAN 51 Berikut contoh penggunaan operator NOT EXIST untuk menampilkan semua departemen yang tidak mempunyai pegawai. 3.10. PENGGUNAAN KLAUSA WITH Dengan menggunakan klausa WITH, kita dapat menggunakan blok query yang sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query. Klausa WITH mendapatkan hasil dari blok query dan menyimpannya dalam tablespace temporer kepunyaan user. Klausa WITH dapat meningkatkan performansi. SELECT employee_id, last_name, job_id, department_id FROM employees outer WHERE EXISTS ( SELECT 'X' FROM employees WHERE manager_id = outer.employee_id); SELECT department_id, department_name FROM departments d WHERE NOT EXISTS (SELECT 'X' FROM employees WHERE department_id = d.department_id); By HendraNet http://www.hendra-jatnika.web.id
  • 53.
    BAB 3 QUERYLANJUTAN 52 Berikut ini contoh penggunaan klausa WITH : Contoh penggunaan klausa WITH diatas digunakan untuk menampilkan nama departemen dan total gaji untuk tiap departemen yang memiliki total gaji lebih besar dari gaji rata-rata pada sembarang department. RINGKASAN: Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown values) Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-column. Pembandingan kolom dalam subquery banyak kolom dapat berupa pembandingan berpasangan (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. 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 FROM dept_costs) SELECT * FROM dept_costs WHERE dept_total > (SELECT dept_avg FROM avg_cost) ORDER BY department_name; By HendraNet http://www.hendra-jatnika.web.id
  • 54.
    BAB 3 QUERYLANJUTAN 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 nomer pegawai yang sama dengan pegawai yang bertempat tinggal di kota yang nama kotanya diawali dengan huruf T. 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 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. By HendraNet http://www.hendra-jatnika.web.id
  • 55.
    BAB 3 QUERYLANJUTAN 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. By HendraNet http://www.hendra-jatnika.web.id
  • 56.
    55 Bab4 Optimasi Query POKOK BAHASAN: OptimasiPerintah SQL Informasi Jalur Akses Query Faktor-faktor yang berpengaruh terhadap kecepatan akses data TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami latar belakang diperlukannya optimasi query Memahami cara melakukan optimasi perintah SQL Memahami faktor-faktor yang berpengaruh terhadap kecepatan akses data 4.1. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 57.
    BAB 4 OPTIMASIQUERY 56 4.2. OPTIMASI PADA PERINTAH SQL Desain aplikasi saja tidak cukup untuk meningkatkan unjuk kerja harus didukung 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. Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut : CREATE INDEX idx_kota_prop_kodepos ON karyawan(kota, propinsi, kode_pos) TABLESPACE INDX; Kemudian user melakukan query sebagai berikut : SELECT * FROM karyawan WHERE propinsi=’Jawa Barat’; Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama (kota) tidak digunakan dalam klausa WHERE. Jika user sering melakukan query ini, maka kolom index harus diurutkan menurut propinsi. Selain itu, proses pencarian data akan lebih cepat jika data terletak pada block tabel yang berdekatan daripada harus mencari di beberapa datafile yang terletak pada block yang berbeda. Misal pada perintah SQL berikut ini : SELECT * FROM karyawan WHERE id BETWEEN 1010 AND 2010; By HendraNet http://www.hendra-jatnika.web.id
  • 58.
    BAB 4 OPTIMASIQUERY 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 Bagaimana cara melihat jalur akses yang akan digunakan database saat melakukan query ? Pada Database Oracle, informasi ini dapat dilihat dengan menggunakan perintah explain plan, yang akan memberi informasi tentang rencana 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%RDBMSADMIN. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 59.
    BAB 4 OPTIMASIQUERY 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 yang indent-nya paling dalam yaitu : TABLE ACCESS FULL KARYAWAN. Dikarenakan klausa WHERE melibatkan kolom gaji namun kolom gaji tidak ada index-nya, maka Oracle melakukan full table scan. Setelah seluruh tabel karyawan selesai dibaca, selanjutnya adalah SELECT STATEMENT yang berfungsi untuk menampilkan hasil query. 4.4. FAKTOR LAIN YANG BERPENGARUH TERHADAP KECEPATAN AKSES DATA Faktor lain yang berpengaruh terhadap kecepatan akses data, tidak hanya terletak 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. By HendraNet http://www.hendra-jatnika.web.id
  • 60.
    BAB 4 OPTIMASIQUERY 59 4.4.1. OPTIMASI APLIKASI Dalam pembuatan aplikasi, yang perlu mendapat perhatian adalah apakah akses terhadap data sudah efisien. Efisien dalam hal penggunaan obyek yang mendukung kecepatan akses, seperti index atau cluster. Kemudian juga bagaimana cara database di- desain. Apakah desain database sudah melakukan normalisasi data secara tepat. Kadangkala normalisasi sampai level yang kesekian, tidak menjamin suatu desain yang efisien. Untuk membuat desain yang lebih tepat, kadang setelah melakukan normalisasi perlu dilakukan denormalisasi. Misalnya tabel yang hubungannya one-to- one dan sering diakses bersama lebih baik disatukan dalam satu tabel. 4.4.2. CLUSTER DAN INDEX Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda dalam suatu struktur fisik disk yang berdekatan. Konfigurasi ini bermanfaat untuk akses data dari beberapa tabel yang sering di-query. Penggunaan cluster secara tepat dilaksanakan setelah menganalisa tabel-tabel mana saja yang sering di-query secara bersamaan menggunaan perintah SQL join. Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang 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. By HendraNet http://www.hendra-jatnika.web.id
  • 61.
    BAB 4 OPTIMASIQUERY 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. • Penggunaan Index pada database secara tepat, dapat digunakan untuk meningkatkan kecepatan akses 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 dipengaruhi oleh beberapa komponen arsitektur pembentuknya seperti shared pool, buffer cache, dan redo log buffer. • Optimasi aplikasi tergantung pada efisiensi penggunaan obyek yang mendukung kecepatan akses seperti index atau cluster, dan normalisasi data pada desain database. LATIHAN SOAL : 1. Apa latar belakang dari diperlukannya optimalisasi kecepatan akses data ? 2. Optimasi query dalam hubungannya dengan desain database melibatkan dua hal, yaitu ….. dan …… 3. Proses pencarian data yang telah diindeks akan lebih cepat jika data yang dicari terletak pada ……………… 4. Bagaimana cara melihat jalur akses yang akan digunakan database saat melakukan query ? Tunjukkan tahap-tahap yang digunakan untuk melakukan hal tersebut ! 5. Sebutkan factor-faktor lain yang berpengaruh terhadap kecepatan akses data selain optimasi pada perintah SQL ! 6. Beberapa database engine melibatkan komponen pada arsitekturnya untuk disesuaikan agar akses data lebih cepat dan efisien, berikan contohnya ! By HendraNet http://www.hendra-jatnika.web.id
  • 62.
    61 Bab5 Database Trigger POKOK BAHASAN: Pembuatandan Penggunaan Trigger Statement trigger Row Trigger Menggunakan Old dan New Qualifiers Klausa WHEN pada trigger Perintah-perintah umum pada Trigger TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami macam-macam tipe trigger Memahami trigger dan penggunaannya Dapat membuat database trigger Memahami database trigger yang dapat mengaktifkan sebuah aturan Menghapus database trigger 5.1. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 63.
    BAB 5 DATABASETRIGGER 62 5.2. PENGGUNAAN TRIGGER Trigger dibuat sesuai dengan keperluan. Ada kalanya trigger perlu dibuat, dan kadangkala tidak perlu dibuat. Trigger perlu dibuat pada saat : • membentuk sebuah aksi tertentu terhadap suatu event • Memusatkan operasi global Trigger tidak perlu dibuat, jika : • Fungsionalitas yang diperlukan suatu ada pada Oracle server • Duplikat atau sama dengan fungsi trigger yang lain. Prosedur bisa dibuat dalam database, kemudian prosedur tersebut dipanggil pada trigger. Jika penggunaan trigger terlalu berlebihan, maka akan menyebabkan terjadi sifat ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit pemeliharaan dari aplikasi yang besar. Gambar berikut ini menunjukkan ilustrasi dari penggunaan trigger : Gambar 5.1. Penggunaan Trigger Pada gambar tersebut, database trigger CHECK_SAL memeriksa nilai gaji pada saat suatu aplikasi mencoba untuk memasukkan baris baru ke dalam table By HendraNet http://www.hendra-jatnika.web.id
  • 64.
    BAB 5 DATABASETRIGGER 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 Komponen dari sebuah trigger ada 6 (enam), yaitu : trigger timing, trigger event, nama tabel, tipe trigger, klausa WHEN, dan trigger body. Berikut ini penjelasan komponen dari trigger. Trigger timing adalah waktu kapan trigger diaktifkan. Ada tiga macam trigger timing, yaitu : • BEFORE : trigger dijalankan sebelum DML event pada tabel • AFTER : trigger dijalankan setelah DML event pada tabel • INSTEAD OF : trigger dijalankan pada sebuah view. Trigger event ada 3 kemungkinan : INSERT, UPDATE atau DELETE. Pada saat trigger event UPDATE, kita dapat memasukkan daftar kolom untuk 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. By HendraNet http://www.hendra-jatnika.web.id
  • 65.
    BAB 5 DATABASETRIGGER 64 • Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya sebuah event. Row trigger tidak dijalankan jika event dari trigger tidak berpengaruh pada satu baris pun. Trigger body mendefinisikan tindakan yang perlu dikerjakan pada saat terjadinya event yang mengakibatkan sebuah trigger menjadi aktif. 5.4. CONTOH PEMBUATAN TRIGGER Contoh berikut ini akan mengaktifkan sebuah trigger pada saat sebuah baris tunggal dimanipulasi pada tabel : Misal diberikan perintah DML untuk menyisipkan baris baru ke dalam tabel sebagai berikut : INSERT INTO departments (department_id, department_name, location_id) VALUES (400, 'CONSULTING', 2400); Ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut : Gambar 5.2. Ilustrasi timing pada Trigger 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; By HendraNet http://www.hendra-jatnika.web.id
  • 66.
    BAB 5 DATABASETRIGGER 65 Maka ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut : 5.5. DML STATEMENT TRIGGER Berikut ini sintak atau cara penulisan untuk pembuatan DML Statement trigger : CREATE [OR REPLACE] TRIGGER trigger_name timing event1 [OR event2 OR event3] ON table_name trigger_body Berikut contoh pembuatan DML Statement trigger : CREATE OR REPLACE TRIGGER secure_emp BEFORE INSERT ON employees BEGIN IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR (TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND '18:00') THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data pada table EMPLOYEES hanya diperbolehkan selama jam kerja'); END IF; END; / Contoh trigger diatas akan membatasi penyisipan baris baru ke dalam table EMPOYEES diperbolehkan hanya pada jam kerja mulai hari Senin sampai Jum’at. Jika By HendraNet http://www.hendra-jatnika.web.id
  • 67.
    BAB 5 DATABASETRIGGER 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 : 5.6. MENGKOMBINASIKAN EVENT PADA TRIGGER Beberapa event pada trigger bisa dikombinasikan dalam sebuah trigger dengan menggunakan predikat kondisional INSERTING, UPDATING dan DELETING. Berikut ini akan dibuat trigger yang menggunakan predikat kondisional INSERTING, UPDATING dan DELETING untuk membatasi manipulasi data pada tabel EMPLOYEES hanya diperbolehkan pada setiap jam kerja mulai hari Senin sampai Jum’at. BEFORE INSERT OR UPDATE OR DELETE ON employees BEGIN IF (TO_CHAR (SYSDATE,'DY') IN ('SAT','SUN')) OR (TO_CHAR (SYSDATE, 'HH24') NOT BETWEEN '08' AND '18') THEN IF DELETING THEN RAISE_APPLICATION_ERROR (-20502,'You may delete from EMPLOYEES table only during business hours.'); ELSIF INSERTING THEN RAISE_APPLICATION_ERROR (-20500,'You may insert into EMPLOYEES table only during business hours.'); ELSIF UPDATING ('SALARY') THEN By HendraNet http://www.hendra-jatnika.web.id
  • 68.
    BAB 5 DATABASETRIGGER 67 RAISE_APPLICATION_ERROR (-20503,'You may update SALARY only during business hours.'); ELSE RAISE_APPLICATION_ERROR (-20504,'You may update EMPLOYEES table only during normal hours.'); END IF; END IF; END; 5.7. ROW TRIGGER Berikut ini sintak atau cara penulisan untuk membuat Row Trigger : CREATE [OR REPLACE] TRIGGER trigger_name timing event1 [OR event2 OR event3] ON table_name [REFERENCING OLD AS old | NEW AS new] FOR EACH ROW [WHEN (condition)] trigger_body 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 : By HendraNet http://www.hendra-jatnika.web.id
  • 69.
    BAB 5 DATABASETRIGGER 68 UPDATE employees SET salary = 15500 WHERE last_name = 'Russell'; 5.8. MENGGUNAKAN OLD DAN NEW QUALIFIERS Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data dapat dirujuk dengan menggunakan OLD dan NEW qualifier. OLD dan NEW hanya digunakan pada Row Trigger. OLD dan NEW menggunakan prefiks (:) untuk 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 : CREATE OR REPLACE TRIGGER audit_emp_values AFTER DELETE OR INSERT OR UPDATE ON employees FOR EACH ROW BEGIN INSERT INTO audit_emp_table (user_name, timestamp, id, old_last_name, new_last_name, old_title, new_title, old_salary, new_salary) VALUES (USER, SYSDATE, :OLD.employee_id, :OLD.last_name, :NEW.last_name, :OLD.job_id, :NEW.job_id, :OLD.salary, :NEW.salary ); END; / 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; By HendraNet http://www.hendra-jatnika.web.id
  • 70.
    BAB 5 DATABASETRIGGER 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. PENGGUNAAN KLAUSA WHEN PADA TRIGGER Untuk membatasi operasi trigger hanya pada baris yang memenuhi kondisi 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. CREATE OR REPLACE TRIGGER derive_commission_pct BEFORE INSERT OR UPDATE OF salary ON employees FOR EACH ROW WHEN (NEW.job_id = 'SA_REP') BEGIN IF INSERTING THEN :NEW.commission_pct := 0; ELSIF :OLD.commission_pct IS NULL THEN :NEW.commission_pct := 0; ELSE :NEW.commission_pct := :OLD.commission_pct + 0.05; END IF; END; / 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 By HendraNet http://www.hendra-jatnika.web.id
  • 71.
    BAB 5 DATABASETRIGGER 70 5.10. PERINTAH UMUM Berikut ini perintah-perintah umum yang digunakan pada trigger. Untuk mengaktifkan atau menonaktifkan database trigger, digunakan perintah : ALTER TRIGGER trigger_name DISABLE | ENABLE Untuk mengaktifkan atau menonaktifkan semua trigger yang berlaku untuk sebuah tabel, digunakan perintah : ALTER TABLE table_name DISABLE | ENABLE ALL Untuk melakukan kompilasi ulang sebuah trigger, digunakan perintah : ALTER TRIGGER trigger_name COMPILE Untuk menghapus trigger dari database, digunakan perintah : DROP TRIGGER trigger_name Catatan : Semua trigger yang berlaku pada sebuah tabel akan dihapus pada saat tabel tersebut dihapus dari database. RINGKASAN: • Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view, skema atau database yang dijalankan secara implicit pada saat terjadi event. • 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 • Penggunaan trigger yang terlalu berlebihan akan menyebabkan terjadi sifat ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit pemeliharaan dari aplikasi yang besar. • 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. By HendraNet http://www.hendra-jatnika.web.id
  • 72.
    BAB 5 DATABASETRIGGER 71 LATIHAN SOAL : 1. Perubahan pada data hanya diperbolehkan selama jam kerja dari jam 8:45 pagi sampai 17.30 , dari Senin hingga Jum’at. 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 3, buat row trigger dengan nama UPDATE_EMP_SALARY pada table JOBS yang memanggil prosedur UPD_EMP_SAL, pada saat minimum gaji pada table JOBS diubah untuk suatu job ID tertentu. By HendraNet http://www.hendra-jatnika.web.id
  • 73.
    72 Bab6 Basis Data Client/ Server POKOK BAHASAN: Pendahuluan Arsitektur Client-Server Pengaksesan Query pada Basis Data Client-Server TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami konsep basis data client-server. Memahami arsitektur client- server Memahami pengaksesan query pada basis data client-server dan bagaimana perangkat lunak client-server. 6.1 PENDAHULUAN Aplikasi basis data terdistribusi dikembangkan dalam bentuk arsitektur client- server. Teknologi client-server berkembang secara cepat sebagai teknologi lanjut. Pada beberapa waktu yang lalu, sangat sulit memprediksikan status saat ini teknologi client- server 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. By HendraNet http://www.hendra-jatnika.web.id
  • 74.
    BAB 6 BASISDATA CLIENT-SERVER 73 6.2 ARSITEKTUR CLIENT-SERVER Saat ini arsitektur client-server yang banyak digunakan dalam industri disebut two-tier architecture. Pada arsitektur ini, server mengirim data dan client mengakses data. Server memainkan peranan yang dominan pada arsitektur ini. Keuntungan sistem ini adalah kesederhanaan dan kompatibilitas dengan sistem yang legal. Arsitektur client-server yang dikembangkan kemudian adalah three-tier architecture. Pada model ini, layer direpresentasikan sebagai host, server dan client. Server memainkan peranan sebagai penengah dengan mengirim aturan bisnis (prosedur atau constraint) yang digunakan untuk mengakses data dari host. Client berisi antar muka GUI dan beberapa aplikasi tambahan mengenai aturan bisnis. Kemudian server bertindak sebagai conduit of passing memproses data dari host ke client dimana kemudian diproses atau difilter dan dipresentasikan ke pemakai dalam format GUI. Antar muka pemakai, aturan dan pengaksesan data bertindak sebagai three tiers. Cient biasanya dihubungkan ke server melalui LAN dan server dihubungkan ke host melalui WAN. Client melakukan remote yang dihubungkan ke server melalui WAN juga. Sistem ini sangat cocok untuk perusahaan besar dimana basis data terpusat dapat disimpan dalam host dan biaya pembangunan LAN dan WAN dapat diatur dan dioptimasi menggunakan teknologi yang baru untuk setiap bagian yang berbeda dalam organisasi. 6.3 PENGAKSESAN QUERY PADA BASIS DATA CLIENT-SERVER Bagaimana membagi fungsi DBMS antara client dan server tidak ada ketentuan. Sehingga banyak pendekatan yang berbeda ditawarkan. Satu kemungkinan adalah 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 By HendraNet http://www.hendra-jatnika.web.id
  • 75.
    BAB 6 BASISDATA CLIENT-SERVER 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 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 server, membagi permintaan query ke sub query secara manual adan mengirimkan sub query secara individu ke tempat yang berbeda. Tabel hasil dikombinasikan secara 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. By HendraNet http://www.hendra-jatnika.web.id
  • 76.
    BAB 6 BASISDATA CLIENT-SERVER 75 Client bertanggung jawab untuk membangkitkan eksekusi terdistribusi untuk beberapa tempat server suatu query atau transaksi dan untuk melakukan supervisi eksekusi terdistribusi dengan mengirim perintah ke server. Perintah ini termasuk query lokal dan transaksi yang dieksekusi selain perintah untuk mengirim data ke client atau server lain. Fungsi lain dikontrol oleh client (atau koordinator) adalah menjamin konsistensi dari copy replika dari item data dengan teknik concurrency control terdistribusi (global). Client harus menjamin transaksi global atomik dengan membentuk global recovery jika tempat yang dimaksud gagal. Satu fungsi yang 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 distribusi data secara detail. RINGKASAN: • Konsep arsitektur client-server berhubungan dengan basis data terdistribusi. • Arsitektur client-server yang dikembangkan saat ini menggunakan three-tier arsitektur dimana terdapat tiga komponen utama yaitu host, server dan client. • Pengaksesan Query dilakukan dengan cara client melakukan permintaan query dengan mengirimkan sub query ke beberapa tempat server dan setelah server mengirimkan hasilnya ke client, client mengkombinasikan hasil sub query ke query asal. • Modul perangkat lunak yang terdapat pada DDBMS dapat dibagi dalam tiga level, yaitu perangkat lunak server, client dan komunikasi By HendraNet http://www.hendra-jatnika.web.id
  • 77.
    BAB 6 BASISDATA CLIENT-SERVER 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 ? By HendraNet http://www.hendra-jatnika.web.id
  • 78.
    77 Bab7 Basis Data Terdistribusi POKOKBAHASAN: 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 TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami perbedaan DBMS terdistribusi dan DBMS terpusat. Memahami arsitektur basis data terdistribusi. Memahami penyimpanan data, catalog data pada system terdistribusi. Memahami query, join dan optimasi query pada DBMS terdistribusi Memahami bagaimana mengubah data, melakukan locking data pada DBMS terdistribusi. Memahami bagaimana menangani kegagalan pada sistem terdistribusi 7.1 PENDAHULUAN Pada basis data terdistribusi (distributed database), data disimpan pada beberapa tempat (site), setiap tempat diatur dengan suatu DBMS (Database Management System) By HendraNet http://www.hendra-jatnika.web.id
  • 79.
    BAB 7 BASISDATA TERDISTRIBUSI 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). • Transaksi terdistribusi yang atomic : pemakai dapat menulis transaksi yang mengakses dan mengubah data pada beberapa tempat seperti mengakses transaksi local. Untuk trend basis data terdistribusi saat ini, pemakai harus mengetahui dimana data ditempatkan, juga harus mengetahui dimana system yang tidak mendukung independensi data terdistribusi dan transaksi terdistribusi atomic. Kedua property tersebut harus mendukung system secara efisien. Untuk system terdistribusi yang bersifat global, properti-properti tersebut kemungkinan tidak tepat karena adanya administrasi yang terlalu berlebihan dalam membuat lokasi data yang transparan. 7.2 TIPE BASIS DATA TERDISTRIBUSI Terdapat dua tipe basis data terdistribusi : • 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. DBMS1 DBMS2 DBMS3 Gateway Gambar 7-1: Basis data terdistribusi heterogen By HendraNet http://www.hendra-jatnika.web.id
  • 80.
    BAB 7 BASISDATA TERDISTRIBUSI 79 7.3 ARSITEKTUR BASIS DATA TERDISTRIBUSI Terdapat tiga pendekatan alternatif untuk membagi fungsi pada proses DBMS yang berbeda. Dua arsitektur alternatif DBMS terdistribusi adalah Client/Server dan Collaboration Server. • 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 sebuah server yang berjalan pada mainframe. Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi yang relatif sederhana karena pembagian fungis yang baik dank arena server tersentralisasi. Kedua, mesin server yang mahal utilisasinya tidak terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga, CLIENT CLIENT SERVER SERVER SERVER QUERY Gambar 7-2: Sistem client-server By HendraNet http://www.hendra-jatnika.web.id
  • 81.
    BAB 7 BASISDATA TERDISTRIBUSI 80 pemakai dapat menjalankan antarmuka berbasis grafis sehingga pemakai lebih mudah dibandingkan antar muka pada server yang tidak user-friendly. Pada saat menulis aplikasi client-server, perlu diingat batasan antara client dan server dan untuk menjaga komunikasi antara keduanya yang berorientasi himpunan. Khususnya membuka kursor dan mengambil tupel pada satu waktu membangkitkan beberapa pesan dan dapat diabaikan. • 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 sistem ini terdapat sekumpulan server basis data, yang menjalankan transaksi data lokal yang bekerjasama mengeksekusi transaksi pada beberapa server seperti pada Gambar 7-3.. Jika server menerima query yang membutuhkan akses ke data pada server lain, sistem membangkitkan subquery yang dieksekusi server lain dan mengambil hasilnya bersama-sama untuk menggabungkan jawaban menjadi query asal. SERVER SERVER SERVER QUERY Gambar 7-3: Collaboration System By HendraNet http://www.hendra-jatnika.web.id
  • 82.
    BAB 7 BASISDATA TERDISTRIBUSI 81 7.4 PENYIMPANAN DATA PADA SISTEM TERDISTRIBUSI Pada DBMS terdistribusi, relasi disimpan pada beberapa tempat. Pengaksesan relasi yang disimpan pada remote side mengakibatkan biaya melewatkan pesan dan untuk menguranginya, sebuah relasi dipartisi atau difragmentasi ke beberapa tempat, dengan fragmen dikirim pada tempat dimana fragmen tersebut sering diakses, atau replika pada pada setiap tempat dimana relasi menjadi kebutuhan yang tinggi • Fragmentasi Fragmentasi terdiri dari relasi yang dibagi ke relasi atau fragmen yang lebih kecil dan mengirim fragmen, pada beberapa tempat. Terdapat dua macam fragmentasi, fragmentasi horizontal dan fragmentasi vertikal. Pada fragmentasi horisontal, setiap fragmen terdiri dari sebuah subset baris dari relasi asal. Pada fragmentasi vertikal, setiap fragment terdiri dari sebuah subset kolom dari relasi asal. Fragmentasi horisontal dan vertikal diilustrasikan pada Gambar 7-4. 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. TI t t t t Fragmentasi vertikal Fragmentasi horisontal Gambar 7-4: Fragmentasi horisontal dan vertikal By HendraNet http://www.hendra-jatnika.web.id
  • 83.
    BAB 7 BASISDATA TERDISTRIBUSI 82 o Fragmentasi vertikal : koleksi fragmen vertikal seharusnya dekomposisi lossless-join. Untuk menjamin fragmentasi vertikal lossless-join, sistem harus menyediakan id tupel yang unik untuk setiap tupel dalam relasi asli. Jika kita berpilir bahwa relasi asal sebagai field yang berisi tambahan tupel-id sebagai kunci, field ini ditambahkan ke setiap fragmen vertikal. Sehingga dekomposisi dijamin lossless-join. • Replikasi Replikasi berarti bahwa kita menyimpan beberapa copy sebuah relasi atau fragmen relasi. Keseluruan relasi dapat direplikasi pada satu atau lebih tempat. Sebagai contoh, jika relasi R difragmentasi ke R1, R2 dan R3, kemungkinan terdapat hanya satu copy R1, dimana R2 adalah replikasi pada dua tempat lainnya dan R3 replikasi pada semua tempat. Hal ini dapat diilustrasikan pada Gambar 7-5. R1 R1 R2 R3 SITE A SITE B Gambar 7-5: Replikasi By HendraNet http://www.hendra-jatnika.web.id
  • 84.
    BAB 7 BASISDATA TERDISTRIBUSI 83 Motivasi untuk replikasi adalah : o Meningkatkan ketersediaan data : Jika sebuah tempat yang berisi replika melambat, kita dapat menemuka data yang sama pada tempat lain. Demikian pula, jika copy lokal dari relasi yang diremote tersedia, maka tidak terpengaruh saluran komunikasi yang gagal. o Evaluasi query yang lebih cepat : query dapat mengeksekusi lebih cepat menggunakan copy local dari relasi termasuk ke remote site. 7.5 MANAJEMEN KATALOG TERDISTRIBUSI Menyimpan data terdistribusi pada beberapa tempat dapat menjadi sangat kompleks. Kita harus menyimpan data bagaimana relasi difragmentasi dan replikasi, bagaimana fragmen relasi didistribusikan ke beberapa tempat dan dimana kopi dari fragmen disimpan. Nama setiap replika dari setiap fragmen harus ada. Untuk menyediakan otonomo lokal digunakan format sebagai berikut : <local-name, birth-site> Katalog setiap tempat menggambarkan semua obyek (fragmen, replika) pada 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. 7.6 QUERY TERDISTRIBUSI Misalnya pada dua relasi : Sailors(sid: integer, sname: string, rating: integer, age: real) Reserves(sid: integer, bid: integer, day: date, rname: string) Kemudian dilakukan query berikut : SELECT AVG(S.age) FROM Sailors S WHERE S.rating > 3 AND S.rating < 7 By HendraNet http://www.hendra-jatnika.web.id
  • 85.
    BAB 7 BASISDATA TERDISTRIBUSI 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. • Replikasi : Sailor di-copy kan pada kedua tempat. 7.7 JOINS PADA DBMS TERDISTRIBUSI Sebagai contoh, London menyimpan 500 halaman Sailor dan Paris mempunyai 1000 halaman Reserves seperti Gambar 7-6. Untuk menangani joing pada DBMS terdistribusi harus diperhatikan hal-hal berikut : • 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. Jika halaman Reserves di London diambil sampai join selesai, 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. Sailors Reserves LONDON PARIS 500 halaman 1000 halaman Gambar 7-5: Contoh Sistem Terdistribusi By HendraNet http://www.hendra-jatnika.web.id
  • 86.
    BAB 7 BASISDATA TERDISTRIBUSI 85 – Jika query tidak dikirim ke London, harus menambah biaya hasil pengiriman ke query site. – Dapat juga mengerjakan inner nested loop di London, ambil tupelo Reserves yang sesuai ke London sesuai kebutuhan. • Pengiriman ke satu tempat : Kirimkan Reserves ke London. – Biayat: 1000 S + 4500 D (Semi Join; biaya = 3*(500+1000)) – Jika ukuran hasil sangat besar, lebih baik mengirimkan kedua relasi ke result site dan kemudian lakukan join. 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. 2. Di Paris, lakukan join pada proyeksi Sailors dengan Reserves. Hasil join disebut reduksi dari Reserves dengan Sailors 3. Kirimkan reduksi Reserves ke London 4. Pada London, join Sailors dengan Reserves yang sudah direduksi 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. By HendraNet http://www.hendra-jatnika.web.id
  • 87.
    BAB 7 BASISDATA TERDISTRIBUSI 86 3. Kirimkan bit-vector hasil reduksi Reserves ke London 4. Di London, join Sailors dengan hasil reduksi Reserves 5. Bit-vector biaya pengirimannya lebih murah, juga lebih efektif 7.8 OPTIMASI QUERY PADA DBMS TERDISTRIBUSI Untuk optimasi query pada sistem terdistribusi, menggunakan pendekatan biaya, misalnya pada semua plan, mengambil yang termurah, sama dengan optimasi tersentralisasi. Perbedaan optimasi query pada sistem terdistribusi dan sistem tersentralisasi, pertama, biaya komunikasi harus dipertimbangkan. Kedua, otonomi tempat lokal harus diperhatikan. Ketiga, menggunakan metode join terdistribusi yang baru. Query site membangun daerah global, dengan daerah local menggambarkan pemrosesan pada setiap tempat. Jika sebuah tempat dapat melakukan improvisasi pada daerah lokal, dapat dilakukan dengan bebas. 7.9 MENGUBAH DATA TERDISTRIBUSI Untuk melakukan pengubahan data terdistribusi, dilakukan replikasi transaksi yang dapat dilakukan dengan cara : • Synchronous Replication : semua copy dari relasi yang dimodifikasi (fragmen) harus diubah sebelum modifikasi transaksi commit. Distribusi data dibuat transparan ke pemakai. • Asynchronous Replication : Copy dari sebuah relasi yang dimodifikasi hanya diubah secara periodik, copy yang berbeda akan keluar dari sinkronisasi. User harus waspada pada distribusi data. Produk saat ini mengikuti pendekatan ini. Synchronous Replication Terdapat dua teknik dasar untuk menjamin transaksi terlihat nilai yang sama dengan copy, yaitu : • Voting : transaksi harus menulis mayoritas copy untuk memodifikasi sebuah obyek, harus membaca cukup copy untuk meyakinkan bahwa terlihat setidaknya By HendraNet http://www.hendra-jatnika.web.id
  • 88.
    BAB 7 BASISDATA TERDISTRIBUSI 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: penulisan lebih lambah dan pembacaan lebih cepat daripada teknik Voting. Teknik ini banyak digunakan pada synchronous 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 kembali. Meskipun tidak terjadi kegagalan, commit harus mengikuti commit protocol dengan beberapa pesan yang mahal. Karena itu alternative teknik asynchronous replication banyak digunakan. Asynchronous Replication Asynchronous replication mengijinkan memodifikasi transaksi commit sebelum semua copy diubah (dan pembaca tidak hanya melihat satu copy). Pemakai harus waspada copy yang keluar dari sinkronisasi untuk suatu periode waktu yang pendek. Teknik asynchronous replication menggunakan dua pendekatan, yaitu Primary Site dan Peer to Peer replication. Perbedaan kedua teknik ini terletak pada berapa banyak copy yang dapat diubah atau copy master. • Peer to Peer replication. Lebih dari satu copy dari suatu obyek dapat menjadi sebuah master. Perubahan ke copy master harus dipropaganda ke copy lain dengan cara yang berlainan. Jika dua copy master diubah dan terjadi suatu konflik, konflik harus dipecahkan (misalnya Tempat 1 : umur Joe mengubah 35, Tempat 2 : mengubah 36. Teknik ini bagus digunakan jika konflik tidak terjadi, misalnya setiap tempat master memiliki fragmen disjoin dan yang memiliki hak pengubahan dimiliki oleh satu master pada satu waktu. By HendraNet http://www.hendra-jatnika.web.id
  • 89.
    BAB 7 BASISDATA TERDISTRIBUSI 88 • Primary Site replidation. Tepat satu copy dari suatu relasi digunakan sebagai primary copy atau master copy. Replika pada tempat lain tidak langsung diubah. Primary copy dipublikasikan. Tempat lain menjalankan (fragmen) ke relasi ini, terdapat beberapa copy sekunder. Isu utama adalah bagaimana pengubahan primary copy dapat dipropaganda ke copy sekunder ? Hal in idapat dilakukan dalam dua langkah. Langkah pertama ambil pengubahan yang dibuat dengan transaksi commit, kemudian aplikasikan perubahan tersebut. Exactly one copy of a relation is designated the primary or master copy. Replicas at other sites cannot be directly updated. Implementasi Primary Site pada Asynchronous Replication Isu utama dalam mengimplementasikan primary site replication adalah menentukan barapa banyak perubahan ke primary copy dipropaganda ke copy sekunder. Perubahan biasanya dipropaganda dalam dua langkah yaitu Capture dan Apply. Perubahan dibuat dengan transaksi commit ke primary copy yang diidentifikasi selama langkah Capture dan dipropaganda ke copy sekunder selama langkah Apply. Mengimplementasikan Langkah Capture Langkah Capture diimplementasikan dengan satu dari dua pendekatan, yaitu Log-Based Capture dan Procedureal Capture. • 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. • Procedural Capture: suatu prosedur yang secara otomatis dibangkitkan (trigger) mengerjakan capture. 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 By HendraNet http://www.hendra-jatnika.web.id
  • 90.
    BAB 7 BASISDATA TERDISTRIBUSI 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. Data sumber biasanya dikontrol dengan DBMS yang berbadi, penekanannya pada cleaning data dan menghapus kesalahan pada pembuatan replikasi. Prosedur Capture dan aplikasi Apply baik untuk lingkungan ini. 7.10 LOCKING PADA SISTEM TERDISTRIBUSI Untuk menangani penguncian obyek pada beberapa tempat digunakan cara : • Sentralisasi : satu tempat melakukan semua penguncian dan membuka kunci untuk semua obyek • 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. • Terdistribusi penuh : penguncian untuk suatu copy dilakukan pada tempat dimana copy disimpan. Hal in akan mengunci semua tempat pada saat menulis obyek. Distributed Deadlock Detection Setiap tempat menangani local wait-for graph. Deadlock global akan terjadi jika local graph tidak membentuk siklus seperti dapat dilihat pada Gambar 7-6 menunjukkan terjadi deadlock global. By HendraNet http://www.hendra-jatnika.web.id
  • 91.
    BAB 7 BASISDATA TERDISTRIBUSI 90 Untuk mendeteksi deadlock digunakan tiga solusi yaitu : Sentralisasi, yaitu mengirim semua local graph ke satu tempat. Hierarki yaitu mengorganisasi tempat ke dalam suatu hirarki dan mengirim local graph ke parent dari hirarki. Timeout yaitu menghentikan transaksi jika menunggu terlalu lama. 7.11 DISTRIBUTED RECOVERY Proses pemulihan pada DBMS terdistribusi lebih kompleks daripada pada DBMS tersentralisasi karena sebab berikut : • Terjadi kegagalan yang baru, misalnya saluran komunikasi dan remote site. • Jika sub transaksi dari suatu transaksi mengeksekusi tempat yang berbeda, 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, T1 T1 T1T2 T2 T2 SITE A SITE B GLOBAL Gambar 7-6: Deadlock Global By HendraNet http://www.hendra-jatnika.web.id
  • 92.
    BAB 7 BASISDATA TERDISTRIBUSI 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. Setiap tempat dapat memutuskan untuk abort suatu transaksi. Setiap pesan merupakan keputusan oleh 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 coordinator untuk T, tetap kirimkan pesan commit/abort ke sub ordinat sampai diterima pesan ack. • Jika kita menyiapkan rekaman log transaksi T, tetapi tidak commit/abort, tempat ini adalah sub ordinat untuk T. Sub ordinat terus menghubungi coordinator untuk menemukan status T, kemunian menulis rekaman log commit/abort redo/undo T dan menulis rekaman log end. • 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. Meskipun jika semua sub ordinat saling mengetahui (melebihi yang 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 By HendraNet http://www.hendra-jatnika.web.id
  • 93.
    BAB 7 BASISDATA TERDISTRIBUSI 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. Koordinat mengabaikan pembaca. Jika semua sub transaksi adalah pembaca, fase kedua tidak diperlukan. RINGKASAN: • Pada basis data terdistribusi, data disimpat pada beberapa lokasi dengan tujuan untuk membuat distribusi yang transparan. Pada basis data terdistribusi, 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 Client- Server, server menyediakan fungsi DBMS dan client menyediakan antar muka pemakai. Pada Collaboration system system, tidak terdapat perbedaan antara proses client dan server. • 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. By HendraNet http://www.hendra-jatnika.web.id
  • 94.
    BAB 7 BASISDATA TERDISTRIBUSI 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. Pada asynchronous replication, copy hanya diubah secara periodic. Terdapat dua teknik untuk menjamin synchronous replication. Secara voting, perubahan harus menulis mayoritas copy dan membaca harus mengakses cukup copy untuk menjamin bahwa satu copy sudah tersedia. Pada replikasi peer- to-peer, lebih dari satu copy dapat diubah dan strategi conflict resolution dapat mengubah konflik yang terjadi. Pada replikasi primary site, terdapat satu primary 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. • Pemulihan pada DBMS terdistribusi dilakukan menggunakan commit protocol yang mengkoordinasi aktivitas pada tempat yang berbeda yang dilibatkan pada transaksi. Pada Two-Phase Commit, setiap transaksi didesain oleh tempat coordinator. Sub transaksi dieksekusi pada tempat sub ordinat. 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. By HendraNet http://www.hendra-jatnika.web.id
  • 95.
    BAB 7 BASISDATA TERDISTRIBUSI 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. 7. Bagaimana teknik voting dan read-one write-all diimplementasikan pada replikasi synchronous ? 8. Berikan penjelasan bagaimana asynchronous replication diimplementasikan. Khususnya, jelaskan maksud capture dan apply. 9. Apakah perbedaan antara log-based dan procedureal untuk implementasi capture? 10. Mengapa pemberian nama unik pada obyek basis data lebih kompleks pada DBMS terdistribusi ? By HendraNet http://www.hendra-jatnika.web.id
  • 96.
    95 Bab8 Basis Data Internet POKOKBAHASAN: 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 TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami konsep world wide world dan html pada database berbasis web Memahami arsitektur pada database web Memahami XML Memahami dan mengimplementasikan model data semi-terstruktur 1.1 WORLD WIDE WORLD Web memungkinkan mengaksen suatu file dimanapun pada internat. Suatu file diidentifikasi dengan universal resource locater (URL), contohnya : By HendraNet http://www.hendra-jatnika.web.id
  • 97.
    BAB 8 BASISDATA INTERNET 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. Jika seorang pemakai click pada suatu link, Web browser menghubungkan ke Web server tujuan menggunakan protokol koneksi HTTP dan mengirim link URL. Jika browser menerima file dari web server, akan diperiksa tipe file dengan melihat extension dari nama file. Web browser menampilkan fijle berdasarkan tipe file dan jika perlu memanggil program aplikasi untuk menangani file. 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. 1.2 HIPERTEXT MARKUP LANGUAGE (HTML) Hipertext Markup Language (HTML) merupakan bahasa pemrograman berbentuk skrip yang sederhana. Teks diawali dan diakhiri dengan perintah yang disebut tags, biasanya terdiri dari start tag dan end tag. Contoh skrip HTML untuk melihat daftar buku : By HendraNet http://www.hendra-jatnika.web.id
  • 98.
    BAB 8 BASISDATA INTERNET 97 1.3 BASIS DATA DAN WEB Halaman web berisi hasil dari query database. Untuk membangkitkan halaman web, dilakukan hal-hal sebagai berikut : – 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). 1.4 ARSITEKTUR APPLICATION SERVER DAN SERVER-SIDE JAVA Pada CGI, setiap halaman merupakan hasil pembuatan sebuah proses baru sehingga sangat tidak efisien. Oleh karena itu dikembangkan arsitektur application server yaitu suatu perangkat lunak antara web server dan aplikasi. Fungsi dari application server adalah • Mengendalikan thread atau proses pre-fork untuk performansi <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> By HendraNet http://www.hendra-jatnika.web.id
  • 99.
    BAB 8 BASISDATA INTERNET 98 • Tempat koneksi basis data (dan menggunakan kembali koneksi yang tersedia) • Integrasi antara sumber data yang heterogen • Manajemen transaksi melibatkan beberapa sumber data • 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) • JavaBeans : yaitu komponen perangkat lunak yang dapat digunakan kembali (reusable) yang ditulis dalam bahasa pemrograman Java • Java Server Page dan Active Server Page : yaitu kode yang berada di dalam halaman web yang diterjemahkan oleh web server. 1.5 PENDAHULUAN XML Extensible HTML (XML) merupakan bahasa skrip versi lanjutan dari HTML. XML merupakan penggabungan antara SGML dan HTML dimana kekuatan SGML digabungkan dengan kesederhanaan HTML. XML menggunakan definisi markup language baru yang disebut document type declaration (DTDs). Elemen yang terdapat pada XML meliputi : • blok utama yang dibangun secara terstruktur dengan XML • tag mulai (start tag) dan akhir (end tag) • harus secara tepat berulang Elemen pada XML dapat mempunyai atribut yang merupakan informasi 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 : By HendraNet http://www.hendra-jatnika.web.id
  • 100.
    BAB 8 BASISDATA INTERNET 99 1.6 XML : DTDs Sebuah document type declaration (DTDs) adalah himpunan aturan yang mendefinisikan elemen, atribut dan entiti yang diperbolehkan pada dokumen. Dokumen pada XML mempunyai bentuk yang baik jika tidak mempunyai asosiasi DTD tetapi digunakan berulang dengan tepat. Dokumen XML valid jika mempunyai DTD an dokumen mengikuti aturan dalam DTD. Contoh DTDs untuk melihat daftar buku adalah sebagai berikut : <?XML version=“1.0” standalone=“yes”?> <!DOCTYPE BOOKLIST SYSTEM “booklist.dtd”> <BOOKLIST> <BOOK genre=“Fiction”> <AUTHOR> <FIRST>Milan</FIRST><LAST>Kundera</LAST> </AUTHOR> <TITLE>Identity</TITLE> <PUBLISHED>1998</PUBLISHED> <BOOK genre=“Science” format=“Hardcover”> <AUTHOR> <FIRST>Richard</FIRST><LAST>Feynman</LAST> </AUTHOR> <TITLE>The Character of Physical Law</TITLE> </BOOK></BOOKLIST> By HendraNet http://www.hendra-jatnika.web.id
  • 101.
    BAB 8 BASISDATA INTERNET 100 1.7 SPESIFIKASI DOMAIN PADA DTDs Untuk menangani sumber-sumber data yang berlainan, dikembangkan standarisasi DTDs untuk memungkinkan domain dapat menukar data diantara sumber- sumber yang heterogen. Contohnya adalah domain pada DTDs untuk mengkodekan material matematika pada web dengan menggunakan Mathematical Markup Language (MathML). Perbedaan HTML dengan MathML dapat dilihat pada persamaan matematika di bawah ini ; • Dalam HTML : <IMG SRC=“xysq.gif” ALT=“(x+y)^2”> • Dalam MathML : <apply> <power/> <apply> <plus/> <ci>x</ci> <ci>y</ci> </apply> <cn>2</cn> </apply> <!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”> ]> By HendraNet http://www.hendra-jatnika.web.id
  • 102.
    BAB 8 BASISDATA INTERNET 101 1.8 MELAKUKAN QUERY DATA XML (XML-QL) Tujuan melakukan query data XML adalah melakukan manipulasi dokumen XML dengan menggunakan bahasa deklaratif tingkat tinggi. Query data XML belum dilakukan standarisasi. Contoh query dengan XML-QL : Contoh query dengan XML-QL yang lebih kompleks : 1.9 MODEL DATA SEMI TERSTRUKTUR Data semi terstruktur adalah data dengan struktur parsial. Semua model data untuk data semi terstruktur menggunakan beberapa tipe graph berlabel. Pada sub bab ini diperkenalkan model data semi terstruktur yang disebut object exchage model (OEM). OEM mempunyai karakteristik sebagai berikut : WHERE <BOOK> <NAME><LAST>$1</LAST></NAME> </BOOK> in “www.booklist.com/books.xml CONSTRUCT <RESULT> $1 </RESULT> WHERE <BOOK> $b <BOOK> IN “www.booklist.com/books.xml”, <AUTHOR> $n </AUTHOR> <PUBLISHED> $p </PUBLISHED> in $e CONSTRUCT <RESULT> <PUBLISHED> $p </PUBLISHED> WHERE <LAST> $l </LAST> IN $n CONSTRUCT <LAST> $l </LAST> </RESULT> By HendraNet http://www.hendra-jatnika.web.id
  • 103.
    BAB 8 BASISDATA INTERNET 102 • Obyek berbentuk triple (label, tipe, nilai). • 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. 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 Milan Kundera Identity 1998 BOOK AUTHOR TITLE PUBLISHED AUTHOR FORMAT TITLE Richard Feynman The character of phy- sical law Hard- cover Gambar 8-1: Model data daftar buku dengan menggunakan OEM By HendraNet http://www.hendra-jatnika.web.id
  • 104.
    BAB 8 BASISDATA INTERNET 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 Web browser. Contohnya, kita dapat mengakses data dalam DBMS. Terdapat dua cara untuk Web server untuk mengeksekusi program : membuat proses baru dan mengkomunikasikan menggunakan protokol CGI, atau membuat thread baru untuk Java Servlet. Pendekatan kedua menghindari banyaknya pembentukan proses baru untuk setiap permintaan. Application server mengatur beberapa thread dan menyediakan fungsi lain untuk memfasilitasi eksekusi program pada Web server. Fungsi tambahan termasuk didalamnya keamanan, manajemen sesi, koordinasi akses ke multipel sumber data. JavaBeans dan Java Server Page adalah teknologi berbasis Java yang menuntun ke pembuatan dapn pengaturan program yang didesain untuk digunakan pada Web server. • XLM adalah deskripsi standar dokumen yang menggambarkan isi dan struktur dokumen dalam hal penampilan langsung. XML berdasarkan HTML dan SGML, 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. By HendraNet http://www.hendra-jatnika.web.id
  • 105.
    BAB 8 BASISDATA INTERNET 104 LATIHAN SOAL : 1. Definisikan arti dan gambarkan penggunaan a. HTML 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. Diasumsikan pelanggan juga ingin mencari buku berdasarkan judul. Buatlah dokumen HTML yang memungkinkan pemakai menginputkan judul buku. 6. Diketahui katalog Eggface computer mail-order. “Eggface menjual hardware dan software. Kita menjual Palm Pilot V baru seharga $400; nomor perangkat 345. Kita juga menjual IBM ThinkPad 570 seharga $1999; nomor perangkat 3784. Kita menjual baik software bisnis dan entertainment. 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. Software Game dari Blizzard 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. By HendraNet http://www.hendra-jatnika.web.id
  • 106.
    105 Bab9 Data Warehousing dan DecisionSupport 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 TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami hubungan antara Data Warehouse dan Decision Support Dapat mendesain model data multidimensi Memahami Online Analytical Processing (OLAP) Memahami Arsitektur dan Implementasi Data Warehouse Memahami penggunaan view pada aplikasi Decision Support 9.1. PENDAHULUAN Data Warehouse adalah suatu database penunjang keputusan yang dikelola secara terpisah dari database operasional perusahaan. Dan merupakan penunjang pemrosesan informasi dengan menyediakan suatu platform yang kokoh untuk analisa data yang mengandung histori dan yang terkonsolidasi. By HendraNet http://www.hendra-jatnika.web.id
  • 107.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 106 Berikut beberapa definisi tentang data warehouse : “Suatu DW adalah suatu koleksi data yang bisa digunakan untuk menunjang pengambilan keputusan manajemen, yang berorientasi subjek (topik), terpadu, time variant, dan tidak mudah berubah” —W. H. Inmon (Bp. Data Warehousing) “Suatu data warehouse sederhananya adalah suatu penyimpanan data tunggal, lengkap dan konsisten, yang diperoleh dari berbagai sumber dan dibuat tersedia bagi end user dalam suatu cara yang bisa mereka pahami dan bisa mereka gunakan dalam suatu konteks bisnis.” - - Barry Devlin, IBM Consultant. 9.2. DARI DATA WAREHOUSE KE DECISION SUPPORT Pembuatan keputusan organisasi memerlukan view menyeluruh pada segala aspek perusahaan, sehingga organisasi membuat data warehouse gabungan yang berisi data yang berasal dari berbagai sumber. DBMS juga didesain untuk mendukung query OLAP secara efisien dan dioptimalisasi untuk mendukung aplikasi decision support. 9.3. MODEL DATA MULTIDIMENSI Model data multidimensional dirancang untuk memfasilitasi analisis dan bukan 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. By HendraNet http://www.hendra-jatnika.web.id
  • 108.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 107 Pid timeid locid sales 11 1 1 13 11 2 1 4 11 3 1 3 12 1 1 21 12 2 1 16 12 3 1 6 13 1 1 17 13 2 1 5 13 3 1 12 Gambar 10.1. Model Data Multidimensi 9.4. ONLINE ANALYTICAL PROCESSING (OLAP) Query OLAP dipengaruhi oleh dua hal, yaitu : SQL dan spreadsheet. Operasi 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. 1 2 3 timeid 17 5 21 16 6 13 4 3 12 pid 111213 locid By HendraNet http://www.hendra-jatnika.web.id
  • 109.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 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 : Cross-tabulation tersebut merupakan kumpulan dari query SQL berikut : SELECT SUM (S.Sales) FROM Sales S, Times T WHERE S.timeid = T.timeid GROUP BY T.year dan SELECT SUM (S.Sales) FROM Sales S, Location L WHERE S.timeid = L.timeid GROUP BY L.state Sehingga menjadi query baru sebagai berikut : SELECT SUM (S.Sales) FROM Sales S, Times T, Location L WHERE S.timeid = T.timeid AND S.timeid = L.timeid GROUP BY T.year, L.state 4. Slicing dan Dicing Yaitu mencari kesamaan dan jangkauan seleksi pada satu atau lebih dimensi. 25 41 66 64 53 11 89 94 18tota tota 1999 1998 LA NY By HendraNet http://www.hendra-jatnika.web.id
  • 110.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 109 9.5. ARSITEKTUR DATA WAREHOUSE Pilihan berikut harus dibuat didalam perancangan data warehouse • 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 melihat data dalam bentuk suatu kubus data. Suatu kubus data seperti Sales memungkinkan data untuk dimodelkan dan dilihat dari banyak dimensi – Dimensi tabel, seperti item (item_name, brand, type), atau time(day, week, month, quarter, year) – Tabel fakta memuat ukuran (seperti dollars_sold) dan kunci untuk setiap dimensi tabel terkait Berikut, arsitektur dari Data Warehouse : By HendraNet http://www.hendra-jatnika.web.id
  • 111.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 110 Gambar 10.2. Arsitektur Data Warehouse 9.6. IMPLEMENTASI DATA WAREHOUSE Data Warehouse diorganisasikan berdasarkan kegunaan disekitar subjek bukan aplikasi, misal: customer, product, sales. Perhatian dipusatkan pada pemodelan dan analisa data untuk pembuat keputusan, bukan untuk operasi harian atau pemrosesan 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 By HendraNet http://www.hendra-jatnika.web.id
  • 112.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 111 9.7. VIEW DAN DECISION SUPPORT View digunakan secara luas dalam aplikasi decision support. Kelompok analis 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. Mengevaluasi query yang 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. View berikut ini menghitung penjualan produk berdasarkan kategori dan Negara bagian: CREATE VIEW RegionalSales(category, sales, state) AS SELECT P.category, S.sales, L.state FROM Products P, Sales S, Locations L WHERE P.pid=S.pid AND S.locid=L.locid Query berikut menghitung penjualan total untuk tiap kategori berdasarkan Negara bagian : SELECT R.category, R.state, SUM(R.sales) FROM RegionalSales R GROUP BY R.category, R.state Query berikut ini adalah hasil modifikasi dari query sebelumnya dengan menggantikan RegionalSales dengan sebuah view yang ditempatkan pada klausa FROM yaitu : SELECT R.category, R.state, SUM(R.sales) FROM (SELECT P.category, S.sales, L.state FROM Products P, Sales S, Locations L WHERE P.pid = S.pid AND S.locid=L.locid) AS R GROUP BY R.category, R.state By HendraNet http://www.hendra-jatnika.web.id
  • 113.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 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. Contohnya : untuk melihat penjualan dari perspektif customer, product dan time. • Jenis-jenis dari query OLAP yaitu : Roll up, Drill down, Pivoting, Slicing dan Dicing. • Pilihan-pilihan yang harus dibuat didalam perancangan data warehouse : process model, level atom data yang akan disajikan, dimensi dan ukuran • View digunakan secara luas dalam aplikasi decision support dan berhubungan erat dengan OLAP dan data warehousing dan perlu disinkronisasi secara periodik. 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). By HendraNet http://www.hendra-jatnika.web.id
  • 114.
    BAB 9 DATAWAREHOUSING DAN DECISION SUPPORT 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 ? By HendraNet http://www.hendra-jatnika.web.id
  • 115.
    114 Bab10 Data Mining POKOK BAHASAN: ModelData Mining Tahapan dalam Data Mining Fungsionalitas dalam Data Mining Teknik-teknik Data Mining TUJUAN BELAJAR: Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu: Memahami pemodelan Data Mining Memahami setiap tahapan dalam Data Mining Memahami fungsionalitas dalam Data Mining Memahami beberapa teknik yang digunakan dalam Data Mining 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. By HendraNet http://www.hendra-jatnika.web.id
  • 116.
    BAB 10 DATAMINING 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 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 databases, knowledge extraction, data archeology, data dredging, data analysis dan lain sebagainya [AGR-93]. Dengan diperolehnya informasi-informasi yang berguna dari data-data yang ada, hubungan antara item dalam transaksi, maupun informasi informasi-yang potensial, selanjutnya dapat diekstrak dan dianalisa dan diteliti lebih lanjut dari berbagai sudut pandang. Informasi yang ditemukan ini selanjutnya dapat diaplikasi kan untuk aplikasi manajemen, melakukan query processing, peng ambilan keputusan dan lain sebagainya. Dengan semakin ber kembang nya kebutuhan akan informasi-informasi, semakin banyak pula bidang-bidang yang rnenerapkan konsep data mining. By HendraNet http://www.hendra-jatnika.web.id
  • 117.
    BAB 10 DATAMINING 116 10.2. MODEL DATA MINING Dalam perkembangan teknologi data mining, terdapat model atau mode yang digunakan untuk melakukan proses penggalian informasi terhadap data-data yang ada. Menurut IBM model data mining dapat dibagi menjadi 2 bagian yaitu: verification model dan discovery model. 10.2.1. VERIFICATION MODEL Model ini menggunakan perkiraan (hypothesis) dari pengguna, dan melakukan test terhadap perkiraan yang diambil sebelumnya dengan menggunakan data-data yang ada. Penekanan terhadap model ini adalah terletak pada user yang bertanggung jawab terhadap penyusunan perkiraan (hypothesis) dan permasalahan pada data untuk meniadakan atau menegaskan hasil perkiraan (hypothesis) yang diambil. Sebagai contoh misalnya dalam bidang pemasaran, sebelum sebuah perusahaan mengeluarkan suatu produk baru kepasaran, perusahaan tersebut harus memiliki informasi tentang kecenderungan pelanggan untuk membeli produk yang akan di keluarkan. Perkiraan (hypothesis) dapat disusun untuk mengidentifikasikan pelanggan yang potensial dan karakteristik dari pelanggan yang ada. Data-data tentang 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. By HendraNet http://www.hendra-jatnika.web.id
  • 118.
    BAB 10 DATAMINING 117 10.2.2. DISCOVERY MODEL Model ini berbeda dengan verification model, dimana pada model ini system secara langsung menemukan informasi-informasi penting yang tersembunyi dalam suatu data yang besar. Data-data yang ada kemudian dipilah-pilah-untuk-menemukan suatu pola, trend yang ada, dan keadaaan umum pada saat itu tanpa adanya campur tangan dan tuntunan dari pengguna. Hasil temuan ini menyatakan fakta-fakta yang ada dalam datadata yang ditemukan dalam waktu yang sesingkat rnungkin.Sebagai contoh, misalkan sebuah bank ingin menemuan kelompok-kelompok pelanggan yang dapat dijadikan target suatu produk yang akan di keluaran. Pada data-data yang ada selanjutnya diadakan proses pencarian tanpa adanya proses perkiraan (hypothesis) sebelumnya. Sampai akhirnya semua pelanggan dikelompokan berdasarkan karakteristik yang sama. 10.3. KEBUTUHAN DAN TANTANGAN DALAM DATA MINING Untuk memperoleh efektifitas dalam data mining, seseorang harus melakukan evaluasi kebutuhan dan memperhitungkan tantangan-tantangan apa saja yang mungkin dihadapinya dalam me ngembangkan suatu teknik data mining. Hal-hal yang harus diper hatikan tersebut antara lain adalah sebagai berikut 10.3.1. PENANGANAN BERBAGAI TIPE DATA Karena ada bermacam data dan basis data yang digunakan dalam berbagai aplikasi, seseorang mungkin saja berpikir bahwa suatu sistem knowledge discovery harus bisa melakukan proses data mining yang efektif terhadap berbagai jenis data. Selanjutnya, banyak aplikasi basis data memuat tipe data yang kompleks seperti data terstruktur, objek data kompleks, data multimedia, data spasial dan data sementara, data transaksi dan lain sebagainya. Oleh karena adanya beragam tipe data, tujuan yang berbeda dari data mining, maka adalah tidak realistis untuk mengharapkan bahwa suatu sistem data mining mampu menangani semua jenis data. Sistem data mining harus dikonstruksikan secara By HendraNet http://www.hendra-jatnika.web.id
  • 119.
    BAB 10 DATAMINING 118 khusus untuk tipe-tipe data khusus seperti dalam basis data relasional, basis data transaksi, basis data spasial, basis data multimedia dan lain sebagainya. 10.3.2. EFISIENSI DARI ALGORITMA DATA MINING Untuk secara efektif melakukan ekstraksi informasi dari sejumlah besar data, algoritma yang digunakan untuk mewujudkannya haruslah efisien untuk basis data yang besar. Yaitu, waktu eksekusi dari algoritma tersebut haruslah sesuai dan realistis untuk data dengan ukuran besar. 10.3.3. KEGUNAAN, KEPASTIAN DAN KEAKURATAN HASIL Informasi yang diperoleh harus secara akurat menggambarkan isi basis data dan berguna untuk aplikasi terkait. Kekurangsempurnaan yang ada haruslah dapat diekspresikan dengan suatu ukuran yang pasti dalam bentuk aturan-aturan kuantitif dan perkiraan-perkiraan yang masuk akal. Noise dan data-data yang tidak diperlukan harus ditangani dengan rapi dalam sistem data mining. Hal ini juga akan memotivasi suatu studi sistematik untuk mengukur kualitas dari informasi yang dihasilkan, termasuk seberapa menariknya dan tingkat kepercayaannya yang dapat diukur secara statistik, analitis dan menggunakan model simulasi. 10.3.4. EKSPRESI TERHADAP BERBAGAI JENIS HASIL Berbagai macam jenis informasi dapat diperoleh dari sejumlah besar data. Seseorang mungkin ingin menguji informasi yang diperoleh dan sudut pandang yang berbeda dan menampilkannya dalam bentuk yang berbeda. Ini menuntut kita untuk mengekspresikan permintaan datamining dan informasi yang diperoleh dalam sebuah bahasa tingkat tinggi atau graphical user interface yang baik, sehingga program dapat digunakan oleh para pemakai biasa yang bukan ahli, dan hasil yang diperoleh dapat dimengerti serta langsung digunakan oleh pemakainya. Oleh karenanya, sistem harus bisa mengadopsi teknik-teknik penyajian informasi yang baik. By HendraNet http://www.hendra-jatnika.web.id
  • 120.
    BAB 10 DATAMINING 119 10.3.5.MEMPEROLEH INFORMASI DARI SUMBER-SUMBER DATA YANG BERBEDA Dengan adanya LAN (Local Area Network) dan WAN ( Wide Area Network) yang tersebar secara luas dewasa ini, termasuk Internet, maka terhubunglah - berbagai sumber data yang terdistribusi secara luas dan membentuk suatu basis data heterogen. Untuk memperoleh informasi dari berbagai sumber dan dalam berbagai format dengan berbagai semantik data menimbulkan tantangan baru dalam data mining. Di lain pihak, datamining bisa membantu mengungkapkan informasi-informasi yang ada dalam suatu basis data heterogen, dimana hal tersebut sulit untuk diwujudkan dengan sebuah sistem query sederhana. Lebih lanjut, ukuran data yang besar, distribusi yang luas dad data dan kompleksitas dari proses komputasi beberapa metode data mining, semakin memotivasi pengembangan algoritma untuk paralel data mining dan data mining untuk basis data terdistribusi. 10.3.6.PROTEKSI DAN KEAMANAN DATA Ketika data dapat diperlihatkan dari berbagai sudut pandang dan dalam level 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. 10.4. TAHAPAN DALAM DATA MINING Data-data yang ada, tidak dapat langsung diolah dengan menggunakan sistem data mining. Data-data tersebut harus dipersiapkan terlebih dahulu agar hasil yang diperoleh dapat lebih maksimal, dan waktu komputasinya lebih minimal. Proses persiapan data ini sendiri dapat mencapai 60 % dari keseluruhan proses dalam data mining. Adapun tahapan-tahapan yang harus dilalui dalam proses data mining antara lain: By HendraNet http://www.hendra-jatnika.web.id
  • 121.
    BAB 10 DATAMINING 120 Data Seleksi Praproses Transformasi Data Mining Interpretasi & Evaluasi Target Data Preprocess Data Transformed Data Patterm Gambar 11.1. Tahapan Data Mining • Basis Data Relasional Dewasa ini, hampir semua Data bisnis disimpan dalam basis data relasional. Sebuah model basis data relasional dibangun dari serangkaian tabel, setiap tabel disimpan sebagai sebuah file. Sebuah tabel relasional terdiri dari baris dan kolom. Kebanyakan model basis data relasional saat ini dibangun diatas lingkungan OLTP. OLTP (Online Transaction Processing ) adalah tipe akses yang digunakan oleh bisnis yang 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 By HendraNet http://www.hendra-jatnika.web.id
  • 122.
    BAB 10 DATAMINING 121 Transformasi data melakukan peringkasan data dengan mengasumsikan bahwa data telah tersimpan dalam tempat penyimpanan tunggal. Pada langkah terakhir, data telah di ekstrak dari banyak basis data ke dalam basis data tunggal. Tipe peringkasan yang dikerjakan dalam langkah ini mirip dengan peringkasan yang dikerjakan selama tahap ekstraksi. Beberapa perusahaan memilih untuk menngkas data dalam sebuah tempat penyimpanan tunggal. Fungsi fungsi Agregate yang sering digunakan antara lain: summarizations, averages, minimum, maximum, dan count. • Pembersihan Data Data-data yang telah terkumpul selanjutnya akan mengalami proses pembersihan. Proses pembersihan data dilakukan untuk membuang record yang keliru, menstandarkan attribut-attribut, merasionalisasi struktur data, dan mengendalikan data yang hilang. Data yang tidak konsisten dan banyak kekeliruan membuat hasil data mining tidak akurat. Adalah sangat penting untuk membuat data konsisten dan seiagam. Pembersihan data juga dapat membantu perusahaan untuk mengkonsolidasikan record. ini sangat berguna ketika sebuah perusahaan mempunyai banyak record untuk seorang pelanggan.Setiap record atau file pelanggan mempunyai nomor pelanggan yang sama, tetapi informasi dalam tiap filenya berbeda. • 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. • Reduksi Data dan 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 By HendraNet http://www.hendra-jatnika.web.id
  • 123.
    BAB 10 DATAMINING 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. 10.5. FUNGSIONALITAS DALAM DATA MINING Kebutuhan akan Data mining semakin dirasakan dalam berbagai bidang. Data mining bersifat dependen terhadap aplikasi terkait, ini berarti untuk aplikasi basis data yang berbeda, maka teknik data mining yang digunakannya mungkin juga akan berbeda. Hal ini dikarenakan terdapat kelebihan dan kekurangan dari masing-masing metode pencarian informasi, sehingga kita harus menyesuaikan antara keperluan dan kebutuhan akan informasi dengan penerapan teknik pencarian yang akan digunakan. Untuk memberikan gambaran yang lebih jelas tentang macam-macam informasi yang dapat ditemukan dalam sekumpulan data, berikut akan diberikan sedikit bahasan rinci mengenai hal tersebut. 10.5.1. MINING ASSOCIATION RULE Mining association rules atau pencarian aturan-aturan hubungan antar item dari suatu basis data transaksi atau basis data relasional, telah menjadi perhatian utama dalam masyarakat basis data. Tugas utamanya adalah untuk menemukan suatu himpunan hubungan antar item dalam bentuk A1A...AAm => B1A...ABn dimana A, ( for i E {1,...,m}) dan B; ( for j C {1,...,n} ) adalah himpunan atribut nilai, dari sekumpulan data yang relevan dalam suatu basis data. Sebagai contoh, dari suatu himpunan data transaksi, seseorang mungkin menemukan suatu hubungan berikut, yaitu jika seorang pelanggan membeli selai, ia biasanya juga membeli roti dalam satu transaksi yang sama. Oleh karena proses untuk menemukan hubungan antar item ini mungkin memerlukan pembacaan data transaksi secara berulang-ulang dalam sejumlah besar data-data transaksi untuk menemukan pola-pola hubungan yang berbeda-beda, By HendraNet http://www.hendra-jatnika.web.id
  • 124.
    BAB 10 DATAMINING 123 maka waktu dan biaya komputasi tentunya juga akan sangat besar, sehingga untuk menemukan hubungan tersebut diperlukan suatu algoritma yang efisien dan metode- metode tertentu. 10.5.2.GENERALISASI, PENCATATAN DAN KARAKTERISASI DATA MULTI LEVEL Salah satu aplikasi data mining dan analisa data yang paling sering digunakan dalam hubungannya dengan basis data sistem produksi adalah generalisasi dan pencatatan data, yang juga dikenal dengan beberapa nama lain seperti on-line analytical processing ( OLAP ), basis data multi dimensi, data cubes, abstraksi data, dan lain sebagainya. Generalisasi dan pencatatan data ini menampilkan karakteristik umum terhadap sekumpulan data yang dispesifikasikan oleh pemakai dalam basis data. Data dan obyek dalam basis data seringkali memuat informasi yang mendetail pada level primitif. Sebagai contoh, item relasi dalam suatu basis data sales mungkin saja mengandung atribut level primitif tentang informasi item seperti nomor item, nama item, tanggal pembuatan, harga dan lain sebagainya. Seringkali kita menginginkan 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 10.5.3. KLASIFIKASI DATA Aplikasi lain yang penting dari data mining adalah kemampuannya untuk melakukan proses klasifikasi pada suatu data dalam jumlah besar. Hal ini sering disebut mining classification rules. Sebagai contoh, sebuah dealer mobil ingin mengkiasifikasikan pelanggannya menurut kecenderungan mereka untuk menyukai mobil jenis tertentu, sehingga para sales yang bekerja disitu akan mengetahui siapa yang harus didekati, kemana katalog mobil jenis baru harus dikirim, sehingga hal ini akan sangat membantu dalam hal promosi. By HendraNet http://www.hendra-jatnika.web.id
  • 125.
    BAB 10 DATAMINING 124 Klasifikasi data adalah suatu proses yang menemukan properti-properti yang sama pada sebuah himpunan obyek di dalarn sebuah basis data, dan mengklasifikasikannya ke dalam kelas-kelas yang berbeda menurut model klasifikasi yang ditetapkan. 'Untuk membentuk sebuah model klasifikasi, suatu sampel basis data 'E' diperlakukan sebagai training set, dimana setiap tupel terdiri dari himpunan yang sama yang memuat atribut yang beragam seperti tupel-tupel yang terdapat dalam suatu basis data yang besar 'W'. Setiap tupel diidentifkasikan dengan sebuah label atau identitas kelas. Tujuan dari klasifikasi ini adalah pertama-tama untuk menganalisa training data dan membentuk sebuah deskripsi yang akurat atau sebuah model untuk setiap kelas berdasarkan feature-feature yang tersedia di dalam data itu. Deskripsi dari masing-masing kelas itu nantinya akan digunakan untuk mengklasifikasikan data yang hendak di test dalam basis data 'W', atau untuk membangun suatu deskripsi yang lebih balk untuk setiap kelas dalam basis data. Contoh untuk model ini adalah prediksi terhadap resiko pemberian kredit. Data terdiri dari orang orang yang telah menerima kredit. Sebagian kreditur menjalankan kewajiban dengan balk, dan sebagian lagi tidak. Data mining, harus mampu mendefinisikan atribut atribut apa yang paling berpengaruh dalam hal ini. 10.5.4. ANALISA CLUSTER Pada 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 By HendraNet http://www.hendra-jatnika.web.id
  • 126.
    BAB 10 DATAMINING 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. 10.5.5. PENCARIAN POLA, SEKUENSIAL Fungsi pola sekuensial menganalisa sekumpulan rekord pada suatu periode waktu, misalnya untuk menganalisa trend. Anggaplah kita memiliki suatu basis data yang ukurannya besar, yaitu basis data transaksi dimana setiap transaksi terdiri dari nomor pelanggan, waktu transaksi dan item-item yang ditransaksikan. Suatu pola dapat ditampilkan dalam contoh sebagai berikut, pelanggan biasanya membeli gula Iangsung melakukan transaksi membeli kopi. Dari semua transaksi membeli gula ternyata hampir seluruhnya terdapat transaksi membeli kopi. Maka dari pola-pola yang ada ini dapat dijadikan masukan bahwa telah terjadi suatu kecendrungan (trend) dari pelanggan dimana setiap pelanggan melakukan transaksi membeli gula maka akan diikuti oleh transaksi membeli kopi. Untuk itu pihak manajemen dapat menempatkan letak item kopi dekat dengan item gula. Sehingga memudahkan pelanggan untuk melakukan transaksi selanjutnya. 10.6. TEKNIK-TEKNIK DATA MINING Perkembangan bidang data mining yang semakin pesat, menimbulkan banyak tantangan baru, aplikasi-aplikasi dari metode dan teknik, statistik serta sistem basis data yang ada tidak dapat secara langsung menyelesaikan masalah-masalah yang ada dalam data mining. Oleh karena itu maka perlu dilakukan studi-studi terkait untuk menemukan metode data mining baru atau suatu teknik terintegrasi untuk sebuah sistem data mining yang efektif dan efisien. Dalam konteks ini, data mining itu sendiri telah menjadi suatu bidang baru yang independen. Telah banyak kemajuan dalam hal riset dan pengembangan dari data mining, juga banyak teknik data mining dan sistem baru yang By HendraNet http://www.hendra-jatnika.web.id
  • 127.
    BAB 10 DATAMINING 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. • Jenis informasi yang hendak dicari Beberapa jenis informasi dapat dihasilkan dad proses data mining ini, termasuk association rules, characteristic rules, classification rules, discriminant rules, clustering, sequential pattern, dan deviation analysis [AGR-93]. Lebih lanjut, ada kiasifikasi lainnya menurut level abstraksi dari informasi yang diperoleh, antara lain generalized knowledge, primitive level knowledge dan multiple level knowledge. Suatu sistem data mining yang fleksibel dapat menggali informasi pada berbagai level abstraksi. • Teknik yang hendak digunakan. Cara kiasifikasi yang lainnya adalah berdasarkan teknik yang digunakan. Misalnya, dikategorikan berdasarkan metode kendalinya seperti autonomous knowledge miner, data driven miner, query driven miner dan interactive data miner. Dapat juga dikategorikan berdasarkan pendekatan yang dipakai dalam melakukan data mining, yaitu generalization based mining, statistics and mathematical based mining, integrated approach mining dan lain sebagainya.Diantara berbagai macam klasifikasi yang ada, By HendraNet http://www.hendra-jatnika.web.id
  • 128.
    BAB 10 DATAMINING 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. 10.6.1. MARKET BASKET ANALYSIS Fungsi Association Rules seringkali disebut dengan "market basket analysis", yang digunakan untuk menemukan relasi atau korelasi diantara himpunan item2. Market Basket Analysis adalah Analisis dari kebiasaan membeli customer dengan mencari asosiasi dan korelasi antara item-item berbeda yang diletakkan customer dalam keranjang belanjaannya. 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 By HendraNet http://www.hendra-jatnika.web.id
  • 129.
    BAB 10 DATAMINING 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? • Kaidah asosiasi penambangan – Pertama kali diusulkan oleh Agrawal, Imielinski dan Swami [AIS93] • 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. • Contoh: 30% dari transaksi yang memuat bir juga memuat popok 5% dari transaksi memuat item-item berikut: – 30% : confidence dari kaidah ini – 5% : support dari kaidah ini • Kita berminat untuk mencari seluruh kaidah ketimbang memeriksa apakah suatu kaidah berlaku. Definisi Umum • Itemset: himpunan dari item-item yang muncul bersama-sama • Kaidah asosiasi: peluang bahwa item-item tertentu hadir bersama-sama. oX → Y dimana X n Y = 0 • Support, supp(X) dari suatu itemset X adalah rasio dari jumlah transaksi dimana suatu itemset muncul dengan total jumlah transaksi. • Konfidence (keyakinan) dari kaidah X . Y, ditulis conf(X . Y) adalah – conf(X → Y)=supp(X ∪ Y) / supp(X) By HendraNet http://www.hendra-jatnika.web.id
  • 130.
    BAB 10 DATAMINING 129 – Konfindence bisa juga didefinisikan dalam terminologi peluang bersyarat conf(X → Y)=P(Y|X)=P(X ∩ Y)/P(X) • 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. • Misalkan D={T1, T2, …, Tn} merupakan suatu himpunan dari n transaksi, dimana untuk setiap transaksi T∈ D, T ⊆ I. • Suatu himpunan item X ⊆⊆⊆⊆ I disebut itemset. • Suatu transaksi T memuat suatu itemset X jika X ⊆ T. • Setiap itemset X diasosiasikan dengan suatu himpunan transaksi TX ={T∈ D | T ⊇⊇⊇⊇ X} yang merupakan himpunan transaksi yang memuat itemset X. • Support supp(X) dari itemset X sama dengan |TX|/|D|. • Didalam setiap item adalah nilainilai yang menyatakan besaran item terjual. Gambar 11.2. Bentuk Transaksi Database • Item A muncul dalam 3 transaksi (|TA|) yakni di transaksi T1, T3,dan T8. • Ada sebanyak 10 transaksi (|D|) By HendraNet http://www.hendra-jatnika.web.id
  • 131.
    BAB 10 DATAMINING 130 • Supp(A)= |TA|/|D| = 3/10 = 0.3 • Kombinasi CD muncul didalam 5 transaksi ((|TCD|) yakni di transasi T1, T3, T5, T6, dan T9. • Supp(CD)= |TCD|/|D|= 5/10 = 0.5 • Frequent itemset didefinisikan sebagai itemset dimana support-nya lebih besar atau sama dengan minsupport yang merupakan ambang yang diberikan oleh user. • 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 • Dari frequent itemset bisa dibangun kaidah asosiasi sbb: A →→→→ C C →→→→ A A →→→→ D D →→→→ A C →→→→ D D →→→→ C, A,C →→→→ D A,D →→→→ C C,D →→→→A Gambar 11.3. Hasil nilai support untuk setiap items Analisis dari kebiasaan membeli customer dengan mencari asosiasi dan korelasi antara item-item berbeda yang diletakkan customer dalam keranjang belanjaannya. By HendraNet http://www.hendra-jatnika.web.id
  • 132.
    BAB 10 DATAMINING 131 Gambar 11.4. Keranjang Belanja • 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 Gambar 11.5. Bentuk Transaksi Keranjang Belanja • Mengekstraksi informasi perilaku pembelian – "IF membeli bir dan sosis, THEN juga membeli mostar dengan peluang tinggi" • Informasi yang bisa ditindak-lanjuti: – Bisa menyarankan Tata letak toko yang baru dan campuran produk – Bisa menyarankan Produk apa untuk diletakkan dalam promosi ? • Menganalisis tabel transaksi Person Basket A Chips, Salsa, coke, crakers, cookies, beer B Lettuce, Spinach, Oranges, Cellery, Apples, Grapes C Chips, Salsa, Frozen Pizza, Frozen cake D Lettuce, Spinach, Milk, Butter Gambar 11.6. Bentuk Analisa Keranjang Belanja By HendraNet http://www.hendra-jatnika.web.id
  • 133.
    BAB 10 DATAMINING 132 • Bisakah kita membuat hipotesa? – Chips => Salsa Lettuce => Spinach Dasar Kaidah Asosiasi: • Kaidah asosiasi penambangan: – Mencari pola yang sering muncul, asosiasi, korelasi, atau struktur sebab musabab diantara himpunan item-item atau objek-objek dalam database transaksi, database relasional, dan penyimpanan informasi lainnya • Kepemahaman: – Sederhana untuk dipahami • Kegunaan: – menyediakan informasi yang bias ditindaklanjuti • Efisiensi: – ada algoritma pencarian yang efisient • Aplikasi: – Analisis data keranjang pasar, pemasaran silang, rancangan katalog, analisis lossleader, clustering, klasifikasi, dsb. • Format penyajian kaidah asosiasi yang biasa: – popok . bir [0.5%, 60%] – beli:popok . beli:bir [0.5%, 60%] – "IF membeli popok, THEN membeli bir dalam 60% kasus. Popok dan bir dibeli bersama-sama dalam 0.5% dari baris-baris dalam database." • Penyajian lainnya (digunakan dalam buku Han): – Beli ( x, “popok” ) beli ( x, “bir” ) [ 0.5%, 60% ] – Major ( x, "CS" ) ^ mengambil ( x, "DB" ) grade( x,"A" ) [ 1%, 75% ] By HendraNet http://www.hendra-jatnika.web.id
  • 134.
    BAB 10 DATAMINING 133 1. Antecedent, left-hand side (LHS), body 2. Consequent, right-hand side (RHS), head 3. Support, frekuensi (“dalam berapa besar bagian dari data benda-benda dalam LHS dan RHS terjadi bersama-sama”) 4. Confidence, kekuatan (“jika LHS terjadi, bagaimana kirakira RHS terjadi”) • Support: menunjukkan frekuensi dari kaidah didalam transaksi. • Confidence: menunjukkan persentasi dari transaksi yang memuat A yang juga memuat B. • Minimum support σ : – High sedikit itemset yang sering sedikit kaidah yang sah yang sangat sering terjadi – Low banyak kaidah yang sah yang jarang terjadi • Minimum confidence γ : – High sedikit kaidah, tetapi selurhnya “hampir secara logika true” – Low banyak kaidah, banyak diantaranya sangat “takpasti” • Nilai-nilai biasanya: σ = 2 s/d 10 %, γ = 70 s/d 90 % • Transaksi: – Relational format Format Kompak < Tid, item > < Tid, itemset > < 1, item1 > < 1, {item1,item2}> < 1, item2 > < 2, {item3}> < 2, item3 > • Item vs itemsets : elemen tunggal vs. himpunan item By HendraNet http://www.hendra-jatnika.web.id
  • 135.
    BAB 10 DATAMINING 134 • Support dari suatu itemset I: jumlah transaksi yang memuat I • Minimum support σσσσ: ambang untuk support • Frequent itemset : dengan support = σ 10.6.2. ALGORITMA APRIORI Persoalan association rule mining terdiri dari dua sub persoalan : 1. Menemukan semua kombinasi dari item, dise but dengan frequent itemsets,yang memiliki support yang lebih besar daripada minimum support. 2. Gunakan frequent itemsets untuk men-generate aturan yang dikehendaki.Semisal, ABCD dan AB adalah frequent, maka didapatkan aturan AB -> CD jika rasio dari support(ABCD) terhadap support(AB) sedikitnya sama dengan minimum confidence. Aturan ini memiliki minimum support karena ABCD adalah frequent. Algoritma Apriori yang bertujuan untuk menemukan frequent itemsets dijalankan pada 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 Mining Fk merepresentasikan himpunan dari frequent k -itemsets, dan Ck adalah himpunan candidate k-itemsets (yang potensial untuk menjadi frequent itemsets). Tahap pertama adalah men-generate kandidat, dimana himpunan dari semua frequent (k- 1) itemsets, Fk-1, ditemukan dalam iterasi ke-(k-1), digunakan untuk men-generate candidate itemsets Ck. Prosedur generate candidate memastikan bahwa Ck adalah superset dari himpunan semua frequent k-itemsets. Struktur data hash-tree digunakan untuk menyimpan Ck. Kemudian data di-scan dalam tahap penghitungan support. Untuk setiap transaksi, candidates dalam Ck diisikan ke dalam transaksi, ditentukan dengan menggunakan struktur data hash-tree hashtree dan nilai penghitungan support dinaikkan. Pada akhir dari tahap kedua, nilai Ck diuji untuk menentukan yang mana dari candidates yang merupakan frequent. Kondisi penghitung (terminate condition) dari algoritma ini dicapai pada saat Fk atau Ck+1 kosong. By HendraNet http://www.hendra-jatnika.web.id
  • 136.
    BAB 10 DATAMINING 135 Inti dari algoritma apriori : • Gunakan frequent (k – 1)-itemsets untuk membangun kandidat frequent k- itemsets. • Gunakan scan database dan pencocokan pola untuk mengumpulkan hitungan untuk kandidat itemsets Penyumbatan dari apriori : generasi kandidat • Himpunan kandidat yang besar sekali: - 104 frequent 1-itemset akan membangun 107 kandidat 2-itemsets. - Untuk menemukan suatu pola yang sering dari ukuran 100, misal, {a1, a2, …, a100}, seseorang perlu membangun 2100 1030 kandidat. • Scan database berkali-kali: - Perlu (n +1 ) scans, n adalah panjang dari pola terpanjang Dalam praktek: • Untuk pendekatan apriori dasar, jumlah atribut dalam baris biasanya lebih kritis ketimbang jumlah baris transaksi • Contoh: - 50 atribut masing-masing memiliki 1-3 nilai, 100.000 baris (tidak sangat buruk) - 50 atribut masing-masing memiliki 10-100 nilai, 100.000 baris (cukup buruk) • Perhatian: - Satu atribut bisa memiliki beberapa nilai berbeda - Algoritma kaidah asosiasi biasanya memperlakukan setiap pasangan atribut-nilai sebagai satu atribut (2 atribut dengan masingmasing 5 nilai => "10 atribut") By HendraNet http://www.hendra-jatnika.web.id
  • 137.
    BAB 10 DATAMINING 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 support suatu metoda untuk menentukan kelengkapan. Diberikan: (1) database transaksi, (2) setiap adalah suatu daftar dari item-item yang dibeli (dibeli seorang customer pada suatu kunjungan) cari: seluruh kaidah dengan minimum support dan confidence If min. support 50% dan min. confidence 50%, then A => C [50%, 66.6%], C => A [50%, 100%]. Langkah-langkah untuk mencari nilai minimum support dam confidence dengan algoritma apriori STEP 1: cari frequent itemsets: himpunan item-item yang memiliki minimum support. • 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. By HendraNet http://www.hendra-jatnika.web.id
  • 138.
    BAB 10 DATAMINING 137 • Secara iteratif cari frequent itemsets dengan ukuran dari 1 hingga k (k- itemset) STEP 2: gunakan frequent itemsets untuk membangun kaidah asosiasi.. • Jika {bir,popok, kacang} frequent, maka {bir, popok} juga frequent. • Setiap transaksi yang memiliki {beer, popok, kacang} juga memuat {bir, popok}. • Jika {A,B} memiliki support paling tidak a , maka A dan B keduanya memiliki support paling tidak a. • Jika A atau B memiliki support kecil dari a maka {A, B} memiliki support lebih kecil dari a. Step Gabungan: Ck dibangun dgn menggabungkan Lk-1dengan dirinya Step Pemangkasan: setiap (k-1)-itemset yg bukan frequent tidak boleh menjadi suatu subset dari suatu frequent k-itemset. Pseudo-code: Ck: Kandidate itemset dari ukuran k; Lk : Frequent itemset dari ukuran k. L1 = {frequent items}; for (k = 1; Lk !=0; k++) do begin Ck+1 = {kandidat dibangun dari Lk }; for each transaksi t dalam database do naikkan hitungan dari seluruh kandidat dalam Ck+1 yang dimuat dalam t Lk+1 = {kandidat dalam Ck+1 dengan min_support} end return .k Lk; By HendraNet http://www.hendra-jatnika.web.id
  • 139.
    BAB 10 DATAMINING 138 Bentuk Ilustrasi Algoritma Apriori Gambar 11.7. Ilustrasi Algoritma Apriori Contoh apriori : TID CID Item Price Date 101 201 Computer 1500 1/4/99 101 201 MS Office 300 1/4/99 101 201 MCSE Book 100 1/4/99 102 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 • Dalam contoh ini untuk kaidah asosiasi {Computer} {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 ) By HendraNet http://www.hendra-jatnika.web.id
  • 140.
    BAB 10 DATAMINING 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% • Bagaimana dengan {Computer} {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) - Jumlah transaksi hanya Computer adalah 2 > Support(Computer {MCSE book)= 2/3 = 66.6% > Conf(Computer {MCSE book)= 2/2 = 100% • Berapa support dari 2-itemset {Computer , Hard disk} ? - Jumlah transaksi 2-itemset {Computer, Hard disk}adalah 1. - Jumlah transaksi keseluruhan adalah 3. > Support dari 2-itemset {Computer, Hard disk} adalah 1/3=33.3% • Berapa support dari 1-itemset {Computer}? - Jumlah transaksi 1-itemset {Computer}adalah 2. - Jumlah transaksi keseluruhan adalah 3. > Support dari 1-itemset {Computer} adalah 2/3=66.6% • 2 Step dalam kaidah asosiasi penambangan: - Cari seluruh itemsets yang supportnya diatas minimum support yang diberikan oleh user. Kita sebut itemsets ini itemsets besar. - Untuk setiap itemset besar L, carilah seluruh kaidah asosiasi dalam bentuk a (L-a) dimana a dan (L-a) adalah himpunan bagian L yang tak hampa. • Step 2 adalah jelas yang dikaitkan dengan step 1: - Ruang pencarian eksponensial - Ukuran dari transaksi database By HendraNet http://www.hendra-jatnika.web.id
  • 141.
    BAB 10 DATAMINING 140 Supp(Computer)=2/3=66.7%, supp(MS Office)=1/3=33.3% Supp(MCSE Book)=3/3=100%, supp(Hard Disk)=2/3=66.7% Supp(Computer,MSOffice)=1/3=33.3% Supp(Computer,MCSE Book)=2/3=66.7% Supp(Computer,Hard Disk)=1/3=33.3% Supp(MCSE Book, MS Office)=1/3=33.3% Supp(MCSE Book, Hard Disk)=2/3=66.7% Supp(MSOffice,Hard Disk)=0/3=0% Supp(Computer, MCSE Book,MSOffice)=1/3=33.3% Supp(Computer, MCSE Book, Hard Disk)=1/3=33.3% Supp(MCSE Book, MSOffice,Hard Disk)=0/3=0% Supp(Computer,MCSE Book, MSOffice,HardDisk)=0/3=0% Asosiasi dengan minsupport 60% adalah: Computer MCSE Book, MCSE Book Computer MCSE Book Hard Disk, Hard Disk MCSE Book Conf(Computer 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 MCSE Book dan Computer MCSE Book By HendraNet http://www.hendra-jatnika.web.id
  • 142.
    BAB 10 DATAMINING 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 • Tantangan-tantangan dalam Data Mining meliputi : penanganan berbagai tipe data, efisiensi dari algoritma data mining, kegunaan, kepastian dan keakuratan hasil, ekspresi terhadap berbagai jenis hasil dan data yang diambil dari berbagai sumber yang berbeda. • Tahapan dalam Data Mining meliputi : proses seleksi, pembersihan data, tranformasi, implementasi teknik data mining dan interprestasi hasil • Fungsionalitas dalam Data Mining meliputi mining association rule, karakterisasi data multilevel, klasifikasi data, analisa cluster, dan pencarian pola sekuensial • Teknik-teknik dalam Data Mining yang bisa diterapkan antara lain : market basket analysis dan Algoritma Apriori. By HendraNet http://www.hendra-jatnika.web.id
  • 143.
    BAB 10 DATAMINING 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 1 111 201 5/1/2002 Milk 2 111 201 5/1/2002 Juice 1 112 105 6/3/2002 Pen 1 112 105 6/3/2002 Ink 1 112 105 6/3/2002 Water 1 113 106 5/10/2002 Pen 1 113 106 5/10/2002 Water 2 113 106 5/10/2002 Milk 1 114 201 6/1/2002 Pen 2 114 201 6/1/2002 Ink 2 114 201 6/1/2002 Juice 4 114 201 6/1/2002 Water 1 114 201 6/1/2002 Milk 1 Simulasikan algoritma untuk menemukan frequent itemset pada table degan minimum support = 90 persen, lalu cari aturan asosiasi dengan minimum confidence = 90 persen. By HendraNet http://www.hendra-jatnika.web.id