Contoh Commit, Savepoint dan Rollback dalam Oracle


Structured Query Language (SQL) dalam Oracle terdiri dari Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), Transaction Control dan query. 
DDL : create, alter, drop, truncate
DML : insert, update, delete
query : select
DCL : grant, revoke
Transaction Control : commit, rollback, savepoint
Commit, Rollback dan Save Point di Oracle adalah 3 contoh Query dari Transaction Control Language (TCL) yang umum digunakan oleh Oracle DBA Developer dalam memanage Database system. Berikut adalah contoth dasar dari ketiga perintah Commit, Save Point dan Rollback:

A. COMMIT
Setiap perubahan data yang terjadi selama transaksi adalah sementara. Untuk menjadikan permanen maka dengan cara menggunakan perintah COMMIT.

Keadaan Data Sebelum COMMIT atau ROLLBACK :
– Operasi manipulasi data dalam DML data terutama mempengaruhi database buffer, oleh sebab itu keadaan data sebelumnya dapat diperbaiki.
– User yang sedang connect (current user) dapat me-review hasil dari operasi manipulasi data dengan melakukan query terhadap table
– User lain tidak dapat melihat hasil dari operasi manipulasi data dari current user. Oracle memberlakukan read consistency untuk menjamin bahwa setiap user melihat data seperti yang ada pada saat commit terakhir.
– Baris-baris data yang sedang diubah akan dikunci (locked), user lain tidak dapat mengubah data yang sedang diubah tersebut.

Kita menggunakan COMMIT untuk membuat seluruh perubahan data menjadi permanen.

Hal-hal yang mengikuti COMMIT:
– Seluruh perubahan data ditulis ke database
– Keadaan data sebelumnya secara permanen hilang
– Seluruh user dapat melihat hasil dari transaksi
– Penguncian terhadap baris-baris data yang diubah akan dibebaskan, baris-baris data tersebut sekaran tersedia kembali bagi user lain untuk melakukan perubahan data berikutnya.
– Seluruh savepoints dihapus.

AUTO COMMIT ketika user logout.

Contoh:
Buat Tabel Dokter dan kemudian lakukan insert data. 
insert into dokter(kode_dokter,nama_dokter) values ('001','Rezki');
COMMIT;
B. SAVE POINT
Sebuah savepoint adalah perintah di dalam transaksi Oracle yang memungkinkan semua perintah yang dijalankan setelah dibuat untuk di Rollback pada titik transaksi tertentu.
insert into dokter(kode_dokter,nama_dokter) values ('001','Rezki');
Contoh:
savepoint insertRez;
C. ROLLBACK
Kita dapat membatalkan seluruh perubahan data DML yang masih menggantung dengan menggunakan statement ROLLBACK. Hal-hal yang mengikuti ROLLBACK:
– Seluruh perubahan data dibatalkan.
– Keadaan data sebelumnya dikembalikan seperti semula.
– Penguncian terhadap baris-baris data yang diubah akan dibebaskan, baris-baris data tersebut sekarang tersedia kembali bagi user lain untuk melakukan perubahan data berikutnya.

Contoh:
Ketika berusaha menghapus satu record pada table Dokter, secara tidak sengaja menghapus seluruh table. Betulkan kesalahan tersebut, lalu jalankan perintah yang sesuai, dan buatlah seluruh perubahan data menjadi permanen.
DELETE FROM dokter;
ROLLBACK;
Ketika ROLLBACK data akan dikembalikan setelah commit terakhir dilakukan.
DELETE FROM dokter WHERE kode_dokter = '001';
COMMIT;
Rollback to SavePoint Query. Dengan menggunakan Query berikut maka update query dibawah tidak akan tercatat di dalam transaksi.
DELETE FROM dokter;
ROLLBACK to insertRez;
Ketika ROLLBACK SavePoint data akan dikembalikan sesuai SavePoint.
DELETE FROM dokter WHERE kode_dokter = '001'; 
COMMIT;

No comments for "Contoh Commit, Savepoint dan Rollback dalam Oracle"