Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład 2 Wojciech Pieprzyca

Podobne prezentacje


Prezentacja na temat: "Wykład 2 Wojciech Pieprzyca"— Zapis prezentacji:

1 Wykład 2 Wojciech Pieprzyca
Systemy Baz Danych Wykład 2 Wojciech Pieprzyca

2 Wyzwalacze Wyzwalacz jest uruchamiany automatycznie w momencie zachodzenia określonych typów zdarzeń związanych z tabelą. Zdarzenia te mogą dotyczyć całej tabeli lub jej wiersza. Na przykład można zdefiniować wyzwalacz, który jest wywoływany po aktualizacji wiersza. W szczególności wyzwalacze są podstawowym środkiem do utrzymywania spójności bazy danych. Na przykład można je zdefiniować tak, aby były uruchamiane przed wprowadzaniem nowego wiersza do bazy danych. Można wówczas przy pomocy wyzwalacza określić, czy wiersz jest kompletny i wewnętrznie spójny, a jeśli nie, uniemożliwić operację.

3 Wyzwalacze Można także zdefiniować wyzwalacz wykonujący się wtedy, kiedy użytkownik próbuje usunąć wiersz z bazy danych, a tabela, z której wiersz jest usuwany jest nadrzędna w relacji "jeden do wielu” . Wyzwalacz mógłby określać, czy istnieją powiązane wiersze w tabelach podrzędnych i usuwać je automatycznie. Wyzwalacze są często wykorzystywane do generowania wartości klucza podstawowego przy wstawianiu nowego wiersza. Można wówczas wywołać wewnątrz wyzwalacza funkcję GEN_ID() w celu utworzenia unikalnego identyfikatora przed wstawieniem nowego rekordu do tabeli.

4 Wyzwalacze Wyzwalacze są tworzone za pomocą wyrażenia CREATE TRIGGER języka SQL. Wyrażenie to ma następującą składnię: Jak można zauważyć, wyzwalacz związany jest z konkretną tabelą i nie posiada żadnych parametrów. CREATE TRIGGER nazwa wyzwalacza FOR nazwa_tabeli BEFORE|AFTER [INSERT|UPDATE|DELETE] AS [deklaracje zmiennych lokalnych] BEGIN Cialo wyzwalacza END

5 Wyzwalacze Wyzwalacze są uruchamiane przez zdarzenia dotyczące tabel
bazy danych. Są to następujące zdarzenia: BEFORE INSERT – przed wstawieniem nowego rekordu, BEFORE UPDATE – przed aktualizacją rekordu, BEFORE DELETE – przed usunięciem rekordu, AFTER INSERT – po wstawieniu nowego rekordu, AFTER UPDATE – po aktualizacji rekordu, AFTER DELETE – po usunięciu rekordu.

6 Generatory Jedną z typowych funkcji wyzwalacza jest generowanie unikalnego numeru id pełniącego funkcję klucza głównego tabeli. W tym celu, zanim zostanie utworzony wyzwalacz, należy zdefiniować odpowiedni GENERATOR. Generator pełni rolę pola automatycznie inkrementowanego o zadaną wartość. Tworzy się go poleceniem. Wartością początkową (domyślnie) jest 0, można ją zmienić poprzez polecenie: CREATE GENERATOR nazwa_generatora SET GENERATOR nazwa_generatora TO liczba

7 Generatory Usunięcie generatora może odbyć się jedynie poprzez skasowanie odpowiedniego rekordu z tabeli systemowej RDB$GENERATORS poleceniem: W InterBase wartość generatora jest zwiększana przy użyciu funkcji GEN_ID(). Posiada ona dwa parametry, pierwszy to nazwa generatora, a drugi to Liczba, o jaką ma zwiększyć się wartość generatora. Na kolejnym slajdzie znajduje się przykład tworzenia generatora oraz stosownego wyzwalacza, który przed utworzeniem nowego wiersza w tabeli TOWARY automatycznie generuje odpowiedni numer Id_Towaru. DELETE FROM RDB$GENERATORS WHERE RDB$GENERATOR_NAME = nazwa_generatora

8 Generatory CREATE GENERATOR Gen_Id_Towaru; //tworzenie generatora
SET TERM ^; CREATE TRIGGER Klucz FOR TOWARY ACTIVE BEFORE INSERT AS BEGIN NEW.Id_Towaru = GEN_ID(Gen_Id_Towaru,1); END SET TERM ;^ Klauzula NEW odwołuje się do nowej wartości pola po wykonaniu polecenia INSERT lub UPDATE. Istnieje również możliwość odwołania się do wartości pola przed zmian za pomocą klauzuli OLD.

9 Bezpieczeństwo Baz Danych
Statystyki wskazują, że ponad 70% ataków na systemy komputerowe nie pochodzi z zewnątrz, a właśnie z wewnątrz sieci lokalnej i realizowane jest przez pracowników. Motywem tych ataków bywają zazwyczaj bardzo niskie pobudki, takie jak na przykład: sprzedanie konkurencji poufnych informacji, uszkodzenie systemu komputerowego firmy, zdobycie informacji o danych osobowych, kradzież (na drodze elektronicznej) pieniędzy.

