. . .

Senin, 08 Juni 2020

RDBMS memiliki komponen yang digunakan untuk mengembalikan Basis Data ke kondisi yang benar (Consistent State) Jika Terjadi System Failure (Kegagalan Sistem)

  • Jelaskan apa saja penyebab kegagalan system dalam sebuah system yang memungkinkan mengganggu konsistensi data
  • Kurangnya input dari end user
  • Tidak lengkapnya pernyataan kebutuhan dan spesifikasi
  • Pernyataan kebutuhan dan spesifikasi yang senantiasa berubah-ubah
  • Kurangnya dukungan manajemen eksekutif
  • Inkompetensi secara teknologi
  • Perencanaan yang tidak tepat dan tidak matang

  • Kegagalan system juga bisa mengakibatkan kerusakan pada system, jelaskan jenis kerusakan akibat kegagalan system dan bagaimana untuk mengatasinya
1. Disk Crash, informasi yang ada didisk akan hilang
2. Power failure, informasi yang disimpan pada memori utama dan register akan hilang
3. Software Error, output yang dihasilakn tidak betul dan sistem databasenya sendiri akan memasuki suatu kondisi tidak konsisten

  • RDMBS menyediakan beberapa fasilitas  recovery data antara lain mekanisme backup, fasilitas loging, chekpoint, dan manager recovery. Jelaskan konsep recovery yang dapat dipilih atau digunakan pada saat kegagalan transaksi

  • Mengapa backup juga perlu diterapkan dalam basis data?
jika terjadi kesalahan baik itu human error (kesalahan operator) atau system error (kesalahan sistem). Kita dapat membuka file backup untuk menganalisa dan memperbaiki data-data yang salah tersebut.

  • Bilamana Recovery data dilaksanakan
mensalin data yang sudah ada dan salinannya di taruh di penyimpanan yang berbeda dari data asli

  • Apa peranan DBA dalam proses Backup dan Recovery data
mengatur untuk pencadangan dan pemulihan

Cara untuk menjaga konsistensi basis data untuk transaksi yang dilakukan secara bersamaan (konkunren) dengan mekanisme SERIALIZABILITY
a. Jelaskan 2 metode untuk menjamin SERIALIZABILITY

Lock Based Protocol

Merupakan suatu cara/metoda yang digunakan untuk tetap menjaga serializability pada data yang diakses oleh lebih dari satu  transaksi.
Yaitu, apabila salah satu transaksi mengakses sebuah item data maka tidak akan ada transaksi yang dapat memodifikasi data tersebut.
Metoda yang umum digunakan adalah mengijinkan transaksi terhadap suatu data X apabila transaksi tersebut memegang “kunci” atau “Lock” untuk dapat memodifikasi data X.
Ada dua jenis mode penguncian dasar yang digunakan dalam mekanisme ini yaitu:
–      Bersama (Shared). Jika sebuah transaksi T dapat melakukan penguncian dengan mode ini (dilambangkan dengan S) terhadap item data Q, maka T dapat membaca, tapi tidak dapat mengubah nilai Q tersebut.
–      Tunggal (Exclusive). Jika sebuah transaksi T dapat melakukan penguncian dengan mode ini (dilambangkan dengan X) terhadap item data Q, maka T dapat membaca maupun mengubah nilai tersebut.

S
X
S
Compatible
Incompatible
X
Incompatible
Incompatible


Two-Phase Lock Protocol

Protocol ini menginginkan bahwa setiap transaksi yang akan menjalankan penguncian dan melepaskan penguncian harus melalui dua fase atau tahapan, yaitu:
•       Fase Pertumbuhan (Growing Phase). Sebuah transaksi dapat melakukan sejumlah penguncian tetapi belum satupun melepaskan pengunciannya.
•       Fase Pelepasan (Shrinking Phase). Sebuah transaksi dapat melepaskan sejumlah penguncian , tetapi belum melakukan penguncian yang baru.

            Pada awalnya, sebuah transaksi akan berada dalam fase pertumbuhan. Transaksi tersebut akan melakukan penguncian sebanyak yang dibutuhkan. Ketika transaksi mulai melepaskan sebuah penguncian, ia akan mulai memasuki fase pelepasan, tanpa ada permintaan penguncian berikutnya

b. Pada Metode Locking  untuk transaksi terus menahan suatu kunci sampai dilepaskan secara eksplisit selama eksekusi atau telah selesai, aturannya menggunakan matriks locking. Jelas kerja dari matriks Locking

