7basisdatalanjutmodul 140531181645 Phpapp02 Dikonversi
7basisdatalanjutmodul 140531181645 Phpapp02 Dikonversi
7basisdatalanjutmodul 140531181645 Phpapp02 Dikonversi
id
KULIAH
BASIS DATA LANJUT
POLITEKNIK PIKSI GANESHA
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..
By
Hendra Jatnika, S.Kom
http://www.hendra-jatnika.web.id
Bab 1
Review Database 1
POKOK BAHASAN:
✓ Pendahuluan
✓ ER-Model
✓ Model Relasional
✓ Structured Query Language
✓ Normalisasi
TUJUAN BELAJAR:
1.1. PENDAHULUAN
1
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.
BAB 1 REVIEW DATABASE 1 3
Pada konteks yang lebih luas, ER model digunakan dalam fase desain basis data
konseptual.
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.
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.
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 ?
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.
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 :
Yaitu mencari data Students (nama Students dan mata kuliah yang diikutinya) yang
mendapat nilai “A”.
BAB 1 REVIEW DATABASE 1 9
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).
BAB 1 REVIEW DATABASE 1 11
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
BAB 1 REVIEW DATABASE 1 14
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_proyekNama Alamat_kota
1 Endang C Permana Bandung
2 Endang C Permana Ebandung
3 Samsul Jakarta
4 Samsul Jakarta
Table 7. yang sudah dalam bentuk normal ketiga
Kode_Proyek Nama
1 Endang C Permana
2 Endang C Permana
3 Samsul
4 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.
Pada ER Model, gambaran dunia nyata diistilahkan dalam obyek dan relasinya dan
digunakan untuk mengembangkan inisial dari desain basis data.
BAB 1 REVIEW DATABASE 1 16
Batasan Integritas adalah suatu kondisi yang harus bernilai benar untuk suatu
instance dalam basis data
Structured Query Language (SQL) adalah bahasa database relasional yang dibuat
berdasarkan suatu standart, dan memiliki bentuk dasar :
SELECT [DISTINCT] select-list
FROM from-list
WHERE qualification
Normalisasi adalah perbaikan skema database yang dibuat dengan tujuan untuk
menghindari penyimpanan informasi yang redundan.
LATIHAN SOAL :
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.
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.
Bab 2
Desain Basis Data
POKOK BAHASAN:
✓ Pendahuluan
✓ Aturan Sistem Informasi dalam Organisasi
✓ Proses Desain Basis Data
TUJUAN BELAJAR:
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.
18
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.
Data dianggap sebagai resource yang bekerjasama, dan manajemen dan kontrol
dilakukan terpusan untuk pekerjaan yang lebih efisien dalam organisasi
Seiring pertumbuhan data dan aplikasi relasi yang lebih kompleks dari data perlu
dimodelkan dan diatur.
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.
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
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.
pada isi data maupun aplikasi perangkat lunak. Modifikasi dan reorganisasi
diperlukan dari waktu ke waktu.
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.
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
BAB 2 DESAIN BASIS DATA 25
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.
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
BAB 2 DESAIN BASIS DATA 30
VEHICLE_OWNER ditemukan dari tipe entiti yang sudah ada yaitu FACULTY,
STAFF dan STUDENT.
Gambar 2-3: Contoh strategi bottom-up. (a) menemukan dan menambah relasi
baru. (b) menemukan katagori baru (tipe union) dan menghubungkannya.
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.
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).
BAB 2 DESAIN BASIS DATA 35
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.
BAB 2 DESAIN BASIS DATA 37
RINGKASAN:
Terdapat aturan system informasi dalam organisasi, system basis data dilihat
sebagai bagian system informasi dalam aplikasi berskala besar.
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
Pada basis data relasional, factor yang berakibat pada keputusan rancangan basis
data fisik dan mnyediakan tuntunan pemilihan alternative rancangan desain
BAB 2 DESAIN BASIS DATA 40
LATIHAN SOAL :
2. Manakah dari 6 tahap tersebut sebagai aktifitas utama dalam proses perancangan
basis data ? Mengapa ?
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 ?
9. Strategi apa yang digunakan untuk merancang skema konseptual dari kebutuhan ?
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 ?
Bab 3
Query Lanjutan
POKOK BAHASAN:
TUJUAN BELAJAR:
41
BAB 3 QUERY LANJUTAN 42
1. Tabel DEPARTMENTS
2. Tabel EMPLOYEES
BAB 3 QUERY LANJUTAN 43
3. Tabel JOB_HISTORY
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.
Pada gambar diatas, subquery (inner query) dijalankan sekali sebelum main
query. Kemudian hasil dari subquery digunakan oleh main query (outer query).
Berikut posisi penulisan subquery dalam SQL command :
SELECT select_list
FROMtable
WHEREexpr operator
(SELECT select_list
FROMtable);
BAB 3 QUERY LANJUTAN 44
SELECT last_name
FROM WHERE
employees salary > 10500
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.
Main query
WHERE (MANAGER_ID, DEPARTMENT_ID) IN
Subquery
100 90
102 60
124 50
http://www.hendra-jatnika.web.id
(SELECTmanager_id FROMemployees
WHEREemployee_id IN (174,141))
AND department_id IN
(SELECTdepartment_id FROMemployees
WHEREemployee_id IN (174,141))
Query diatas menampilkan nama dan gaji dari pegawai yang gajinya lebih besar
dari rata-rata gaji pegawai pada departemen tempat dia bekerja.
AMBIL
Baris dari outer query
JALANKAN
inner query dengan menggunakan nilai baris kandidat
GUNAKAN
Nilai dari inner query untuk qualify / disqualify baris kandidat
Gambar 3-2 : Proses Korelasi Subquery
BAB 3 QUERY LANJUTAN 48
Pada gambar 1, 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.
BAB 3 QUERY LANJUTAN 49
SELECT e.employee_id,
last_name,e.job_id FROM employees e
WHERE 2 <= (SELECT COUNT(*)
FROM job_history
WHERE employee_id = e.employee_id);
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 :
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 :
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.
BAB 3 QUERY LANJUTAN 52
WITH
dept_costsAS (
SELECTd.department_name, SUM(e.salary) AS dept_total FROMemployees e, departments d
WHEREe.department_id = d.department_id GROUP BY d.department_name),
avg_costAS (
SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROMdept_costs)
SELECT *
FROMdept_costs WHEREdept_total >
(SELECT dept_avg FROM avg_cost)
ORDER BY department_name;
RINGKASAN:
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.
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.
Bab 4
Optimasi Query
POKOK BAHASAN:
TUJUAN BELAJAR:
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.
55
BAB 4 OPTIMASI QUERY 56
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;
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.
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’;
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.
RINGKASAN:
Data yang tersimpan dalam jumlah yang sangat besar, Terdapat aturan system
informasi dalam organisasi, system basis data dilihat sebagai bagian system
informasi dalam aplikasi berskala besar.
Untuk meningkatkan unjuk kerja tidak hanya desain logik saja yang diperhatikan
tapi juga struktur fisik penyimpanan data.
Informasi tentang jalur akses yang digunakan oleh database untuk melaksanakan
query dalam database Oracle dapat dengan menggunakan perintah explain plan.
Selain optimasi perintah SQL, faktor lain yang berpengaruh terhadap kecepatan
akses data adalah optimasi aplikasi dan penggunaan cluster dan index.
Pada sebuah database engine semisal pada database Oracle kecepatan akses data
dipengaruhi oleh beberapa komponen arsitektur pembentuknya seperti shared
pool, buffer cache, dan redo log buffer.
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 !
TUJUAN BELAJAR:
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.
61
BAB 5 DATABASE TRIGGER 62
Pada gambar tersebut, database trigger CHECK_SAL memeriksa nilai gaji pada
saat suatu aplikasi mencoba untuk memasukkan baris baru ke dalam table
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
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.
Ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
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;
BAB 5 DATABASE TRIGGER 65
Maka ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
Contoh trigger diatas akan membatasi penyisipan baris baru ke dalam table
EMPOYEES diperbolehkan hanya pada jam kerja mulai hari Senin sampai Jum’at. Jika
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);
UPDATE employees
SET salary = 15500
WHERE last_name = 'Russell';
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;
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
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
BAB 5 DATABASE TRIGGER 70
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
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.
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.
• Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi
program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
• Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan
dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
4.Buat contoh sebuat trigger untuk menyimpan data. (beri penjelasan tiap baris program yang anda
5.Buat contoh procedure untuk menampilkan tulisan nama anda (beri penjelasan tiap baris program
yang anda buat)
✓ Pendahuluan
✓ Arsitektur Client-Server
✓ Pengaksesan Query pada Basis Data Client-Server
TUJUAN BELAJAR:
6.1 PENDAHULUAN
72
BAB 6 BASIS DATA CLIENT-SERVER 73
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.
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
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.
BAB 6 BASIS DATA CLIENT-SERVER 75
RINGKASAN:
Modul perangkat lunak yang terdapat pada DDBMS dapat dibagi dalam tiga level,
yaitu perangkat lunak server, client dan komunikasi
BAB 6 BASIS DATA CLIENT-SERVER 76
LATIHAN SOAL :
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.
✓ 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:
7.1 PENDAHULUAN
Pada basis data terdistribusi (distributed database), data disimpan pada beberapa
tempat (site), setiap tempat diatur dengan suatu DBMS (Database Management System)
77
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).
Gateway
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.
QUERY
CLIENT CLIENT
SERVER
SERVER
SERVER
QUERY
TI
t
t
t
t
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.
BAB 7 BASIS DATA TERDISTRIBUSI 82
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 R3
SITE A
SITE B
R1 R2
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.
Sebagai contoh, London menyimpan 500 halaman Sailor dan Paris mempunyai
1000 halaman Reserves seperti Gambar 7-6.
LONDON PARIS
Sailors Reserves
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.
BAB 7 BASIS DATA TERDISTRIBUSI 86
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
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.
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.
BAB 7 BASIS DATA TERDISTRIBUSI 88
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.
T1 T2 T1 T2 T1 T2
SITE A SITE B GLOBAL
Gambar 7-6: Deadlock Global
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.
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.
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.
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.
LATIHAN SOAL :
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.
10. Mengapa pemberian nama unik pada obyek basis data lebih kompleks pada DBMS
terdistribusi ?
Bab 8
Basis Data Internet
POKOK BAHASAN:
TUJUAN BELAJAR:
Web memungkinkan mengaksen suatu file dimanapun pada internat. Suatu file
diidentifikasi dengan universal resource locater (URL), contohnya :
hppt : //www.eepis-its.edu/~database/index.html
95
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.
<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>
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).
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
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.
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 :
BAB 8 BASIS DATA INTERNET 99
<!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”>
]>
WHERE
<BOOK>
<NAME><LAST>$1</LAST></NAME>
</BOOK> in
“www.booklist.com/books.xml CONSTRUCT
<RESULT> $1 </RESULT>
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 :
BAB 8 BASIS DATA INTERNET 102
BOOK
Milan Kundera
Richard Feynman
RINGKASAN:
File pada World Wide Web diidentifikasi melalui universal resource locator
(URL). Web browser membawa URL ke tempat yang berisi file dan bertanya
pada Web server pada tempat tersebut untuk file yang dimaksud. Jika kemudian
menampilkan file yang tepat, membawa ke tipe file dan instruksi terformat.
Browser memanggil program aplikasi untuk menangani tipe file tersebut, misalnya
memanggil Microsoft Word untuk menangani dokumen Word. HTML adalah
markup language yang sederhana yang digunakan untuk menggambarkan
dokumen. Program Java, audio dan video dalap disertakan dalam dokumen
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.
BAB 8 BASIS DATA INTERNET 104
LATIHAN SOAL :
1. Definisikan arti dan gambarkan penggunaan
a. HTML b. URL
e. Java Servlet
5. Misalnya pada toko buku. Diasumsikan pelanggan juga ingin mencari buku
berdasarkan judul. Buatlah dokumen HTML yang memungkinkan pemakai
menginputkan judul buku.
“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”
c. Buatlah DTD untuk dokumen XML anda dan pastikan dokumen yang anda
buat pada pertanyaan terakhir adalah valid untuk DTD.
TUJUAN BELAJAR:
9.1. PENDAHULUAN
105
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 106
17 5 12
pid
21 16 6
locid
13 4 3
1 2 3
timeid
2. Drill down
Adalah kebalikan dari roll up. Misalnya untuk setiap propinsi dapat diberikan total
penjualan, maka total penjualan tiap kota dapat di-drill down.
3. Pivoting
Yaitu melakukan agregasi pada dimensi terpilih. Misalnya jika dilakukan pivoting pada
Location dan Time didapatkan cross-tabulation sebagai berikut :
LA NY tota
199 8 25 41 66
199 9 64 53 11
tot a 89 94 18
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
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.
View digunakan secara luas dalam aplikasi decision support dan berhubungan erat
dengan OLAP dan data warehousing dan perlu disinkronisasi secara periodik.
LATIHAN SOAL :
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).
BAB 9 DATA WAREHOUSING DAN DECISION SUPPORT 113
7. Tuliskan query dalam SQL, sesuai dengan data yang ada pada gambar 10.1
8. Mengapa view begitu penting dalam lingkungan decision support ? Bagaimana view
dihubungkan dalam lingkungan data warehousing dan OLAP ?
Bab 10
Data Mining
POKOK BAHASAN:
TUJUAN BELAJAR:
10.1. PENDAHULUAN
114
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].
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.
BAB 10 DATA MINING 116
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.
khusus untuk tipe-tipe data khusus seperti dalam basis data relasional, basis data
transaksi, basis data spasial, basis data multimedia dan lain sebagainya.
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.
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:
BAB 10 DATA MINING 120
Data Mining
Transformasi
Patterm
Transformed Data
Seleksi Praproses
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
BAB 10 DATA MINING 121
Pembersihan Data
Bentuk Standar
Selanjutnya setelah data mengalami proses pembersihan maka data ditranfer kedalam
bentuk standar. Bentuk standar adalah adalah bentuk data yang akan diakses oleh
algoritma data mining. Bentuk standar ini biasanya dalam bentuk spreadsheet like.
Bentuk spreadsheet bekerja dengan baik karena baris merepresentasikan kasus dan
kolom merepresentasikan feature.
Setelah data berada dalam bentuk standar spreadsheet perlu dipertimbangkan untuk
mereduksi jumlah feature. Ada beberapa alasan untuk mengurangi jumlah feature dalam
spreadsheet kita. Sebuah bank mungkin mempunyai ratusan feature ketika hendak
memprediksi resiko kredit. Hal ini berarti perusahaan mempunyai data dalam jumlah
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.
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.
maka waktu dan biaya komputasi tentunya juga akan sangat besar, sehingga untuk
menemukan hubungan tersebut diperlukan suatu algoritma yang efisien dan metode-
metode tertentu.
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
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.
BAB 10 DATA MINING 124
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.
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
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.
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.
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.
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.
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
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.
Item A muncul dalam 3 transaksi (|TA|) yakni di transaksi T1, T3,dan T8.
Ada sebanyak 10 transaksi (|D|)
BAB 10 DATA MINING 130
Analisis dari kebiasaan membeli customer dengan mencari asosiasi dan korelasi antara
item-item berbeda yang diletakkan customer dalam keranjang belanjaannya.
BAB 10 DATA MINING 131
Diberikan :
– Suatu database transaksi customer (misal, keranjang belanja), dimana
setiap transaksi dalah suatu himpunan item-item (misal produk)
Cari:
– Grup item-item yang sering dibeli secara bersama-sama
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
BAB 10 DATA MINING 134
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.
BAB 10 DATA MINING 135
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")
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)
Secara iteratif cari frequent itemsets dengan ukuran dari 1 hingga k (k-
itemset)
Contoh apriori :
- 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
BAB 10 DATA MINING 140
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
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
Teknik-teknik dalam Data Mining yang bisa diterapkan antara lain : market basket
analysis dan Algoritma Apriori.
BAB 10 DATA MINING 142
LATIHAN SOAL :
4. Jelaskan mengapa aturan asosiasi tidak dapat digunakan secara langsung untuk
prediksi, tanpa analisis yang lebih lanjut atau domain pengetahuan !
Simulasikan algoritma untuk menemukan frequent itemset pada table degan minimum
support = 90 persen, lalu cari aturan asosiasi dengan minimum confidence = 90 persen.
4.Buat contoh sebuat trigger untuk menyimpan data. (beri penjelasan tiap baris
program yang anda
5.Buat contoh procedure untuk menampilkan tulisan nama anda (beri penjelasan tiap
baris program yang anda buat)