Senin, 10 November 2014

Praktikum

SISTEM BASIS DATA


TRANSAKSI
            Transaksi adalah suatu atau beberapa aksi yang dilakukan program aplikasi untuk mengakses atau mengubah isi basis data. Transaksi merupakan bagian dari pengeksekusian 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 sebagaian, karena dapat menyebabkan inkonsistensi basis data.
            Transaksi bertujuan untuk mencegah dari kehilangan ataupun kerusakan data. Untuk menjamin agar integritas dapat teta terpelihara maka setiap transaksi harus memiliki 4 Elemen Transaksi: ACID
          Atomicity: semua berhasil atau semua gagal
          Consistency: transaksi mempertahankan konsistensi database
          Isolation: transaksi terisolasi satu dengan yang lain
          Durability: setelah commit update harus survive di database

OPERSI TRANSAKSI
Dua Operasi Penting Transaksi :
   COMMIT memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system).
   ROLLBACK memberi tanda bahwa transaksi GAGAL. Semua update harus di-undo.

Mulai praktek, buat table huruf dengan isi tabel seperti di bawah ini :



SAVEPOINT

         Save Point secara sederhana merupakan sebuah titik aman, dimana kita telah menyelesaiakan satu atau beberapa transaksi. Save point dianalogikan seperti sebuah check point saat kita bermain game.
Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah kita buat.

Untuk membuat sebuah save point, caranya adalah: SAVEPOINT[nama save point];
Stelah dibuat save pointnya kita dapat rollback ke save point tersebut dengan cara: ROLLBACK TO[nama save point];


coba savepoint caranya ketikan sql berikut :





Disinilah kita menggunakan perintah rollback, rollback digunakan untuk kembali ke savepoint kita ketikan sql seperti berikut:





ISOLASI TRANSAKSI


Dalam transaksi database ada 4 hal yang harus dicegah, yaitu:


  • Dirty Read


Dapat melihat record yang sudah di rollback transaksi lain atau yang belum dicommit. 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).

LOCKING
     Jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia meminta lock.
Jenis Lock


    • Exclusive Lock (Xlock) => write lock (transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut).
    • Shared Lock (Slock) => read lock (transaksi tersebut hanya bisa melakukan pembacaan).


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 kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai.

1301051

Tidak ada komentar:

Posting Komentar