| Termin | Definicja |
|---|---|
| Zachowanie spójności danych | Zachowanie spójności danych chroni przed rozbieżnościami wynikającymi z równoległych, niezsynchronizowanych zmian. Na czym polega spójność danychZachowanie spójności danych oznacza utrzymanie ich w stanie zgodnym z przyjętymi regułami systemu. Informacje zapisane w różnych tabelach, plikach lub strukturach pamięci powinny wzajemnie się potwierdzać, a każda zmiana powinna prowadzić do logicznego rezultatu. Przykładowo, jeżeli aplikacja zmniejsza stan magazynowy po sprzedaży produktu, zapis transakcji i aktualizacja liczby dostępnych sztuk muszą należeć do tego samego poprawnie obsłużonego procesu. Nie może powstać sytuacja, w której sprzedaż została odnotowana, lecz stan magazynowy pozostał niezmieniony albo został zmniejszony dwukrotnie. Spójność jest jednym z podstawowych założeń przetwarzania danych w systemach komputerowych. Obejmuje między innymi poprawność typów i formatów, zgodność powiązań między rekordami oraz zachowanie ograniczeń określonych przez projekt aplikacji. W relacyjnych bazach danych mogą temu służyć klucze główne, klucze obce, ograniczenia UNIQUE, NOT NULL i CHECK. Klucz główny identyfikuje rekord, klucz obcy pilnuje odwołania do istniejącego rekordu, a pozostałe ograniczenia uniemożliwiają zapis wartości niespełniających zdefiniowanych warunków. Równoległe zmiany i ryzyko rozbieżnościDo utraty spójności może dojść, gdy kilka procesów jednocześnie odczytuje i modyfikuje te same dane. Typowym przykładem jest problem utraconej aktualizacji. Dwa procesy odczytują początkową wartość, każdy oblicza nowy wynik na podstawie tego samego odczytu, a następnie zapisuje własną wersję. Ostatni zapis może wtedy nadpisać wcześniejszą zmianę, mimo że obie operacje zostały wykonane bez zgłoszenia błędu. Innym zagrożeniem jest odczyt niezatwierdzonych danych, czyli sytuacja, w której jeden proces widzi zmianę wykonaną przez drugi proces przed jej ostatecznym zatwierdzeniem. Jeżeli tamta operacja zostanie wycofana, pierwszy proces mógł wykorzystać informację, która formalnie nigdy nie powinna być dostępna. Znaczenie mają także odczyty niepowtarzalne, gdy ten sam rekord zwraca różne wartości w ramach jednego działania, oraz odczyty fantomowe, gdy ponowne wykonanie zapytania obejmuje dodatkowe rekordy dodane przez inny proces. Kontrolowanie takich przypadków wymaga właściwej izolacji operacji i jednoznacznych zasad współbieżnego zapisu. Transakcje, blokady i kontrola wersjiNajczęściej stosowanym mechanizmem ochrony spójności w bazach danych jest transakcja. Transakcja grupuje powiązane operacje w jedną całość: albo wszystkie zostają zatwierdzone, albo zmiany są wycofywane. Ten model opisują właściwości ACID. Atomowość oznacza niepodzielność operacji, spójność wymaga przejścia między poprawnymi stanami, izolacja ogranicza wpływ równoległych transakcji, a trwałość zapewnia zachowanie zatwierdzonych zmian po zakończeniu operacji. W zależności od systemu stosuje się blokady pesymistyczne albo kontrolę optymistyczną. Blokada może czasowo uniemożliwić innemu procesowi modyfikowanie zajętego rekordu, ale zbyt szerokie lub długo utrzymywane blokady zwiększają ryzyko oczekiwania i zakleszczenia. Kontrola optymistyczna pozwala pracować bez stałego blokowania, a przed zapisem sprawdza, czy rekord nie zmienił się od chwili odczytu. Do tego celu może służyć numer wersji lub znacznik czasu. Jeżeli wersja jest inna niż oczekiwana, aplikacja powinna ponowić odczyt, połączyć zmiany albo poinformować o konflikcie, zamiast bezwarunkowo nadpisywać dane. Spójność wymaga również prawidłowej obsługi awarii. System powinien rozpoznawać przerwanie procesu pomiędzy poszczególnymi operacjami, rejestrować błędy i zapewniać możliwość odtworzenia zatwierdzonych zmian. Samo wykonanie kopii zapasowej nie naprawia błędnej logiki zapisu, dlatego kontrola obejmuje także testy scenariuszy równoległych, wycofań, ponowień żądań i utraty połączenia. Objawy niespójności i zakres kontroli serwisowejRozbieżności danych mogą objawiać się jako różne wartości tego samego parametru w dwóch miejscach programu, brak powiązanego rekordu, powielone wpisy, nieprawidłowe sumy albo komunikaty o konflikcie podczas zapisu. W przypadku komputera użytkownika przyczyną nie musi być uszkodzenie samej bazy. Problem może wynikać z przerwanego działania aplikacji, błędu programu, uszkodzenia systemu plików, wadliwego nośnika danych, nieprawidłowego zamknięcia systemu lub niespójnej kopii danych. Diagnostyka powinna rozdzielać problem logiczny od sprzętowego. Najpierw ustala się, czy rozbieżność występuje wyłącznie w jednej aplikacji, czy także w innych plikach i programach. Następnie sprawdza się dzienniki zdarzeń, stan nośnika, dostępność plików, poprawność kopii zapasowej oraz sposób, w jaki aplikacja zapisuje dane. Bezpieczna naprawa nie powinna polegać na ręcznym usuwaniu rekordów bez wcześniejszego zabezpieczenia danych i ustalenia zależności między nimi. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, w tym diagnostykę problemów z działaniem systemu, nośnikiem danych oraz aplikacjami użytkowymi. Zakres czynności dobiera się do objawów i stanu urządzenia, z uwzględnieniem ochrony istniejących danych oraz możliwości ich bezpiecznego odtworzenia. |