Pengertian ACID (Atomicity, Consistency, Isolation, Durability)

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.
Share:
spacer

No comments:

Post a Comment