CONCURRENCY CONTROL PADA RDBMS BERBASIS XML” ini dengan baik

  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

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

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.3 Database Model Relasional .............................................................................14

  2.4.1 Kebutuhan Akan Concurrency Control ...................................................16

  

2.4.4.2 Deadlock Detection and Recovery .......................................................39

  2.6.3 Atribut

  XML............................................................................................50

  2.6.2 Elemen

  XML ........................................................................................49

  2.6.1 Deklarasi

  2.6 XML.................................................................................................................46

  2.5.3 Diagram Alir (Flow Chart) ......................................................................45

  .........................................................................................44

  2.5.2 Class Diagram

  

2.5.1 Use Case Diagram ...................................................................................42

  2.5 Alat Bantu Perancangan Sistem .......................................................................42

  

2.4.4.3 Timeout .................................................................................................41

  2.4.4.1 Deadlock Prevention ............................................................................38

  2.4.1.1 Masalah Lost Update ...........................................................................17

  2.4.4 Deadlock ..................................................................................................36

  2.4.3.3 Mencegah Masalah Inconsistent Analysis Menggunakan 2PL ............34

  2.4.3.2 Mencegah Masalah Uncommitted Dependency Menggunakan 2PL....33

  2.4.3.1 Mencegah Masalah Lost Update Menggunakan 2PL ..........................31

  ........................................................................................29

  Locking

  2.4.3 Metode

  

2.4.2.2 Recoverability ......................................................................................28

  2.4.2.1 Serializability .......................................................................................21

  

2.4.2 Serializability dan Recoverability ............................................................21

  

2.4.1.3 Masalah Inconsistent Analysis .............................................................19

  ................................18

  2.4.1.2 Masalah Uncommitted Dependency (Dirty Read)

  XML ............................................................................................51

  2.6.5 Komentar

  3.2.1.2 Deskripsi Use Case MakeTransactionOperation .................................68

  Use Case

  3.2.1.11 Deskripsi

  3.2.1.10 Deskripsi Use Case ReloadScheduleOperation ...................................85

  3.2.1.9 Deskripsi Use Case ReloadKeyUsedList.............................................83

  3.2.1.8 Deskripsi Use Case PassXMLQueryToBeExecuted ...........................82

  3.2.1.7 Deskripsi Use Case EntryOperationKeyToList ...................................80

  MakeOperationWaitForRequestedKey ...............78

  Use Case

  3.2.1.6 Deskripsi

  3.2.1.5 Deskripsi Use Case DefineOperationStatus.........................................77

  3.2.1.4 Deskripsi Use Case CheckKeyUsedList..............................................73

  3.2.1.3 Deskripsi Use Case IdentifyKeyNeeded..............................................71

  AcceptNewTransaction .......................................67

  XML........................................................................................52

  Use Case

  3.2.1.1 Deskripsi

  

3.2.1 Use Case Diagram ...................................................................................65

  3.2 Perancangan Sistem .........................................................................................65

  3.1.2 Kebutuhan Non Fungsional .....................................................................64

  3.1.1 Kebutuhan Fungsional .............................................................................62

  3.1 Analisis Kebutuhan Sistem ..............................................................................62

  BAB 3 ANALISIS DAN PERANCANGAN SISTEM ...................................................62

  2.9 Multi-User DBMS Architecture .......................................................................58

  2.8 Queue ...............................................................................................................55

  2.7 Parser ...............................................................................................................53

  2.6.7 Urutan.......................................................................................................52

  2.6.6 CDATA Section dan Instruksi Proses ......................................................52

  ReloadScheduleTransaction ................................86

  MakeAllTransactionWaitingDuringBackupOperation ........................................87

  3.2.1.13 Deskripsi Use Case RemoveAllScheduleToRestoreDatabase.............90 .........................................................................................93

  3.2.2 Class Diagram

  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

  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

  

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

  

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

  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

  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

  ............................................................................................................147

  Dependency

  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

  ............................................................................................................151

  Analysis

  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