Saya suka buku-buku dari seri Head First O`Reilly - mereka hanya berbicara tentang yang sulit. Dan saya mencoba melakukan hal yang sama.
Ketika datang ke database, kata ajaib "Persyaratan ACID" bisa muncul. Dalam wawancara atau percakapan pengembang - bukan itu intinya. Pada artikel ini saya akan berbicara tentang apa itu, apa kepanjangan ACID dan apa arti setiap huruf.
Persyaratan ACID adalah serangkaian persyaratan yang memastikan keamanan data Anda. Ini sangat penting untuk transaksi keuangan. Kami tidak ingin kehabisan uang karena koneksi terputus atau bug perangkat lunak, bukan?
Lihat juga:
Mari kita telusuri setiap surat ACID dan lihat contoh bagaimana arsip lebih baik dari 10 file berbeda. Dan mengapa transaksi lebih baik dari 10 permintaan terpisah.
Atomicity - Atomicity
Atomicity memastikan bahwa setiap transaksi akan dijalankan sepenuhnya atau tidak sama sekali. Status menengah tidak diperbolehkan.
Seorang teman dikenal bermasalah, dan database menangani kesalahan. Oh, andai saja semuanya selalu baik dan tanpa kesalahan! Maka tidak ada ACID yang dibutuhkan. Tetapi begitu kesalahan terjadi, atomisitas menjadi sangat penting.
Katakanlah Anda memutuskan untuk mengirim uang kepada ibu Anda. Saat Anda melakukan transfer di dalam bank, apa yang terjadi:
Uang Anda telah didebit
Ibu diterima
Dan katakanlah kita memiliki 2 permintaan terpisah. Sekarang mari kita lihat apa yang terjadi ketika kesalahan terjadi:
1. — , , .
2. , — . . ... !
. ... , .
, . ? . , , « » « »!
, . ! =)
, . « ». 10 , — , .
Consistency —
, (EOT — end of transaction, ) , , , . , © wikipedia
. , , . : « , ». ( — ).
, :
-
-
— ,
—
:
client
phone
address
«», 3 :
insert into client… -- -
insert into phone…
insert into address…
3 , , 3 .
, , , — . , , « », . , , .
. -, . , « » — , :
phone
client
, . « », , foreign key.
constraint. , « ». :
1. 100, 10
2. — « , X – 100».
3. , ! constraint, , .
4. .
, , . forein , - — . , — . -.
, , - , . , - :
— , , ?
— -, ?
, .
Isolation —
.
, . ? — . , - : « , 100 , ». ? !
. ?
1 : " "
, 500 ..
1 (1 ) 300 .. . 300, 200 = 500 - 300.
2 (2) , 300 .., 1 . , 500, 500 + 300 = 800.
— " " , = 800, 500. " - ". .
2 : " "
, 500 ..
1 300 .. . 300. - 500 ..
2 (2) , 1 .
— , / ..
3 : " "
.
1 . . , (, ).
, - .
2 .
1 . .
- .
4 : ""
.
1 . . , (, ).
, - .
2 / .
1 . .
— .
3- 4- , , — /. .
? . , — .
— . , . , .
:
— . , . , , , .
Durability —
, , , - - . , ? .
:
, ACID, CAP — geekbrains
Baiklah, izinkan saya mengingatkan Anda tautan ke artikel " Apa itu transaksi ".
PS - Cari artikel bermanfaat lainnya di blog saya dengan tag "berguna" . Dan video yang berguna ada di saluran youtube saya