Transaksi adalah serangkaian aksi yang di lakukan user oleh aplikasi untuk mengubah isi data base , atau lebih tepatnya serangkaian aksi yang di lakukan pengguna terehadap suatu aplikasi.
Transaksi selalu merubah dari satu stata konsisten ke stata lainya,walaupun konsisten data dapat terganggu selama transaksi berjalan .
Output dari terbagi menjadi 3 hal
- Suskses adalah transaksi dikatakan commited dan database mencapai stata baru atau stata berikutnya
- Gagal adalah transaksi di katakan aborted, dan database harus dikembalikan ke stata yang lama sebelum traksaksi.transaksi ini di sebut roll back atau undo
- Transaksi yang comited tidak dappat di gagalkan transasksi yang di gagalkan akan roolback yang dapat di proses ulang di waktu mendatangan
- Atomiticity(Keutuhan) Transaksi merpakan unit yang tidak terlihat yang harus dilakukan secara keseluruhan atau tidak sama sekali
- Consistensy(Ketepatan) Transaksi harus mengubah database dari satu stata konsisten ke stata lainnya/ berikutnya
- Isolation(Pemisahan) Transaksi di eksekusi secara terpisah dari yang satu dengan yang lainya
- Durablity(Daya Tahan) Secara permanen direkan ke dalam database dan tidak akan hilang dikarenakan kegagalan berikutnya.
- Transaction Manager mengkoordinasikan transaksi untuk kepentingan program aplikasi, yang saling berkomunikasi dengan scheduler
- scheduler yaitu modul yang bertanggung jawab menangani implementasi strategi khusus untuk kontrol concurrency
- memaksimalkan transaksi concurrensi tanpa memungkinkan transaksi yang sedang dieksekusi untuk mempengaruhi dengan transaksi lainya
- Jika terjadi kegagalan maka database dapat menjadi tidak konsisten
- recovery manager bertugas untuk memastikan database dikembalikan ke stata sebelum di lakukan transaksi
- bufer manager bertanggung jawab untuk mengirim data antara pnyimpan disk dennga main memory
Protokol Konkurensi
Merupakan proses pengaturan operasi yang simultan pada data base tanpa menyebabkan saling mempengaruhi satu dengan yang lainnya , akses konkuren tidak akan bermasalahjika user hanya membaca data saja .gangguan data base secara simultan dan sedikitnya melakukan perubahan (update) maka dapat menyebabkan ketidak konsistenan ,terdapat 3 masalah akibat concurrensy
- Masalah kehilangan modifikasi (lost update problem)
- Masalah modifikasi sementara (Uncommited Dependency Problem)
- Masalah analisa yang tidak konsisten (Inconsistent analysis Problem)
- Lost Update Problem
Update yang dilaukan oleh user pertama di ubah oleh user yang lainya
Contoh di atas menerangkan bahwa hilangnya modifikasi yang di lakukan oleh T2. kehilangan modifikasi ini dapat diatasi dengan mencegah T1 melakukan pembacaan data sebelum perubahan T2 selesai di laksanakan
- Uncommited Dependency Problem
Biasanya di kenal dengan Dirty Read problem
- Inconsistent Analysis Problem
Terjadi ketika transaksi pertama membaca beberapa nilai tetapi transaksi kedua melakukan perubahan terhadap nilai tersebut selama eskekusi transaksi pertama sedang berlangsung
- contonya : transaksi A menjumlahkan variabel X (100), Y(50), P(25). pada saat yang sama transaksi B memindahkan X(10) ke Y, sehingga transaksi A mendapat hasil akhir yang salah (yaitu lebih 10) Hal ini disebut nonrepeatebel (of fuzy read)
Serializabity
- Serializability : pengontrolan secara konkurensi kepada kebenaran dari kriteria yang membutuhkan eksekusi konkuren dari transaksi harus ekuivalen terhadap efek dari eksekusi serial transaksi tersebut
- Tujuan dari serializability adalah menemukan nonserial schedule yang memungkinkan transaksi untuk mengeksekusi secara konkuren tanpa mengganggu/interferen yang lainnya dan menghasilkan state database yang dapat dihasilkan oleh eksekusi serial. Dengan kata lain, jika terdapat nonserial schedule yang ekuivalen dengan beberapa serial schedule disebut dengan serializability
Recoverbality
- Serializability mengidentifikasikan schedule yang memelihara konsistensi database, diasumsikan tidak ada transaksi yang gagal. Juga memeriksa recoverability dari transaksi dalan schedule. Jikat ransaksi gagal, atomicity membutuhkan akibat dari transaksi yang harus diselesaikan.
- Durability state ketika transaksi commit, perubahannya tidak dapat diselesaikan (tanpa menjalankan yang lain, penggantian, transaksi).
- Recoverable Schedule merupakan schedule yang setiap pasang dari transaksi Ti dan Tj, jika Tj membaca sebuah data item sebelum dituliskan oleh Ti, maka operasi commit dari Ti mendahului operasi commit dari Tj.
.
0 komentar:
Post a Comment