basis data lanjut modul

143
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 kuliahBy HendraNet http://www.hendra-jatnika.web.id

Upload: denny-iman-safardan

Post on 08-Jun-2015

2.778 views

Category:

Education


9 download

DESCRIPTION

modul basis data lanjut

TRANSCRIPT

Page 1: basis data lanjut modul

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

Page 2: basis data lanjut modul

1

Bab 1

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

Page 3: basis data lanjut modul

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

Page 4: basis data lanjut modul

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

Page 5: basis data lanjut modul

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

Page 6: basis data lanjut modul

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

Page 7: basis data lanjut modul

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

Page 8: basis data lanjut modul

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

Page 9: basis data lanjut modul

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

Page 10: basis data lanjut modul

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

Page 11: basis data lanjut modul

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

Page 12: basis data lanjut modul

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

Page 13: basis data lanjut modul

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

Page 14: basis data lanjut modul

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

Page 15: basis data lanjut modul

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 Permana 001 70

10113024 Endang C Permana 002 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

Page 16: basis data lanjut modul

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

Page 17: basis data lanjut modul

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

Page 18: basis data lanjut modul

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

Page 19: basis data lanjut modul

18

Bab 2

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

Page 20: basis data lanjut modul

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.2 ATURAN 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

Page 21: basis data lanjut modul

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

Page 22: basis data lanjut modul

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

Page 23: basis data lanjut modul

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

Page 24: basis data lanjut modul

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

Page 25: basis data lanjut modul

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

Page 26: basis data lanjut modul

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

Page 27: basis data lanjut modul

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

Page 28: basis data lanjut modul

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

Page 29: basis data lanjut modul

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

Page 30: basis data lanjut modul

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

Page 31: basis data lanjut modul

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

Page 32: basis data lanjut modul

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

Page 33: basis data lanjut modul

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

Page 34: basis data lanjut modul

BAB 2 DESAIN BASIS DATA

33

Gambar 2-4: Modifikasi view untuk konfirmasi sebelum integrasi.

By HendraNet

http://www.hendra-jatnika.web.id

Page 35: basis data lanjut modul

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

Page 36: basis data lanjut modul

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

Page 37: basis data lanjut modul

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

Page 38: basis data lanjut modul

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

Page 39: basis data lanjut modul

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

Page 40: basis data lanjut modul

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

Page 41: basis data lanjut modul

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

Page 42: basis data lanjut modul

41

Bab 3

Query Lanjutan POKOK BAHASAN:

� Subquery dan penggunaannya � Subquery dengan banyak kolom � Pairwise Comparison SubQuery � NonPairwise Comparison SubQuery � Penggunaan Query dalam Klausa FROM � Ekspresi Scalar � Korelasi SubQuery dan penggunaannya � Penggunaan Query dengan Klausa WITH

TUJUAN BELAJAR: 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

Page 43: basis data lanjut modul

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

Page 44: basis data lanjut modul

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 ...)

MainMainqueryquery

SubquerySubquery

SELECT select_listFROM tableWHERE expr operator (SELECT select_list

FROM table);

By HendraNet

http://www.hendra-jatnika.web.id

Page 45: basis data lanjut modul

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_nameFROM employeesWHERE salary >

(SELECT salaryFROM employeesWHERE employee_id = 149) ;

1050010500

Main queryWHERE (MANAGER_ID, DEPARTMENT_ID) IN

Subquery100 90102 60124 50

By HendraNet

http://www.hendra-jatnika.web.id

Page 46: basis data lanjut modul

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_idFROM employeesWHERE (manager_id, department_id) IN

(SELECT manager_id, department_idFROM employeesWHERE employee_id IN (178,174))

AND employee_id NOT IN (178,174);

SELECT employee_id, manager_id, department_idFROM employeesWHERE manager_id IN

(SELECT manager_idFROM employeesWHERE employee_id IN (174,141))

AND department_id IN (SELECT department_idFROM employeesWHERE employee_id IN (174,141))

AND employee_id NOT IN(174,141);

By HendraNet

http://www.hendra-jatnika.web.id

Page 47: basis data lanjut modul

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) salavgFROM employeesGROUP BY department_id) b

WHERE a.department_id = b.department_idAND a.salary > b.salavg;

By HendraNet

http://www.hendra-jatnika.web.id

Page 48: basis data lanjut modul

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,(CASEWHEN department_id =

THEN 'Canada' ELSE 'USA' END) locationFROM employees;

