Eu gosto dos livros da sĂ©rie Head First O`Reilly - eles apenas falam sobre o difĂcil. E tento fazer o mesmo.
Quando se trata de bancos de dados, as palavras mágicas "Requisitos de ACID" podem surgir. Em uma entrevista ou em uma conversa de desenvolvedor - não é o ponto. Neste artigo, vou falar sobre o que é, como significa ACID e o que cada letra significa.
Requisitos ACID são um conjunto de requisitos que garantem a segurança de seus dados. Isso é especialmente importante para transações financeiras. Não queremos ficar sem dinheiro devido a uma conexão desconectada ou a um bug de software, queremos?
Veja também:
Vamos examinar cada carta ACID e ver exemplos de como um arquivo é melhor do que 10 arquivos diferentes. E por que uma transação é melhor do que 10 solicitações separadas.
Atomicidade - Atomicidade
A atomicidade garante que todas as transações sejam executadas completamente ou que não sejam executadas. Estados intermediários não são permitidos.
Sabe-se que um amigo está em apuros e um banco de dados está lidando com erros. Ah, se tudo fosse sempre bom e sem erros! Então, nenhum ACID seria necessário. Mas assim que ocorre um erro, a atomicidade se torna muito importante.
Digamos que vocĂŞ decida enviar dinheiro para sua mĂŁe. Quando vocĂŞ faz uma transferĂŞncia dentro de um banco, o que acontece:
Seu dinheiro foi debitado
MamĂŁe foi internada
E digamos que temos 2 solicitações distintas. Agora vamos ver o que acontece quando ocorrem erros:
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- , , — /. .
? . , — .
— . , . , .
:
() —
-
Transaction Isolation Levels in DBMS — ,
— . , . , , , .
Durability —
, , , - - . , ? .
:
, ACID, CAP — geekbrains
ACID NoSQL —
Bem, deixe-me lembrar o link para o artigo " O que é uma transação ".
PS - Procure artigos mais Ăşteis no meu blog sob a tag “útil” . E vĂdeos Ăşteis estĂŁo no meu canal do youtube