Ochrona integralności bazy danych

background image

Ochrona integralności bazy

danych

dwie podstawowe formy

zabezpieczenia w RBD:

1. mechanizm transakcji

2. więzy integralności

background image

Po co transakcje? – Współbieżność

Zagrożenie dla integralności bazy gdy wiele procesów działa jednocześnie na BD

Wynik powinien być 130 a jest 120
Działając równolegle i nie synchronizując swoich akcji jedna
aktualizacja została zgubiona.

Zeg

ar

Wpłata klienta A

Wpłata klienta B

Stan
kont

a A

Stan
kont

a B

1

Odczyt stanu konta
= 100

-

100

-

2

 

Odczyt stanu konta
= 100

100

100

3

Wpłata = 10

 

110

100

4

 

Wpłata = 20

110

120

5

Zapis stanu konta =
110

 

110

120

6

 

Zapis stanu konta =
120

-

120

background image

Po co transakcje? – Współbieżność

c.d.

Inny przykład: mamy 4-ch autorów, którzy równolegle aktualizują pewien tekst.
Jeżeli nie umówią się, który z nich aktualnie ma prawo wprowadzać poprawki, to
część poprawek może zostać zgubiona.

Transakcje umożliwiają zachowania spójności w takiej sytuacji
bez potrzeby
umawiania się.

Zega

r

Zakup klienta A

Zakup klienta B

1

Odczyt stanu magazynu
= 100

-

2

Klient się zastanawia

Odczyt stanu magazynu
= 100

3

Klient zamawia 70
sztuk

Klient zamawia 50
sztuk

4

Zapis nowego stanu
=30

Zapis nowego stanu
=50

Przykre konsekwencje:

1.      Klienci mogą nie otrzymać towaru bo go zabraknie w
magazynie
2.      Stan magazynowy jest fałszywy i następni klienci dalej
wykonują zakupy

background image

Po co transakcje? - Przeciwdziałanie

awariom

W systemie bankowym następują operacje na kontach klientów:

1. Klient wczytuje kartę magnetyczną i jest rozpoznawany
2. Klient określa sumę wypłaty
3. Konto klienta jest sprawdzane
4. Konto jest zmniejszane o sumę wypłaty
5. Wysyłane jest zlecenie do kasy
6. Kasjerka odlicza sumę wypłaty od stanu kasy
7. Kasjerka wypłaca klientowi pieniądze

Pytanie: co się stanie, jeżeli pomiędzy operacją 4 i 5 zabraknie zasilania?

Konto zostało zmniejszone, klient nie dostał pieniędzy,
zaczyna się awantura,...

Transakcje umożliwiają uniknięcie tego rodzaju
nieprzyjemnych sytuacji
związanych z dowolnymi awariami sprzętu, błędów w
oprogramowaniu i innych okoliczności losowych.

background image

Własności transakcji: ACID

A

C

I

D

Atomowość (atomicity) - w ramach jednej transakcji
wykonują się albo wszystkie operacje, albo żadna. Jeśli nie
powiedzie się jedno polecenie wycofywane są wszystkie.

Spójność (consistency) - o ile transakcja zastała bazę
danych w spójnym stanie, po jej zakończeniu stan jest
również spójny. (W międzyczasie stan może być chwilowo
niespójny)

Izolacja (isolation) - transakcja nie wie nic o innych
transakcjach i nie musi uwzględniać ich działania.
Czynności wykonane przez daną transakcję są niewidoczne
dla innych transakcji aż do jej zakończenia.

Trwałość (durability) - po zakończeniu transakcji jej skutki
są na trwale zapamiętane
i nie mogą być odwrócone przez zdarzenia losowe (np.
wyłączenie prądu)

Zachowanie własności ACID dla transakcji jest zadaniem
SZBD

background image

Rodzaje transakcji

Rodzaje transakcji

1.Transakcje jawne – konfigurowane przez
użytkownika
2.Transakcje niejawne i automatyczne

 

Transakcje jawne

 
BEGIN TRANSACTION

Treść transakcji
Wykonanie zakończone powodzeniem
COMMIT TRANSACTION (potwierdzenie

zakończenia transakcji)

Wykonanie zakończone niepowodzeniem
ROLLBACK TRANSACTION (wycofanie transakcji i

cofnięcie bazy do stanu sprzed jej rozpoczęcia)

background image

