UNIVERSITAS BINA NUSANTARA
Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2006/2007
PERANCANGAN CONCURRENCY CONTROL PADA RDBMS
BERBASIS XML
The Agus Santoso 0700678673
Mariah Hanisah 0700682134
Fbrayuki Darmanto 0700712396
Abstrak
Tujuan dari penelitian ini adalah merancang sebuah concurrency control yang mempunyai kemampuan untuk mengatur agar banyak user (multi user) dapat mengakses database dan konsistensi data tetap terjamin. Metodologi yang digunakan dalam penelitian ini adalah metode perancangan software menggunakan model waterfall. Penelitian ini telah menghasilkan sebuah komponen concurrency control pada RDBMS berbasis XML yang mengimplementasikan konsep client-server. Komponen ini memiliki kemampuan menangkap permintaan query yang diterima dari banyak client yang terhubung ke server secara bersamaan. Komponen ini akan melakukan proses analisis sintaks untuk memastikan query tersebut telah mengikuti aturan penulisan sintaks. Berikutnya, komponen ini akan melakukan pemisahan satu transaksi ke dalam satu atau banyak operasi serta melakukan pemisahan permintaan akses, nama tabel, nama kolom yang akan diakses, dan syarat yang diajukan di dalam setiap operasi. Komponen ini akan membuat schedule terhadap setiap operasi di dalam semua transaksi. Schedule dapat berupa serial schedule maupun nonserial schedule. Dari penelitian ini dapat disimpulkan bahwa penelitian ini telah mencapai tujuannya yaitu concurrency control dapat mengatur operasi-operasi di dalam semua transaksi yang diterima dari banyak client pada saat bersamaan agar dapat berjalan secara simultan pada database tanpa mengganggu operasi pada transaksi lainnya sehingga dapat menghasilkan data yang konsisten. Penggunaan basis XML dalam penyimpanan data membuat database menjadi mudah dimengerti oleh mesin dan manusia. Penelitian ini dapat digunakan sebagai referensi bagi developer untuk pengembangan RDBMS. Saran untuk pengembangan komponen ini selanjutnya adalah pengaksesan database oleh banyak user melalui mekanisme concurrency control yang meliputi join table, multiple database, dan distributed database.
Kata Kunci :
PRAKATA
Dengan segala kerendahan hati, penulis memanjatkan puji syukur kepada Tuhan
Yang Maha Esa yang telah melimpahkan berkat dan kemurahan-Nya sehingga penulis
dapat menyelesaikan penyusunan skripsi yang berjudul “PERANCANGAN
CONCURRENCY CONTROL PADA RDBMS BERBASIS XML” ini dengan baik dan tepat pada waktunya. Penyusunan skripsi ini dimaksudkan untuk memenuhi
sebagian dari persyaratan guna mencapai gelar Sarjana Komputer Jurusan Teknik
Informatika pada Fakultas Ilmu Komputer Bina Nusantara.
Semoga skripsi ini nantinya akan dapat memberikan manfaat bagi perkembangan
teknologi informasi di Indonesia dan dapat dijadikan sebagai suatu sumbangan, baik
untuk dunia pendidikan umumnya dan Universitas Bina Nusantara khususnya.
Dalam kesempatan ini penulis juga ingin menyampaikan rasa terima kasih
kepada semua pihak yang telah banyak membantu penulis, baik secara langsung maupun
tidak langsung, yaitu kepada :
1. Prof. Dr. Geraldus Polla M.App, Sc, selaku Rektor Universitas Bina Nusantara.
2. Bapak Ir. Sablin Yusuf, M.Sc.,M.Comp.Sc, selaku Dekan Fakultas Ilmu Komputer
Universitas Bina Nusantara.
3. Bapak H. Mohammad Subekti selaku Ketua Jurusan Teknik Informatika Universitas
Bina Nusantara.
4. Bapak Fredy Purnomo, S.Kom., M.Kom selaku Sekretaris Jurusan Teknik
Informatika Universitas Bina Nusantara.
waktu, memberikan saran, bantuan, bimbingan, pengarahan, dorongan, kepercayaan,
dan kesempatan kepada penulis dalam menyelesaikan masalah-masalah yang
dihadapi penulis selama penyusunan skripsi ini.
6. Seluruh dosen Universitas Bina Nusantara yang telah membekali penulis dengan
ilmu pengetahuan.
7. Orang tua serta saudara yang telah memberikan dukungan materiil dan moril kepada
penulis dalam menyelesaikan penyusunan skripsi ini.
8. Seluruh staf dan asisten UPTPL Universitas Bina Nusantara yang telah memberikan
dukungan, tempat, dan sarana selama penulisan skripsi ini.
9. Semua pihak yang tidak dapat kami sebutkan satu per satu baik yang secara langsung
ataupun tidak langsung telah memberikan bantuan, dorongan, dan motivasi kepada
penulis dalam menyelesaikan skripsi ini.
Akhir kata, penulis mengharapkan saran dan masukan dari berbagai pihak
terhadap skripsi ini. Karena saran dan masukan anda akan semakin memperdalam
pengetahuan penulis dan pengembangan karya ilmiah ini. Penulis berharap skripsi ini
dapat memberikan manfaat bagi yang membacanya dan dapat membantu pihak-pihak
yang memerlukannya.
Jakarta, Januari 2007
DAFTAR ISI
HALAMAN JUDUL LUAR...i
HALAMAN JUDUL DALAM ... ii
HALAMAN PERSETUJUAN HARDCOVER... iii
HALAMAN PERNYATAAN DEWAN PENGUJI ...iv
HALAMAN ABSTRAK... vii
PRAKATA... viii
DAFTAR ISI...x
DAFTAR TABEL...xvi
DAFTAR GAMBAR ... xvii
DAFTAR LAMPIRAN...xxi
BAB 1 PENDAHULUAN ...1
1.1 Latar Belakang ...1
1.2 Ruang Lingkup...5
1.3 Tujuan Dan Manfaat ...6
1.4 Metodologi Penelitian ...7
1.5 Sistematika Penulisan ...8
BAB 2 LANDASAN TEORI...10
2.1 Database...10
2.2 Database Management System (DBMS) ...10
2.2.1 Komponen DBMS...11
2.2.2 Advantages and Disadvantages of DBMSs...13
2.4 Concurrency Control...16
2.4.1 Kebutuhan Akan Concurrency Control...16
2.4.1.1 Masalah Lost Update...17
2.4.1.2 Masalah Uncommitted Dependency (Dirty Read)...18
2.4.1.3 Masalah Inconsistent Analysis...19
2.4.2 Serializability dan Recoverability...21
2.4.2.1 Serializability...21
2.4.2.2 Recoverability...28
2.4.3 Metode Locking...29
2.4.3.1 Mencegah Masalah Lost Update Menggunakan 2PL ...31
2.4.3.2 Mencegah Masalah Uncommitted Dependency Menggunakan 2PL....33
2.4.3.3 Mencegah Masalah Inconsistent Analysis Menggunakan 2PL ...34
2.4.4 Deadlock...36
2.4.4.1 Deadlock Prevention...38
2.4.4.2 Deadlock Detection and Recovery...39
2.4.4.3 Timeout...41
2.5 Alat Bantu Perancangan Sistem ...42
2.5.1 Use Case Diagram...42
2.5.2 Class Diagram...44
2.5.3 Diagram Alir (Flow Chart)...45
2.6 XML...46
2.6.1 Deklarasi XML ...49
2.6.2 Elemen XML...50
2.6.4 Entity References...51
2.6.5 Komentar XML...52
2.6.6 CDATA Section dan Instruksi Proses ...52
2.6.7 Urutan...52
2.7 Parser...53
2.8 Queue...55
2.9 Multi-User DBMS Architecture...58
BAB 3 ANALISIS DAN PERANCANGAN SISTEM ...62
3.1 Analisis Kebutuhan Sistem ...62
3.1.1 Kebutuhan Fungsional ...62
3.1.2 Kebutuhan Non Fungsional ...64
3.2 Perancangan Sistem ...65
3.2.1 Use Case Diagram...65
3.2.1.1 Deskripsi Use Case AcceptNewTransaction ...67
3.2.1.2 Deskripsi Use Case MakeTransactionOperation ...68
3.2.1.3 Deskripsi Use Case IdentifyKeyNeeded...71
3.2.1.4 Deskripsi Use Case CheckKeyUsedList...73
3.2.1.5 Deskripsi Use Case DefineOperationStatus...77
3.2.1.6 Deskripsi Use Case MakeOperationWaitForRequestedKey ...78
3.2.1.7 Deskripsi Use Case EntryOperationKeyToList ...80
3.2.1.8 Deskripsi Use Case PassXMLQueryToBeExecuted ...82
3.2.1.9 Deskripsi Use Case ReloadKeyUsedList...83
3.2.1.10 Deskripsi Use Case ReloadScheduleOperation ...85
3.2.1.12 Deskripsi Use Case
MakeAllTransactionWaitingDuringBackupOperation ...87
3.2.1.13 Deskripsi Use Case RemoveAllScheduleToRestoreDatabase...90
3.2.2 Class Diagram...93
3.2.3 Diagram Alir (Flow Chart) ...94
3.2.4 Module Schedule...95
3.2.5 Perancangan Layar ...99
3.2.5.1 Perancangan Layar pada Menu Utama Server...99
3.2.5.2 Perancangan Layar pada Menu FileServer...100
3.2.5.3 Perancangan Layar pada Menu Timeout Server...100
3.2.5.4 Perancangan Layar pada Menu Drop-Down Timeout Server...101
3.2.5.5 Perancangan Layar pada Menu HelpServer...101
3.2.5.6 Perancangan Layar pada Menu Utama Client...102
3.2.5.7 Perancangan Layar pada Menu FileClient...103
3.2.5.8 Perancangan Layar pada Menu Drop-DownConnectClient...104
3.2.5.9 Perancangan Layar pada Client setelah terhubung pada Server...105
3.2.5.10 Perancangan Layar pada Menu Edit Client...106
3.2.5.11 Perancangan Layar pada Menu Font Client...107
3.2.5.12 Perancangan Layar pada Menu Window Client...108
3.2.5.13 Perancangan Layar pada Menu HelpClient...109
BAB 4 IMPLEMENTASI DAN EVALUASI ...110
4.1 Implementasi ...110
4.1.1 Arsitektur RDBMS ...110
4.1.3 Cara Instalasi...113
4.1.4 Instruksi Penggunaan Aplikasi...118
4.2 Evaluasi ...132
4.2.1 Validitas Data...132
4.2.1.1 Evaluasi Pengujian Dua Transaksi Bersamaan Membaca Data yang Sama pada Database...133
4.2.1.2 Evaluasi Pengujian Dua Transaksi Bersamaan yang Membaca dan Menulis Data yang Sama pada Database...136
4.2.1.3 Evaluasi Pemecahan Masalah Lost Update menggunakan 2PL ...139
4.2.1.4 Evaluasi Pencegahan Masalah Uncommitted Dependency Menggunakan 2PL ...144
4.2.1.5 Evaluasi Pengujian Pemecahan Masalah Inconsistent Analysis Menggunakan 2PL ...148
4.2.1.6 Evaluasi Pengujian Penjadwalan Transaksi pada Saat Backup...151
4.2.1.7 Evaluasi Pengujian Penjadwalan Transaksi pada Saat Restore...159
4.2.2 Hasil Evaluasi ...164
BAB 5 SIMPULAN DAN SARAN...171
5.1 Simpulan ...171
5.2 Saran...172
DAFTAR PUSTAKA ...173
RIWAYAT HIDUP...175
RIWAYAT HIDUP...176
DAFTAR TABEL
Tabel 2. 1 Advantages and disadvantages of DBMSs...13
Tabel 2. 2 Masalah lost update...17
Tabel 2. 3 Masalah uncommitted dependency (dirty read)...18
Tabel 2. 4 Masalah inconsistent analysis...20
Tabel 2. 5 Contoh serial dan nonserial schedule...25
Tabel 2. 6 Dua concurrent update transactions yang tidak conflict-serializable...27
Tabel 2. 7 Lock-compatibilitytables...29
Tabel 2. 8 Mencegah masalah lost update menggunakan2PL ...32
Tabel 2. 9 Mencegah masalah uncommitted dependency menggunakan 2PL ...33
Tabel 2. 10 Mencegah masalah inconsistent analysis menggunakan 2PL...35
Tabel 2. 11 Contoh deadlock pada dua transaksi ...36
Tabel 2. 12 Predefined entity references pada XML ...51
DAFTAR GAMBAR
Gambar 2. 1 Precedence Graph untuk tabel 2.6 menunjukkan sebuah Cycle, jadi tidak
Conflict-Serializable...27
Gambar 2. 2 WFG dengan sebuah Cycle menunjukkan Deadlock antara 2 transaksi ..40
Gambar 2. 3 Struktur Class...45
Gambar 2. 4 Flowchart Constructs...46
Gambar 2. 5 Client-Server Architecture...59
Gambar 3. 1 Use Case Diagram Concurrency Control System pada RDBMS ...66
Gambar 3. 2 Class Diagram Concurrency Control System pada RDBMS ...93
Gambar 3. 3 Flow Chart untuk Concurrency Control System pada RDBMS ...94
Gambar 3. 4 Rancangan layar menu utama Server...99
Gambar 3. 5 Rancangan layar menu File Server...100
Gambar 3. 6 Rancangan layar menu Timeout Server...100
Gambar 3. 7 Rancangan layar menu Drop-Down Timeout Server...101
Gambar 3. 8 Rancangan layar menu Help Server...101
Gambar 3. 9 Rancangan layar pada menu utama Client...102
Gambar 3. 10 Rancangan layar pada menu File Client...103
Gambar 3. 11 Rancangan layar pada menu Drop-Down Connect Client...104
Gambar 3. 12 Rancangan layar Client setelah terhubung pada Server...105
Gambar 3. 13 Rancangan layar pada menu Edit Client...106
Gambar 3. 14 Rancangan layar pada menu Font Client...107
Gambar 3. 16 Rancangan layar pada menu Help Client...109
Gambar 4. 1 Arsitektur RDBMS ...111
Gambar 4. 2 Layar pertama instalasi Concurrency Control System pada RDBMS ...114
Gambar 4. 3 Layar kedua instalasi Concurrency Control System pada RDBMS...115
Gambar 4. 4 Layar ketiga instalasi Concurrency Control System pada RDBMS...116
Gambar 4. 5 Layar keempat instalasi Concurrency Control System pada RDBMS...117
Gambar 4. 6 Layar kelima instalasi Concurrency Control System pada RDBMS ...118
Gambar 4. 7 Layar menu Utama Server...119
Gambar 4. 8 Layar menu File Server...120
Gambar 4. 9 Layar menu Timeout Server...121
Gambar 4. 10 Layar menu Help Server...121
Gambar 4. 11 Layar menu utama Client...123
Gambar 4. 12 Layar menu File Client...124
Gambar 4. 13 Layar menu Connect Client...125
Gambar 4. 14 Layar gagal Connect karena Server tidak ditemukan ...126
Gambar 4. 15 Layar Form Client...127
Gambar 4. 16 Layar menu Drop-Down Edit Form Client...129
Gambar 4. 17 Layar menu Drop-Down Font Form Client...130
Gambar 4. 18 Layar menu Drop-DownWindowForm Client...131
Gambar 4. 19 Layar pengiriman dua transaksi yang bersamaan membaca data yang sama pada Database...134
Gambar 4. 21 Layar isi file schedule.txt dari dua transaksi yang bersamaan membaca
data yang sama pada Database...135
Gambar 4. 22 Layar pengiriman dua transaksi yang bersamaan membaca dan mengubah data yang sama pada Database...136
Gambar 4. 23 Layar status transaksi dari dua transaksi yang bersamaan membaca dan mengubah data yang sama pada Database...137
Gambar 4. 24 Layar isi file schedule.txt dari dua transaksi yang bersamaan membaca data yang sama pada Database...139
Gambar 4. 25 Layar pertama untuk pemecahan masalah Lost Update...140
Gambar 4. 26 Layar kedua untuk pemecahan masalah Lost Update...141
Gambar 4. 27 Layar ketiga untuk pemecahan masalah Lost Update...142
Gambar 4. 28 Layar isi file dari schedule.txt dari pemecahan masalah Lost Update... ...143
Gambar 4. 29 Layar pertama untuk pemecahan masalah Uncommitted Dependency.... ...144
Gambar 4. 30 Layar kedua untuk pemecahan masalah Uncommitted Dependency.145 Gambar 4. 31 Layar ketiga untuk pemecahan masalah Uncommitted Dependency.146 Gambar 4. 32 Layar isi file schedule.txt dari pemecahan masalah Uncommitted Dependency ...147
Gambar 4. 33 Layar pertama untuk pemecahan masalah Inconsistent Analysis...148
Gambar 4. 34 Layar kedua untuk pemecahan masalah Inconsistent Analysis...149
Gambar 4. 35 Layar ketiga untuk pemecahan masalah Inconsistent Analysis...150
Gambar 4. 37 Layar untuk kasus I penjadwalan pada saat Backup...152
Gambar 4. 38 Layar isi file schedule.txt dari kasus I penjadwalan pada saat backup....
...153
Gambar 4. 39 Layar pertama untuk kasus II penjadwalan pada saat Backup...154
Gambar 4. 40 Layar kedua untuk kasus II penjadwalan pada saat Backup...155
Gambar 4. 41 Layar isi file schedule.txt dari kasus II penjadwalan pada saat Backup...
...156
Gambar 4. 42 Layar pertama untuk kasus III penjadwalan pada saat Backup...157
Gambar 4. 43 Layar kedua untuk kasus III penjadwalan pada saat Backup...158
Gambar 4. 44 Layar isi file schedule.txt dari kasus III penjadwalan pada saat Backup.
...158
Gambar 4. 45 Layar pertama untuk kasus I penjadwalan pada saat Restore...160
Gambar 4. 46 Layar kedua untuk kasus I penjadwalan pada saat Restore...161
Gambar 4. 47 Layar isi file schedule.txt dari kasus I penjadwalan pada saat Restore....
...161
Gambar 4. 48 Layar pertama untuk kasus II penjadwalan pada saat Restore...162
Gambar 4. 49 Layar kedua untuk kasus II penjadwalan pada saat Restore...163
Gambar 4. 50 Layar isi file schedule.txt dari kasus II penjadwalan pada saat Restore..