konkurentni pristup bazi podataka

Upload: dragan

Post on 09-Apr-2018

246 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Konkurentni pristup bazi podataka

    1/87

    KOKURENTNI PRISTUPKOKURENTNI PRISTUPBAZI PODATAKABAZI PODATAKA

    Panevropski Univerzitet ApeironBanja Luka

    Seminarski rad iz predmeta: RDBMS i CASE alati

    Predmetni profesor:Prof. dr Zoran . Avramovi

    Student:Dragan Bori

    Banja Luka, Decembar 2010 god.

    Tema:

  • 8/8/2019 Konkurentni pristup bazi podataka

    2/87

    SADRAJ RADA:SADRAJ RADA:

    y UVODy BAZE PODATAKAy

    TRANSAKCIJEy KONTROLA KONKURENTNOSTIy TEHNIKE ZAKLJUAVANjAy

    NEPOVRATNO ZAKLJUAVANJEPODATAKAy OSTALE METODE KONTROLE

    KONKURENTOSTI

  • 8/8/2019 Konkurentni pristup bazi podataka

    3/87

  • 8/8/2019 Konkurentni pristup bazi podataka

    4/87

    UVODUVOD

    y Baze podataka predstavljaju viu razinu radas podacima u odnosu na klasine programskejezike

    y

    Tehnologija nastala s namjerom da se ukloneslabosti tradicionalne automatske obradepodataka iz 60-tih i 70-tih godina 20. veka

    y Osiguranje vee produktivnosti, kvalitete i

    pouzdanosti u razvoju aplikacija koje sesvode na pohranjivanje i pretraivanjepodataka u raunaru

  • 8/8/2019 Konkurentni pristup bazi podataka

    5/87

    UVODUVOD

    y Baza podataka je skup meusobnopovezanih podataka, sauvanih u vanjskojmemoriji raunara

    y Podaci su istovremeno dostupni raznimkorisnicima i aplikacijskim programima.

    y Unos, promena, brisanje i itanje podataka

    obavlja se posredstvom zajednikogsoftvera - SUBP

  • 8/8/2019 Konkurentni pristup bazi podataka

    6/87

    BAZEBAZE

    PODATAKAPODATAKA

  • 8/8/2019 Konkurentni pristup bazi podataka

    7/87

    BAZE PODATAKABAZE PODATAKAy Baza podataka je skup istovrsnih podataka s

    viestrukom namjenom. Korisnik nije zainteresiranza sve vrste podataka u bazi, ve samo za one kojisu mu potrebni u njegovom poslu. Korisnik moe

    imati uvid u samo jednu, njemu potrebnudatoteku, koja ima uvijek istu i to vrlojednostavnu strukturu, iako je u biti izvedena izmnogo kompleksnije strukture podataka. Razliitikorisnici uzimaju u obzir razliite datoteke

    izvedene iz iste baze podataka. Dakle, iako je bazapodataka zajednika veem broju korisnika,razliiti korisnici je razliito shvataju. -JamesMartin

  • 8/8/2019 Konkurentni pristup bazi podataka

    8/87

    BAZE PODATAKABAZE PODATAKA

    y Baze podataka se dele na: Operacijske (transakcijske, produkcijske) baze

    Distribuirane baze podataka

    Eksterne baze podataka Data Warehouse i Data Mining

    Hipermedijalne baze podataka naWeb-u

  • 8/8/2019 Konkurentni pristup bazi podataka

    9/87

    OperacijskeOperacijske bazebaze

    y Operacijske (transakcijske,produkcijske) baze podataka - pamtedetaljne i aktuelne podatke potrebne za

    podrku poslovnih procesa i operacijay Primeri su baza kupaca, baza ljudskih

    resursa, baza zaliha i druge baze

    generisane poslovnim operacijama

  • 8/8/2019 Konkurentni pristup bazi podataka

    10/87

    EksterneEksterne bazebaze podatakapodatakay Pristup informacijama iz eksternih baza podataka je

    mogu putem velikog broja komercijalnih onlineservisa, kao i sa plaanjem ili bez, iz mnogih izvora naInternetu

    y Web-stranice osiguravaju putem hiperlinkovanihstrana pretraivanje multimedijalnih dokumenata uhipermedijalnim bazama podataka

    y Eksterni podaci su najece u vidu statistikih bazapodataka nastalih kao rezultat ekonomskih idemografskih istraivanja i aktivnosti.

    y Takoer su popularne bibliografske ili full text baze izkojih se mogu vidjeti ili preuzeti apstrakti ilikompletne kopije raznih asopisa, istraivakih radovai drugih publiciranih materijala.

  • 8/8/2019 Konkurentni pristup bazi podataka

    11/87

    Data WarehouseData Warehousey Data Warehouse baza podataka memorie podatke

    ekstrahirane iz razliitih operacijskih, eksternih ilinekih drugih baza podataka u okviru organizacije.

    y Ona je sredinji izvor preienih i transformiranihaktuelnih i istorijskih podataka koje koriste menaderii drugi poslovni strunjaci za data mining, OLAP (engl.online analytical processing) i druge vrste poslovnihanaliza, istraivanja trita, i podrku odlucivanju.

    y Data warehouse moe biti podijeljen na data mart-ove koji sadre podskupove podataka warehose-a koji

    su fokusirani na neki specificni aspekt kompanije, kaoto je odjel ili poslovni proces.

  • 8/8/2019 Konkurentni pristup bazi podataka

    12/87

    HipermedijalneHipermedijalne bazebaze podatakapodataka

    nanaWebWeb--uuy Rapidni napredak Web tehnologija jeznaajno poveao primjenu bazahipermedijalnih dokumenata koje se nazivajuhipermedijalne baze podataka

    y Hipermedijalna baza podataka je zapravoweb stranica koja se sastoji odhiperlinkovanih multimedijalnih strana

    y Sa take gledita teorije baza podataka,

    hipermedijalna baza podataka nije skupmeusobno povezanih slogova, ve skupmeusobno hiperlinkovanih multimedijalnihstrana.

  • 8/8/2019 Konkurentni pristup bazi podataka

    13/87

    DistribuiranaDistribuirana bazabaza podatakapodatakay Baza podataka koja se ne nalazi u celini najednom raunaru, ve je razdeljena na vielokacija koje su povezane komunikacijskom

    mreom.y Svaka lokacija ima svoj vlastiti, autonomni

    sistem za upravljanje bazama podataka, savlastitom kontrolom , upravljaem transakcija

    i oporavka od pada, i ostalim znaajnimfunkcijama.y Poseduje svoj procesor i ulazno/izlazne

    ureaje.

  • 8/8/2019 Konkurentni pristup bazi podataka

    14/87

    DistribuiranaDistribuirana bazabaza podatakapodataka

  • 8/8/2019 Konkurentni pristup bazi podataka

    15/87

    PROBLEMI dPROBLEMI distribuiranistribuiranihih bazabaza

    podatakapodatakay Sporost mrene komunikacijey Da bi postigli visoku efikasnost DSUBP njegove

    komponente treba razvijati na takav nain da sesmanji mrena komunikacija, tanije koliina podatakakoju prenosimo preko mree.

    y Problemi sa kojima se sreemo udistribuiranimsistemima baza podataka su: fragmentacija podataka distribuirana obradba upita

    distribuirano auriranje upravljanje katalogom distribuirano izvrenje skupa transakcija, to ukljuuje

    konkurentnost, integritet, oporavak i protokolekompletiranja transakcija

  • 8/8/2019 Konkurentni pristup bazi podataka

    16/87

    TRANSAKCIJETRANSAKCIJE

  • 8/8/2019 Konkurentni pristup bazi podataka

    17/87

    TRANSAKCIJETRANSAKCIJEy Prema broju korisnika beze podataka

    moemo klasifikovati na:jedno korisnike (engl. Single user) i multikorisnilke (engl. Multi users).

    y Transakcija je logika jedinica procesiranjapodataka u bazi koja ukljuuje jednu ili vieoperacija u bazi podataka.

    y Operacije mogu biti: insert (ubacivanje), delete (brisanje), update (izmjene), select (pretraivanje).

  • 8/8/2019 Konkurentni pristup bazi podataka

    18/87

    OZNAAVANJE GRANICAOZNAAVANJE GRANICATRANSAKCIJETRANSAKCIJEy eksplicitno navoenje begin transaction i

    end transaction odnosno commit ilirollback.

    y Drugi nain je automatski nain rada priemu svaka operacija predstavlja transakciju.

    y Bitno je napomenuti da jedan program moe

    imati vie transakcija.y U sluaju da transakcija nema operaciju

    auriranja (izmjene baze) transakcija se zoveread-only.

  • 8/8/2019 Konkurentni pristup bazi podataka

    19/87

    Operacije za pristup BPOperacije za pristup BP

    y Osnovne operacije za pristup bazipodataka, koje transakcija ukljuuje su: Read_item(X) ita podatak iz baze sa

    imenom X i smjeta ga u programsku varijabluX

    Write_item(X) pie vrednost programskevarijable X u bazu podatak

    y Podatak u bazi je oznaen sa X

  • 8/8/2019 Konkurentni pristup bazi podataka

    20/87

    ITANjE PODATKAITANjE PODATKA

    y Koraci izvrenja read_item(X):

    Nai adresu disk bloka koji

    sadri podatak X

    Kopirati disk blok u bafer uglavnoj memoriji (ako disk

    blok ve nije u memoriji),

    Kopirati podatak X iz bafera uprogramsku varijablu saimenom X

  • 8/8/2019 Konkurentni pristup bazi podataka

    21/87

    IZMENA PODATKAIZMENA PODATKA

    y Koraci izvrenje write_item(X):

    Nai adresu disk bloka kojisadri podatak X

    Kopiraj disk blok u bafer uglavnoj memoriji (ako disk blokve nije u memoriji)

    Kopiraj podatak X iz

    programske varijable nakorektnu lokaciju u bafer

    Pii blok iz memorije nadisk

  • 8/8/2019 Konkurentni pristup bazi podataka

    22/87

    PRIMER:PRIMER:

    I transakcija II transakcija

    Read_item(X) Read_item(X)

    X:=X-N X:=X+MWrite_item(X) Write_item(X)

    Read_item(Y)

    Y:=Y+N

    Write_item(Y)

    Opis: Prebaci n = 5 rezervacijakarata sa leta X na let Y

    Opis: Rezervii m = 8 mesta naletu X

    70 70

    65 78

    50

    55

  • 8/8/2019 Konkurentni pristup bazi podataka

    23/87

    ISTOVREMENO IZVRENjEISTOVREMENO IZVRENjE

    y U sluaju da se dve transakcije izvravajuistovremeno potrebno je: Vriti kontrolu konkurentnosti (Vie korisnika

    moe istovremeno itati podatke i menjati ih.U sluaju nekontrolisanog rada moe doi donekonzistentnosti baze)

    Obezbediti mehanizam ponitenja transakcije

  • 8/8/2019 Konkurentni pristup bazi podataka

    24/87

    STATUSI TRANSAKCIJESTATUSI TRANSAKCIJE

    PADtransakcije

    PARCIJALNOPOTVRENA POTVRENA

    KRAJTRANSAKCIJE IZVRI

    POETAKTRANSAKCIJE

    READWRITE

    PREKID PREKID

    AKTIVNA

  • 8/8/2019 Konkurentni pristup bazi podataka

    25/87

    OsobineOsobine transakcijatransakcijay Transakcija treba da ima nekoliko osobina, one se

    esto nazivaju ACID osobine i one treba da sprovodekontrolu konkurentosti i metode oporavka u SUBP.ACID osobine: Atomicity (nedeljivost) Transakcija je nedeljiva jedinica

    procesiranja koja se ili izvri u celosti ili se ni jedan njendio ne izvri Consistency preservation (Zatita konzistentnosti) -

    transakcija titi bazu od nekonzistentnosti. Bolje reenovodi bazu iz jednog u drugo konzistentno stanje

    Islolation (Izolacija) transakcija se izvrava izolovano oddruge transakcije

    Durability ili Permanency (Trajnost promene) promene ubazi koje su potvrene (commit-ovane) moraju biti trajneu bazi. One ne smeju biti izgubljene zbog bilo kakve greke.

  • 8/8/2019 Konkurentni pristup bazi podataka

    26/87

    KONTROLAKONTROLAKONKURENTNOSTIKONKURENTNOSTI

  • 8/8/2019 Konkurentni pristup bazi podataka

    27/87

    TEHNIKETEHNIKE

    y Veina tehnika za kontrolu konkurentnostiobezbeuje serijsko izvravanje.

    yJedan vaan skup protokola koristitehniku zakljuavanja podataka da bispreilo da vie transakcija pristupaistovremeno istom podatku.

    y Tehnike zakljuavanja se koriste u veinikomercijalnih SUBP.

  • 8/8/2019 Konkurentni pristup bazi podataka

    28/87

    TEHNIKE ZA KONTROLUTEHNIKE ZA KONTROLUy Tehnike kontrole konkurentnosti:

    Tehnika zakljuavanja Kontrola konkurentnosti na baziTimeStamp

    redosleda Vie verzijska kontrola konkurentnosti Tehnika validacije (optimistika) kontrola

    konkurentnosti Granularnost podataka i viestruko granularno

    zakljuavanje Upotreba katanaca za kontrolu konkurentnosti u

    indeksima Ostale kontrole konkurentnosti

  • 8/8/2019 Konkurentni pristup bazi podataka

    29/87

    y U sluaju da se ne potuje kontrolakonkurentnosti moe doi do sledeihproblema: Problem gubitka auriranja Problem privremenog auriranja

    Problem pogrenog sabiranja

    PROBLEMI KONKURENTNOGPROBLEMI KONKURENTNOGPRISTUPAPRISTUPA

  • 8/8/2019 Konkurentni pristup bazi podataka

    30/87

    y Pojavljuje se kada se istovremeno itajuvrednosti iz baze i onda se odvojenoauriraju.

    y Primer: U sistemu rezervacije karataizvrenje transakcijaT1 (prebacivanje 5rezervacija sa jednog na drugi let) i T2

    (rezervacija 4 karte) istovremeno. Ako jebroj rezervacija X=80. Rezultattransakcije je prikazan u Tabeli 2.

    Problem gubitka auriranjaProblem gubitka auriranja

  • 8/8/2019 Konkurentni pristup bazi podataka

    31/87

    Problem gubitka auriranjaProblem gubitka auriranja

    I transakcija Vreme II transakcija

    Read_item(X) //80 t1

    tn

    X:=X-N //75Read_item(X) //80

    X:=X+M //84

    Write_item(X) //75

    Read_item(Y)

    Write_item(X) //84Y:=Y+N

    Write_item(Y)

    UMESTO 79 IMAMO 84

  • 8/8/2019 Konkurentni pristup bazi podataka

    32/87

    ProblemProblem privremenogprivremenog auriranjaauriranja

    y nastaje kada se dve transakcije izvravajuparalelno

    y Ako prva transakcija promeni neku

    vrednost koja se kasnije koristi u drugojtransakciji a nakon toga se prvatransakcija poniti odnosno umesto

    naredbe COMMIT prva transkacija zatraiopoziv izdavanjem naredbe ROLLBACK

  • 8/8/2019 Konkurentni pristup bazi podataka

    33/87

    ProblemProblem privremenogprivremenog auriranjaauriranja

    I transakcija Vreme II transakcija

    Read_item(X) t1

    tn

    X:=X-N

    Write_item(X)

    Read_item(X)ROLLBACK

  • 8/8/2019 Konkurentni pristup bazi podataka

    34/87

    ProblemProblem pogrenogpogrenog sabiranjasabiranja

    y Pojavljuje se kada se dve transakcijeizvravaju paralelno. Jedna aurira bazu adruga pravi zbrajanje i u tom procesu

    uzima dio podataka pre a dio posleauriranja.

  • 8/8/2019 Konkurentni pristup bazi podataka

    35/87

    ProblemProblem pogrenogpogrenog sabiranjasabiranja

    I transakcija Vreme II transakcija

    t1

    tn

    Suma = 10

    Read_item(X) //80

    X:=X-N //70

    Read_item(X) //80

    Write_item(X) //70 Suma = suma +X //90

    COMMIT Read_item(Y) // 3

    Suma = Suma / Y //30Read_item(Y) // 3

    Y:=Y+M // 5

    Write_item(Y) // 5

    UMESTO Suma = 16, Suma JE 30

  • 8/8/2019 Konkurentni pristup bazi podataka

    36/87

    SUBPSUBP

    y Iz prethodnih primera zakljuuje se da je usluaju greke potrebno ponitenjetransakcije

    y Kada se transakcija poalje SUBP naizvrenje sistem je odgovoran da e sigurno: Sve operacije u transakciji zavrtiti uspeno i

    njihov efekat e se zapisati u bazu za stalno

    ILI Transakcija nee imati nikakvog efekta na bazu

    niti na bilo koju njenu transakciju.

  • 8/8/2019 Konkurentni pristup bazi podataka

    37/87

    PAD TRANSAKCIJEPAD TRANSAKCIJE

    y Neki od razloga za pad transkacije su: Greka raunara (hardverske, softverske ili

    mrene greke u raunarskom sistemu za vreme

    trajanja transakcije), Greka sistema ili transakcije (neke operacije

    mogu biti sa grekom (delenje sa nulom,prekoraenje...), greka u programu,

    Detekcija izuzetka (engl. exception) nije nadjenpodatak (nema dovoljno novca na raunu),

    Greka kontrole konkurentnosti deadlock...

    Greka okruenja iskljuenje raunara,...

  • 8/8/2019 Konkurentni pristup bazi podataka

    38/87

    TEHNIKETEHNIKEZAKLjUAVANjAZAKLjUAVANjA

  • 8/8/2019 Konkurentni pristup bazi podataka

    39/87

    KATANCIKATANCI LOCKLOCKy Katanac (engl lock) je varijabla pridruena

    podatku koji opisuje status podatka uodnosu na operacije koje se mogu primjenitina podatke. Katanac se koristi za

    sinhronizaciju pristupa podacima od stranekonkurentnih transakcija.y Tipovi katanaca:

    Binarni katanci imaju samo dva statusa:zakljuan i nije zakljuan

    Deljeni/ekskluzivni katanci dozvoljava pristup(itanje) za vie transakcija ali samo jednoj zapisanje.

  • 8/8/2019 Konkurentni pristup bazi podataka

    40/87

  • 8/8/2019 Konkurentni pristup bazi podataka

    41/87

    BinarniBinarni katanackatanacy Provera statusa podatka X se dobija sa naredbom

    LOCK(X)ako je LOCK(X) = 1, transakcija je primorana dapriekaAko je LOCK(X) = 0, onda se postavlja 1(postavlja se katanac na podatak) i transakcijadobija pristup podatku X.

    y Kada se zavri transakcija, ona izdaje naredbu

    unlock_item(X)koja LOCK(X) postavlja na 0, odnosno otkljuavapodatak tako da se podatku X moe pristupiti odstrane druge transakcije.

  • 8/8/2019 Konkurentni pristup bazi podataka

    42/87

  • 8/8/2019 Konkurentni pristup bazi podataka

    43/87

    PSEUDO KOD bPSEUDO KOD binarninarnogog katanckatancaa

    lock_item(X):B:ifLOCK(X)=O //podatakje otkljuan

    then LOCK(X)1//zakljuaj podatak

    else beginwait (untillock(X)=0);

    go to B

    end;

    unlock_item (X):LOCK (X)O;//otkljuava podatak

  • 8/8/2019 Konkurentni pristup bazi podataka

    44/87

  • 8/8/2019 Konkurentni pristup bazi podataka

    45/87

    DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac

    y Deljeno tj eksluzivno zakljuavanjedozvoljava da vie transakcija ita podatkeali samo jedna transkacija moe da pie

    (aurira) podatak.y Da bi se to omoguilo koriste se razliiti

    tipovi katanaca, da transakcija mogla da

    aurira podatak mora da ima eksluzivnipristup (eksluzivni katanac).

  • 8/8/2019 Konkurentni pristup bazi podataka

    46/87

    DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac

    y Pri upotrebi deljenog/ eksluzivnog katancaili itaj / pii (engl. write / read) katanca,koriste se sledee tri operacije, pri emu

    X predstavlja podatak kojem transakcijapristupa: Read_lock(X)

    Write_lock(X) Unlock(X)

  • 8/8/2019 Konkurentni pristup bazi podataka

    47/87

    DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac

    y Prilikom zakljuavanja podatka X,LOCK(X) moe imati sledee statuse: Read_locked (shared_locked) katanac

    itanja. Ostale transakcije mogu itati podataki moe ih biti vie nad jednim podatkom

    Write_locked (exclusive_locked)katanacpisanja. Samo jedna transakcija moe pristupiti

    podatku, da bi ga izmenila. Unlocked otkljuaj podatak. Izbrii katanac

    sa podatka

  • 8/8/2019 Konkurentni pristup bazi podataka

    48/87

    DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac

    y Svaki zapis u tabeli katanaca mora da imasledea etiri polja: Naziv polja

    Lock (vrsta katanca) Broj itanja

    Transakcija

  • 8/8/2019 Konkurentni pristup bazi podataka

    49/87

    DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac -- PravilaPravila

    y Kada se koristi deljeno/eksluzivno zakljuavanje,sistem mora da se pridrava sledeih pravila:1. TransakcijaT mora uraditi operacije read_lock(X)

    ili write_locked(X) pre bilo koje read_item(X)2. TransakcijaT mora uraditi operaciju

    write_locked(X) pre bilo koje write_item(X)3. TransakcijaT mora uraditi operaciju unlocked(X)

    posle svih read_item(X) i write_item(X)4. TransakcijaT nee uraditi read_lock(X) ako ve

    postoji read ili write katanac na X

    5. TransakcijaT nee uraditi write_lock(X) akotransakcija ima read ili write katanac nad X

    6. TransakcijaT nee uraditi unlock(X) operaciju akotransakcija nema read ili write katanac na X

  • 8/8/2019 Konkurentni pristup bazi podataka

    50/87

    DeljeniDeljeni//EkskluzivniEkskluzivni katanackatanac -- PravilaPravila

    y Pravilo 4 i 5 se mogu malo promeniti i to: Ako transakcija T ima read_lock(X) i ako

    transakcija traba da postavi write_lock(X) to

    se moe uraditi ako jedino transakcijaT imaread_lock na X

    Ako transakcija T ima write_lock(X) onamoe katanac nad X promeniti u

    read_lock(X)

  • 8/8/2019 Konkurentni pristup bazi podataka

    51/87

    PSEUDO KODPSEUDO KODread_lock (X):

    B: ifLOCK(X)= "unlocked"then begin LOCK(X) "read_locked";no_of_reads(X) 1 //broj zakljucanih

    endelse ifLOCK(X)="read_Iocked"

    then no_of_reads(X) no_of_reads(X) + 1//inkrementiraj broj katanaca

    elsebegin wait (until LOCK(X) = "unlocked")

    go to Bend;

  • 8/8/2019 Konkurentni pristup bazi podataka

    52/87

    PSEUDO KODPSEUDO KOD

    write_lock (X):B: ifLOCK(X) = "unlocked"

    then LOCK(X) ''write_locked''

    elsebegin wait (until LOCK(X)= "unlocked");go to B

    end;

  • 8/8/2019 Konkurentni pristup bazi podataka

    53/87

  • 8/8/2019 Konkurentni pristup bazi podataka

    54/87

    PPreranorerano otkljuavanjotkljuavanjee podatakapodataka

    I transakcija Vreme II transakcijaread_lock(Y)

    t1

    tn

    read_item(Y) //30unlock(Y)

    read_lock(X)

    read_item(X) //20

    unlock(X)

    write_lock(Y)

    read_item(Y) //30Y:=X+Y //50

    write_item(Y)

    unlock(Y)write_lock(X)

    read_item(X) //20

    X:=X+Y //50write_item(X)

    unlock(X)

    InicijalnavrijednostX=20,Y=30;

    Rezultat jeX=50, Y=50umestoX=70, Y=50

  • 8/8/2019 Konkurentni pristup bazi podataka

    55/87

    DVOFAZNO ZAKLjUAVANjEDVOFAZNO ZAKLjUAVANjEy Da bi se prethodni problem prevaziao potrebno je

    koristiti dodatni protokol zakljuavanja i otkljuavanjapoznat kao dvofazno zakljuavanje

    y Dvofaznostje metoda za postizanje linearizovanog

    izvrenja skupa transakcija, korienjem mehanizmazakljuavanj

    y Transakcija je dvofazna ako se sastoji od dve serijske faze:faze zakljuavanja objekata i faze otkljuavanjaobjekata

    y U fazi zakljuavanja nema nijedne radnje otkljuavanjaobjekta, odnosno u fazi otkljuavanja vie nema radnjizakljuavanja (naravno, obe ove faze ukljuuju i drugeoperacije nad objektima kao to su itanje, obrada, upis

    objekata)

  • 8/8/2019 Konkurentni pristup bazi podataka

    56/87

    Dvofazno zakljuavanjeDvofazno zakljuavanjey Za transakciju se kae da slijedi dvofazni protokol

    ako sve operacije zakljuavanja (read_lock,write_lock) prethode prvom otkljuavanju.

    y Takva transakcija ima dvije faze i to:

    fazu irenja (zakljuavanja) i fazu skupljanja (otkljuavanja)

    y Dvofazno zakljuavanje moe zakljuati dostaobjekata.

    y U nekim momentima moe drati zakljuane i

    objekte koji joj vie nisu potrebni.y Iz tih razloga neke druge transakcije mogu ekati

    due na izvrenje. To je cijena dvofaznogzakljuavanja.

  • 8/8/2019 Konkurentni pristup bazi podataka

    57/87

    Dvofazno zakljuavanjeDvofazno zakljuavanje

    y Konzervativno dvofazno zakljuavanjezahteva da transakcija zakljua svepotrebne podatke prije poetka izvrenja

    sa predefinisanim read-skupom i write-skupom.y Ako transakcija neto ne moe zakljuati

    ona eka da se taj resurs oslobodiy Ova metoda nije primjenljiva jer se

    nekada ne moe znati ta se sve trebazakljuati.

  • 8/8/2019 Konkurentni pristup bazi podataka

    58/87

    Dvofazno zakljuavanjeDvofazno zakljuavanje

    y Striktna dvofazno zakljuavanje,transakcija ne oslobaa ni jedan katanacdok se transakcija ne zavri.

    y Nijedna druga transakcija ne moezakljuati, itati ni pisati podatak dok sene uradi commit ili abort.

  • 8/8/2019 Konkurentni pristup bazi podataka

    59/87

    Dvofazno zakljuavanjeDvofazno zakljuavanje

    y Rigorozno dvofazno zakljuavanjetransakcija ne oslobaa ni jedanekskluzivni ni dijeljeni lok dok se

    transkacija ne zavri.y Laka je za realizaciju nego strikno

    zakljuavanje

  • 8/8/2019 Konkurentni pristup bazi podataka

    60/87

  • 8/8/2019 Konkurentni pristup bazi podataka

    61/87

    NEPOVRATNONEPOVRATNOZAKLjUAVANjEZAKLjUAVANjE

  • 8/8/2019 Konkurentni pristup bazi podataka

    62/87

    NEPOVRATNONEPOVRATNOZAKLjUAVANjEZAKLjUAVANjE

    y Nepovratno zakljuavanje podataka (engl. Deadlock) jepojava kada svaka transakcija u skupu od dvije ili vietransakcija eka za nekim resursom koji je zakljuan oddruge transakcije iz tog skupa.

    I transakcija Vreme II transakcija

    Read_lock(Y) t1

    tn

    Read_item(Y)

    Read_lock(X)Read_item(X)

    Write_lock(X)Write_lock(Y)

    T1 i T2 su nepovratnozakljuane u parcijalnomizvrenju, Transakcija T1 ekau redu za podatkom X, koji jezakljuan odtransakcije T2 dok T2 eka u

    redu za podatak Y koji jezakljuan od transakcije T1.Meutim, ni transakcija T1 niT2 niti bilo koja transakcijane mogu pristupiti podatku Xi Y.

  • 8/8/2019 Konkurentni pristup bazi podataka

    63/87

    Nepovratno zakljuavanjeNepovratno zakljuavanje

    yJedan od naina da se sprei deadlock jesteda se koristi preventivni protokol.

    y Ovaj protokol zahtjeva da svaka transakcijana poetku zakljua sve resurse (podatke)koji joj trebaju. Ako joj svi resursi nisudostupni transakcije ne vri nikakvozakljuavanje i takva transakcija eka nekovrijeme i opet pokuava izvriti zakljuavanje.

    y Ovo reenje smanjuje sposobnostkonkurentnog pristupa.

  • 8/8/2019 Konkurentni pristup bazi podataka

    64/87

    Nepovratno zakljuavanjeNepovratno zakljuavanje

    y Drugi nain prevencije jeste na bazivremenske oznake (engl. Timestamp).

    y Koncept timestamp jeste da se svakoj

    transakciji dodijeli jedinstven identifikatorzvani timestamp TS(T) koji se definie naosnovu vremena startanja transakcije.

    y Ako je transakcija T1 startala prijetransakcije T2 tada je TS(T1) < TS(T2).

  • 8/8/2019 Konkurentni pristup bazi podataka

    65/87

    DEADLOCKDEADLOCK --TimeStampTimeStamp

    y Ovaj protokol se zasniva na sledeimpravilima: Wait-die Ako je TS(T1) < TS(T2) tada (T1 je

    startala prije) T1 ima dozvolu da eka inae ako je

    TS(T1) >= TS(T2) (T1 je startala kasnije) T1 seprekida i startuje kasnije sa istim TS {Starijatransakcija eka a mlaa se ukida i kasnijeponovno starta}

    Wound-wait ako je TS(T1) < TS(T2) tada seprekida T2 i restartuje kasnije sa istim TS inae jedozvoljeno da T1 eka {Mladja transakcija eka astarija se ukida i kasnije ponovno starta}

  • 8/8/2019 Konkurentni pristup bazi podataka

    66/87

    DEADLOCKDEADLOCK --TimeStampTimeStamp

    y U Wait-die, starijijoj transakciji jedozvoljeno da eka na mlau transkakciju,ukoliko mlaa transakcija zahteva podatak

    koji dri starija, transakcija se ponitava irestartuje.

    y Druga grupa protokola za prevenciju

    deadlocka ne zahteva vremenske oznake,one ukljuuju no waiting (NW) i cautiouswaiting (CW) algoritme.

  • 8/8/2019 Konkurentni pristup bazi podataka

    67/87

    No waiting algoritamNo waiting algoritam

    y Kod no waiting algoritma, kada transakcijanije u mogunosti da zakljua podatak onase odmah prekida i restartuje nakon

    izvjesnog vremena bez provjere da li sepodatak oslobodio.y Ova ema moe prouzrokovati velik broj

    prekidanja i restartanja transakcija to

    samo po sebi znai mnogo upisivanja podiskovima, to proizvodi usporenjasistema.

  • 8/8/2019 Konkurentni pristup bazi podataka

    68/87

    Cautious waitingCautious waiting

    y Cautious waiting algoritam predlae da sepokua smanjiti broj nepotrebnihprekida/restartovanja.

    y Pretpostavimo da transakcija T1 pokuava dazakljua podatak X ali nije u stanju da touini jer je X zakljuan od neke drugetransakcije T2, u tom sluaju vai pravilo: Ako transakcija T2 nije blokirana (ne eka neki

    drugi objekat) tada je T1 blokirana i ima dozvoluda eka, ona eka inae ako nema dozvolu zaekanje T1 se prekida. Blokiranim transakcijamase mjeri vrijeme b(T) i na osnovu njega se

    transakcije ponitavaju.

  • 8/8/2019 Konkurentni pristup bazi podataka

    69/87

    y Jo jedan pristup je detekcija deadlock-a, gde sistemproverava stanje da li deadlock zaista postoji

    y Ova solucija je atraktivnija ako znamo da e biti meanjeizmeu transakcija to jest ako razliite transakcije retkopristupaju istom podatku u isto vreme.

    y

    To se moe desiti ako su transakcije kratke i svaka transakcijase zakljuava samo nekoliko podataka ili je optereenjetransakcije malo.

    y ako su transakcije duge i svaka transakcija koristi mnogopodataka ili optereenje transakcije je prilino veliko to moebiti korisno za koritenje eme za prevenciju deadlocka.

    y

    Jednostavan nain za otkrivanje deadlocka se vrikonstrukcijom i odravanje wait-for grafa u kom se navodepodaci koji vor (transakcija) eka na zavretak transakcije.

    y Ako graf ima ciklus tada u njemu postoji deadlock

  • 8/8/2019 Konkurentni pristup bazi podataka

    70/87

    y Jedan od problema sa ovim pristupom je pitanjeodreivanja kada sistem treba da proveri da li imadeadlock.

    y Kriterijumi koji se mogu koristiti su broj transakcijakoji se trenutno izvrava ili vremenski period nekoliko

    transakcija koje ekaju da zakljuaju podatak.y Ako je sistem u stanju deadlock, neke transakcije koje

    izazivaju deadlock trebaju se prekinuti i te transakcijese nazivaju rtve odnosno u engleskoj literaturipoznate pod nazivom Victim selectiom.

    y Algoritam za odabir rtava omoguava da transakcijesa vie auriranja, duim vremenom izvrenja nastavesa radom.

  • 8/8/2019 Konkurentni pristup bazi podataka

    71/87

    yJo jedan jednostavan nain detekcijedeadlocka je upotreba vremenskih oznaka(engl.timestamp). u ovom metodu, ako

    transakcija eka due od definisanogvremena , sistem pretpostavlja datransakcija je moda u deadlock ili jeprekinuta bez obzira da li postojideadlock ili ne.

  • 8/8/2019 Konkurentni pristup bazi podataka

    72/87

    Izgladnjivanje (engl. starivation)Izgladnjivanje (engl. starivation)

    y Sluaj kada transakcija ne moe izvravatinedefinisano dugo vremena dok se drugetransakcije izvravaju normalno. T

    y o se moe javiti ako je plan za zakljuavanjenepravedan odnosno ako se pojedinimtransakcijama daju veliki ili mali prioritetitako da neka transakcija ne moe da doedo resursa.

    yJedan od metoda za reavanje je potenaraspodela resursa npr. po principu prvatransakcija se pojavi - prva se izvrava.

  • 8/8/2019 Konkurentni pristup bazi podataka

    73/87

    TEHNIKE KONTROLETEHNIKE KONTROLE

  • 8/8/2019 Konkurentni pristup bazi podataka

    74/87

    TEHNIKE KONTROLETEHNIKE KONTROLEKONKURENTNOSTIKONKURENTNOSTI

    y Kontrola konkurentnosti na baziTimeStampredosleda

    y Vieverzijska kontrola konkurentnostiy

    Tehnika validacije (optimistika) kontrolakonkurentnostiy Granularnost podataka i viestruko

    granularno zakljuavanje

    y Upotreba katanaca za kontrolukonkurentnosti u indeksimay Ostale kontrole konkurentnosti

    K lK l k kk k bb

  • 8/8/2019 Konkurentni pristup bazi podataka

    75/87

    KontrolaKontrola konkurentnostikonkurentnosti nana bazibaziTimeStampTimeStamp redosledaredosleday Svakoj transakciji se dodeljuje jedinstveni

    identifikator u redosledu u kome su transakcijedospele u sistem, pa se identifikator moetretirati kao vreme njenog poetka

    y Konflikti u izvrenju transakcija nastaju kada nekatransakcija zahteva da vidi neki podatak kojeg jemlaa transakcija aurirala ili kada nekatransakcija hoe da aurira neki podatak kojeg jemlaa transakcija ve aurirala ili videla.

    y Konflikti se razreavaju ponovnim startovanjemstarije transakcije.

  • 8/8/2019 Konkurentni pristup bazi podataka

    76/87

  • 8/8/2019 Konkurentni pristup bazi podataka

    77/87

    KontrolaKontrola konkurentnostikonkurentnosti nana bazibaziTimeStampTimeStampredosledaredosleda

    y Osnove timestamp izvrenja: Svakoj transakciji se prilikom poetka izvrenja dodijeli

    timestamp tako da se zna taan redoslijed startanja transakcijaTS(X)

    Read_TS(X) metoda koja za podatak X daje zadnji TS koji jeuspjeno proitao podatak X

    Write_TS(X) pie TS za zadnje uspjeno pisanje podatka X Kada neka transakcija T pokuava da koristi Read_TS(X) i

    Write_TS(X) osnovni TS algoritam poredi TS transakcije iupisani TS posljednje uspjene transakcije. Ako poredak izvrenjatransakcija nije dobar vri se ponitenje transakcije T i ona seponovno starta sa novim timestampom. Sve transakcije koje su

    koristile podatke nakon transakcije T se takoer ponitavaju ideava se t.z. Kaskadni rollback. Deadlock se ne moe desiti ali se moe desiti periodini prekid i

    restart transakcija

    Vi ij kVi ij k k lk l

  • 8/8/2019 Konkurentni pristup bazi podataka

    78/87

    VieverzijskaVieverzijska kontrolakontrolakonkurentnostikonkurentnosti

    y Kod ove metode se prilikom auriranjauvaju i stare i nove vrijednosti podataka(vie verzija)

    y Kada transakcija trai podatak odgovarajua

    verzija podatka se pronae.y Kada se pie podatak uvijek se pie nova

    verzija podataka a stara verzija se zadrava.y Meutim, vie verzija podataka zahtjeva vie

    prostora.y Ekstremna verzija ovakvog naina rada su

    vremenske baze koje uvaju sve promjene ubazi.

  • 8/8/2019 Konkurentni pristup bazi podataka

    79/87

    y U ovoj metodi postoji vie verzija istogpodatka koji se uva u bazi (X1, X2,...,Xn).Za svaku verziju, odnosno verziju podatka

    Xi uvaju se dva timestampa i to: Read_TS(Xi) zadnje itanje podatka Xi od

    strane uspene transakcije

    Write_TS(Xi) zadnji timestamp transakcijekoja je uradila write podatka Xi

  • 8/8/2019 Konkurentni pristup bazi podataka

    80/87

    y TransakcijaT se ponitava (abortira) i vrise njen rollback ako T: Pokuava upisati podatak X iza ve upisanog

    podatka X u transakciji koja je startana kasnije Ako postoji itanje podatka X transakcije kojaje startana iza transakcijeT. Inae se podatakX pie sa novom verzijom u bazu od strane

    transakcijeT

  • 8/8/2019 Konkurentni pristup bazi podataka

    81/87

    y Ako Transakcija T koristi read_item(X) inae verziju Xi koji ima vee vrijemepisanja transakcije (startana kasnije) tada

    se vraa odgovarajua verzija X i upisujese TS za read_TS(Xi) koje je jednakomax(read_TS(Xi) ili TS(T)). Read operacija

    je uvijek uspjeno izvrena

    T h ikT h ik lid ijlid ij

  • 8/8/2019 Konkurentni pristup bazi podataka

    82/87

    TehnikaTehnika validacijevalidacije((optimistikaoptimistika)) kontrolakontrola

    y Kod tehnike validacije kontrolekonkurentnosti unaprijed se ne vri nikakvakontrola.

    y Kod ove metode se auriranje vri tek kada

    se transakcija zavri.y Za vrijeme izvrenja transakcije auriranje se

    radi na lokalnoj kopiji.y Na kraju transakcije vri se validacija.

    y Sve informacije potrebne za validacijuobezbjeuje sistem i ako je validacijauspjena transakcija se prihvata.

    G lG l d kd k ii i ki k

  • 8/8/2019 Konkurentni pristup bazi podataka

    83/87

    GranularnostGranularnost podatakapodataka ii viestrukoviestrukogranularnogranularno zakljuavanjezakljuavanje

    y Sve tehnike kontrole konkurentnostipretpostavljaju da se baza sastoji odimenovanih podataka. Podatak iz baze

    moe biti: Polje sloga baze

    Slog baze

    Bloka na disku Cijele datoteke

    Cijele baze

  • 8/8/2019 Konkurentni pristup bazi podataka

    84/87

    GranularnostGranularnost podatakapodatakay Granularnost ukazuje na nivo detalja ili sumarizacije

    jedinica podataka u bazi podataka. to vie detalja tu ima,to je nii nivo granularnosti.

    y to manje detalja tu ima to je vii nivo granularnosti

    y Zakljuavanje vee granule uvodi vie zabrana za pristuppodacima (baza, datoteka).

    y Ako se koriste manje granule (polje, slog) tada ima viekatanaca znai vie katanaca se postavlja i skida.

    y

    U tom sluaju potrebno je vie prostora za tabelekatanaca odnosno vie vremena za izvrenje zakljuavanjatj potrebno je vie prostora i vremena za read_TS iwrite_TS.

  • 8/8/2019 Konkurentni pristup bazi podataka

    85/87

    GranularnostGranularnost podatakapodatakay Optimalna veliina granule zavisi od tipa

    transakcija odnosno od aplikacije, akotransakcija pristupa malom broju slogovatada je bolje zakljuavati slogove.

    y

    Ako transakcija prilazi veem broju slogovatada je bolje zakljuavati blok ili akdatoteku.

    y Veliina granule zavisi od vrste transakcije.y

    Najbolja varijanta je da baza podravazakljuavanja raznih tipova granula

  • 8/8/2019 Konkurentni pristup bazi podataka

    86/87

    OstaleOstale kontrolekontrole konkurentnostikonkurentnostiy problem koji se javlja sa ubacivanjem i brisanjem slogova, tajproblem je poznat pod nazivom kao fantomski problemy Fantomski problem se pojavljuje kada transakcija T upie slog

    a druga transakcija pretrauje slogove sa uslovom koji biukljuio i ovaj novi slog u rezultat ali ga ne ukljuuje.

    y Kada se novi podatak ubacuje njemu se ne moe pristupitidok se operacija ne kompletira. Takav podatak je eksluzivnozakljuan. Katanci se oslobaaju istovremeno i upisuje setimestamp od transakcije

    y Pre brisanja postavlja se eksluzivni lok na poetku. Zatimestamp protokol mora biti siguran da nije bilo itanjanakon zakljuavanja.

  • 8/8/2019 Konkurentni pristup bazi podataka

    87/87

    Reza (engl. latch)Reza (engl. latch)

    y Reza je kratki katanac koji se obinokoristi za izvrenje kratkih operacija kojene mogu proizvesti deadlok ili sline

    probleme. Katanac se koristi za vrijemepisanja bafera na disk da ne bi dolo doauriranja bloka za vrijeme pisanja.