| Termin | Definicja |
|---|---|
| Trigger jako mechanizm automatyzacji | Trigger jako mechanizm automatyzacji uruchamia zdefiniowaną logikę w odpowiedzi na operację na tabeli. Trigger w relacyjnej bazie danychTrigger, nazywany także wyzwalaczem, jest obiektem bazy danych powiązanym z określoną tabelą albo widokiem. Jego zadaniem jest automatyczne uruchomienie zdefiniowanej logiki po wystąpieniu wskazanego zdarzenia. Najczęściej takim zdarzeniem jest dodanie wiersza, zmiana jego wartości albo usunięcie rekordu. W zależności od używanego silnika trigger może być wykonywany przed operacją, po jej zakończeniu albo zamiast standardowej obsługi określonego działania. Szczegółowe możliwości, składnia i ograniczenia zależą od konkretnego systemu zarządzania bazą danych, dlatego definicji wyzwalacza nie należy przenosić między silnikami bez sprawdzenia dokumentacji. Mechanizm triggera różni się od zwykłego fragmentu programu tym, że jest związany z operacją wykonywaną na danych, a nie z pojedynczym przyciskiem lub ekranem aplikacji. Jeżeli rekord zostanie zmieniony przez aplikację, narzędzie administracyjne albo bezpośrednie zapytanie, trigger może zareagować na tę samą operację. Dzięki temu reguła pozostaje po stronie bazy i nie zależy wyłącznie od poprawnego działania jednego programu klienckiego. W wyzwalaczu można sprawdzać wartości przed zmianą i po zmianie, zapisywać zdarzenia w tabeli historii, aktualizować dane powiązane lub odrzucać operację, która narusza ustalone warunki. Moment wykonania i zakres reakcjiPrzy projektowaniu triggera trzeba jednoznacznie określić, na jakie zdarzenie ma reagować. Inna logika jest potrzebna dla utworzenia nowego wiersza, inna dla modyfikacji istniejącego rekordu, a jeszcze inna dla jego usunięcia. Dla zmian wartości istotne jest również wskazanie kolumn, których modyfikacja ma uruchamiać reakcję. Ograniczenie triggera do rzeczywiście potrzebnych zdarzeń zmniejsza liczbę niepotrzebnych operacji i ułatwia późniejsze ustalenie przyczyny zmian w danych. Wyzwalacz reagujący na każdą zmianę tabeli może wykonywać się znacznie częściej, niż zakładał projektant. Trigger działa zwykle w kontekście transakcji obejmującej operację, która go uruchomiła. Oznacza to, że jego instrukcje mogą mieć wpływ na końcowy wynik transakcji. Jeżeli logika triggera zakończy się błędem albo jawnie przerwie wykonanie, podstawowa operacja może zostać odrzucona. Z tego powodu wyzwalacz powinien obsługiwać wyłącznie jasno określony przypadek i nie wykonywać czynności o nieprzewidywalnym czasie trwania. Szczególnej ostrożności wymagają operacje uruchamiające kolejne triggery, ponieważ mogą powstać zależności kaskadowe, wielokrotne modyfikacje tych samych danych albo rekurencyjne wywołania. Automatyczna kontrola spójności i historia zmianJednym z praktycznych zastosowań triggerów jest utrzymywanie dodatkowych informacji związanych z rekordem. Po zmianie danych wyzwalacz może utworzyć wpis w tabeli historii zawierający identyfikator rekordu, rodzaj operacji oraz wartości istotne dla audytu technicznego. Może też zaktualizować pole pomocnicze, na przykład znacznik czasu modyfikacji, jeżeli taki sposób działania jest zgodny z regułami danego silnika. Trigger może również zablokować zapis, gdy dane spełniają warunek uznany za niedopuszczalny. Nie zastępuje to jednak ograniczeń integralności, typów danych i poprawnego modelu relacyjnego. Reguły podstawowe powinny być definiowane za pomocą mechanizmów przeznaczonych bezpośrednio do tego celu. Wyzwalacze mają również koszty eksploatacyjne. Każda dodatkowa instrukcja wykonywana przy zapisie zwiększa pracę silnika bazy danych, a operacje na dużych tabelach mogą powodować opóźnienia odczuwalne w aplikacji. Problem bywa trudny do zauważenia, gdy użytkownik widzi tylko proste polecenie zapisu, podczas gdy trigger wykonuje kolejne odczyty i modyfikacje. Diagnostyka powinna obejmować definicje aktywnych triggerów, ich warunki uruchomienia, kolejność wykonywania, komunikaty błędów oraz czas trwania operacji. Warto także sprawdzić, czy wyzwalacz nie zmienia danych w sposób sprzeczny z logiką aplikacji i czy po odtworzeniu kopii bazy wszystkie wymagane obiekty zostały przywrócone. Rozpoznawanie problemów z triggerem na komputerzeObjawem nieprawidłowego działania triggera może być odrzucenie formularza, brak oczekiwanego wpisu w tabeli historii, zmiana wartości po zapisaniu rekordu albo wyraźne spowolnienie operacji. Sam komunikat aplikacji często nie wskazuje, że przyczyną jest logika uruchamiana po stronie bazy. Przy analizie należy porównać dane przed i po operacji, ustalić, jakie zdarzenie ją wywołało, oraz sprawdzić logi aplikacji i komunikaty silnika bazy danych. Trzeba też rozdzielić błąd samego programu od błędu połączenia, uprawnień, blokady transakcji lub niezgodności schematu. Wyłączanie triggera bez kopii definicji i bez oceny zależności może doprowadzić do utraty automatycznej kontroli danych. Na komputerze użytkownika można sprawdzić, czy aplikacja korzysta z właściwej bazy, poprawnie przekazuje wartości i otrzymuje pełny komunikat błędu. Jeżeli problem występuje tylko na jednym laptopie lub komputerze PC, przyczyną może być konfiguracja klienta, nieaktualny sterownik połączenia albo lokalny błąd aplikacji, a nie sam trigger. Jeżeli identyczny zapis kończy się takim samym rezultatem na wielu stanowiskach, większego znaczenia nabiera analiza schematu bazy i logiki wyzwalacza. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, dlatego w przypadku problemów ze stanowiskiem roboczym można rozpocząć od sprawdzenia jego stabilności, połączenia sieciowego oraz poprawnego działania oprogramowania klienckiego. |