Upload
karima-suny
View
227
Download
0
Embed Size (px)
Citation preview
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
1/12
Tugas
Sistem Basis Data 2
Database Control
Universitas Gunadarma
Depok
2015
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
2/12
DTBS! C"#T$"%
1& T$#S'S(
Transaksi adalah satu atau beberapa aksi program aplikasi yang
mengakses/mengubah isi basis data. Transaksi merupakan bagian daripengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan
juga melakukan serangkaian perubahan data. DBMS yang kita gunakan harus
menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama
sekali. Tidak boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat
menyebabkan inkonsistensi basis data. Untuk itu transaksi selalu merubah basis data
dari satu kondisi konsisten ke kondisi konsisten lain.
Sebuah transaksi berpeluang untuk mengganggu! integritas basis data yang dapat
membuat kondisi/hubungan antar data tidak seperti seharusnya. Untuk menjamin agar
integritas dapat tetap terpelihara maka setiap transaksi harus memiliki si"at#si"at$%. tomik, dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya
atau tidak sama sekali.&. 'onsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin
data tetap konsisten setelah transaksi berakhir.'. Terisolasi, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang
dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan
pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.(. Berta)an, dimana perubahan data yang terjadi setelah sebuah transaksi
berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem
menjadi mati.
Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental baik
dari perangkat keras )crash* ataupun kemacetan sistem operasi )hang*. Tapi lebih
sering terjadi karena user sengaja menghentikan transaksi atau karena penghentian
transaksi oleh DBMS akibat adanya kondisi tak diinginkan, seperti deadlock atau
timeout.
Sebuah transaksi dapat menghasilkan dua kemungkinan$
a. +ika dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit dan
basis data mencapai keadaan konsisten baru.b. +ika transaksi tidak sukses, maka transaksi dibatalkan dan basis data
dikembalikan ke keadaan konsisten sebelumnya )rollback*.
Transaksi yang sudah di commit tidak dapat dibatalkan lagi. +ika ada kesalahan,
maka harus dilakukan transaksi lain yang membalik dampak transaksi sebelumnya.
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
3/12
Status#status yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan
hingga selesai atau batal adalah$
%. kti* +,tive-, yang merupakan status awal )initial state* sebuah transaksi yang
menunjukkan transaksi tersebut masih dieksekusi.
&. Ber)asil Sebagian +.artiall/ Committed-, yaitu keadaan yang dicapai transaksitepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
'. Gagal +ailed-, yang merupakan keadaan dimana sebuah transaksi terhenti
pengeksekusiannya sebelum tuntas sama sekali.(. Batal +borted-, yaitu keadaan dimana sebuah transaksi dianggap tidak/belum
dikerjakan yang tentu dengan terlebih dahulu diawali dengan mengembalikan
semua data yang telah diubah ke nilai#nilai semula. )yang menjadi tanggung
jawab DBMS*.. Ber)asil Sempurna +Committed-, keadaan dimana transaksi telah dinyatakan
berhasil dikerjakan seluruhnya dan basis data telah mere"leksikan perubahan#
perubahan yang memang diinginkan transaksi.
2& S!CU$(T DTBS!1& ut)oriation
-emberian hak akses )dari subjek atas suatu objek* yang mengiinkan sebuah
subyek mempunyai akses secara legal terhadap sebuah system atau obyek.Subyek $ user atau programbyek $ database table, 0iew, application, rocedure.
2& 3ie4s +Subs,)emas-1asil yang dinamik dari satu atau lebih operasi relasi yang beroperasi pada relasi
dasar untuk menghasilkan relasi lainnya. 2iew mwerupakan 0irtual relation yangtidak secara nyata ada di dalam sebuah database, tetapi dihasilkan atas
permintaan user secara khusus.
& Ba,king Up-roses yang secara periodic menyalin database dan menjurnal )dan
memprogram* ke dalam media penyimpanan o""line.
6& 7ournaling-roses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh
perubahan terhadap database agar dapat mereco0er secara e"ekti" jika terjadikegagalan.
5& C)e,kpointingTitik temu sinkronisasi antara database dan transaksi log "ile. Seluruh data yang
disimpan di tempat sementara akan disimpan di media penyimpanan kedua.
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
4/12
8& (ntegrit/-engontrolan integritas juga membantu memelihara system database yang
aman dengan mencegah data dari in0alid.
9& !n,r/ption-enyediaan )encoding* data dengan menggunakan algoritma khusus yang
merubah data menjadi tidak dapat dibaca oleh program apapun tanpa
mendeskripsikannya.
& Con,urren,/&1 .engertian Con,urren,/
3oncurrency 3ontrol adalah proses pengaturan operasi4operasi dalam banyak
transaksi yang berjalan secara simultan pada database tanpa mengganggu operasi
pada transaksi lainnya sehingga dapat menghasilkan data yang konsisten
&2 Sistem 'onsep untuk Con,urren,/
Mengakses beberapa proses bersamaan
Dipengaruhi oleh proses pengubah
Dipengaruhi oleh proses pembaca
& 7enis :asala) dan Conto) Con,urren,/
1& :asala) ke)ilangan modi*ikasi +%ost Updates .roblem-
Sebuah transaksi kedua menulis nilai kedua dari data#item )datum* di atas
nilai pertama yang ditulis oleh transaksi konkuren pertama, dan nilai pertamahilang untuk transaksi lainnya berjalan bersamaan yang membutuhkan, dengan
prioritas mereka, untuk membaca nilai pertama. Transaksi yang telah membaca
akhir nilai yang salah dengan hasil yang salah.
3ontoh dari masalahnya adalah sebagai berikut $
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
5/12
Transaksi T% dan T& mulai pada waktu yang hampir bersamaan, dan
keduanya membaca saldo 5%66. T& menambah bal7 5%66 menjadi 5&66 dan
menyimpan hasil perubahannya dalam database. Di sisi lain, transaksi T%
mengurangi copy dari bal7 5%6 menjadi 586 dan menyimpan nilai ini dalam
database, menimpa hasil update sebelumnya dan akhirnya menghilangkan 5%66
yang telah ditambahkan sebelumnya ke dalam saldo. 9ehilangan update
transaksi T& dapat dihindari dengan mencegah T% membaca nilai dari bal7
sampai update T& telah selesai.
2& :asala) modi*ikasi sementara +Un,ommitted Dependen,/ .roblem-
Transaksi membaca nilai yang ditulis oleh transaksi yang telah kemudiandibatalkan. :ilai ini menghilang dari database pada abort, dan tidakseharusnya dibaca oleh setiap transaksi );membaca kotor;*. -embacaan
transaksi diakhiri dengan hasil yang salah.3ontoh masalahnya adalah sebagai berikut ini $
Transaksi T( mengubah bal7 menjadi 5&66 namun T( membatalkan
transaksi sehingga bal7 harus dikembalikan ke nilai asalnya, yaitu 5%66.
:amun, pada waktu itu, transaksi T' telah membaca nilai baru bal7 )5&66* dan
menggunakan nilai ini sebagai dasar pengurangan 5%6, sehingga memberikan
saldo yang keliru sebesar 5%86, yang seharusnya adalah 586. :ilai bal7 yang
dibaca T' disebut dirty data, yang berasal dari nama alternati"nya, yaitu
masalah dirty read.
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
6/12
transaksi yang mengubah database dan campur tangan mereka bisa membuat
database menjadi corrupt. :amun, transaksi yang hanya membaca database
bisa juga memberikan hasil yang tidak akurat jika mereka diijinkan untuk
membaca hasil bagian dari transaksi yang belum selesai yang secara
bersamaan membaca database.
& :asala) nalisa /ang tidak konsisten +(n,onsistent nal/sis .roblem-
9etika satu transaksi mengambil ringkasan atas nilai dari semua contohitem#data ulang, sebuah update transaksi kedua beberapa kasus itu barang#data. >ingkasan yang dihasilkan tidak mencerminkan hasil yang benar untuksetiap )biasanya diperlukan untuk pembenaran* agar mengutamakan antaradua transaksi )jika dijalankan sebelum yang lain*, melainkan beberapa hasil
acak, tergantung pada waktu update, dan apakah tertentu 1asil update telahdimasukkan dalam ringkasan atau tidak.
3ontoh masalahnya adalah sebagai berikut ini $
Masalah inconsistent analysis muncul ketika sebuah transaksi membaca
beberapa nilai dari database tapi transaksi kedua mengubah beberapa darinya
ketika eksekusi transaksi yang pertama. 3ontohnya, sebuah transaksi yang
meringkas data pada sebuah database)contohnya, saldo total* akan mendapat
hasil yang tidak akurat jika, ketika berjalan, transaksi lain sedang mengubah
database. -ada contoh diatas, ringkasan transaksi T? sedang berjalan secara
bersamaan dengan transaksi T. Transaksi T? sedang menjumlahkan saldo
rekening 7 )5%66*, rekening y )56*, dan rekening )5&*. :amun, di tengah
jalan, transaksi T telah mentrans"er 5%6 dari bal7 ke bal, sehingga T?
sekarang mempunyai hasil yang salah )lebih besar 5%6*.
&6 Conto) 'asus
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
7/12
Seorang dosen bernama p ?.666.666. dia melakukan trans"er uang sebesar >p &.666.666. dan
pada waktu yang bersamaan dia mendapat gaji sebesar >p '.666.666. Tentukan$
%.
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
8/12
Deadlock adalah jalan buntu yang dapat terjadi ketika dua atau lebihtransaksi masing#masing menunggu lock )kunci pada mekanisme locking*yang sedang dipegang oleh transaksi lainnya untuk dilepas. 3ara sederhanamengidenti"ikasi deadlock adalah menggunakan mekanisme timeout. +ikasebuah transaksi telah menunggu lock terlalu lama, maka dapat diasumsikan
bahwa transaksi tersebut berada dalam lingkaran deadlock dan membatalkantransaksi tersebut.
&8 :ekanisme Concurrency Control1& %"C'(#G
Locking adalah salah satu mekanisasi pengontrolan konkuren. 9onsep
dasar mekanisme ini ialah ketika suatu transaksi memerlukan jaminan bahwa
record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan
kunci untuk record tersebut. ungsinya kunci )lock* adalah dengan menjaga
record tersebut agar tidak dimodi"ikasi oleh transaksi lain.
3ara kerja dari kunci $
%. -ertama kita asumsikan terdapat & macam kunci$
9unci E $ kunci yang eksklusi".
9unci S $ kunci yang digunakan bersama#sama.&. +ika transaksi < menggunakan kunci E pada record >, maka permintaan
dari transaksi B untuk suatu kunci pada > ditunda, dan B harusmenunggu sampai < melepaskan kunci tersebut.
'. +ika transaksi < menggunakan kunci S pada record >, maka$
Bila transaksi B ingin menggunakan kunci E, maka B harusmenunggu sampai < melepaskan kunci tersebut.
Bila transaksi B ingin menggunakan kunci S, maka B dapatmenggunakan kunci S bersama
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
9/12
= H H H H G Hes
. 9unci E dan kunci S akan dilepaskan pada saat synchpoint)synchroniation point*. Synchpoint menyatakan akhir dari suatutransaksi dimana basis data berada pada state yang konsisten. Bilasynchpoint ditetapkan maka$
Semua modi"ikasi program menjalankan operasi commit ataurollback.
Semua kunci dari record dilepaskan.
2& T(:! ST:.(#GSalah satu concurrency control alternati" yang dapat menghilangkan
deadlock adalah time stamping. Secara umum, timestamping )TS* adalah
penanda waktu saat transaksi terjadi. 1al ini untuk mengurutkan eksekusitransaksi agar sama dengan eksekusi serial.Time stamp dapat berupa $a. Iaktu sistem saat transaksi dimulai, ataub. -enghitung logik )logical counter* yang terus bertambah nilainya tiap kali
terjadi transaksi baru.c.+ika timestamp transaksi a lebih kecil daripada timestamp transaksi b , atau
TS)Ta* J TS)Tb*, maka transaksi a )Ta* selalu dilaksanakan sebelum transaksi
b )Tb*.
3ontoh$
Misal rekaman pada basis data memuat TS %?A, yang mengidenti"ikasikan
transaksi dengn TS %?A adalah transaksi yang terkemudian yang sukses
mengupdate rekaman yang bersangkutan. Maka jika ada transaksi dengan TS
%K6 mencoba mengupdate rekaman yang sama, maka update ini akan
diijinkan, karena TS yang dimiliki lebih kemudian dari TS pada rekaman. Saat
transaksi ini dilakukan, TS pada rekaman akan diatur menjadi %K6. Sekaran,
jika transaksi yang akan mengupdate rekaman tersebut memiliki TS %?, maka
update ditolakkarena TS#nya J TS di rekaman.
Selain transaksi, item data juga memiliki nilai time stamp. Untuk setiap item
data L, ada & nilai time stamp, yaitu$
a. >ead time stamp atau >#timestamp)L*, yang menunjukkan nilai TS terbesardari setiap transaksi yang berhasil menjalankan operasi read)L*.
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
10/12
b& Irite time stamp atau I#timestamp)L*, yang menunjukkan nilai TSterbesar dari setiap transaksi yang berhasil menjalankan operasi write)L*.
Timestamp ini akan selalu diperbarui ketika ada perintah baru read)L* atau
write)L* yang dijalankan.
2&1 Time=stamping "rdering .roto,ol-rotokol ini menjamin bahwa tiap operasi read dan write yang memiliki
kon"lik dieksekusi sesuai urutan TS.1& Untuk transaksi Ta yang menjalankan operasi read)L*
a. +ika TS)Ta* J I#TS)L* maka transaksi Ta perlu membaca kembalinilai L yang telah ditulis dan transaksi Ta akan dibatalkan )rollback*.
b. +ika TS)Ta* I#TS)L* maka operasi read dieksekusi, dan >#TS)L*diisi dengan nilai terbesar diantara TS)Ta* dan >#TS)L*.
&. Untuk transaksi Ta yang menjalankan operasi write)L*$
a. jika TS)Ta* J >#TS)L* maka nilai L yang baru dihasilkan Ta tidakakan diman"aatkan lagi, dan sistem berasumsi bahwa nilai tersebuttidak pernah dihasilkan. 9arena itu operasi write ditolak, dantransaksi Ta di rollback.
b. jika TS)Ta* J I#TS)L* maka itu berarti transaksi Ta sedang berusahamelakukan penulisan nilai L yang kadaluarsa. Maka operasi wrwiteini akan ditolak dan transaksi Ta akan di rollback.
c. Di luar kondisi a dan b di atas, operasi write dieksekusi dan I#TS)L*diberi nilai baru yang sama dengan TS)Ta*.
Terhadap transaksi Ta yang di rollback, akan diberikan sebuah timestamp
yang baru dan diulang kembali.
.roperti timestamp >
%. UniNueness $ masing#masing timestamp suatu transaksi adalah unik.&. Monotonicity $ & timestamp yang dihasilkan transaksi yang sama
meningkat secara monoton.
Cara pemberian nilai timestamp >
%. Olobal )systemwide* monotonically increasing number&. Cocal )site* monotonically increasing number.
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
11/12
6& $e,over/
Ba,kup$ proses secara periodik untuk mebuat duplikat dari database dan
melakukan logging "ile )atau program* ke media penyimpanan eksternal/o""line.
$e,over/$ merupakan upaya untuk mengembalikan basis data ke keadaaanyang dianggap benar setelah terjadinya suatu kegagalan.
%. -emulihan terhadap kegagalan transaksi
&. -emulihan terhadap kegagalan system
'. -emulihan terhadap kegagalan media
6&17enis ? @enis kegagalan >
1& 'egagalan s/stem
9egagalan yang mempengaruhi semua transaksi yang sedang berjalan tetapi
tidak merusak database secara "isik.3ontoh $ system error, so"tware error
2& 'egagalan media
9egagalan yang merusak database dan semua transaksi yang sedang
berjalan pada saat itu.
3ontoh $ head crash
Berbagai kemungkinan yang harus diantisipasi $
Oangguan Cistrik
9erusakan Disk 9esalahan -erangkat Cunak
-engaksesan oleh orang yang tidak berhak
Dua -engguna/ lebih mengubah data yang sama
6&2 asilitas re,over/
asilitas reco0ery didalam DBMS $
Back up mechanism
Membuat back up database dan log "ile secara periodik
Cooging "acilityMencatat semua transaksi yang sedang berjalan
3heckpoint "acility
Synchroniation point antara database dengan transaksi log "ile
>eco0ery manager
Mengijinkan system untuk merestore database kekondisi yang tepat
7/23/2019 DATABASE CONTROL_Kelompok 2 - Copy.docx
12/12
Sejumlah control yang disediakan oleh DMBS $
-emulihan )reco0ery*
-engamanan )security*
Pntegritas )integrity*
9onkurensi )concurency*
6&Teknik $e,over/
1& De*ered upate A peruba)an /ang ditunda >
-erubahan pada basis data tidak akan berlangsung sampai transaksi ada
pada poin disetujui )3MMPT*. +ika terjadi kegagalan maka tidak akan terjadi
perubahan, tetapi diperlukan operasi redo untuk mencegah akibat dari
kegagalan tersebut.
2& (mmediate Upadte A peruba)an langsung >-erubahan pada basis data akan segera tanpa harus menunggu sebuah
transaksi tersebut disetujui. +ika terjadi kegagalan diperlukan operasi U:D
untuk melihat apakah ada transaksi yang telah disetujui sebelum terjadi
kegagalan.
& S)ado4 .aging >
Menggunakan page bayangan dimana pada prosesnya terdiri dari & tabel
yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai
cadangan. 9etika transaksi mulai berlangsung kedua tabel ini sama dan selamaberlangsung tabel transaksi yang menyimpan semua perubahan ke database,
tabel bayangan akan digunakan jika terjadi kesalahan. 9euntungannya adalah
tidak membutuhkan >=D atau U:D, kelemahannya membuat terjadinya
"ragmentasi.