Dalam
ilmu komputer , ACID (Atomicity, Consistency, Isolation, Durability) adalah
seperangkat sifat yang menjamin bahwa database transaksi diproses andal. Dalam
konteks database , operasi logis tunggal data disebut transaksi. Sebagai contoh,
transfer dana dari satu rekening bank ke bank lain, bahkan melibatkan beberapa
perubahan seperti mendebet satu account dan mengkredit lain, adalah satu
transaksi.
Jim
Gray mendefinisikan sifat-sifat dari sistem transaksi yang dapat diandalkan
pada akhir tahun 1970 dan mengembangkan teknologi untuk mencapainya secara
otomatis. Pada tahun 1983, Andreas Reuter dan Theo sulit menciptakan akronim
ACID untuk menggambarkan mereka
Karakteristik :
Atomicity
Atomicity
mensyaratkan bahwa setiap transaksi adalah "semua atau tidak": jika
salah satu bagian dari transaksi gagal, seluruh transaksi gagal, dan negara
database yang tersisa tidak berubah. Sebuah sistem atom harus menjamin
atomicity dalam setiap situasi, termasuk gangguan listrik, kesalahan, dan
crash. Ke dunia luar, transaksi berkomitmen muncul (oleh dampaknya pada
database) tidak dapat dibagi ("atom"), dan transaksi dibatalkan tidak
terjadi.
Konsistensi
The
konsistensi properti memastikan bahwa transaksi akan membawa database dari satu
negara ke yang lain yang valid. Setiap data ditulis ke database harus berlaku
sesuai dengan semua aturan yang ditetapkan, termasuk namun tidak terbatas pada
kendala , cascades , pemicu , dan kombinasi dari semuanya. Ini tidak menjamin
kebenaran transaksi dalam segala hal pemrogram aplikasi mungkin ingin (yang
merupakan tanggung jawab dari kode aplikasi-level) tetapi hanya bahwa kesalahan
pemrograman apapun tidak melanggar aturan yang ditetapkan.
Isolasi
The
isolasi properti memastikan bahwa pelaksanaan bersamaan dari hasil transaksi
dalam keadaan sistem yang akan diperoleh jika transaksi dieksekusi secara
serial, yaitu satu demi satu. Memberikan isolasi adalah tujuan utama dari
kontrol konkurensi . Tergantung pada metode kontrol konkurensi, efek dari
transaksi yang tidak lengkap bahkan mungkin tidak terlihat oleh transaksi lain.
Daya Tahan
Daya
tahan berarti bahwa sekali transaksi telah dilakukan, itu akan tetap demikian,
bahkan dalam hal kehilangan kekuasaan, crash , atau kesalahan. Dalam database
relasional, misalnya, pernah sekelompok pernyataan SQL mengeksekusi, hasilnya
harus disimpan secara permanen (bahkan jika database crash segera setelahnya).
Untuk mempertahankan melawan daya yang hilang, transaksi (atau efek mereka)
harus dicatat dalam memori non-volatile .
Implementasi
Pengolahan
transaksi sering membutuhkan urutan operasi yang tunduk pada kegagalan untuk
sejumlah alasan. Sebagai contoh, sistem mungkin tidak memiliki ruang yang
tersisa pada drive disk-nya, atau mungkin telah menggunakan waktu CPU yang
dialokasikan.
Ada
dua keluarga populer teknik: menulis depan penebangan dan shadow paging . Dalam
kedua kasus, kunci harus diperoleh pada semua informasi yang diperbarui, dan
tergantung pada tingkat isolasi, mungkin pada semua data yang dibaca juga.
Dalam menulis ahead logging, atomicity dijamin dengan menyalin asli (tidak
berubah) data ke log sebelum mengubah database. Yang memungkinkan database untuk kembali ke
keadaan yang konsisten dalam hal kecelakaan.
Dalam
bayangan, update diterapkan ke salinan parsial database, dan salinan baru
diaktifkan ketika melakukan transaksi.
No comments:
Post a Comment