close

KWAS

Przejdź do nawigacji Przejdź do wyszukiwania

W bazach danych ACID odnosi się do charakterystyki parametrów, które pozwalają na klasyfikację transakcji systemów zarządzania bazami danych . Kiedy akcja jest uważana za zgodną z ACID , oznacza to – w różnym stopniu – że pozwala na przeprowadzenie transakcji.

W szczególności ACID jest akronimem w języku angielskim oznaczającym atomowość , spójność, izolację i trwałość : atomicidad , spójność , izolację i trwałość , w języku hiszpańskim.

Definicje

  • Niepodzielność : Jeśli operacja składa się z szeregu kroków, z których wszystkie lub żadne z nich nie są wykonywane, to znaczy, że transakcje są zakończone.
  • Spójność : ( Integralność ). Jest to właściwość, która sprawia, że ​​zaczyna się tylko to, co można dokończyć. W związku z tym wykonywane są te operacje, które nie naruszają zasad i wytycznych Integralności bazy danychWłaściwość spójności utrzymuje, że każda transakcja przeniesie bazę danych z jednego prawidłowego stanu do innego prawidłowego stanu. „Integralność bazy danych pozwala nam zapewnić, że dane są dokładne i spójne, to znaczy, że są zawsze nienaruszone, zawsze zgodnie z oczekiwaniami i nie ulegają zmianie ani nie zostaną w żaden sposób zniekształcone. W ten sposób możemy zagwarantować, że informacje prezentowane użytkownikowi będą zawsze takie same."
  • Izolacja : ta właściwość zapewnia, że ​​jedna operacja nie będzie miała wpływu na inne. Gwarantuje to, że przeprowadzenie dwóch transakcji na tych samych informacjach jest niezależne i nie generuje żadnego rodzaju błędu. Ta właściwość definiuje, jak i kiedy zmiany utworzone przez jedną operację są widoczne dla innych współbieżnych operacji. Izolację można osiągnąć na różnych poziomach, będąc podstawowym parametrem przy wyborze DBMS .
  • Trwałość : ( Wytrwałość ). Ta właściwość zapewnia, że ​​po wykonaniu operacji będzie ona trwała i nie będzie można jej cofnąć, nawet jeśli system ulegnie awarii, dzięki czemu dane w jakiś sposób przetrwają.

Spełniając te 4 wymagania, system zarządzania bazą danych można uznać za zgodny z ACID .

Wdrożenie

Uruchomienie funkcji ACID nie jest takie proste. Przetwarzanie transakcji często wymaga wprowadzenia szeregu drobnych zmian, w tym aktualizacji indeksów używanych w systemie w celu przyspieszenia wyszukiwania. Ta sekwencja operacji może się nie powieść z wielu powodów; na przykład system może nie mieć żadnych dostępnych witryn na swoich dyskach lub może przekroczyć przydzielony czas procesora .

ACID sugeruje, że baza danych może natychmiast wykonać wszystkie te operacje. W rzeczywistości jest to trudne do osiągnięcia. Istnieją dwa rodzaje popularnych technik: zapisywanie do dziennika przed kontynuowaniem i stronicowanie w tle. W obu przypadkach blokady muszą zostać zaimplementowane przed aktualizacją informacji, aw zależności od zastosowanej techniki wszystkie dane muszą zostać odczytane. W zapisie do rejestru przed kontynuowaniem niepodzielność jest gwarantowana przez zapewnienie, że wszystkie dane są zapisywane w rejestrze przed zapisaniem w bazie danych. Pozwala to na przywrócenie bazy danych do poprzedniego stanu w przypadku awarii. W shadow , aktualizacje są stosowane do jednej kopii bazy danych, a nowa kopia jest aktywowana, gdy transakcja jest niezawodna. Kopia odnosi się do niezmienionych części starej wersji bazy danych, a nie jest całym duplikatem.

Oznacza to, że blokada musi być wykonana w dowolnym momencie przed przetworzeniem danych w bazie danych, nawet w przypadku operacji odczytu. Posiadanie dużej liczby blokad powoduje znaczny pośredni wzrost procesów, a także zmianę ich współbieżności. Jeśli użytkownik A przetwarza transakcję, która odczytała wiersz danych, które użytkownik B chce zmodyfikować, na przykład użytkownik B musi poczekać, aż inny użytkownik zakończy.

Alternatywą dla przypinania jest przechowywanie oddzielnych kopii wszelkich danych, które się zmieniają. Umożliwia to użytkownikom odczytywanie danych bez uzyskiwania jakichkolwiek blokad. Ponownie korzystając z poprzedniego przykładu, gdy transakcja użytkownika pobiera dane zmodyfikowane przez użytkownika B, baza danych może pobrać dokładną wersję danych dla użytkownika A, aby rozpocząć transakcję. Gwarantuje to, że użytkownik A otrzymuje stały widok bazy danych, nawet jeśli inni użytkownicy zmieniają dane.

Trudno jest zagwarantować charakterystykę ACID w środowisku sieciowym. Połączenia sieciowe mogą się nie powieść lub dwóch użytkowników może jednocześnie korzystać z tej samej części bazy danych.

Referencje

Koncepcja ACID jest opisana w ISO/IEC 10026-1: 1992, sekcja 4.