Транзакциите са основни операции, които ни позволяват да променяме и извличаме данни. Въпреки това, за да се гарантира целостта на базата данни, е важно тези транзакции да се изпълняват по начин, който поддържа последователност, коректност и надеждност дори в случай на повреди/грешки. Тук влизат в действие свойствата на ACID.
ACID означава Atomicity Consistency Isolation and Durability.
Свойства на КИСЕЛИНАТА:
Има четири свойства на ACID
1. Атомност
Атомарността означава, че транзакцията е "всичко или нищо", или всички нейни операции са успешни, или нито една не се прилага. Ако някоя част се провали, цялата транзакция се връща назад, за да се поддържа последователността на базата данни.
- Ангажирайте се : Ако транзакцията е успешна, промените се прилагат постоянно.
- Прекратяване/връщане назад : Ако транзакцията е неуспешна, всички промени, направени по време на транзакцията, се отхвърлят.
Пример : Помислете за следната транзакция Т състоящ се от T1 и Т2 : Прехвърляне на 0 от сметка X към сметка И .
АтомностАко транзакцията е неуспешна след завършване на T1, но преди завършване на T2, базата данни ще остане в непоследователно състояние. С Atomicity, ако някоя част от транзакцията е неуспешна, целият процес се връща обратно към първоначалното си състояние и не се правят частични промени.
Съгласуваността на транзакциите означава, че базата данни трябва да остане във валидно състояние преди и след транзакция.
бутон в центъра css
- Валидно състояние следва всички дефинирани правила, ограничения и връзки (като първични ключове външни ключове и др.).
- Ако транзакция приспада пари от една сметка, но не ги добавя към друга (при превод), това нарушава последователността.
Пример : Да предположим, че сумата от всички баланси в една банкова система винаги трябва да бъде постоянна. Преди прехвърляне общият баланс е 0. След транзакцията общият баланс трябва да остане 0. Ако транзакцията се провали по средата (като актуализиране на единия акаунт, но не и на другия), системата трябва да поддържа своята последователност чрез връщане назад на транзакцията.
Общо преди да се появи T = 500 + 200 = 700.
Общо след настъпването на T = 400 + 300 = 700.
Последователност3. Изолация
Изолацията гарантира, че транзакциите се изпълняват независимо, без да се засягат една друга. Промените, направени от една транзакция, не са видими за другите, докато не бъдат ангажирани.
Той гарантира, че резултатът от едновременните транзакции е същият, както ако се изпълняват една след друга, предотвратявайки проблеми като:
- Dirty гласи: четене на некоммитирани данни
- Неповторими четения: промени в данните между две четения
- Фантом гласи: нови редове се появяват по време на транзакция
Пример : Разгледайте две транзакции T и T''.
- X = 500 Y = 500
ИзолацияОбяснение:
1. Транзакция Т:
- T иска да се прехвърли от X към Y.
- Т чете И (стойност: 500) изважда от X (ново X = 450) и добавя към Y (ново Y = 550).
2. Транзакция T'':
- т' ' започва и чете X (500) и Y (500).
- Той изчислява сумата: 500 + 500 = 1000.
- Междувременно стойностите на X и Y се променят съответно на 450 и 550.
- Така че правилната сума трябва да бъде 450 + 550 = 1000.
- Изолацията гарантира, че T'' не чете остарели стойности, докато друга транзакция (T) все още е в ход.
- Транзакциите трябва да са независими и T'' трябва да има достъп до крайните стойности само след като T се ангажира.
- Това избягва противоречиви резултати като неправилната сума, изчислена от T''.
4. Издръжливост:
Устойчивостта гарантира, че след като транзакцията е извършена, нейните промени се запазват за постоянно, дори ако системата се повреди. Данните се съхраняват в енергонезависима памет, така че базата данни да може да се възстанови до последното си ангажирано състояние, без да губи данни.
Пример : След успешно прехвърляне на пари от сметка А към сметка Б, промените се съхраняват на диск. Дори ако има срив непосредствено след ангажимента, данните за трансфера ще продължат да бъдат непокътнати, когато системата се възстанови, осигурявайки издръжливост.
Как свойствата на ACID влияят на дизайна и работата на СУБД
The Свойствата на ACID като цяло осигуряват механизъм за гарантиране на коректността и съгласуваността на базата данни по такъв начин, че всяка транзакция е група от операции, които действат като единична единица, произвежда последователни резултати, действа изолирано от други операции и актуализациите, които прави, се съхраняват трайно.
Свойствата на ACID защитават целостта на данните на СУБД, като гарантират, че транзакциите или завършват успешно, или не оставят следи, ако бъдат прекъснати. Те предотвратяват частичните актуализации от повреда на данните и гарантират, че базата данни преминава само между валидни състояния.
ml до oz
2. Контрол на паралелността
Свойствата на ACID осигуряват солидна рамка за управление на едновременни транзакции. Изолацията гарантира, че транзакциите не си пречат една на друга, предотвратявайки аномалии в данните, като загубени актуализации, временна несъответствие и необвързани данни.
3. Възстановяване и толерантност към грешки
Устойчивостта гарантира, че дори ако системата се срине, базата данни може да се възстанови до последователно състояние. Благодарение на свойствата Atomicity и Durability, ако транзакция се провали по средата, базата данни остава в последователно състояние.
| Собственост | Отговорност за поддържане на имотите |
|---|---|
| Атомност | Мениджър на транзакции |
| Последователност | Приложен програмист |
| Изолация | Мениджър за контрол на паралелността |
| Издръжливост | Възстановяване |
Критични случаи на употреба на ACID в бази данни
В съвременните приложения осигуряването на надеждност и последователност на данните е от решаващо значение. Свойствата на ACID са основни в сектори като:
- Банкиране : Транзакциите, включващи парични преводи, депозити или тегления, трябва да поддържат стриктна последователност и издръжливост, за да се предотвратят грешки и измами.
- Електронна търговия : Гарантирането, че инвентарът преброява поръчките и данните за клиентите се обработват правилно и последователно дори при висок трафик изисква съответствие с ACID.
- Здравеопазване : Резултатите от тестовете и предписанията на пациентите трябва да се придържат към стриктни стандарти за последователност и сигурност.