Transaksi dalam Sistem Basis Data

Udah lama yaa gak ngepost, seperti biasa blog ini kayanya ditakdirkan harus ngepost kalo dapet tugas ngeresume doang heheh ...:v TAPI semoga bisa bermanfaat yaa ^^
Kali ini RESUME yang KE-2 untuk PRAKTIKUM Sistem Basis Data, resume pertama kan mengenai pengenalan dan instalasinya kali ini akan membahas mengenai TRANSAKSI mba broo J
Apa hayo transaksi? Hmmm apa apa apa? Proses jual beli antara penjual dan pembeli? Hmm tapi bukan transaksi yang itu yaa..
Ini transaksi dalam Sistem Basis Data, okedeeh dikasihh tauu deeeh :D tadaaaaammm...
Transaksi adalah suatu aksi yang dilakukan oleh program  bertujuan untuk mengakses atau mengubah data yang terdapat di database. Transaksi dapat juga diartikan sebagai satu atomic operasi berupa unit lojik pekerjaan, unit lojik recovery yang bisa terdiri dari beberapa intruksi yang dilakukan untuk mengakses dan mengubah isi data. (*ngerti gaaak? Klo gak baca, hayati, resapi aja berulang-ulang sampe bisa nempel di otak dan gak mendal lagi tuh pengertiaannya :D #peace)
Transaksi yang berlangsung tersebut, hanya mengenal dua hasil, yaitu berhasil secara keseluruhan, atau gagal sama sekali. Transaksi tersebut berarti tidak boleh berhasil setengah-setengah, harus  berhasil secara keseluruhan. (*transaksi tuh gak galau kaya kalian-kalian klo iya ya iya, jangan iya iya ngga ngga. Kan gak enak digantungin gitu #apabangetini #salahfokus).
Dengan kata lain Transaksi adalah konsep fundamental dari system database. Inti dari transaksi adalah membundel operasi-operasi kedalam sebuah atau tidak sama sekali operasi. 
Tujuan dari transaksi tersebut adalah untuk mencegah database dari kehilangan atau kerusakan data. (*gak tanggung jawab klo kerusakan hati mah).
Untuk menjamin integritas data, maka setiap transaksi harus memiliki sifat-sifat : 
1.    Atomik (Atomicity) : semua operasi-operasi di dalam transaksi tersebut dapat di kerjakan seluruhnya atau tidak sama sekali. (dari pak Yudi Wibisono : semua berhasil atau semua gagal
2.     Konsistensi (Consistency): eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir. (dari pak Yudi Wibisono : transaksi mempertahankan konsistensi database
3.  Terisolasi (Isolation): jika pada sebuah sistem basisdata terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi-transaksi yang dilaksanakan pada saat bersamaan tersebut tidak mempengaruhi satu sama lain. (dari pak Yudi Wibisono : transaksi terisolasi satu dengan yang lain)
4.  Bertahan (Durability): dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya terjadi kegagalan system. (dari pak Yudi Wibisono : setelah commit, update harus survive di database).
Biar temen-temen hafalinnya gampang maka sifat-sifat tadi biasanya disingkat menjadi ACID.

OPERASI TRANSAKSI PADA ORACLE

Pada transaksi, terdapat dua buah operasi yang berfungi untuk menjaga integritas data dan ketahana data, yaitu commit dan rollback.
·           Commit berfungsi untuk menandakan bahwa transaksi telah selesai dilaksanakan.

·   Rollback berfungsi untuk member tahu bahwa transaksi harus diulang karena ada suatu kegagalan.
Biar paham mengenai transaksi mari kita coba penerapan Commit dan Rollback yaa..
Yooo yoo yoo semangat ngoding, ayo dibuka notepadnya...

--membuat tabel dicoba
create table dicoba(
   id_coba number PRIMARY KEY,
   nama varchar(20) not null
);

--Buat sequence
 CREATE SEQUENCE seq_idcoba increment by 1;

--Masukkan Data dicoba
insert into dicoba values (seq_idcoba.nextval,'A');
insert into dicoba values (seq_idcoba.nextval,'B');
insert into dicoba values (seq_idcoba.nextval,'C');
insert into dicoba values (seq_idcoba.nextval,'D');
insert into dicoba values (seq_idcoba.nextval,'E');


Setelah itu buka dua buah jendela SQL Command Line. Pastikan dengan warna latar yang berbeda.


Setelah itu kamu pastikan keduanya login dengan user yang sama, misalkan usernya itu praktikum1. Kalau syuuuuudah, kita tampilkan dulu data yang tadi kita buat sebelumnya dikedua SQL Command Line tersebut.



Tampilan diatas belum ada perbedaannya kan, sekarang kita masukan data di SQL Command Line yang latarnya warna hitam.

insert into dicoba values (seq_idcoba.nextval,'F');

Kalau sudah isi datanya kita tampilkan data yang ada di table tersebut di SQL Command Line  yang berlatar hitam dan putih.







Nah  loh, terlihat  ada perbedaan diantara keduanya yaah? Pada Command Line berlatar hitam, data telah bertambah satu, sedangkan pada Command Line berlatar putih data belum bertambah sama sekali.
Waaah kenapa hayoo kenapaa hayoooo?? Jawabannya adalah karena transaksi memasukkan data pada Command  Line berlatar hitam belum sepenuhnya berakhir. Untuk menandakan bahwa proses memasukkan data tersebut telah berakhir dan sukses, maka kita perlu menyatakan bahwa transaksi tersebut telah commit.

Caranya begini niih, lakukan pada Command  Line berlatar hitam yaaaaa.



Naaah sekarang sudah di-commit qaqa, maka data antara Command  Line berlatar hitam dan putih sudah menjadi sama.


yayaya setelah belajar COMMIT kita belajaaarrr >>>>>>>>>>

SAVE POINT

Hayo loh ada yang tahu engga apa yang dimaksud dengan save point? 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];

Setelah dibuat save pointnya kita dapat rollback ke save point tersebut dengan cara :
ROLLBACK TO[nama save point];

ISOLASI TRANSAKSI
ada tiga hal yang harus di cegah, yaitu:
1.   Dirty ReadTransaksi membaca data dari hasil transaksi lainnya yang gagal. Kedua transaksi tersebut berjalan bersamaan.
2.  Non-Repeteable ReadTransaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya.
3.   Phantom Read, Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.

dan untuk mencegahnya terdapat dua level isolasi, yaitu:
1.      Read CommitedTransaksi hanya dapat melihat perubahan data setelah transaksi lain telah commit pada data tersebut. (Seperti dalam contoh commit).
2.     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). Untuk mengaplikasikan level isolasi Serializable, adalah dengan menggunakan perintah :
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Isolai level ini mencegah terjadinya Phantom Read.

LOCKING PROTOCOL
Dikenal dengan istilah locking yang berfungsi menjaga integritas data. ada dua metode locking, yaitu:
1.    Shared Lock (S-LOCK), Jika transaksi memiliki shared lock pada suatu data, transaksi tersebut hanya bisa melakukan pembacaan.
2.      Exclusive Lock (X-LOCK), Bagi transaksi yang memiliki exclusive lock pada suatu data, transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut.

PENGUNCIAN LEVEL TABEL
Penguncian yang berfungsi untuk mengunci suatu tabel untuk mencegah perubahan atau penghapusan tabel selama ada transaksi yang menggunakan tabel tersebut. cara penguncian tabelnya, sebagai berikut: LOCK TABLE [nama tabel];

PENGUNCIAN LEVEL BARIS
Penguncian yang dilakukan pada baris (ROW) yang sedang digunakan oleh suatu transaksi sampai transaksi tersebut selesai dilakukan. Penguncian level baris hanya berlaku untuk operasi UPDATE dan DELETE.

DEADLOCK 
Merupakan situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu Lock dilepas sebelum di mulai (Yudi Wibisono).
Oke mungkin segitu saja pemirsah yang bisa saya bagikan hehehe, semoga bermanfaat dan menambah ilmu buat teman-teman,

***cukup sekian dan TERIMA GAJIH !!! ^^***

Comments

Post a Comment

Silahkan Komentar :)

Popular posts from this blog

Soal UTS Pengolahan Citra Digital SMK MM Kelas XI Semester 1

MATERI V FIREWALL DI HOST DAN SERVER

MODUL / MATERI Keamanan Jaringan XII TKJ