(SELECT department_id FROM departmentsWHERE location_id = 1800)

2020

SELECT employee_id, last_nameFROM employees eORDER BY (SELECT department_name

FROM departments dWHERE e.department_id = d.department_id);

AMBILBaris dari outer query

JALANKANinner query dengan menggunakan nilai baris kandidat

GUNAKANNilai dari inner query untuk qualify /

disqualify baris kandidat

By HendraNet

http://www.hendra-jatnika.web.id

Page 49: basis data lanjut modul

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 table1WHERE column1 operator

(SELECT colum1, column2FROM table2WHERE expr1 =

.expr2);

outer

outer

SELECT last_name, salary, department_idFROM employees outerWHERE salary >

Setiap saat baris dariouter query diproses,maka inner query dievaluasi.

(SELECT AVG(salary)FROM employeesWHERE department_id =

outer.department_id) ;

By HendraNet

http://www.hendra-jatnika.web.id

Page 50: basis data lanjut modul

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_idFROM employees e WHERE 2 <= (SELECT COUNT(*)

FROM job_history WHERE employee_id = e.employee_id);

UPDATE table1 alias1SET column = (SELECT expression

FROM table2 alias2WHERE alias1.column =

alias2.column);By HendraNet

http://www.hendra-jatnika.web.id

Page 51: basis data lanjut modul

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 alias1WHERE column operator

(SELECT expressionFROM table2 alias2WHERE alias1.column = alias2.column);

DELETE FROM employees EWHERE employee_id =

(SELECT employee_idFROM emp_history WHERE employee_id = E.employee_id);

By HendraNet

http://www.hendra-jatnika.web.id

Page 52: basis data lanjut modul

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_idFROM employees outerWHERE EXISTS ( SELECT 'X'

FROM employeesWHERE manager_id =

outer.employee_id);

SELECT department_id, department_nameFROM departments dWHERE NOT EXISTS (SELECT 'X'

FROM employeesWHERE department_id

= d.department_id);

By HendraNet

http://www.hendra-jatnika.web.id

Page 53: basis data lanjut modul

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_totalFROM employees e, departments dWHERE e.department_id = d.department_idGROUP BY d.department_name),

avg_cost AS (SELECT SUM(dept_total)/COUNT(*) AS dept_avgFROM dept_costs)

SELECT * FROM dept_costsWHERE dept_total >

(SELECT dept_avg FROM avg_cost)

ORDER BY department_name;

By HendraNet

http://www.hendra-jatnika.web.id

Page 54: basis data lanjut modul

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

Page 55: basis data lanjut modul

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

Page 56: basis data lanjut modul

55

Bab 4

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

Page 57: basis data lanjut modul

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

Page 58: basis data lanjut modul

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%\RDBMS\ADMIN.

Setelah itu table PLAN_TABLE dapat digunakan seperti contoh berikut :

SQL> explain plan

Set statement_id=’test1’

Into plan_table for

Select * from karyawan where gaji=2000000;

Dalam PLAN_TABLE rencana eksekusi diatas dikenal dengan nama test1 yang

terdefinisi pada kolom statement_id.

By HendraNet

http://www.hendra-jatnika.web.id

Page 59: basis data lanjut modul

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

Page 60: basis data lanjut modul

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

Page 61: basis data lanjut modul

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

Page 62: basis data lanjut modul

61

Bab 5

Database Trigger POKOK BAHASAN:

� Pembuatan dan Penggunaan Trigger � Statement trigger � Row Trigger � Menggunakan Old dan New Qualifiers � Klausa WHEN pada trigger � Perintah-perintah umum pada Trigger

TUJUAN BELAJAR: 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

Page 63: basis data lanjut modul

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

Page 64: basis data lanjut modul

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

Page 65: basis data lanjut modul

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

Page 66: basis data lanjut modul

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

Page 67: basis data lanjut modul

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

Page 68: basis data lanjut modul

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

Page 69: basis data lanjut modul

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

Page 70: basis data lanjut modul

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

Page 71: basis data lanjut modul

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

Page 72: basis data lanjut modul

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

Page 73: basis data lanjut modul

72

Bab 6

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

Page 74: basis data lanjut modul

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

Page 75: basis data lanjut modul

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

Page 76: basis data lanjut modul

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

Page 77: basis data lanjut modul

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

Page 78: basis data lanjut modul

77

Bab 7

