DBMS to zarządzanie danymi, które powinny pozostać zintegrowane, gdy zostaną w nich wprowadzone jakiekolwiek zmiany. Dzieje się tak dlatego, że jeśli naruszona zostanie integralność danych, całe dane zostaną zakłócone i uszkodzone. Dlatego też, aby zachować integralność danych, w systemie zarządzania bazami danych opisano cztery właściwości, tzw KWAS nieruchomości. Właściwości ACID są przeznaczone dla transakcji, która przechodzi przez inną grupę zadań i tu dochodzimy do roli właściwości ACID.
W tej sekcji poznamy i zrozumiemy właściwości ACID. Dowiemy się, co oznaczają te właściwości i do czego służą poszczególne właściwości. Zrozumiemy również właściwości ACID za pomocą kilku przykładów.
Właściwości kwasu
Rozszerzenie terminu ACID definiuje dla:
1) Atomowość
Termin atomowość oznacza, że dane pozostają niepodzielne. Oznacza to, że jeśli na danych zostanie wykonana jakakolwiek operacja, należy ją wykonać lub wykonać w całości, albo w ogóle nie należy jej wykonywać. Oznacza to ponadto, że operacja nie powinna być przerywana ani wykonywana częściowo. W przypadku wykonywania operacji na transakcji operacja powinna zostać wykonana w całości, a nie częściowo.
Przykład: Jeśli Remo ma konto A i ma na swoim koncie 30 dolarów, z którego chce wysłać 10 dolarów na konto Sheero, czyli B. Na koncie B znajduje się już suma 100 dolarów. Kiedy 10 dolarów zostanie przelane na konto B, suma wyniesie 110 dolarów. Teraz odbędą się dwie operacje. Jednym z nich jest kwota 10 dolarów, które Remo chce przelać, zostanie pobrana z jego konta A, a ta sama kwota zostanie przelana na konto B, tj. na konto Sheero. I co się dzieje - pierwsza operacja obciążenia przebiega pomyślnie, natomiast operacja uznania kończy się niepowodzeniem. Zatem na koncie A Remo wartość wynosi 20 dolarów, a na koncie Sheero pozostaje 100 dolarów, tak jak było wcześniej.
Na powyższym diagramie widać, że po zaksięgowaniu 10 dolarów na koncie B kwota nadal wynosi 100 dolarów. Nie jest to więc transakcja atomowa.
Poniższy obraz pokazuje, że zarówno operacje debetowe, jak i kredytowe zostały wykonane pomyślnie. Zatem transakcja jest atomowa.
Zatem, gdy kwota traci atomowość, w systemach bankowych staje się to ogromnym problemem, dlatego też w systemach bankowych główny nacisk kładzie się na atomowość.
2) Spójność
Słowo konsystencja oznacza, że wartość powinna pozostać zawsze zachowana. W DBMS należy zachować integralność danych, co oznacza, że w przypadku dokonania zmiany w bazie danych powinny one pozostać zawsze zachowane. W przypadku transakcji integralność danych jest bardzo istotna, aby baza danych pozostała spójna przed i po transakcji. Dane powinny być zawsze prawidłowe.
Przykład:
Na powyższym rysunku są trzy konta, A, B i C, gdzie A dokonuje transakcji T, jeden po drugim, zarówno na rzecz B, jak i C. Zachodzą dwie operacje, tj. Debet i Kredyt. Konto A najpierw obciąża konto B kwotą 50 dolarów, a kwota na koncie A jest odczytywana przez B przed transakcją jako 300 dolarów. Po udanej transakcji T dostępna kwota w B wynosi 150 USD. Teraz A obciąża konto C kwotą 20 USD i tym razem wartość odczytana przez C wynosi 250 USD (jest to prawidłowe, ponieważ obciążenie konta B w wysokości 50 USD zostało pomyślnie wykonane). Operacja debetowa i kredytowa z konta A do C została wykonana pomyślnie. Widzimy, że transakcja przebiegła pomyślnie, a wartość również została poprawnie odczytana. Dane są zatem spójne. W przypadku, gdy wartość odczytana przez B i C wynosi 300 USD, oznacza to, że dane są niespójne, ponieważ po wykonaniu operacji obciążenia nie będą spójne.
3) Izolacja
Termin „izolacja” oznacza separację. W systemie DBMS izolacja jest właściwością bazy danych, w której żadne dane nie powinny wpływać na drugą i mogą występować jednocześnie. Krótko mówiąc, operacja na jednej bazie danych powinna rozpocząć się po zakończeniu operacji na pierwszej bazie danych. Oznacza to, że jeśli dwie operacje są wykonywane na dwóch różnych bazach danych, mogą one nie wpływać na siebie nawzajem. W przypadku transakcji, gdy jednocześnie zachodzą dwie lub więcej transakcji, należy zachować spójność. Wszelkie zmiany zachodzące w konkretnej transakcji nie będą widoczne dla innych transakcji, dopóki zmiana nie zostanie zatwierdzona w pamięci.
Przykład: Jeśli dwie operacje są wykonywane jednocześnie na dwóch różnych kontach, wartość obu kont nie powinna ulec zmianie. Wartość powinna pozostać stała. Jak widać na poniższym diagramie, konto A dokonuje transakcji T1 i T2 na kontach B i C, ale oba wykonują się niezależnie, nie wpływając na siebie nawzajem. Nazywa się to izolacją.
4) Trwałość
Trwałość zapewnia trwałość czegoś. W DBMS termin trwałość zapewnia, że dane po pomyślnym wykonaniu operacji zostaną trwale zapisane w bazie danych. Trwałość danych powinna być na tyle doskonała, aby nawet w przypadku awarii systemu lub awarii bazy danych nadal istniała. Jeśli jednak zaginie, za zapewnienie trwałości bazy danych odpowiada menedżer ds. odtwarzania. Aby zatwierdzić wartości, należy użyć polecenia COMMIT za każdym razem, gdy wprowadzamy zmiany.
Dlatego właściwość ACID DBMS odgrywa istotną rolę w utrzymaniu spójności i dostępności danych w bazie danych.
Było to zatem precyzyjne wprowadzenie właściwości ACID w SZBD. Omówiliśmy te właściwości również w części dotyczącej transakcji.