Transaksi Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika Universitas i Pasundan Caca E. Supriana, S.Si.,MT. Si caca.e.supriana@unpas.ac.id 1
Transaksi Transaksi database mencerminkan dunia transaksi nyata yang dipicu oleh peristiwa seperti membeli produk, mendaftar untuk kursus, atau membuat deposit dalam rekening koran sebuah bank. Transaksi cenderung mengandung g banyak bagian. Sebagai contoh, transaksi penjualan mungkin memperbarui account pelanggan, menyesuaikan persediaan produk, dan memperbarui piutang penjual. Semua bagian dari transaksi harus berhasil diselesaikan untuk mencegah masalah integritas data. 2
Sifat utama transaksi database adalah atomicity, konsistensi, isolasi, dan daya tahan (durability). Selain itu, serializability merupakan karakteristik dari jadwal operasi untuk pelaksanaan transaksi yang konkuren. 3
Transaksi penjualan terdiri dari setidaknya bagian bagian berikut: Anda harus menulis faktur pelanggan baru. Anda harus mengurangi kuantitas di tangan dalam persediaan produk. Anda harus memperbarui akun transaksi. Anda harus memperbarui keseimbangan pelanggan. 4
Transaksi Transaksi adalah setiap tindakan yang membaca dari dan atau menulis ke database. 5
Sebuah transaksi dapat terdiri dari pernyataan SELECT sederhana untuk menghasilkan daftar isi sebuah tabel; mungkin terdiri dari serangkaian pernyataan UPDATE terkait untuk mengubah nilai nilai dari atributdi berbagai tabel; mungkin terdiri dari serangkaian pernyataan INSERT untuk menambahkan baris untuk satu atau lebih tabel, atau mungkin terdiri dari kombinasi SELECT, UPDATE, dan pernyataan INSERT. 6
Semua pernyataan SQL dalam transaksi harus diselesaikan dengan sukses. Jika salah satu pernyataan SQL gagal, seluruh transaksi dikembalikan (roll back) ke keadaan awal database yang ada sebelum transaksi dimulai. Sebuah transaksi yang berhasil mengubah database dari satu kondisi ke kondisi konsisten lain. Sebuah kondisi database konsisten adalah di mana semua kendala integritas data terpenuhi. 7
Contoh transaksi SELECT CUST_NUMBER, CUST_BALANCE FROM CUSTOMER WHERE CUST_NUMBER=10016; 8
Contoh transaksi INSERT INTO INVOICE VALUES (1009, 10016,'18 Jan 2010', 256.99, 20.56, 277.55,'cred',0.00,,0.00, 277.55); INSERT INTO LINE VALUES (1009, 1,'89 WRE Q',1,256.99, 256.99); Atau UPDATE PRODUCT SET PROD_QOH=PROD_QOH 1 WHERE PROD_CODE='89 WRE Q'; 9
Properti transaksi Atomicity Consistencyi t Isolation Durability Serializability 10
Atomicity mensyaratkan bahwa semua operasi (SQL request) dari transaksi akan selesai, jika tidak, transaksi tersebut dibatalkan. Jika transaksi T1 memiliki empat permintaan SQL, keempat permintaan harus berhasil diselesaikan, jika tidak, seluruh transaksi dibatalkan. Dengan kata lain, transaksi diperlakukan sebagai satu unit, tidak terbagi, kerja logis. 11
Consistency menunjukkan kondisi permanen dari database yang konsisten. Sebuah transaksi mengambil database dari satu kondisi konsisten ke keadaan konsisten yang lain. Ketika transaksi selesai, database harus dalam keadaan konsisten, jika salah satu bagian transaksi melanggar kendala integritas, seluruh transaksi dibatalkan. 12
Isolation berarti bahwa data yang digunakan selama pelaksanaan transaksi tidak dapat digunakan oleh transaksi kedua sampai yang pertama selesai. Dengan kata lain, jika T1 transaksi yang sedang dieksekusi dan menggunakan item data X, bahwa item data tidak dapat diakses oleh transaksi lain (T2... Tn) sampai berakhir T1. Properti ini sangat bergunadalam lingkungan g database multiuser karena beberapa pengguna dapat mengakses dan memperbarui database pada saat yang sama. 13
Durability memastikan bahwa perubahan transaksi sekali selesai (berkomitmen), mereka tidak dapat dibatalkan atau hilang, bahkan dalam hal terjadi kegagalan sistem. 14
Serializability memastikan bahwa jadwal untuk pelaksanaan bersamaan dari transaksi menghasilkan properti results. Konsistensi adalah penting dalam database multiuser dan terdistribusi, di mana beberapa transaksi kemungkinan akan dieksekusi secara bersamaan. Tentu saja, jika hanya satu transaksi dijalankan, serializability tidak menjadi masalah. 15
Manajemen Transaksi SQL Sebuah pernyataan COMMIT akan tercapai, dalam hal ini semua perubahan secara permanen dicatat dalam pernyataan database. COMMIT secara otomatis mengakhiri transaksi SQL. Sebuah pernyataan ROLLBACK akan tercapai, dalam hal ini semua perubahan yang dibatalkan dan database di roll back kembali ke keadaan konsisten sebelumnya. 16
Contoh COMMIT UPDATE PRODUCT SET PROD_QOH=PROD_QOH 2 WHERE PROD_CODE='1558 QW1'; UPDATE CUSTOMER SET CUST_BALANCE=CUST_BALANCE+87.98 WHERE CUST_NUMBER='10011'; COMMIT; 17
Log Transaksi Sebuah DBMS menggunakan log transaksi untuk melacak semua transaksi yang memperbarui database. Informasi yang disimpani dl dalam log inidigunakan oleh lh DBMS untuk kebutuhan pemulihan yang dipicu oleh pernyataan ROLLBACK, terminasi abnormal suatu program, atau kegagalan sistem seperti perbedaan jaringan atau disk crash. 18
Beberapa RDBMS menggunakan log transaksi untuk memulihkan database kembali ke keadaan saat konsisten. Setelah kegagalan server, misalnya, Oracle otomatis akan roll back transaksi dan roll forward transaksi yang dilakukan tetapi belum ditulis ke database fisik. 19
Isi Log Transaksi Sebuah catatan untuk awal transaksi. Untuk setiap komponen transaksi (pernyataan SQL): 1. Jenis operasi yang dilakukan (memperbarui, menghapus, menyisipkan). 2. Nama nama obyek dipengaruhi oleh transaksi (nama tabel). bl) 3. Nilai nilai "sebelum" dan "setelah" untuk bidang yang sedang diperbarui. 4. Pointer ke entri transaksi sebelumnya dan berikutnya log untuk transaksi yang sama. Akhir (COMMIT) dari transaksi. 20
Transaction Log 21