Basis Data Terdistribusi POKOK BAHASAN:

� Pendahuluan � Tipe Basis Data Terdistribusi � Arsitektur Basis Data Terdistribusi � Penyimpanan Data pada Sistem Terdistribusi � Manajemen Katalog Terdistribusi � Query Terdistribusi � Joins pada DBMS Terdistribusi � Optimasi Query pada DBMS Terdistribusi � Mengubah Data Terdistribusi � Locking pada Sistem Terdistribusi � Distributed Recovery

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

Page 79: basis data lanjut modul

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

Page 80: basis data lanjut modul

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

Page 81: basis data lanjut modul

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

Page 82: basis data lanjut modul

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

tttt

Fragmentasi vertikal Fragmentasi horisontal

Gambar 7-4: Fragmentasi horisontal dan vertikal

By HendraNet

http://www.hendra-jatnika.web.id

Page 83: basis data lanjut modul

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

Page 84: basis data lanjut modul

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

Page 85: basis data lanjut modul

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

Page 86: basis data lanjut modul

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

Page 87: basis data lanjut modul

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

Page 88: basis data lanjut modul

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

Page 89: basis data lanjut modul

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

Page 90: basis data lanjut modul

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

Page 91: basis data lanjut modul

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 T1 T2 T2 T2

SITE A SITE B GLOBAL

Gambar 7-6: Deadlock Global

By HendraNet

http://www.hendra-jatnika.web.id

Page 92: basis data lanjut modul

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

Page 93: basis data lanjut modul

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

Page 94: basis data lanjut modul

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

Page 95: basis data lanjut modul

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

Page 96: basis data lanjut modul

95

Bab 8

Basis Data Internet POKOK BAHASAN:

� World Wide World � Pendahuluan HTML � Basis Data dan Web � Arsitektur Application Server dan Server-Side Java � Pendahuluan XML � XML : DTDs � Spesifikasi Domain pada DTDs � Melakukan Query Data XML (XML-QL) � Model Data Semi-terstruktur

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

Page 97: basis data lanjut modul

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

Page 98: basis data lanjut modul

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

Page 99: basis data lanjut modul

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

Page 100: basis data lanjut modul

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

Page 101: basis data lanjut modul

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

Page 102: basis data lanjut modul

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

Page 103: basis data lanjut modul

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

Page 104: basis data lanjut modul

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

Page 105: basis data lanjut modul

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

Page 106: basis data lanjut modul

105

Bab 9

Data Warehousing dan

Decision Support POKOK BAHASAN:

� Hubungan antara Data Warehouse dan Decision Support � Model Data Multidimensi � Online Analytical Processing (OLAP) � Arsitektur Data Warehouse � Implementasi Data Warehouse � View dan Decision Support

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

Page 107: basis data lanjut modul

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

Page 108: basis data lanjut modul

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

11

12

13

loci

d

By HendraNet

http://www.hendra-jatnika.web.id

Page 109: basis data lanjut modul

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

Page 110: basis data lanjut modul

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

Page 111: basis data lanjut modul

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

Page 112: basis data lanjut modul

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

Page 113: basis data lanjut modul

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

Page 114: basis data lanjut modul

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

Page 115: basis data lanjut modul

114

Bab 10

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

Page 116: basis data lanjut modul

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

Page 117: basis data lanjut modul

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

Page 118: basis data lanjut modul

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

Page 119: basis data lanjut modul

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

Page 120: basis data lanjut modul

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

Page 121: basis data lanjut modul

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

Page 122: basis data lanjut modul

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

Page 123: basis data lanjut modul

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

Page 124: basis data lanjut modul

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

Page 125: basis data lanjut modul

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

Page 126: basis data lanjut modul

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

Page 127: basis data lanjut modul

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

Page 128: basis data lanjut modul

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

Page 129: basis data lanjut modul

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

Page 130: basis data lanjut modul

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

Page 131: basis data lanjut modul

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

Page 132: basis data lanjut modul

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

Page 133: basis data lanjut modul

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

Page 134: basis data lanjut modul

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

Page 135: basis data lanjut modul

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

Page 136: basis data lanjut modul

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

Page 137: basis data lanjut modul

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

Page 138: basis data lanjut modul

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

Page 139: basis data lanjut modul

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

Page 140: basis data lanjut modul

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

Page 141: basis data lanjut modul

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

Page 142: basis data lanjut modul

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

Page 143: basis data lanjut modul

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