10 Bezpieczeństwo Baz Danych
Do podstawowych zagrożeń dla informacji zawartej w bazach danych należą: Awarie, Niespójne transakcje zapisu i modyfikacji danych, Kradzież sprzętu komputerowego razem z zapisaną informacją, Nieuprawniony dostęp do informacji, Kradzież informacji przez nielegalne skopiowanie zawartości bazy danych.

11 Bezpieczeństwo Baz Danych
Awarie są na ogół wywołane przez zdarzenia losowe spowodowane różnego rodzaju uszkodzeniami. Podstawowe typy awarii to: awaria serwera sieciowego na skutek uszkodzenia lub braku zasilania, awaria stacji roboczej, awaria urządzeń sieciowych, awaria spowodowana sabotażem, awaria wywołana zdarzeniami losowymi (pożar, powódź, trzęsienie ziemi), awaria programowa - błędne działanie programu, lub tak zwane zawieszenie się programu lub sytemu operacyjnego.

12 Bezpieczeństwo Baz Danych
Przez odpowiednie działania można ograniczyć prawdopodobieństwo wystąpienia awarii, na przykład przez zastosowanie macierzy dyskowych, czy zasilaczy podtrzymujących napięcie, jednak całkowicie możliwości wystąpienia awarii nie da się wyeliminować. Jeżeli tak, to należy minimalizować negatywne skutki wystąpienia awarii. W tym celu należy zabezpieczać informację poprzez systematyczne archiwowanie danych. Proces ten w dalszym ciągu będzie zwany składowaniem bazy danych (ang. backup). W zależności od wielkości bazy danych nośnikami kopii bezpieczeństwa mogą być: dyskietki typu zip, dyski MO, dodatkowe dyski HD zainstalowane na innym komputerze w innym miejscu, nagrywarki CD-RW lub DVD-RW, pamięci taśmowe typu dat.

13 Bezpieczeństwo Baz Danych
Składowanie dużych baz danych powinno się odbywać automatycznie (programowo) według ustalonego harmonogramu. Do kolejnych składowań nie można używać ciągle tego samego nośnika, ponieważ w czasie składowania może wystąpić awaria i wtedy może nastąpić równoczesne uszkodzenie bazy danych, i jej kopii bezpieczeństwa. Przy odpowiednio dużej pojemności nośników można składować, całą zawartość dysków twardych razem z sieciowym systemem operacyjnym, programami i bazą danych. Aby wykluczyć możliwość równoczesnego uszkodzenia bazy danych przez wspomniane wyżej awarie i nośników z kopiami bezpieczeństwa, kopie te powinny znajdować się w bezpiecznym pomieszczeniu z dala od serwera.

14 Bezpieczeństwo Baz Danych
Na skutek awarii w bazie danych mogą znajdować się niekompletne, czyli niespójne transakcje. Transakcje te należy w pierwszym rzędzie usunąć z bazy danych. Czynność tę można zrealizować prawidłowo, jeżeli prowadzony jest dziennik transakcji. Dziennik transakcji jest plikiem, w którym odnotowuje się wszystkie modyfikacje bazy danych. Do dziennika wpisuje się wszystkie operacje związane z transakcją. Jeżeli transakcja została zakończona pomyślnie to transakcję tę zapisuje się wtedy do bazy danych, w przeciwnym przypadku nie wykonuje się zapisów i informuje użytkownika o anulowaniu transakcji. W momencie awarii systemu porównuje się zapisy w dzienniku z bazą danych i wycofuje niedokończone zapisy z bazy danych. Jeżeli dziennik jest umieszczony na innym dysku niż baza danych oraz systematycznie są wykonywane kopie bezpieczeństwa, to można otworzyć bazę danych do stanu spójnego, nawet w przypadku zniszczenia dysku zawierającego bazę danych.

15 Uprawnienia Ważnym zagadnieniem jest prawidłowy przydział poszczególnym użytkownikom uprawnień do korzystania z danych. Dla każdej tabeli lub widoku można określić prawa dostępu do danych. Prawa te nadaje się za pomocą instrukcji GRANT. Nadane prawa można odebrać instrukcją REVOKE. Poniżej wymieniono wszystkie prawa dostępu stosowane we współczesnych bazach danych: INSERT - umożliwia wstawianie rekordów do tabel i widoków, UPDATE - pozwala na zmianę danych w tabeli lub widoku, DELETE - umożliwia usunięcie rekordu z tabeli albo widoku, SELECT - umożliwia pobieranie rekordów z tabel oraz widoków, EXECUTE – umożliwia uruchomienie procedury składowanej ALL - umożliwia wykonanie wszystkich operacji na danych.

16 Uprawnienia Prawie wszystkie współczesne bazy danych umożliwiają zdefiniowanie tak zwanej roli (ang. role), jest to odpowiednik grupy użytkowników w sieciowych systemach operacyjnych. Role bardzo ułatwiają i porządkują nadawanie uprawnień w bazach danych. Nadawanie uprawnień najlepiej zrealizować w następującej kolejności: opracowanie planu przydziału uprawnień, utworzenie ról, przypisanie uprawnień do ról, utworzenie użytkowników, przypisanie użytkownikom ról.


Pobierz ppt "Wykład 2 Wojciech Pieprzyca"

Podobne prezentacje


Reklamy Google