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 : Concurrency control, RDBMS, XML.
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. 5. Bapak Ashari, S.Kom, M.Kom, selaku dosen pembimbing yang telah menyediakan
viii
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
Penulis
ix
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.3
2.2.1
Komponen DBMS....................................................................................11
2.2.2
Advantages and Disadvantages of DBMSs ..............................................13 Database Model Relasional .............................................................................14
x
Concurrency Control .......................................................................................16
2.4
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 Serializability dan Recoverability ............................................................21
2.4.2 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.3
Atribut XML ............................................................................................51 xi
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.11 Deskripsi Use Case ReloadScheduleTransaction ................................86 xii
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 File Server .......................................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 Help Server......................................101
3.2.5.6
Perancangan Layar pada Menu Utama Client....................................102
3.2.5.7
Perancangan Layar pada Menu File Client........................................103
3.2.5.8
Perancangan Layar pada Menu Drop-Down Connect Client.............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 Help Client.......................................109 BAB 4 IMPLEMENTASI DAN EVALUASI ..............................................................110 4.1
Implementasi ..................................................................................................110 4.1.1
Arsitektur RDBMS ................................................................................110
4.1.2
Kebutuhan Sumber Daya .......................................................................112 xiii
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 RIWAYAT HIDUP........................................................................................................177
xiv
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 menggunakan 2PL .................................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
Tabel 2. 13
Client-server functions .............................................................................60
xvi
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. 15
Rancangan layar pada menu Window Client......................................108
xvii
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-Down Window Form Client .................................131
Gambar 4. 19
Layar pengiriman dua transaksi yang bersamaan membaca data yang
sama pada Database.......................................................................................................134 Gambar 4. 20
Layar status transaksi dari dua transaksi bersamaan membaca data
yang sama dari Database ...............................................................................................134
xviii
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. 36
Layar isi file schedule.txt dari pemecahan masalah Inconsistent
Analysis
............................................................................................................151 xix
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 .. ............................................................................................................163
xx
DAFTAR LAMPIRAN
L1
Lampiran database.xml ......................................................................................178
xxi