Meninggalkan ACID dalam Nikmat BASE dalam Kejuruteraan Pangkalan Data

Pangkalan data relasi direka dengan kebolehpercayaan dan konsistensi pada inti mereka. Jurutera yang membangunkan mereka memberi tumpuan kepada model transaksional yang memastikan bahawa empat prinsip model ACID akan sentiasa dipelihara. Walau bagaimanapun, kemunculan model pangkalan data tidak berstruktur baru adalah menjadikan ACID di atas kepalanya. Model pangkalan data NoSQL menghalang model relasi yang sangat berstruktur memihak kepada pendekatan kunci / nilai kedai yang fleksibel. Pendekatan yang tidak berstruktur untuk data memerlukan alternatif kepada model ACID: model BASE.

Tenet Asas Model ACID

Terdapat empat prinsip asas model ACID:

Atomisiti urus niaga memastikan setiap urus niaga pangkalan data adalah unit tunggal yang menggunakan pendekatan "semua atau tidak" untuk pelaksanaan. Jika sebarang pernyataan dalam urusniaga gagal, keseluruhan transaksi akan dilancarkan.

Pangkalan data hubungan juga memastikan kesesuaian setiap transaksi dengan peraturan perniagaan pangkalan data. Jika mana-mana elemen transaksi atom akan mengganggu konsistensi pangkalan data, keseluruhan transaksi gagal.

Enjin pangkalan data menguatkuasakan pengasingan antara pelbagai transaksi yang berlaku pada atau berhampiran dengan masa yang sama. Setiap urusniaga berlaku sama ada sebelum atau selepas setiap urus niaga lain dan pandangan pangkalan data yang dilihat transaksi pada permulaannya hanya diubah oleh transaksi itu sendiri sebelum kesimpulannya. Tiada transaksi harus melihat produk perantaraan transaksi lain.

Prinsip ACID akhir, ketahanan , memastikan bahawa apabila transaksi dilakukan ke pangkalan data, ia disimpan secara kekal melalui penggunaan sandaran dan log transaksi. Sekiranya berlaku kegagalan, mekanisme ini boleh digunakan untuk memulihkan transaksi komited.

Prinsip Teras BASE

Pangkalan data NoSQL, sebaliknya, merangkul situasi di mana model ACID berlebihan atau sebenarnya, menghalang operasi pangkalan data. Sebaliknya, NoSQL bergantung kepada model yang lebih lembut yang diketahui, sesuai dengan model BASE. Model ini menampung fleksibiliti yang ditawarkan oleh NoSQL dan pendekatan yang serupa dengan pengurusan dan pengumpulan data tidak berstruktur. BASE terdiri daripada tiga prinsip:

Ketersediaan Asas . Pendekatan pangkalan data NoSQL menumpukan pada ketersediaan data walaupun terdapat banyak kegagalan. Ia mencapai ini dengan menggunakan pendekatan yang sangat diedarkan kepada pengurusan pangkalan data. Daripada mengekalkan satu stor data yang besar dan menumpukan perhatian kepada toleransi kesalahan pada stor tersebut, pangkalan data NoSQL menyebarkan data ke seluruh sistem storan yang banyak dengan replikasi yang tinggi. Sekiranya tidak berlaku kegagalan akses ke segmen data, ini tidak semestinya menyebabkan pemisahan pangkalan data yang lengkap.

Negeri lembut . Pangkalan data BASE meninggalkan keperluan konsistensi model ACID hampir sepenuhnya. Salah satu konsep asas di belakang BASE ialah konsistensi data adalah masalah pemaju dan tidak boleh dikendalikan oleh pangkalan data.

Ketabahan Akhirnya . Satu-satunya keperluan bahawa pangkalan data NoSQL berhubung konsistensi adalah dengan menghendaki bahawa pada satu ketika di masa depan, data akan berkumpul ke keadaan yang konsisten. Walau bagaimanapun, tiada jaminan dibuat tentang masa ini. Itu adalah pelepasan lengkap dari keperluan konsisten segera ACID yang melarang transaksi daripada melaksanakan sehingga transaksi sebelumnya telah selesai dan pangkalan data telah menyatukan ke keadaan yang konsisten.

Model BASE tidak sesuai untuk setiap keadaan, tetapi ini merupakan alternatif yang fleksibel untuk model ACID untuk pangkalan data yang tidak memerlukan pematuhan ketat kepada model hubungan.