Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl
INTERNETOWE BAZY DANYCH PLAN NA DZIŚ zajęcia 1: 2. Procedury składowane 3. Wyzwalacze 4. Podsumowanie
1. Procedury składowane Procedura składowana (ang. stored procedure) - procedura umieszczona bezpośrednio w bazie danych (wykonywana po stronie serwera).
1. Procedury składowane Analiza przykładu (InterBase): http://www.borland.pl/tech/t_ibproc2.shtml
1. Procedury składowane umiejscowienie - w podzapytaniach wyrażeń SQL; - do tworzenia wyzwalaczy, - jako fragment innej procedury, - element aplikacji (np. Delphi) lub linii poleceń programu klienckiego.
w celu podniesienia poziomu bezpieczeństwa (jako element wyzwalaczy) przy dostępie do określonych danych Politechnika Wrocławska 1. Procedury składowane obszary zastosowań w operacjach nie wymagających danych od użytkownika, w operacjach wymagających przetworzenia dużej ilości wierszy (np. w celu zmniejszenia ruchu sieciowego), do tworzenia logiki biznesowej (wykorzystanie przez różne aplikacje lub różne moduły),
2. Wyzwalacze Wyzwalacz (ang. trigger) - również kod wykonywany (procedura) na serwerze z tym, że uruchomienie ma miejsce przy zajściu określonych zdarzeń w bazie danych.
2. Wyzwalacze Rodzaje wyzwalaczy w zależności od SZBD
2. Wyzwalacze operacje na wyzwalaczu zdefiniowanie wyzwalacza usunięcie włączenie / wyłączenie
2. Wyzwalacze zdefiniowanie wyzwalacza CREATE TRIGGER kontrola_osoby_param_wynagrodzen BEFORE UPDATE ON osoby_param_wyn FOR ALL ROW IF NEW.brutto <> OLD.brutto THEN proced_alarmowa(); END IF; END; Uwaga: składnia może być nieco inna w zależności od bazy danych (np. może być FOR ALL records ) zawsze należy sprawdzić dokumentację DDL.
2. Wyzwalacze zdefiniowanie wyzwalacza
Źródło: dokumentacja SQL Server 2005
2. Wyzwalacze włączenie / wyłączenie Wyłączenie: ALTER TRIGGER nazwa_wyzwalacza DISABLE; Włączenie: ALTER TRIGGER nazwa_wyzwalacza ENABLE;
2. Wyzwalacze usunięcie DROP TRIGGER nazwa_wyzwalacza;
2. Wyzwalacze Zastosowania: uaktualnianie informacji w powiązanych tablicach, sprawdzenie poprawności danych, automatyczne uzupełnienie danych, audit bezpieczeństwa, spójności danych itp. porządkowanie danych.
3. Podsumowanie zwiększenie wydajności aplikacji klienckich (przeniesienie obciążenia na serwer), zmniejszenie ruchu sieciowego (przetwarzanie na serwerze), programowanie logiki w jednym miejscu, bez konieczności implementacji w oprogramowaniu klienta (łatwiejsza modyfikacja),
3. Podsumowanie podział logiczny zadań na mniejsze moduły, wykonywanie okresowych czynności (np. archiwizacja, zamykanie okresu księgowego), utrzymanie spójności danych (wyzwalacze), weryfikacja poprawności danych (np. przed wstaweiniem),
3. Podsumowanie podniesienie bezpieczeństwa (np. w InterBase procedura może wykonywać operacje na tabeli, a klient może nie mieć takich uprawnień), uzupełnienie danych niedostępnych dla użytkownika (np. data i czas wykonania operacji), wykonywanie operacji okresowych, weryfikacja poprawności i/lub powiązań logicznych (np. przy dodawaniu, aktualizacji i usuwaniu wierszy),
3. Podsumowanie Efekty uboczne : zwiększenie obciążenia serwera, większy czas przetwarzania (np. weryfikacja poprawności zapytań), dodatkowe umiejętności projektanta serwisu lub realizacja z podziałem zadań (dobry projekt i dokumentacja), zróżnicowanie implementacji w zależności od producenta SZBD.