Przykład – MS SQL

Begin transaction

Update towary set cena = cena

*1.1 -- podniesienie cen

wszystkich towarów o 10%

IF @error >0

Rollback transaction

Else

Commit transaction

background image

Etapowanie transakcji

Możliwe jest także etapowanie transakcji przy pomocy tzw.

Savepoints

Po utworzeniu takich punktów można wtedy wycofać

transakcję do ustalonego punktu

 
BEGIN transaction

UPDATE towary set cena = cena *1.1 where cena <100

podniesienie cen towarów tańszych niż 100 o 10%

SAVE transaction poaktualizacji1
UPDATE towary set cena = cena *0.9 where cena >110 –

obniżenie cen towarów droższych niż 110 o 10%

IF @error >0

ROLLBACK transaction poaktualizacji1

ELSE

COMMIT transaction

background image

Transakcje niejawne i

automatyczne

Transakcje niejawne i automatyczne

tworzy SZBD w celu wykonania
niektórych operacji np. operacji
DELETE lub UPDATE. Przed
rozpoczęciem wykonywania tych
poleceń automatycznie otwierane są
transakcje. W przypadku przerwania
tych operacji BD powraca do stanu
sprzed rozpoczęcia wykonywania
polecenia.

background image

Podsumowanie transakcji

1. Transakcje są jednym z najprostszych i najbardziej

skutecznych środków zapewnienia bezpiecznego
współbieżnego dostępu do wspólnej bazy danych.

2. Transakcje mogą być uważane za prosty i w miarę

uniwersalny środek synchronizacji równoległych
procesów (bez semaforów, monitorów, kanałów i innych
trudnych pojęć). Synchronizacja polega na
uniemożliwieniu jednoczesnej aktualizacji tych samych
zasobów.

3. Jednocześnie, transakcje maja zdolność

przeciwdziałania losowym awariom.

4. Brak środków przetwarzania transakcji w takich

systemach jak LotusNotes, MS Office, czy też
systemach przepływu prac (workflows) lub pracy
grupowej jest ogromnym utrapieniem, które w dużym
stopniu dyskwalifikuje te narzędzia.

5. Transakcje są szczególnie istotne w systemach

rozproszonych baz danych lub w systemach opartych o
Internet lub Intranet.

(K.Subieta)

background image

REGUŁY I WIĘZY

INTEGRALNOŚCI

 
Dla zapewnienia zgodności zawartości bazy

z rzeczywistością oraz jej funkcjonowania
zgodnie

z

przebiegającymi

w

rzeczywistości procesami należy na BD
nałożyć określone prawa.

Integralność BD to bowiem jej własność

bycia dokładnym odbiciem modelowanej
rzeczywistości

background image

Reguły c.d.

Prawa, które muszą być przestrzegane podczas

użytkowania BD nazywamy więzami integralności lub

regułami.

Niektóre z reguł zawarte są w samej strukturze bazy

danych (np. już określenie typu atrybutu jest

ograniczeniem), inne zapisujemy w postaci procedur.

Wartość atrybutu też często nie może być dowolna.

Może być ona ustalona w postaci reguły odwołującej

się do konkretnych wartości lub do wartości innych

atrybutów.

Również działania na BD podlegają regułom: tworzenie

nowych krotek, modyfikacja istniejących a nawet

działania nie zmieniające stanu bazy (raporty) mogą

być wykonane tylko w określonych warunkach.

background image

Kto/co Jest Odpowiedzialne Za

Przestrzeganie Reguł

Odpowiedzialnością za przestrzeganie reguł można

obciążyć:

• użytkownika,
• Programistę,
• SZBD.
Najwygodniejszym

sposobem

jest

zdefiniowanie

odpowiednich reguł na etapie budowy SBD i

przerzucenie obowiązku ich przestrzegania na SZBD.

 
Kontrola więzów polega na wyliczeniu wartości formuł dla

bieżącego stanu bazy i historii stanów poprzednich. Jeśli

wartością formuły dla któregoś z więzów jest FAŁSZ, to

bieżący stan nie zachowuje więzów integralności. Jeśli

natomiast formuły odpowiadające wszystkim więzom są

prawdziwe, to stan bieżący jest poprawny

background image

Rodzaje reguł

Reguły działania

Dynamiczne reguły wnioskowania

Statyczne reguły wnioskowania

Statyczne reguły ograniczające

