podie,
podie,
Transakcije
Transakcija mora da poseduje sledei skup osobina (ACID
osobine):
1. Atomnost (Atomicity). Transakcija, kao "logika jedinica
posla", mora predstavljati atomski skup aktivnosti.
2. Konzistentnost (Consistency). Izvrenje transakcije treba da
prevede bazu podataka iz jednog u drugo konzistentno stanje.
3. Izolacija (Isolation). Transakcija ne treba svoje promene baze
podataka da uini vidljivim drugim transakcijama pre nego to
se ona okona, odnosno promene potvrde u bazi podataka.
4. Trajnost (Durability). Kada su, u bazi podataka, potvrene
promene koje je izvrila neka transakcija, ove promene se vie
6
ne mogu izgubiti.
Transakcije
Da bi se ACID osobine transakcije obezbedile skup instrukcija
koje predstavljaju transakciju poinje, po pravilu, sa
specijalnom instrukcijom BEGIN TRANSACTION,
a zavrava se bilo sa instrukcijom COMMIT (potvruju se
promene u bazi podataka, ako su sve instrukcije transakcije
uspeno izvrene)
ili instrukcijom ROLLBACK (ponitavaju se promene u bazi, ako
sve instrukcije nisu uspeno zavrene).
^ itanje i
upisivanje podataka
Baferi
11
View-serijabilnost
Za definisanje tzv. view-ekvivalnencije dva izvrenja skupa
transakcija i view-serijabilnosti datog izvrenja skupa
transakcija koriste se sledei pojmovi:
12
View-serijabilnost
View ekivivalnecija i view serijabilnost se definiu na sledei
nain:
13
Konflikt-serijabilnost
Jedan od praktinijih pristupa utvrivanju serijabilnosti izvrenja
skupa transakcija se ostvaruje preko definisanja koncepta
konflikt-serijabilnosti. Pod konfliktom se ovde podrazumeva
situacija u kojoj izmena redosleda dve operacije u izvrenju
dovodi do izmene efekata na bazu barem jedne od transakcija
iz posmatranog izvrenja.
Ako pretpostavimo da transakcije Ti i Tj pripadaju nekom
izvrenju, tada sledee parovi operacija nee biti u konfliktu:
1.
Konflikt-serijabilnost
Planer ne moe da izmeni redosled operacija u okviru jedne
transakcije, jer se time menja semantika transakcije.
Najoptije, dve susedne operacije razliitih transakcija mogu
zameniti mesta ako nije zadovoljen jedan od uslova:
1. Operacije se obavljaju nad istim elementom baze podataka i
2. Barem jedna od njih je upisivanje.
Dva izvrenja skupa transakcija su konflik-ekvivalentna ako se
jedan u drugi mogu transformisati nekonfliktnim izmenama
mesta susednih operacija.
Izvrenje skupa transakcija je konflikt-serijabilno ako je konfliktekvivalentno sa nekim serijskim izvrenjem.
15
Protokoli zakljuavanja
Proveru serijabilnosti i preduzimanje odgovarajuih akcija planer
izvrenja teko moe da obavi u realnom vremenu. Zbog toga
se serijabilnosti izvravanja skupa transakcija najee
ostvaruje forsirano primenjujui mehanizam zakljuavanja
(locking).
Ekskluzivno zakljuavanje ( exclusive (XL) lock ili write lock).
Ako neka transakcija postavi ekskluzivni lokot na objekat baze
podataka, nijedna druga transakcija ne moe na taj objekat da
postavi bilo koji drugi lokot.
Deljivo zakljuavanje (shared (SL) lock ili read lock). Ako neka
transakcija postavi deljivi lokot na objekat baze podataka, neka
druga transakcija takoe moe da postavi deljivi lokot na isti
16
objekat baze, ali nijedna druga ne moe da postavi ekskluzivni
lokot na taj objekat.
17
Mrtvi vor
19
20
21
View-serijabilnost
Konflikt-serijabilnost
Dvofazni
protokol
zaklju~avanja
Vremensko
ozna~avanje
23
25
Upravljanje zakljuavanjem
Osnovu upravljanja zakljuavanjem ine tri procedure
menadera lokota:
(1) r_lock postavljanje ekskluzivnog lokota,
(2) w_lock postavljanje deljivog lokota i
(3) unlock oslobaanje zakljuanog elementa baze podataka.
r_lock (T,X, errcode, timeout)
w_lock (T,X, errcode, timeout)
ulock (T,X)
T - identifikator transakcije,
X elemenat baze podataka koji se zakljuava,
errcode daje kod statusa zahteva (0-zahtev zadovoljen, 0 - nezadovoljen)
timeout maksimalni interval vremena koji transakcija eka da bi dobila lokot
26
nad objektom X.
Baza
Tab1
Blok1
N-torka1
Atribut 1
Tab2
Tab3
Tab4
Blok2
N-torka2
Atribut 2
Blok3
N-torka3
Atribut 3
Atribut 4
....
Tab5
Blok4
N-torka4
....
....
Atribut 5
27
....
IXL
SL
SIXL
XL
ISL
DA
DA
DA
DA
NE
IXL
DA
DA
NE
NE
NE
SL
DA
NE
DA
NE
NE
SIXL
DA
NE
NE
NE
NE
XL
NE
NE
NE
NE
NE
B
A
28
29
31
32
Dugake transakcije
Prethodno diskutovane metode upravljanja izvrenjem skupa
transakcija pogodne su za poslovne sisteme sa jednostavnim kratkim
transakcijama, kada je prihvatljivo da jedna transakcija dri zakljuanim
neki elemenat baze podataka za neko relativno kratko vreme, reda
veliine desetinke sekunde, sekunde ili ak i minuta, zavisno od vrste
aplikacija.
Meutim, postoje aplikacije u kojima su transakcije mnogo due, reda
desetine minuta, sati ili ak nekoliko dana. Prikazani mehanizmi
zakljuavanja u kome bi neka transakcija ovako dugo ekskluzivno
zakljuala elemente baze podataka koje koristi je, oigledno,
neprihvatljivo.
Primeri aplikativnih sistema sa dugim transakcijama:
Neke transakcije u poslovnim aplikacijama (npr. ukupno stanje rauna
banke)
Projektni sistemi (CAE, CAD, CASE)
Workflow sistemi
34
35
36
37
41
Primer
Neka je Milo vlasnik eme StudentskiIS koja ima sledee tabele:
Student (BI, Ime, Starost, Semestar, Smer)
Predmet ([Pred, NazivPred, Brojas)
Milo daje privilegiju SELECT i INSERT Ani za tabelu Student, a
Aci privilegije SELECT i UPDATE za tabelu Predmet,
dozvoljavajui im da te privilegije prenesu i na druge korisnike.
GRANT SELECT, INSERT ON Student TO Ana
WITH GRANT OPTION;
GRANT SELECT, UPDATE ON Predmet TO Aca;
WITH GRANT OPTION;
42
Primer
Ana prenosi privilegiju SELECT za tabele Student na Zorana sa
opcijom prenosa na druge, a ovaj prenosi privilegiju SELECT za
tabelu Student na Miru. Aca prenosi privilegiju SELECT za tabelu
Predmet na Miu.
GRANT SELECT Student TO Zoran
WITH GRANT OPTION;
GRANT SELECT Student TO Mira;
GRANT SELECT Predmet TO Mia;
Davanje i prenos privilegija prikazaemo preko tzv. Grant
dijagrama (grafa). vor ovoga grafa predstavlja jednu privilegiju
korisnika, a usmerena grana prikazuje prenos privilegija na
43
drugog korisnika.
Primer
Milo{
SELECT
Student
Milo{
INSERT
Student
Milo{
SELECT
Predmet
Milo{
UPDATE
Predmet
Ana
SELECT
Student
Ana
INSERT
Student
Aca
SELECT
Predmet
Aca
UPDATE
Predmet
Zoran
SELECT
Student
Mi} a
SELECT
Predmet
Mira
SELECT
Student
44
Primer
Na sledecoj slici prikazan je Grant dijagram za isti primer, posle
povlaenja privilegija Zoranu i Ani za SELECT Student i Aci za
SELECT Predmet preko naredbi:
REVOKE GRANT SELECT ON Student
FROM Ana
CASCADES;
REVOKE GRANT SELECT ON Predmet
FROM Aca
RESTRICT;
45
Primer
Milo{
SELECT
Student
Milo{
INSERT
Student
Milo{
SELECT
Predmet
Milo{
UPDATE
Predmet
Ana
INSERT
Student
Aca
SELECT
Predmet
Aca
UPDATE
Predmet
Mi} a
SELECT
Predmet
46
47
Klaster
1,1
Kl-Kat
Katalog
1,m
Predefinisani
Korisni~ki
{ ema-Kat
1,1
Domen
1,1
1,m
[ ema
Relacija
0,m
1,1
S
Atr-Rel
Nad
1,1
1.m
1,m
Atribut
0,m
Indeks
0,m
Upit
Indeks-Rel
1,m
VrstaKlj
Bazna Relacija
VrstaIn
1,m
Klju~-Rel
0,m
1,m
0,m
Klju~
0,1
S
SpoljniKlju~
Pogled
1,m
Atr-Pogleda
Referi{ e
1,1
50
Aplikacioni programer
Neposredni korisnik
Apl. programi i
generatori izv.
Ostvarivanje Optimizator
pravila integriteta
upita
SOFTVERSKI INTERFEJSI
51
52
53
SELECT *
FROM
ALL_CATALOG
WHERE OWNER = 'MINIB';
OWNER
-----------MINIB
MINIB
MINIB
MINIB
MINIB
TABLE_NAME
TABLE_TYPE
------------------------------POLOZIO
VIEW
PREDMET
TABLE
PRIJAVA
TABLE
PROFESOR
TABLE
STUDENT
TABLE
54
DATA_TYPE
--------VARCHAR2
VARCHAR2
VARCHAR2
DATA_LENGTH
----------6
15
30
NUM_DISTINCT,