12.07.2015 Views

Integritet i sigurnost podataka - grdelin

Integritet i sigurnost podataka - grdelin

Integritet i sigurnost podataka - grdelin

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong>kolegij: Baze <strong>podataka</strong>I. Batistićemail:ivo@phy.hrFizički odsjek, PMF<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 1


<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong>1. <strong>Integritet</strong> <strong>podataka</strong>2. Istovremeni pristup podacima3. Oporavak baze <strong>podataka</strong>4. Zaštita od neovlaštenog pristupa podacima<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 2


1. <strong>Integritet</strong> baze <strong>podataka</strong><strong>Integritet</strong>: korektnost (dopuštene zdravorazumskevrijednosti) te konzistencija (me ¯dusobna suglasnost)<strong>podataka</strong>Pravila za čuvanje integritetaPravila za čuvanje integriteta domenePravila za čuvanje integriteta unutar relacijePravila za referencijski integritet<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 3


<strong>Integritet</strong> domene: PrimjerPromatrajmo bazu <strong>podataka</strong> o studentima na fakultetu. Ona sadržiniz <strong>podataka</strong>, pa izme ¯du ostalog i dob:STUDENT (INDEKS, IME, . . . , DOB)Zahtijeva se da DOB bude cijeli broj izme ¯du 10 i 60.Većina DBMSova omogućuje da se DOB definira kao INTEGER,onemogućujući upis:stringa (niza slova): ’pet’ili decimalnog broja: 15,3045Ali neće spriječiti upis negativnog broja, npr. -5.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 4


