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 

przebiegającymi 

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