Popular Post

Posted by : Unknown Kamis, 01 Mei 2014

IT IS JUST ABOUT TUGAS PRAKTIKUM 6


transaksi adalah sbeuah aktivitas yang melibatkan dua pihak atau lebih, untuk mempertukarkan sesuatu milik yang satu dengan sesuatu yang lain, milik pihak lain. 

itu adalah Transaksi saja beda dengan Transaksi di dalam Basis Data 
Di basis data Transaksi adalah kegiatan yang menghasilkan suatu data,jelasnya transaksi adalah satu atau beberapa aksi yang dilakukan sistem aplikasi untuk mengakses atau mengubah isi basis data.



Setiap transaksi harus menunjukan konsistensi basisdata. Pada saat awal dan akhir program harus tetap konsisten,maka pada saat proses basisdata akan tetap dalam keadaan konsisten.

Dalam transaksi kita mengenal commit dan rollback.

  • Commit adalah tanda bahwa transaksi sudah selesai dilakukan, atau transaksi yang dilakukan sudah menjadi data.


  • Rollback adalah tanda bahwa transaksi gagal dilakukan, artinya transaksi yang diupdate harus diulangi atau di-undo.





Apasih Tujuan Transaksi Itu?


  • Singkatnya Melindungi database dari kehilangan data dan kerusakan.

Empat Sifat Dalam Transaksi

  • Atomicity

Ini berarti transaksi harus berhasil secara keseluruhan atau gagal sama sekali
  • Consistency

Menjaga kekonsistenan data di database
  • Isolation

Transaksi yang dimulai secara bersamaan harus bisa dimulai dan bisa berakhir
  • Durability

Setelah transaksi berhasil, data tidak boleh kembali ke data awal walaupun sistem mati


Locking Protocol

Pada transaksi database, dikenal istilah locking yang berfungsi untuk menjaga integritas data. Terdapat dua buah metode locking yaitu :
  •  Shared Lock (S-LOCK)

Jika transaksi memiliki shared lock pada suatu data, transaksi tersebut hanya bisa melakukan pembacaan.
  • Exclusive Lock (X-LOCK)

Bagi transaksi yang memiliki exclusive lock pada suatu data, transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut.
Untuk shared lock, dapat dimiliki oleh beberapa transaksi dalam satu waktu, namun untuk exclusive lock, hanya dapat dimiliki oleh satu transaksi pada satu waktu.

DEADLOCK

situasi dimana dua atau lebih transaksi dalam keadaan wait-state satu sama lain menunggu lock dilepaskan sebelum di mulai. atau situasi dimana hak akses bersama semua saling menunggu dimana sumber daya tidak sibuk sedangkan akses lock terkunci semua.

dan bagaimana caranya untuk menangani DEADLOCK ?

yaitu dengan menggunakan isolation , yaitu derajat pengaruh antar transaksi tertinggi.

Isolation Transaksi
Dalam transaksi database, ada 3 hal yang harus dicegah yaitu.

Dirty Read
Transaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.

Non-Repeatable Read
Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.

Phantom Read
Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.

Untuk mencegah 3 hal tersebut, maka dalam Oracle terdapat 2 level isolasi yang dapat diimplementasikan, yaitu :

Read Commited

Transaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada data tersebut. (Seperti dalam contoh commit)

Serializable

Adalah level isolasi yang menyediakan isolasi transaksi yang paling ketat. Level ini mengemulasikan eksekusi transaksi secara serial, menjadikan transaksi dieksekusi satu setelah yang
lainnya,seperti secara serial, bukan secara bersamaan (pararel).

Tetapi aplikasi yang menggunakan level isolasi ini harus bersedia untuk mengulangi transaksi dikarenakan kegagalan pengserialan transaksi. Saat transaksi berada pada level serializable, sebuah query SELECT hanya melihat data yang di COMMIT sebelum transaksi di mulai; transaksi tersebut tidak akan pernah melihat baik data yang belum di COMMIT atau perubahan data yang terjadi selama eksekusi transaksi oleh transaksi lain yang berjalan pada waktu bersamaan (e.g. saat transaksi ini berjalan, ada transaksi lain yang melakukan COMMIT pada data). Jika pada transaksi dengan level isolaso Serializable mengandung DML (Data Manipulatin Language) yang mencoba untuk meng-update suatu data yang mungkin sudah di update pada sebuah transaksi yang belum di commit pada awal transaksi Serializable, maka perintah DML tersebut akan gagal.

Untuk mengaplikasikan level isolasi Serializable, adalah dengan menggunakan perintah :

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE


Isolai level ini mencegah terjadinya Phantom Read.



Kita Coba Praktekin yuk ini dia tarraaaaa~


  • Buat Database nya dulu



  • Login di 2 RUN SQL comand line ya dengan akun yang sama
1


2
  • Show table 1



  • Show Table 2


  • Setelah di commit di table 1 maka

commit di table 1

show table 2
Nah setelah commit kita akan mencoba Savepoint dan rollback 

  • Masih menggunakan data yang tadi


  • Data akan hilang kan bagaimana kita nge load data nya kembali?? ini dia caranya


Maka untuk melakukan rollback terlebih dahulu kita harus menyimpan history transaksi yang pernah kita lakukan yaitu dengan membuat savepoint, dimana savepoint merupakan sebuah titik aman, dimana kita telah menyelesaiakan satu atau beberapa transaksi. Jadi ketika kita akan me- rollback sebuah transaksi maka savepoint ini akan menjadi tujuan rollback yang akan dilakukan.


Hahahaha Ditutup dengan praktek barusan maka bereslah Postingan TP6 kali ini... :D














Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © This Is My Breath - Date A Live - Powered by Blogger - Designed by Johanes Djogan -