Pages

Sunday, April 20, 2014

Transaksi

Transaksi 

A. Apa itu transaksi ?
     Transaksi adalah kejadian yang menghasilkan sebuah data. Lalu apakah data itu? Data adalah representasi fakta dunia nyata dalam bentuk angka, suara, gambar, dsb. Transaksi bertujuan untuk melindungi database dari kehilangan data. Proses dari transaksi itu 2, commit atau rollback.
Commit menandakan bahwa transaksi telah selesai dilaksanakan.
Rollback berfungsi untuk mengulang kembali transaksi karena adanya suatu kegagalan.

Elemen dari transaksi terbagi menjadi 4 macam, yaitu :
a. Atomicity       : kejadian harus pasti, semua kejadian berhasil atau tidak sama sekali.
b. Consistency   : transaksi mempertahankan konsistensi database.
c. Isolation         : transaksi terisolasi satu dengan yang lain.
d. Durability       : setelah commit update harus survive di database.

       B. Save point 
            Save point sama halnya dengan check point ketika kita sedang bermain game. Fungsinya adalah sebagai penanda/tempat jika kita ingin mengulang kembali transaksi. Save point berhubungan dengan integritas data. Apa itu integritas data? Integritas data adalah akurasi dan kebenaran data. Integritas data berguna untuk menyaring dan membuat aturan di dalam database, agar data yang tidak valid tidak masuk ke dalam database.

      C. Isolasition Level
    Isolasi level dibagi menjadi 3 macam, yaitu :
 a.   Dirty Reads 
     Sebuah transaksi membaca data yang telah di tulis oleh transaksi yang lain tetapi belum di commit oleh transaksi lain tersebut.
 b.   Non Repeatable Reads
Sebuah transaksi yang membaca kembali sebuah data dimana data tersebut sudah di rubah / di hapus oleh transaksi lain dan telah di commit.
 c.   Phantom Reads
Sebuah transaksi menjalankan kembali sebuah query dimana akan menemukan bahwa ada transaksi lain yang telah memasukkan record baru ke schema yang sedang di akses oleh transaksi tersebut, sehingga akan terlihat antara query yang pertama di lakukan dengan query yang kedua memberikan hasil eksekusi jumlah row yang berbeda .
    Bagaimana cara penyelesaiannya? Oracle memberikan 2 mode isolasi, yaitu :
a.    Read Commited
Transaksi hanya melihat perubahan data setelah di commit.
b.   Serializable, Transaksi serializable membaca hanya perubahan yang telah dicommit pada saat transaksi dimulai, ditambah perubahan yang dibuat oleh transaksi itu sendiri melalui statemen insert, update, dan delete.

      D. Locking
     Dalam mengatur transaksi, dilakukan sebuah locking. Locking berfungsi agar tidak ada transaksi yang saling mengganggu. Ada 2 mode lock yang terdapat dalam oracle, yaitu :
a.  Exclusive Lock (Write)
                   User dapat melakukan pembacaan dan juga pengubahan data.
b.  Share Lock (Read)
                   User hanya bisa melakukan proses pembacaan.
      Jika ada dua lock, atau dua hak akses write, maka akan terjadi deadlock. Deadlock adalah kondisi saling menunggu (wait-state). Salah satu solusinya adalah di lepaskan salah satu hak aksesnya. Baru kita bisa menggunakan hak yang lainnya. Contoh real dari deadlock adalah ketika dalam 2 jam pelajaran akan diisi oleh 2 mata pelajaran sekaligus.