| Termin | Definicja |
|---|---|
| Wyzwalacz zapobiegający modyfikacjom | Wyzwalacz zapobiegający modyfikacjom blokuje wykonanie operacji niespełniającej zdefiniowanych reguł integralności. Rola wyzwalacza w ochronie integralności danychWyzwalacz zapobiegający modyfikacjom to mechanizm zapisany w bazie danych, który automatycznie reaguje na próbę wykonania operacji zmieniającej dane. Operacją może być dodanie wiersza, zmiana istniejących wartości albo usunięcie rekordu. Wyzwalacz jest powiązany z określoną tabelą lub widokiem oraz z konkretnym zdarzeniem, dlatego nie działa przypadkowo dla całej bazy. Jego zadaniem jest sprawdzenie, czy planowana zmiana spełnia reguły integralności ustalone dla danego modelu danych. Jeżeli warunek nie zostanie spełniony, wyzwalacz może przerwać wykonanie operacji i zgłosić błąd. W zależności od silnika bazy danych przerwanie może obejmować bieżące polecenie albo całą transakcję. Dzięki temu niepoprawna wartość nie zostaje zapisana, a aplikacja otrzymuje informację, że modyfikacja została odrzucona. Sam wyzwalacz nie naprawia danych już znajdujących się w tabeli. Kontroluje dopiero operacje wykonywane po jego utworzeniu lub zmianie. Moment uruchomienia i zakres kontrolowanej zmianyWyzwalacz może być uruchamiany przed operacją, po jej wykonaniu albo zamiast standardowej operacji, ale dostępne warianty zależą od konkretnego silnika bazy danych. Wyzwalacz działający przed zapisem może odrzucić zmianę, zanim nowy stan zostanie utrwalony. W tym miejscu można sprawdzić wartość pola, relację między kilkoma kolumnami albo zgodność modyfikacji z aktualnym stanem innych tabel. Wyzwalacz uruchamiany po operacji może reagować na zmianę, która została już zaakceptowana, jednak jego działanie nadal może doprowadzić do wycofania transakcji, jeżeli silnik i sposób wykonania na to pozwalają. Zakres działania może obejmować pojedynczy wiersz albo całe polecenie modyfikujące wiele wierszy. Wyzwalacz wierszowy jest uruchamiany osobno dla każdego zmienianego rekordu, natomiast wyzwalacz instrukcyjny reaguje raz na całe polecenie. Nie każdy silnik udostępnia oba modele w taki sam sposób. Różnice dotyczą również dostępu do wartości przed zmianą i po zmianie, kolejności uruchamiania kilku wyzwalaczy oraz możliwości modyfikowania danych w ramach kodu wyzwalacza. Z tego powodu opis mechanizmu bez wskazania silnika powinien pozostać ogólny. Reguły odrzucania modyfikacji i komunikaty błędówTypowa reguła może wymagać, aby wartość liczbowa nie była ujemna, data zakończenia nie poprzedzała daty rozpoczęcia albo zmiana statusu następowała wyłącznie z dozwolonego statusu wcześniejszego. Wyzwalacz może również blokować usunięcie rekordu, gdy istnieją powiązane dane, albo odrzucać zmianę pola, które po utworzeniu wpisu powinno pozostać niezmienne. Reguła jest wykonywana po stronie bazy, więc obowiązuje także wtedy, gdy dane modyfikuje inna aplikacja, skrypt lub bezpośrednie polecenie administracyjne. Komunikat zgłaszany przez wyzwalacz powinien wskazywać przyczynę odrzucenia, a nie tylko informować o ogólnym błędzie zapisu. Aplikacja korzystająca z bazy musi taki błąd prawidłowo obsłużyć: wycofać nieudaną operację, przekazać zrozumiałą informację użytkownikowi i nie udawać, że zmiana została zapisana. Należy także uwzględnić operacje wykonywane w transakcjach. Jeżeli wyzwalacz odrzuci jedną modyfikację, cała transakcja może stać się niemożliwa do zatwierdzenia. W praktyce testuje się zarówno poprawne przypadki, jak i próby naruszenia każdej reguły. Diagnostyka problemów z blokowaną zmianąGdy aplikacja nie pozwala zapisać formularza, przyczyną może być właśnie wyzwalacz odrzucający modyfikację. Diagnostykę zaczyna się od ustalenia, która tabela i operacja wywołują błąd, jaki komunikat zwraca baza oraz czy problem występuje dla jednego rekordu, czy dla wszystkich podobnych zmian. Następnie sprawdza się definicję wyzwalacza, warunek blokujący, kolejność wykonywania powiązanych mechanizmów oraz wartości przekazywane przez aplikację. Warto porównać próbę wykonaną z poziomu programu z kontrolowaną próbą w tym samym środowisku bazy. Nie należy usuwać wyzwalacza tylko po to, aby wymusić zapis. Takie działanie może dopuścić dane niespełniające reguł i utrudnić późniejsze ustalenie ich pochodzenia. Bezpieczniejsza jest weryfikacja, czy reguła odpowiada aktualnemu modelowi danych, czy aplikacja przekazuje komplet wymaganych wartości oraz czy komunikat błędu nie jest gubiony przez warstwę programu. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką problemów z oprogramowaniem działającym na takich urządzeniach. |