Reguły

Dynamiczne reguły ograniczające

Reguły wnioskowania

Reguły ograniczające

background image

Reguły ograniczające

  reguły ograniczające (constrains rules) – pozwalające

wyspecyfikować warunki integralności (spójności logicznej)

BD. Dzielą się one na:

więzy statyczne (static constrains rules), które muszą być

spełnione w każdym z istniejących stanów bazy danych np.

cena towaru nie może być mniejsza od zera, płaca

pracownika nie może być mniejsza niż płaca minimalna,

pojemność silnika samochodu osobowego jest zawsze z

przedziału [500, 5000], nie można przypisać pojazdowi

marki nie wpisanej do słownika marek, itp.,

reguły przejścia (transitions constrains rules), które

określają warunki dokonania zmiany stanu bazy np. stawka

pracownika nie może spadać. Mogą one wyrażać również

bardziej złożone zależności.

background image

Reguły wyprowadzania

  reguły wyprowadzania (derivation rules) – są wyrażeniami, które

definiują własności nie zapisane wprost w bazie, ale które

mogą być z niej wywiedzione. Musi istnieć dokładnie jedna

reguła wnioskowania dla każdej takiej własności. Reguły

wnioskowania dzielą się na:

• statyczne

reguły

wyprowadzania

pozwalają

na

wyprowadzenie (wyliczenie) wartości atrybutów z wartości

istniejących np. wartość brutto towaru jest iloczynem jego

aktualnej ilości, ceny sprzedaży oraz podatku VAT,

• dynamiczne

(temporalne)

reguły

wyprowadzenia

umożliwiające wyliczanie wartości z co najmniej dwóch różnych

stanów bazy np. cena sprzedaży promocyjnej to średnia z

trzech ostatnich zakupów klienta powyżej 10 sztuk towaru

 

background image

Reguły działania

Reguły działania (aktywacji) tzw. reguły wyzwalaczy,
określające warunki uruchomienia odpowiednich
procedur. Reguły wyzwalaczy zawierają zbiór
warunków, w tym warunków temporalnych, które
muszą być spełnione, aby dana procedura mogła
być uruchomiona. Przykład: Jeśli ilość materiału X
jest mniejsza niż Y uruchom procedurę tworzenia
zamówienia na ten materiał.

background image

Implementacja reguł

Statyczne ograniczające – właściwie wszystkie SZBD
Dynamiczne ograniczające:
W SZBD ORACLE w wyzwalaczach związanych z

operacjami INSERT i UPDATE można odwołać się do

wartości istniejącej w bazie poprzez prefix :OLD,

natomiast do wartości wprowadzanej poprzez

prefix :NEW.

 W MS SQL Server możliwe jest wykorzystanie dwóch

wartości, ponieważ w czasie wykonywania transakcji

przechowywane są one w dwóch specjalnych

tabelach. Tabela DELETED przechowuje wartości już

istniejące w bazie natomiast tabela INSERTED

zawiera wartości proponowane.

background image

Schemat stosowania reguł

BD

zdarzeni
e

Sprawdzen
ie
możliwości
obsługi
zdarzenia

Wykonanie
działań

Odrzuceni
e żądania

BD w
nowym
stanie

background image

Zadania systemów

transakcyjnych

1. Celem działania systemów transakcyjnych jest

rejestrowanie zdarzeń lub wspomaganie terminowej

reakcji na zdarzenia występujące w otoczeniu oraz

ich terminowe przygotowanie i generowanie.

2. Systemy transakcyjnych baz danych wspomagają

zatem zmianę bieżącego stanu organizacji na nowy,

zgodny z wymuszeniem wygenerowanym przez

zdarzenie.

3. Systemy te muszą (i to niemal natychmiast)

odpowiadać na pytania dotyczące aktualnego stanu

rzeczywistości, gdyż od otrzymanej informacji

zależy możliwość realizacji ewentualnej transakcji.

background image

Zadania systemów

transakcyjnych c.d.

• Informowanie o stanach bieżących
• Systematyczne raportowanie
• Udostępnianie zdefiniowanych list

i zbiorów informacji (np. list płac)

• Obsługa rutynowych i

powtarzalnych operacji

background image

Cechy systemów transakcyjnych

• są zdolne do reakcji na sygnały zachodzące w otoczeniu, ale w

bardzo ograniczonym zakresie posiadają zdolności do operowania