Matrik Locking Cara kerja dari kunci :
Kita asumsikan terdapat 2 (dua) macam kunci :Kunci X (kunci eksklusif) dan kunci S (kunci yang digunakan bersama-sama)Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B harus menunggu sampai nanti transaksi A melepaskan kunciJika transaksi A menggunakan kunci S pada record R, Maka :Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.Bila transaksi B ingin menggunakan kuni S, maka B bisa menggunakan kunci S bersama A

Lost-Update

Penjelasan : Transaksi T1 dan T2 mulai pada waktu yang hampir bersamaan, dan keduanya membaca saldo $100. T2 menambah balx $100 menjadi $200 dan menyimpan hasil perubahannya dalam database. Di sisi lain, transaksi T1 mengurangi copy dari balx $10 menjadi $90 dan menyimpan nilai ini dalam database, menimpa hasil update sebelumnya dan akhirnya menghilangkan $100 yang telah ditambahkan sebelumnya ke dalam saldo. Kehilangan update transaksi T2 dapat dihindari dengan mencegah T­1 membaca nilai dari balx sampai update T2 telah selesai.

Uncommited Dependency (dirty read)

Penjelasan: Transaksi T4 mengubah balx menjadi $200 namun T4 membatalkan transaksi sehingga balx harus dikembalikan ke nilai asalnya, yaitu $100. Namun, pada waktu itu, transaksi T3 telah membaca nilai baru balx ($200) dan menggunakan nilai ini sebagai dasar pengurangan $10, sehingga memberikan saldo yang keliru sebesar $190, yang seharusnya adalah $90. Nilai balx yang dibaca T3 disebut dirty data, yang berasal dari nama alternatifnya, yaitu masalah dirty read. Alasan rollback ini tidaklah penting. Masalahnya adalah transaksinya gagal (error), mungkin mengurangi rekening yang salah. Efeknya adalah asumsi T3 yang menganggap update T4 telah berhasil dijalankan, meskipun selanjutnya perubahannya dibatalkan. Masalah ini dihindari dengan mencegah T3 membaca balx sampai keputusan telah dibuat, yaitu commit atau membatalkan efek T4. Dua masalah di atas mengkonsentrasikan pada transaksi yang mengubah database dan campur tangan mereka bisa membuat database menjadi corrupt. Namun, 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. Contohnya dijelaskan pada masalah inconsistent analysis.

Inconsistent Analysis 

Penjelasan: Masalah inconsistent analysis muncul ketika sebuah transaksi membaca beberapa nilai dari database tapi transaksi kedua mengubah beberapa darinya ketika eksekusi transaksi yang pertama. Contohnya, 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. Pada contoh diatas, ringkasan transaksi T6 sedang berjalan secara bersamaan dengan transaksi T5. Transaksi T6 sedang menjumlahkan saldo rekening x ($100), rekening y ($50), dan rekening z($25). Namun, di tengah jalan, transaksi T5 telah mentransfer $10 dari balx ke bal­z, sehingga T6 sekarang mempunyai hasil yang salah (lebih besar $10).

Singkatan dari Atomicity, Consistency, Isolation, and Durability. Empat karakteristik yang menjamin transaksi database diproses secara reliable. Model ACID merupakan salah satu konsep tertua dan paling penting dari teori database transaksional.

Atomicity mengacu pada kemampuan database untuk menjamin bahwa baik semua bagian transaksi dilakukan atau tidak sama sekali. Jika salah satu bagian dari transaksi gagal, seluruh transaksi gagal.
Consistency memastikan data dapat dikembalikan dalam keadaan sebelum transaksi dimulai, jika terjadi kegagalan.
Isolation memastikan transaksi yang masih dalam proses dan belum dilakukan (committed) harus tetap terisolasi terhadap transaksi lainnya.

Durability memastikan data yang telah disimpan (committed data) disimpan oleh sistim sebagaimana keadaannya , bahkan jika dalam keadaan kegagalan sistim dan restart sistem, data tersebut tersedia dalam tahapan dan keadaan yang benar.

ALASAN PENGONTROLAN KONKURENSI
Lebih dari satu pengguna (pada DBMS terpusat) dapat melakukan operasi pada basis data secara simultanJika tidak dikontrol, hal ini dapat menyebab kan interferensi satu sama lain sehingga basis data menjadi tidak konsistenUntuk mencegahnya, DBMS mengimple-mentasikan pengontrolan konkurensi