Transaksi Semester Ganjil 2014 Fak. Teknik Jurusan Teknik Informatika Universitas U i i Pasundan P d Caca E Supriana S Si MT Caca E. Supriana, S.Si.,MT.
[email protected] 1
Transaksi y Transaksi database mencerminkan dunia transaksi
nyata yang dipicu oleh peristiwa seperti membeli produk mendaftar untuk kursus atau membuat produk, mendaftar untuk kursus, atau membuat deposit dalam rekening koran sebuah bank. Transaksi cenderung mengandung banyak bagian. g g g y g y 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 diselesaikan untuk mencegah masalah integritas data. 2
y Sifat utama transaksi database adalah atomicity,
konsistensi, isolasi, dan daya tahan (durability). Selain itu serializability merupakan karakteristik dari jadwal itu, serializability 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 y Transaksi adalah setiap tindakan yang membaca dari
dan atau menulis ke database.
5
y Sebuah transaksi dapat terdiri dari pernyataan
SELECT sederhana untuk menghasilkan daftar isi sebuah tabel; y mungkin terdiri dari serangkaian pernyataan UPDATE terkait untuk mengubah nilai nilai‐nilai nilai dari atribut di berbagai tabel; y mungkin g terdiri dari serangkaian g pernyataan p y INSERT untuk menambahkan baris untuk satu atau lebih tabel, atau mungkin terdiri dari kombinasi SELECT, UPDATE dan pernyataan INSERT. UPDATE, dan INSERT 6
y Semua pernyataan SQL dalam transaksi harus
diselesaikan dengan sukses. Jika salah satu pernyataan SQL gagal seluruh transaksi dikembalikan (roll‐back) SQL gagal, seluruh (roll back) ke keadaan awal database yang ada sebelum transaksi dimulai. y 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, 277.55); 277.55,'cred',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 yAtomicity yConsistency C i t yIsolation yDurability ySerializability 10
y Atomicity mensyaratkan bahwa semua operasi (SQL
request) dari transaksi akan selesai, jika tidak, transaksi tersebut dibatalkan. dibatalkan y Jika transaksi T1 memiliki empat permintaan SQL, keempat permintaan harus berhasil diselesaikan, jika diselesaikan jika tidak, seluruh transaksi dibatalkan. Dengan kata lain, transaksi diperlakukan sebagai satu unit, tidak terbagi, kerja logis.
11
y Consistency menunjukkan kondisi permanen dari
database yang konsisten. Sebuah transaksi mengambil database dari satu kondisi konsisten ke keadaan konsisten yang lain. y Ketika transaksi selesai, database harus selesai database harus dalam keadaan konsisten, jika salah satu bagian transaksi melanggar kendala integritas, seluruh transaksi dibatalkan.
12
y 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 Tn) sampai berakhir T1. y Properti p ini sangat g berguna g dalam lingkungan g g database multiuser karena beberapa pengguna dapat mengakses dan memperbarui database pada saat yang sama. 13
y Durability memastikan bahwa perubahan transaksi
sekali selesai (berkomitmen), mereka tidak dapat dibatalkan atau hilang, bahkan hilang bahkan dalam hal terjadi kegagalan sistem.
14
y Serializability memastikan bahwa jadwal untuk
pelaksanaan bersamaan dari transaksi menghasilkan properti results. results y Konsistensi adalah penting dalam database multiuser dan terdistribusi, di 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 y Sebuah pernyataan COMMIT akan tercapai, dalam hal
ini semua perubahan secara permanen dicatat dalam pernyataan database. COMMIT secara database COMMIT secara otomatis mengakhiri transaksi SQL. y Sebuah pernyataan ROLLBACK akan tercapai, dalam 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 y Sebuah DBMS menggunakan log transaksi untuk
melacak semua transaksi yang memperbarui database. y Informasi I f i yang disimpan di i d l dalam l i i digunakan log ini di k oleh l h DBMS untuk kebutuhan pemulihan yang dipicu oleh pernyataan ROLLBACK, terminasi ROLLBACK terminasi abnormal suatu program, atau kegagalan sistem seperti perbedaan jaringan atau disk crash.
18
y Beberapa RDBMS menggunakan log transaksi untuk
memulihkan database kembali ke keadaan saat konsisten konsisten. y Setelah kegagalan server, misalnya, Oracle otomatis akan ‘roll‐back’ transaksi roll back transaksi dan ‘roll‐forward’ transaksi roll forward transaksi yang dilakukan tetapi belum ditulis ke database fisik.
19
Isi Log Transaksi y Sebuah catatan untuk awal transaksi. y Untuk setiap komponen transaksi (pernyataan SQL): 1 Jenis operasi yang dilakukan (memperbarui, menghapus, 1. (memperbarui menghapus
menyisipkan). 2. Nama‐nama obyek dipengaruhi oleh transaksi (nama tabel). b l) 3. Nilai‐nilai "sebelum" dan "setelah" untuk bidang yang sedang g diperbarui. p 4. Pointer ke entri transaksi sebelumnya dan berikutnya log untuk transaksi yang sama. y Akhir (COMMIT) dari transaksi. transaksi 20
Transaction Log
21