Komentarz - perspektywy, wyzwalacze.

Perspektywy:

Celem jest zazwyczaj:

  • unikanie wielokrotnego pisania tych samych zapytań,
  • utworzenie ”obrazu” bazy danych dla konkretnej grupy użytkowników (powody mogą być różne: np. nie chcemy pokazywać wszystkich danych każdemu użytkownikowi, konkretni użytkownicy mają swoje specyficzne potrzeby i perspektywa ułatwi im używanie bazy itd.),
  • zasłonięcie zmienionego schematu bazy danych przez perspektywy naśladujące stary schemat.

Wydaje się karkołomnym definiowanie perspektyw tylko po to aby uprościć pojedyncze zapytanie, w tym celu lepiej użyć konstrukcji z WITH.

Wyzwalacze:

  • Wyzwalacz może wywołać zdarzenia, z którymi są związane wyzwalacze — one także zostaną uruchomione.
  • Operacje wykonywane w ramach wyzwalacza należą do tej samej transakcji, co instrukcja, która wyzwalacz wywołała. Zatem - jeśli nie powiedzie się którakolwiek z operacji wywołanych przez wyzwalacz, wszystkie działania wyzwalacza wraz z instrukcją początkową, która go zainicjowała, są wycofywane.
  • Poprawne zdefiniowanie zbioru wyzwalaczy "pilnujących" poprawności danych w bazie wymaga uważnego zlokalizowania wszystkich zdarzeń, które mogą naruszyć poprawność danych. Stan bazy może zmieniać się w wyniku różnych operacji INSERT/UPDATE/DELETE, nieraz w nieoczywisty sposób. Np. gdybyśmy chcieli kontrolować liczbę studentów zapisanych do grupy w zależności od stanowiska pracownika, który ją prowadzi nie wystarczy reagować na zmiany w tabeli `wybor` - należałoby również obsługiwać awanse pracowników itp.
Last modified: Wednesday, 4 May 2022, 10:26 AM