<strong>Integritet</strong> domene: Primjer 1.Uglavnom, integritet domene može sačuvati jedino akose ugrade odgovarajuće kontrole u aplikacijski program.Tek neki DBMSovi omogućuju zadavanje i dodatnihuvjeta (ograničenja) na vrijednost atributa unutarzadanog tipa (PostgreSQL):CREATE TABLE student (prezime VARCHAR(50) CHECK (prezime ’’),ime VARCHAR(50) CHECK (ime ’’),indeks VARCHAR(10),.....dob INTEGER CHECK ((dob >= 10) AND (dob


<strong>Integritet</strong> domene: Primjer 2.Ili:CREATE TABLE student (prezime VARCHAR(50),ime VARCHAR(50),indeks VARCHAR(10),.....dob INTEGER,PRIMARY KEY (indeks),CONSTRAINT student_checkCHECK ((prezime ’’) AND (ime ’’)AND (dob >= 10) AND (dob


Pravilo za čuvanje integriteta domeneVrijednost atributa mora biti iz zadane domene.Tako ¯der: vrijednost primarnog atributa nije prazno(null).Primjer: Prije navedeni primjer.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 7


Pravila za integritet unutar relacijeČuva korektnost veza izme ¯du atributa unutar iste relacije.Tako ¯der:funkcionalna ovisnost atributa o ključudvije n-torke unutar relacije ne smiju imati istuvrijednost ključa<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 8


Pravila za integritet unutar relacijeČesto DBMSi ne pružaju mogućnost da se direktnoizrazi jedinstvenost ključa. Npr. neke DBMS dopustit ćeda se upiše više istovjetnih n-torki u relaciju.Rješenje: definirati gusti primarni indeks za ključniatribut.Prilikom svake promijene u relaciju, DBMS automatskiažurira indeks. Narušavanje jedinstvenosti ključa urelaciji došlo bi pojavljivanjem dvaju jednakihvrijednosti ključnog atributa indeksu, što će DBMSautomatski spriječiti.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 9


<strong>Integritet</strong> relacije: Primjer 1.CREATE TABLE kolegij (kid INT,naslov VARCHAR(100),ime VARCHAR(50),prezime VARCHAR(50),PRIMARY KEY(kid));Naredba: PRIMARY KEY(kid) će automatski izgraditiindeks.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 10


<strong>Integritet</strong> relacije: Primjer 2.Alternative:CREATE TABLE kolegij (kid INT,naslov VARCHAR(100),ime VARCHAR(50),prezime VARCHAR(50),);CREATE UNIQUE INDEX kolegij_kid ON kolegij (kid);iliCREATE UNIQUE INDEX kolegij_kid ON kolegij USING BTREE (kid);Alternative za BTREE: RTREE, HASH, GIST(za PostgreSQL)<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 11


<strong>Integritet</strong> relacije: Brisanje indeksaDROP INDEX kolegij_kid; -- opcija RESTRICTiliDROP INDEX kolegij_kid CASCADE;<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 12


Pravila za referencijski integritetČuvaju korektnost i konzistentnost veza me ¯durelacijama.Radi se o pravilima koja se odnose na strani ključ, naatribut koji je ujedno atribut i ključ u drugoj relaciji.Svaka vrijednost takvog atributa u prvoj relaciji mora bitiprisutna i u drugoj relaciji.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 13


Referencijski integritet: PrimjerBaza <strong>podataka</strong> za neki fakultet:STUDENT (INDEKS, IME_STUDENTA, STUPANJ)KOLEGIJ (KID, NASLOV, IME_NASTAVNIKA)IZVJEŠĆE (KID, INDEKS, OCJENA)Relacija IZVJEŠĆE sadrži dva strana ključa: KID iINDEKS.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 14


Referencijski integritet: PrimjerPravila:Prije ubacivanja ili promjene n-torke u relaciji IZVJEŠĆE,provjeri da u relaciji STUDENT postoji n-torka s istomvrijednošću za INDEKS, te da u relaciji KOLEGIJ postojin-torka s istom vrijednošću za KID.Prije izbacivanja n-torke iz relacije STUDENT, izbaci sven-torke iz relacije IZVJEŠĆE s istom vrijednošću za INDEKS.Prilikom mijenjanja vrijednosti INDEKS n-torki relacijeSTUDENT izvrši odgovarajuću promjenu u svim n-torkamarelacije IZVJEŠĆE koje imaju istu polaznu vrijednost zaINDEKS.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 15


Referencijski integritet: Primjer (nastavak)Pravila:Prije izbacivanja n-torke iz relacije KOLEGIJ, izbaci i sven-torke u relaciji IZVJEŠĆE s istom vrijednošću KID.Prilikom mijenjanja vrijednosti KID u n-torki relacijeKOLEGIJ, izvrši odgovarajuće promjene u svim n-torkamarelacije IZVJEŠĆE koje imaju istu polaznu vrijednost za KID.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 16


Referencijski integritet: Primjer 1.CREATE TABLE kolegij (kid INT,naslov VARCHAR(100),ime VARCHAR(50),prezime VARCHAR(50),PRIMARY KEY(kid));CREATE TABLE student (indeks INT,ime VARCHAR(50),prezime VARCHAR(50),stupanj INTPRIMARY KEY(indeks));CREATE TABLE izvjesce (kid INT REFERENCES kolegij (kid),indeks INT REFERENCES student (indeks),ocjena INT);<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 17


Referencijski integritet: Primjer 1.Alternative:CREATE TABLE izvjesce (kid INT,indeks INT,ocjena INT,FOREIGN KEY (kid) REFERENCES kolegij (kid),FOREIGN KEY (indeks) REFERENCES student (indeks));iliCREATE TABLE izvjesce (kid INT REFERENCES kolegij (kid)ON DELETE CASCADE ON UPDATE CASCADE,indeks INT REFERENCES student (indeks)ON DELETE CASCADE ON UPDATE CASCADE,-- default je: RESTRICTocjena INT); <strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 18


Napomena:Rijetki su DBMSi koji mogu automatski izvršiti ovapravila. Obično teret pada na aplikacijske programe.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 19


2. Istovremeni pristup podacimaVelike baze podatak moraju omogućiti većem brojukorisnika istovremeni pristup do <strong>podataka</strong>. DBMS morapažljivo koordinirati konfliktne radnje tako da svakikorisnik ima dojam kao da sam radi s bazom <strong>podataka</strong>.Pojam transakcijeViše me ¯dusobno vezanih radnji na podacima koje čuvajukonzistenciju i korektnost pohranjenih <strong>podataka</strong>.Transakcije prevodi bazu iz jednog konzistentnog stanjau drugo konzistentno stanje.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 20


TransakcijaMe ¯dustanja koja nastaju nastaju unutar jedne transakcijemogu biti nekonzistentna.Transakcija mora biti u cjelosti izvršena, ili uopće nesmije biti izvršena.Ako transakcija nije do kraja bila obavljena (možda zboggreške u nekoj naredbi) treba biti neutralizirana - svipodaci koje je ona promijenila do trenutka prekidamoraju dobiti natrad polazne vrijednosti.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 21


TransakcijaSTART_TRANSACTIONnaredna 1;naredba 2;naredba 3;.naredba k;END_TRANSACTIONiliSTART_TRANSACTIONnaredba 1;naredba 2;naredba 3; (undo).greška!ABORT_TRANSACTION<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 22


Serijabilnost (serijalizabilnost)Neka se u višekorisničkoj bazi <strong>podataka</strong> izvodi nekolikotransakcija paralelno tako da se pojedini dijelovi tihtransakcija izvode vremenski izmiješano.Ako je konačni učinak njihovog izvo ¯denja isti kao da suse one izvršavale serijski (sekvencijalno), kažemo da seradi o serijabilnom (ili serijalizabilnom) izvršavanjutransakcija.Serijabilnost se može a priori garantirati.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 23


Serijabilnost: Primjer 1.Baza avionske tvrtke koja sadrži relaciju:POLASCI (BR_LETA, DATUM, . . . , SL_SJEDALA)Dva putnika istovremeno stižu u dvije različiteposlovnice tvrtke i traže kartu za isti let istog dana. Nekau tom trenutku postoji 5 slobodnih mjesta na letu.Službenici sa svojih terminala, vezanih na isto računalo,pokreću dvi transakcije T 1 i T 2 koje DBMS istovremenoobavlja. Redoslijed operacija unutar transakcije jeslijedeći:<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 24


Serijabilnost: Primjer 1. - nastavak1. T 1 učitava odgovarajuću n-torku u svoj buffer.2. T 1 u učitanoj n-torki smanjuje vrijednost zaSL_SJEDALA sa 5 na 4. Promjena je učinjena samona bufferu.3. T 2 učitava odgovarajuću n-torku u svoj buffer.Učitana vrijednost za broj slobodnih mjesta,SL_SJEDALA, je još uvijek 5 jer nova vrijednost nijeažurirana.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 25


Serijabilnost: Primjer 1. - nastavak4. T 2 u učitanoj n-torki smanjuje vrijednost zaSL_SJEDALA sa 5 na 4. Promjena je učinjena samona bufferu, a ne u bazi <strong>podataka</strong>.5. Promjenjena n-torka T 1 unosi se u bazu <strong>podataka</strong>, tevrijednost SL_SJEDALA postaje 4. jednaka6. Promjenjena n-torka T 2 unosi se u bazu <strong>podataka</strong>, tevrijednost za SL_SJEDALA postaje 4. Pri tome jedošlo do gubitka promjene zbog T 1 .<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 26


SerijabilnostParalelno izvršavanje T 1 i T 2 nije serijabilno !Kao rezultat dobiva se prebukirani avionski let.DBMS mora garantirati serijabilnost. To se postižeposebnom dodatnom kontrolom kod istovremenogizvršavanja transakcija. Postoji više načina:Lokoti i dvofazni protokol zaključavanjaVremenski žigovi<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 27


Serijabilnost: LokotiIstovremeni pristup podacima se sprječava s tz. lokotimakoji zaključavaju pojedine dijelove baze <strong>podataka</strong> dokjedna transakcija ne završi posao.Zrnatost zaključavanja (granularity) odre ¯duje veličinudijela baze koja je zaključana drugim transakcijama.Krupnija zrnatost znači manji stupanj paralelnosti ajednostavniju kontrolu.(Današnji DBMSi imaju zrnatost reda veličine n-torke ili nekolikofizičkih blokova.)<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 28


Serijabilnost: Lokoti i zaglavljivanjePrimjer:T 1 zaključava podatak A.T 2 zaključava podatak B.T 1 traži lokot za B, ali mora čekati jer je T 2 većzaključao B.T 2 traži lokot za A, ali mora čekati jer je T 1 većzaključao A.Očigledno ni T 1 ni T 2 više ne mogu nastaviti rad - one su sezaglavile.DBMS koji koristi lokote mora osigurati da ne do ¯de dozaglavljivanja (deadlock).<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 29


Serijabilnost: Lokoti i zaglavljivanjePostoji više rješenja, npr:1. Zahtijeva se da svaka transakcija odjednom traži svelokote koji joj trebaju, a ne jedan po jedan. Akojedan od tih lokota nije dostupan, transakcija neuzima ostale lokote, već čeka. Mana ove metode jeda ona drastično može smanjiti stupanj paralelnostirada. Naime, efekt je isti kao da se zrnatostpovećala.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 30


Serijabilnost: Lokoti i zaglavljivanjeDruga mogućnost:2. Privremeno se tolerira zaglavljivanje, DBMS povremeno krećeu kontrolu da li ima zaglavljenosti transakcija. Kontrola seprovodi gradnjom usmjerenog grafa u kojem čvoroviprestavljaju tekuće transakcije, a grana od čvora T 1 do čvoraT 2 znači da T 1 čeka lokot koji drži T 2 . Zatvorena petlja u grafupredstavlja skup me ¯dusobno zaglavljenih transakcija. DBMSprekida jednu od zaglavljenih transakcija, osloba ¯dajući pritome njene lokote i neutralizirajući njen dotadašnji učinak.Prekinuta transakcija se ponovo pokreće nakon izvjesnogvremena. Mana ovog pristupa je da dodatni posao kontroleDBMSa.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 31


Serijabilnost: Lokoti i zaglavljivanjeTo rješava problem zaglavljivanja u jednostavnimsituacijama ali ne i u složenim !Dvofazni protokol zaključavanja:Ako u svakoj od transakcija sva zaključavanja slijedeprije prvog otključavanja, tada je proizvoljno paralelnoizvršavanje takvih transakcija serijabilno.Zaključavanja i otključavanja zbivaju se u dvije razdvojene fazetijekom izvršavanja transakcije.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 32


Serijabilnost: tri uvjetaKorištenje lokotaIzbjegavanje zaglavljivanja(svi lokoti..., usmjereni graf ...)Primjena dvofaznog protokola zaključavanja<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 33


Serijabilnost: Primjer iz postgreSQLSTART TRANSACTION ISOLATION LEVEL SERIALIZABLE;UPDATE student SET indeks=’34342’ WHERE indeks=’34343’;UPDATE predavanje SET indeks=’34342’ WHERE indeks=’34343’;ROLLBACK TRANSACTION;<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 34


Serijabilnost: Vremenski žigoviSvakoj se transakciji pridružuje identifikacijski broj, ilivremenski žig. U slučaju jednoprocesorskog sistema,žig može biti trenutak početka transakcije. Istovremenipristup odvija se tako da se sva čitanja i upisi istogpodatka obavljaju u redoslijedu vremenskih žigovaprigodnih transakcija. Time se garantira serijabilnost:Ukupni učinak svih transakcija je isti kao da se svaka odnjih izvršava trenutačno, u svom posebnom vremenskogtrenutku.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 35


Serijabilnost: Vremenski žigoviPrimjer: iz avionske tvrtkeZahtjev za čitanjem ili upisom transakcije s žigom T 1 , neće seodobriti ako je dotični podatak bio upisan od transakcije sa žigomT 2 , gdje je T 2 > T 1 . Sličan, zahtijev za upisom će biti odbijen ako jepodatak već bio čitan od transakcije sa većim žigom.Kad transakcija doživi odbijanje zahtjeva za upisom iličitanjem, ona se prekida, a njen dotadašnji učinak seneutralizira. Zatim se transakcija ponovo pokreće savećim vremenskim žigom.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 36


3. Oporavak baze <strong>podataka</strong>Baza <strong>podataka</strong> se može naći u nekonzistentnom stanjuzbog prekida transakcije, pogrešnog rada transakcije, ilinekih drugih hardwareskih ili softwareskih razloga.Do pogrešnog rada transakcije može doći zbog:Logičke greške u samoj transakciji.softwareske greške u DBMSu ili operacijskomsustavuhardwareske greške u računalu<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 37


3. Oporavak baze <strong>podataka</strong>Do prekida transakcije može doći:Zbog odustajanja od same transakcijeKao posljedica kontrole istovremenog izvršavanjaviše transakcijazbog softwareske greške u DBMSu ili operacijskomsustavuhardwareske greške u računalu<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 38


Oporavak baze <strong>podataka</strong>DBMS mora omogućiti oporavak baze, tj. njen povratakiz nekonzistentnog blisko konzistentno stanje.To se postiže:rezervnom kopijom baze <strong>podataka</strong>žurnal datotekom(blisko konzistentno = vremenski najfriškije konzistentno stanje )<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 39


Oporavak: Rezervna kopijaRezervna kopija baze <strong>podataka</strong> (backup copy) se dobivase snimanjem cijele baze <strong>podataka</strong> na magnetske trake, ito u trenutku kad smatramo da je baza u konzistentnomstanju.Za vrijeme kopiranja ne smije se obavljati nikakvatransakcija koja mijenja podatke.Stvaranje rezervne kopije je dugotrajna operacija, kojaosim toga ometa redovni rad korisniku. Zato se kopiranjene obavlja suviše često, već periodički u unaprijedpredvi ¯denim terminima npr. jednom tjedno.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 40


Oporavak: Žurnal datotekaU Žurnal datoteku (journal file) se ubilježava povijestrada svake transakcije.Za svaku transakciju žurnal datoteka sadrži:identifikator transakcijeadresu svakog podatka kojeg je transakcija stvorilaili promjenila zajedno s prethodnom vrijednošću togpodatka (pre-image) i sa novom vrijednošću(post-image)kontrolne točke (checkpoints) u napredovanjutransakcije<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 41


Oporavak: Žurnal datotekaPoželjno je da žurnal datoteka sadrži tzv. točke isporuke(commintments).To je kontrolna točka kojom transakcija bilježi u žurnaldatoteci da smatra da je sve svoje operacijama uspješnozavršila.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 42


Oporavak: Dvofazni postupak isporukeDvofazni postupak isporuke: (two-phase commitmentpolicy)Transakcija upisuje u žurnal sve promjene koje bitrebalo napraviti u bazi <strong>podataka</strong>, te nakon togabilježi točku isporuke.Čim je točku isporuke ubilježena, DBMS prenosipromjene iz žurnal datoteke u bazu <strong>podataka</strong>.Dakle, promjene <strong>podataka</strong>, nastale kao rezultat rada transakcije, neproslije ¯duju se u bazu odmah nego tek nakon što transakcija unese užurnal točku isporuke.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 43


Oporavak: Dvofazni postupak isporukeNapomena: Ako je transakcija zbog nečega prekinuta,ona ne ubilježava točku isporuke u žurnal datoteku, pastoga DBMS ne prenosi njene promjene u bazu <strong>podataka</strong>.Neutralizacija prekinute transakcije je trivijalna.Skica dvofaznog postupka isporuke:promjene committransakcija žurnal baza<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 44


Oporavak: Odmotavanje unatragOdmotavanje unatrag (roll-back) primjenjuje se kodmanjih nekonzistencija. Npr. za neutralizaciju jednetransakcije.Sastoji od dva koraka:Čitamo žurnal i pronalazimo stare vrijednosti(pre-images) <strong>podataka</strong> koje je transakcija mijenjalate stare vrijednosti ponovo uspostavljamo u baziNapomena:Osim toga, ako je neka druga transakcija pročitala u bazi <strong>podataka</strong> vrijednostiunesene od upravo neutralizirane transakcije, tada treba i tu drugu transakciju naisti način neutralizirati.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 45


Oporavak: Odmotavanje unaprijedOdmotavanje unaprijed (roll-forward) primjenjuje se kod većihoštećenja baze. Zahtijeva da u žurnal datoteku budu upisanekontrolne točke u kojima smatramo da je baza još bila konzistentna.Obično te kontrolne točke odgovaraju trenucima kad nije biloaktivnih transakcija.Procedura:Ponovno uspostavimo stanje stare baze zabilježene zadnjomrezervnom kopijom (snimljene na magnetsku traku).Odredimo zadnju kontrolnu točku u žurnal datoteci.<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 46


Oporavak: Odmotavanje unaprijedProcedura - nastavak:Čitamo dio žurnala od početka do zadnje kontrolne točke;ponovo unosimo u bazu promjene podatke (post-images), i toistim redom za svaku isporučenu transakciju u promatranomdijelu žurnala. Time se uspostavlja stanje baze <strong>podataka</strong> kojeodgovaraju zadnjoj kontrolnoj točci.Napomena:Primijetimo da odmotavanje unaprijed omogućuje reproduciranjebaze koja je bila u potpunosti uništena (zbog kvara na računalu ilikvara diska).<strong>Integritet</strong> i <strong>sigurnost</strong> <strong>podataka</strong> – p. 47

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!