ZSBD-2st-1.2-w3.tresc-1.1-Slajd12
Definiowanie aktywnych reguł SQLServer
Kolejny przykład jest ilustracją sposobu definiowania aktywnych reguł w systemie SQLServer. Zadaniem aktywnej reguły przedstawionej na slajdzie jest utrzymywanie poprawnej wartości atrybutu „StanOsobowy ” ze względu na operację usuwania krotek z relacji Pracownicy. W systemie SQLServer jedynym dostępnym kontekstem definiowania akcji reguł jest relacja. W porównaniu z systemem Oracle nie jest dostępny kontekst pojedynczych krotek. Dostęp do wartości modyfikowanych danych jest możliwy przez dwie robocze relacje: „insertem ” i „deleted ”, które są widoczne tylko i wyłącznie wewnątrz akcji aktywnych reguł. Schemat tych relacji jest taki sam jak schemat relacji, na której ma miejsce zdarzenie modyfikacji uaktywniające daną regułę. Relacja „insertem ” przechowuje nowo wstawione krotki lub nowe wartości modyfikowanych krotek. Relacja „deleted ” przechowuje usunięte krotki i stare wartości modyfikowanych krotek.
W pokazanym przykładzie akcja reguły odejmuje od starej wartości atrybutu „StanOsobowy ” liczbę usuniętych krotek pracowników dla danego zespołu. Scenariusz obejmuje operację usunięcia z relacji „Pracownicy ” krotki pracownika z zespołu 10. Uaktywniona przez to zdarzenie aktywna reguła zmniejsza składowaną liczbę pracowników tego zespołu.