Wyzwalacze kontra kursory
W bazie danych wyzwalacz to procedura (segment kodu), która jest wykonywana automatycznie, gdy wystąpią określone zdarzenia w tabeli / widoku. Wśród innych zastosowań wyzwalacze są używane głównie do zachowania integralności bazy danych. Kursor to struktura kontrolna używana w bazach danych do przechodzenia przez rekordy bazy danych. Jest bardzo podobny do iteratora zapewnianego przez wiele języków programowania.
Jakie są wyzwalacze?
Wyzwalacz to procedura (segment kodu), która jest wykonywana automatycznie, gdy wystąpią określone zdarzenia w tabeli / widoku bazy danych. Wśród innych zastosowań wyzwalacze są używane głównie do zachowania integralności bazy danych. Wyzwalacze służą również do egzekwowania reguł biznesowych, kontroli zmian w bazie danych i replikacji danych. Najczęstszymi wyzwalaczami są wyzwalacze DML (Data Manipulation Language), które są wyzwalane podczas manipulacji danymi. Niektóre systemy baz danych obsługują wyzwalacze inne niż dane, które są wyzwalane, gdy wystąpią zdarzenia DDL (Data Definition Language). Niektóre przykłady to wyzwalacze uruchamiane podczas tworzenia tabel, podczas operacji zatwierdzania lub wycofywania itp. Wyzwalaczy tych można szczególnie użyć do inspekcji. System bazy danych Oracle obsługuje wyzwalacze poziomu schematu (tj. Wyzwalacze uruchamiane po zmodyfikowaniu schematów bazy danych), takie jak After Creation, Before Alter, After Alter, Before Drop, After Drop itp. Cztery główne typy wyzwalaczy obsługiwane przez Oracle to wyzwalacze poziomu wiersza, Wyzwalacze na poziomie kolumny, wyzwalacze dla każdego typu wiersza i wyzwalacze dla każdego typu instrukcji.
Co to są kursory??
Kursor to struktura kontrolna używana w bazach danych do przechodzenia przez rekordy bazy danych. Jest bardzo podobny do iteratora zapewnianego przez wiele języków programowania. Oprócz przeglądania rekordów w bazie danych kursory ułatwiają również wyszukiwanie danych, dodawanie i usuwanie rekordów. Określając właściwy sposób, kursory mogą być również używane do przechodzenia do tyłu. Gdy zapytanie SQL zwraca zestaw wierszy, są one przetwarzane za pomocą kursorów. Kursor musi zostać zadeklarowany i przypisany nazwę, zanim będzie można go użyć. Następnie należy otworzyć kursor za pomocą polecenia OPEN. Ta operacja umieści kursor tuż przed pierwszym wierszem zestawu wyników rekordów. Następnie kursor musi wykonać operację FETCH, aby faktycznie pobrać wiersz danych do aplikacji. Na koniec kursor musi zostać zamknięty za pomocą operacji ZAMKNIJ. Zamknięte kursory można ponownie otworzyć.
Jaka jest różnica między wyzwalaczami a kursorami?
Wyzwalacz to procedura (segment kodu), która jest wykonywana automatycznie, gdy pewne określone zdarzenia wystąpią w tabeli / widoku bazy danych, podczas gdy kursor jest strukturą kontrolną używaną w bazach danych do przeglądania rekordów bazy danych. Kursor może być zadeklarowany i używany w ramach wyzwalacza. W takiej sytuacji instrukcja deklaracji byłaby w środku wyzwalacza. Wtedy zakres kursora byłby ograniczony do tego wyzwalacza. Wewnątrz wyzwalacza, jeśli kursor zostanie zadeklarowany we wstawionej lub usuniętej tabeli, taki kursor nie byłby dostępny z zagnieżdżonego wyzwalacza. Po zakończeniu wyzwalacza wszystkie kursory utworzone w ramach wyzwalacza zostaną cofnięte.