logo

Właściwości ACID w DBMS

Transakcje to podstawowe operacje, które pozwalają nam modyfikować i pobierać dane. Jednakże dla zapewnienia integralności bazy danych ważne jest, aby transakcje te były realizowane w sposób pozwalający zachować spójność, poprawność i niezawodność nawet w przypadku awarii/błędów. W tym miejscu wchodzą w grę właściwości ACID.

ACID oznacza izolację i trwałość konsystencji atomowości.



Właściwości KWASÓW:

właściwości_kwasu' title=

Istnieją cztery właściwości kwasu

1. Atomowość

Atomowość oznacza, że ​​transakcja jest typu „wszystko albo nic”, albo wszystkie jej operacje powiodą się, albo żadna nie zostanie zastosowana. Jeśli jakakolwiek część ulegnie awarii, cała transakcja zostanie wycofana, aby zachować spójność bazy danych.

  • Popełniać : Jeśli transakcja się powiedzie, zmiany zostaną trwale zastosowane.
  • Przerwij/wycofaj : Jeśli transakcja się nie powiedzie, wszelkie zmiany dokonane podczas transakcji zostaną odrzucone.

Przykład : Rozważ następującą transakcję T składający się z T1 I T2 : Transfer 0 z konta X rozliczyć I .

atomowość' loading='lazy' title=Atomowość

Jeśli transakcja nie powiedzie się po zakończeniu T1, ale przed zakończeniem T2, baza danych pozostanie w niespójnym stanie. Dzięki Atomicity, jeśli jakakolwiek część transakcji zakończy się niepowodzeniem, cały proces zostanie przywrócony do pierwotnego stanu i nie zostaną wprowadzone żadne częściowe zmiany.



Spójność transakcji oznacza, że ​​baza danych musi pozostać w prawidłowym stanie przed i po transakcji.

typy komputerów
  • Prawidłowy stan jest zgodny ze wszystkimi zdefiniowanymi regułami, ograniczeniami i relacjami (takimi jak klucze podstawowe, klucze obce itp.).
  • Jeśli transakcja narusza którąkolwiek z tych zasad, jest wycofywana, aby zapobiec uszkodzeniu lub nieprawidłowym danym.
  • Jeżeli transakcja powoduje pobranie pieniędzy z jednego konta, ale nie dodanie ich do innego (w przelewie), narusza to spójność.

Przykład : Załóżmy, że suma wszystkich sald w systemie bankowym powinna być zawsze stała. Przed przelewem całkowite saldo wynosi 0. Po transakcji całkowite saldo powinno pozostać równe 0. Jeśli transakcja nie powiedzie się w trakcie (np. aktualizacja jednego konta, ale nie drugiego), system powinien zachować spójność poprzez wycofywanie transakcji.

Łącznie przed wystąpieniem T = 500 + 200 = 700 .
Łącznie po wystąpieniu T  = 400 + 300 = 700 .



izolacja' loading='lazy' title=Konsystencja

3. Izolacja

Izolacja gwarantuje, że transakcje przebiegają niezależnie i nie wpływają na siebie nawzajem. Zmiany dokonane w jednej transakcji nie są widoczne dla innych, dopóki nie zostaną zatwierdzone.

Zapewnia, że ​​wynik jednoczesnych transakcji jest taki sam, jak gdyby były przeprowadzane jedna po drugiej, zapobiegając problemom takim jak:

  • Brudny czyta: odczytanie niezatwierdzonych danych
  • Niepowtarzalne odczyty: zmiany danych pomiędzy dwoma odczytami
  • Fantom czyta: podczas transakcji pojawiają się nowe wiersze

Przykład : Rozważ dwie transakcje T i T''.

  • X = 500 Y = 500
izolacja' loading='lazy' title=Izolacja

Wyjaśnienie:

1. Transakcja T:

  • T chce przenieść się z X do Y.
  • T. czyta I (wartość: 500) odejmuje od X (nowe X = 450) i dodaje do Y (nowe Y = 550).

