DATABASE CONTROL_Kelompok 2 - Copy.docx

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.