informacją historyczną,

• ze względu na odgrywaną w przedsiębiorstwie rolę można je

określić jako systemy odpowiedzialne za reakcję na zdarzenia lub

systemy obsługi zdarzeń. Są również jako systemy sterowane

zdarzeniami (event-driven). Podejście to jest zgodne z rozwijanym

paradygmatem traktowania systemów wspomagających działalność

gospodarczą w kategoriach systemów czasu rzeczywistego – wobec

coraz burzliwszego otoczenia, w jakim muszą one pracować,

• pamięć takiego systemu jest ograniczona do historii realizacji

konkretnej transakcji (sprzedaży, produkcji, montażu itp.).

• do utrzymania bazy w stanie spójności logicznej wystarczają

wyłącznie statyczne reguły integralności.

background image

Przykład zadań z dziedziny

sprzedaży

Z punktu widzenia użytkownika końcowego istotne jest
jedynie czy dostępna jest taka ilość towaru, jakiej domaga
się klient. Nie jest ważne jakie były w przeszłości ceny
sprzedaży tego towaru a jedynie, po jakiej cenie ma być
dokonana aktualna transakcja. Odpowiedzi na inne pytania:
Jak zmieniały się ceny towaru?, Jaki jest przewidywany
kierunek tych zmian?
Jakie ceny oferował poprzedni
dostawca?
, Dlaczego towaru jest tak mało/dużo?, Jaka jest
średnia wielkość zakupu towaru?
– są z punktu widzenia
realizacji kolejnych transakcji nieistotne.

Transakcja

Ewentualne

utworzenie

kopii

Zdarzenie

Transakcja

Ewentualne

utworzenie

kopii

Zdarzenie

Transakcja

Ewentualne

utworzenie

kopii

Zdarzenie

Transakcja

background image

Nowoczesne systemy

transakcyjne

Budując nowoczesne systemy transakcyjne uwzględnia się również

zagadnienia:

• działań w grupie,
• grupowego podejmowania decyzji,
• interakcji człowieka z komputerem,
• automatyzacji biura,
• wizualizacji i automatycznego przetwarzania dokumentów,
• organizacji obiegu dokumentów,
• nowoczesnych środków wymiany informacji itp.
W ten sposób zakres działania systemów transakcyjnych został

rozszerzony na wspomaganie zespołów ludzkich poprzez

porządkowanie,

organizowanie,

automatyzowanie,

przekazywanie i śledzenie prac realizowanych przez zespół.

background image

Systemy MRP, ERP (Material

Requirement Planning / Enterprise

Requirement Planning)

planowanie i zarządzanie procesami technologicznymi według zasady

Just in Time, a w tym:

   planowania dostaw i zużycia materiałów,

   kontroli zabezpieczenia potrzeb materiałowych produkcji,

 automatycznego regulowania poziomu zapasów, łącznie z

wystawianiem zamówień i zgłaszaniem upłynnienia,

  sterowania zaopatrzeniem, zapasami i dostawami, a w tym:

   kontroli realizacji i rozliczania dostaw,

   rozliczania inwentaryzacji,

   limitowania zużycia materiałów,

   sygnalizowania zużycia ponadnormatywnego,

   racjonalizacji transportu i składowania materiałów,

   wsparcia wszechstronnej analizy gospodarki materiałowej,

  planowania i sterowania wykorzystaniem zdolności produkcyjnych,

  bieżącego zarządzania finansami w przedsiębiorstwie.


Document Outline


Wyszukiwarka

Podobne podstrony:
bazy danych wyciąg, Biologia UJ, Ochrona własności intelektualnej
Biotechnologiczne bazy danych 1, Biotechnologia w Ochronie Środowiska
Ochrona integralności danych, Analiza matematyczna, Analiza matematyczna, Analiza matematyczna cz2,
1 Tworzenie bazy danychid 10005 ppt
bazy danych II
Bazy danych
Podstawy Informatyki Wykład XIX Bazy danych
Bazy Danych1
eksploracja lab03, Lista sprawozdaniowych bazy danych
bazy danych druga id 81754 Nieznany (2)
bazy danych odpowiedzi
Bazy danych
notatek pl g owacki,bazy danych Nieznany
BAZY DANYCH SQL (2)
Bazy danych kolo 2 1 id 81756 Nieznany

więcej podobnych podstron