2. Transakcja T'':

  • T' ' rozpoczyna się i odczytuje X (500) i Y (500).
  • Oblicza sumę: 500 + 500 = 1000.
  • Tymczasem wartości X i Y zmieniają się odpowiednio na 450 i 550.
  • Zatem poprawna suma powinna wynosić 450 + 550 = 1000.
  • Izolacja zapewnia, że ​​T'' nie odczytuje nieaktualnych wartości, podczas gdy inna transakcja (T) jest nadal w toku.
  • Transakcje powinny być niezależne, a T'' powinien uzyskać dostęp do wartości końcowych dopiero po zatwierdzeniu T.
  • Pozwala to uniknąć niespójnych wyników, takich jak niepoprawna suma obliczona przez T''.

4. Trwałość:

Trwałość zapewnia, że ​​po zatwierdzeniu transakcji zmiany zostaną trwale zapisane nawet w przypadku awarii systemu. Dane są przechowywane w pamięci nieulotnej, dzięki czemu baza danych może odzyskać ostatni zatwierdzony stan bez utraty danych.

Przykład : Po pomyślnym przelaniu pieniędzy z konta A na konto B zmiany zostaną zapisane na dysku. Nawet jeśli nastąpi awaria bezpośrednio po zatwierdzeniu, szczegóły transferu pozostaną nienaruszone, gdy system zostanie przywrócony, zapewniając trwałość.

Jak właściwości ACID wpływają na projekt i działanie DBMS

The Właściwości ACID w sumie zapewniają mechanizm zapewniający poprawność i spójność bazy danych w taki sposób, że każda transakcja jest grupą operacji, która działa jak pojedyncza jednostka i generuje spójne wyniki, działając w oderwaniu od innych operacji, a wprowadzane przez nią aktualizacje są trwale przechowywane.

Właściwości ACID zabezpieczają integralność danych systemu DBMS, zapewniając pomyślne zakończenie transakcji lub brak śladów w przypadku przerwania. Zapobiegają uszkodzeniu danych przez częściowe aktualizacje i zapewniają, że baza danych przechodzi tylko między prawidłowymi stanami.

błąd wykonania

2. Kontrola współbieżności

Właściwości ACID zapewniają solidne ramy do zarządzania współbieżnymi transakcjami. Izolacja zapewnia, że ​​transakcje nie kolidują ze sobą, zapobiegając anomaliom danych, takim jak utrata aktualizacji, tymczasowa niespójność i niezatwierdzone dane.

3. Odzyskiwanie i tolerancja na błędy

Trwałość gwarantuje, że nawet w przypadku awarii systemu baza danych będzie mogła powrócić do spójnego stanu. Dzięki właściwościom Atomicity i Durability, jeśli transakcja zakończy się niepowodzeniem, baza danych pozostanie w spójnym stanie.

Nieruchomość Odpowiedzialność za utrzymanie nieruchomości
AtomowośćMenedżer transakcji
KonsystencjaProgramista aplikacji
IzolacjaMenedżer kontroli współbieżności
TrwałośćPowrót do zdrowia

Krytyczne przypadki użycia ACID w bazach danych

We współczesnych aplikacjach kluczowe znaczenie ma zapewnienie niezawodności i spójności danych. Właściwości ACID mają fundamentalne znaczenie w sektorach takich jak:

  • Bankowy : Transakcje obejmujące przelewy pieniężne, wpłaty lub wypłaty muszą zachować ścisłą spójność i trwałość, aby zapobiec błędom i oszustwom.
  • Handel elektroniczny : Zapewnienie, że inwentaryzacja zamówień i dane klientów są obsługiwane prawidłowo i konsekwentnie, nawet podczas dużego ruchu, wymaga zgodności z ACID.
  • Opieka zdrowotna : Wyniki badań dokumentacji pacjenta i recepty muszą spełniać rygorystyczne standardy integralności i bezpieczeństwa.