it2008 im bazepodataka it350 bazepodataka l12

27
Lekcija 12 - Zaštita baza podataka; Distribuirane baze podataka

Upload: stevan-milenkovic

Post on 10-Apr-2016

18 views

Category:

Documents


13 download

DESCRIPTION

BazePodataka

TRANSCRIPT

Page 1: IT2008 IM BazePodataka IT350 Bazepodataka L12

Lekcija 12 - Zaštita baza podataka;Distribuirane baze podataka

Page 2: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | Contents | 2

Contents

LearningObject................................................................ 3Lekcija-12-Predavanja.......................................................................................................3Zaštita baza podataka..................................................................................................... 3Davanje privilegija korisnicima; Naredba GRANT: primeri................................................4Prikaz komande GRANT u MySQL.................................................................................... 6Zaštita na nivou DBMS.................................................................................................... 7Zaštita na nivou aplikacije...............................................................................................8Bezbednosni propusti baza podataka.............................................................................. 9Distribuirane baze podataka.......................................................................................... 12Prednosti distribuiranih baza podataka..........................................................................13Postizanje efikasnosti distribuiranih baza podataka: fragmentacija podataka............... 14Postizanje efikasnosti distribuiranih baza podataka: Distribuirana obrada upita............15Postizanje efikasnosti distribuiranih baza podataka: Distribuirana obrada upita-

primer.........................................................................................................................16Postizanje efikasnosti distribuiranih baza podataka: Preneto ažuriranje........................ 20Postizanje efikasnosti distribuiranih baza podataka: Upravljanje katalogom..................21Karakteristike distribuiranih baza podataka...................................................................22Heterogeni distribuirani sistemi..................................................................................... 24Heterogeni distribuirani sistemi..................................................................................... 25Domaći zadatak..............................................................................................................26Lekcija-12-Predavanja.....................................................................................................27

Page 3: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 3

LearningObject

Lekcija-12-Predavanja

UvodOsnovna karakteristika distribuiranih sistema je velika količina poruka i podataka koji seprenose preko komunikacione mreže. Zato je glavni cilj u postizanju efikasnosti distribuiranihsistema – smanjenje mrežne komunikacije. Ovaj cilj se projektuje na sve ključne funkcijeDBMS; one moraju da se razmatraju iz novog ugla, a problemi u njihovoj realizaciji zahtevajunova rešenja.

Da bi se postigla efikasnost DDBMS-a, sve njegove komponente treba realizovati na način kojismanjuje mrežnu komunikaciju. Najznačajniji problemi koje tom prilikom treba rešiti su:• fragmentacija podataka• distribuirana obrada upita• distribuirano (preneto) ažuriranje• upravljanje katalogom• distribuirano izvršenje skupa transakcija, što uključuje konkurentnost, integritet, oporavak i

protokole kompletiranja transakcija.

U drugom delu predavanja se govori o zaštiti baza podataka koja se može realizovati na nivoubaza podataka i aplikacije.

Zaštita baza podataka

Cilj• Objasniti šta se podrazuvema pod zaštitom baza podataka

Kontrola konkurentnosti u OracleU zaštiti podataka se polazi od činjenice da je korisnik vlasnik kreirane tabele i da samo onkao vlasnik može da je koristi. Za dodeljivanje privilegije korišćenja drugim korisnicima koristise naredba GRANT koja se sastoji iz tri osnovne klauzule:

GRANT <Privilegija>ON <tabele ili pogled>TO <korisnik ili grupa korisnika>[WITH GRANT OPTION;

Privilegije mogu biti:

• SELECT• UPDATE• INSERT• DELETE

Page 4: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 4

• INDEX• EXPAND (dodavanje atributa relacije)• ALL (važi za sve navedene privilegije)• RESOURCE (omogućuje korisniku kreiranje objekata baze podataka, kao što su: tabele,

indeksi, klasteri)• DBA (obavlja administrativne zadatke, kao što su: CREATE TABLESPACE i CREATE

ROLLBACK SEGMENT)

DBA privilegijom korisnik može definisati:

• SELECT iz bilo koje tabele i pogleda,• CREATE objekata baze podataka za druge korisnike,• DROP drugih korisnika objekata baze podataka, uključujući i tabele, sinonime i linkovane

baze podataka,• GRANT varijante privilegija baze podataka,• CREATE public sinonima i linkovanje baze podataka,• EXPORT i IMPORT baze podataka.

WITH GRANT OPTION daje dozvolu davanja privilegija drugom korisniku.

Davanje privilegija korisnicima; Naredba GRANT: primeri

Cilj• Objasniti način na koji se vrši zaštita baza podataka

Davanje privilegija korisnicima: Naredba GRANT-primeriZa dodeljivanje privilegije korišćenja drugim korisnicima koristi se naredba GRANT koja sesastoji iz tri osnovne klauzule:

GRANT <Privilegija>ON <tabele ili pogled>TO <korisnik ili grupa korisnika>[WITH GRANT OPTION;

Kada se, na primer, uvedu privilegije nad tabelom RADNIK, a onda nekom drugom daprivilegija nad tom tabelom, i to korisniku PERI, piše se ovako:GRANT ON RADNIK TO PERA;Ako bi trebalo da se da nekom drugom privilegija samo za SELECT nad tabelom RADNIK, i tokorisniku VLADA piše se ovako:

GRANT SELECT ON RADNIK TO VLADA;Ukoliko bi trebalo da se nekom drugom da privilegija za UPDATE (PLATA, STIMUL) nad tabelomRADNIK, i to korisniku STEFAN piše se ovako:

GRANT UPDATE (PLATA, STIMUL) ON RADNIK TO STEFAN;Privilegije nad naredbama: SELECT, INSERT, UPDATE i DELETE se mogu davati i za poglede.

Page 5: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 5

Na primer, ako se ne želi da korisnik ALEKSANDAR ima pogled na kolone: PLATA i STIMUL,onda je bolje da se privilegije ograničavaju na pogled, a ne na tabele. Prvo se definiše pogledna tabelu RADNIK koja ne sadrži kolone: PLATA I STIMUL.

CREATE VIEW ZAPS ASSELECT SIFRAR,PREZIME,SIFRARM,RUKOV,DATUMZ,SIFRAO.FROM RADNIK;

Za davanje privilegije korisniku ALEKSANDAR nad pogledom ZAPS piše se:

GRANT SELECT ON ZAPS TO ALEKSANDAR;Može se definisati, kao primer, i pogled nad tabelom RADNIK koja daje podatke samo o onimzaposlenima koji rade u istoj šifri odeljenja u kojem radi i osoba koja koristi pogled.

CREATE VIEW IMERAD ASSELECT *FROM RADNIKWHERE SIFRAO IN(SELECT SIFRAOFROM RADNIKWHERE PREZIME = USER);

USER definiše ime prijavljenog korisnika. Ako MARIĆ, koji je u odeljenju 10, pristupio pogledumože videti samo zaposlene u odeljenju 10. Ovim pogledom može se dati korisniku MARIĆprivilegija da vrši, npr, ažuriranje na sledeći način:

GRANT SELECT, UPDATE ON IMERADTO MARIĆ;

Ako neki zaposleni pređe u drugo odeljenje (polje SIFRAO se menja), novi rukovodilacautomatski dobija pristup podacima, dok ga stari rukovodilac gubi.

Kada treba poništiti privilegije koristi se klauzula REVOKE. Npr, ako se želi oduzeti privilegijakorisniku ALEKSANDAR za ubacivanje podataka u tabelu RADNIK, to se piše:

REVOKE INSERTON RADNIKFROM ALEKSANDAR;

Privilegije se mogu dati određenom čoveku (korisniku) ali se mnogo češće daju grupi ljudi. Tagrupa ljudi se često naziva rola ili grupa korisnika. Davanje dozvola rolama je uobičajenoali nije obavezno. Međutim, kada se koriste role, neophodno je imati način da se korisnicidodele odgovarajućim rolama.

Dodeljivanje privilegija odnosno odgovornosti koje imaju pojedini korisnici ne može omogućitisam DBMS ili aplikacija koja radi nad bazom podataka već se ono mora odraditi ručnimprocedurama i objasniti korisnicima u toku obuke za korišćenje sistema. Zadatak DBMS je daupravlja obradom prava i odgovornosti.

Page 6: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 6

Prikaz komande GRANT u MySQL

Cilj• Prikaz komande GRANT u MySQL

Prikaz komande GRANT u MySQLKako bi kreirali novog korisnika u SQL tabuPHPMyAdmin-a možemo da koristimo komanduCREATE USER zatim upisujemo imekorisnika pa oznaku @ a nakonoznake @ stavljamo sa kogservera korisnik može da pristupi. Nakon ovog delal sledeci INDENTIFIED BY što označavakomandu za definisanje šifre korisnika nakon toga stavljamo pod apostrofe sifru koju želimozakorisnika

Kako bi novom korisniku dodelili privilegije potrebno je da upotrebimo GRANT komandu. Usledećem primeru dodelićemo sve privilegije korisniku novikorisnik nad svim bazama. Ukolikoumesto* . * stavimo ime baze privlegije će važiti samo za tu bazu.

Primer dodeljivanja svih privilegija na određenu bazu:GRANT ALL PRIVILEGES ON imebaze TO ‘novikorisnik’@’localhost’;Nakon dodeljivanja privilegija potrebno je osvežiti prilegije korisnika. To možemo uraditi sakomandom FLUSH PRIVILEGES;

Page 7: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 7

Zaštita na nivou DBMS

Uvodne napomenePrava korisnika se mogu definisati na više nivoa: na nivou operativnog sistema, mreže, Webservera, DBMS i aplikacije.

Ovde će biti reči o zaštiti na nivou DBMS.

Cilj• Objasniti način zaštite baza podataka na nivou DBMS

Zaštita na nivou DBMSGeneralni model zaštite na nivou DBMS je prikazan na sledećoj slici.

Slika: Generalni model zaštite na nivou DBMS-a

Kada se korisnik prijavi na bazu podataka, DBMS ograničava akcije korisnika na dozvolekoje su definisane za korisnika ili dozvole koje su definisane na nivou rola koje su korisnikudodeljene. Određivanje da li je neko zaista onaj za kog se deklariše, je generalno veoma težakzadatak. Svi komercijalni DBMS koriste verifikaciju korisnika uz pomoć username i passworda itakva zaštita je sasvim dovoljna ukoliko korisnik svoj password čuva samo za sebe.

U sledećoj tabeli su date smernice kojima se može osigurati zaštita sistema baze podataka.

Page 8: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 8

Tabela: Smernice za zašitu baza podataka na nivou DBMS.

Zaštita na nivou aplikacije

Uvodne napomenePrava korisnika se mogu definisati na više nivoa: na nivou operativnog sistema, mreže, Webservera, DBMS i aplikacije.

Ovde će biti reči o zaštiti na nivou aplikacije.

Cilj• Objasniti način zaštite baza podataka na nivou aplikacije

Zaštita na nivou aplikacijeZaštita na nivou DBMS se može proširiti i zaštitom na nivou aplikacije. Generalno, uvek prvotreba obezbediti zaštitu na nivou DBMS pa ako se proceni da ona nije adekvatna, treba jojdodati i zaštitu na nivou aplikacije.

Zaštitu na nivou aplikacije se može objasniti na primeru Internet aplikacija kod kojih se zaštitanajčešće obezbeđuje preko Web servera. Izvršenje aplikacija na Web serverima predstavljanačin da se osetljivi podaci ne prenose kroz mrežu i na taj način zaštite. Pretpostavimo da jeWeb aplikacija pisana tako da se na klik korisnika na stranici brovsera prema Web serveru azatim i prema DBMS šalje sledeći upit:SELECT *

Page 9: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 9

FROM EMPLOYEE;

Ako se politikom zaštite na nivou aplikacije korisniku dozvoljava da pristupi samo svojimsopstvenim podacima, Web server bi mogao da doda sledeću WHERE klauzulu.SELECT *FROM EMPLOYEEWHERE EMPLOYEE.Name = ’<% = SESSION ((„EmployeeName“))%>’;

U ovakvom upitu će Web server u WHERE kluzuli popuniti ime zaposlenog.

Ovakvu zaštitu ne mora da obezbedi Web server već ona može biti realizovana krozaplikativne programe ili napisana kao store procedura ili triger i izvršena od strane DBMS uodgovarajućem trenutku.

Bezbednosni propusti baza podataka

Cilj• Bezbednosni propusti baza podataka

Bezbednosni propusti baza podatakaMnoštvo raznovrsnih podataka koji se čuvaju i obrađuju na računarima se prenosekomunikacijskim putevima i zahteva efikasnu zaštitu. Samo uništenje podataka, njhovoneovlašćeno modifikovanje ili dolazak u ruke neovlašćenim osobama ili organizacijamamože često imati vrlo teške posledice. Dodatno problem je izražen kod nekih organizacijakao što su banke, vojska, pravosuđe, medicinske orgnizacije i druge. Uspešan napad možeizazvati ogromne finansijske štete kompaniji i da naruši korporativni ugled. Najčešće metenapada su transakcije bazirane na web okruženju koje kompanijama ugrožavaju kredibiliteti odnose sa klijentima. Niko nije imun na napad. Svi napadi su deo života u 21. veku gdedominira Internet. U poslednjih šest godina, uključujući i 2012, kompromitovano je višeod 900 miliona zapisa. Do krađa podataka u 90% slučaja dolazi zbog slabo zaštićenih iliukradenih identifikacionih podataka, ubacivanjem SQL koda i prilagođavanjem zlonamernihprograma. Takvi rizici ugrožavaju organizacije i pokazuju značaj zaštite vrednih podataka.

Najopasnije pretnje su zapošljeni unutar firme, posebno oni privilegovani. Dešava se daotpušteni zapošljeni interne podatke proslede konkurenciji ili im neka osoba izvan firme platida proslede te podatke. Takvim vrstama napada je jako teško ući u trag. Oni se nazivajuhaktivistima. U Verizonovom izveštaju se navodi da otprilike polovina firmi gubi ključne ipoverljive podatke putem internih napada, a većina tih firmi, što možda i najviše zabrinjava,takav napad ne otkrije dok ne bude prekasno. Izveštaj Verizona[VERI] je rezultat analize 854hakerskih napada širom sveta tokom kojih je ukradeno 174 miliona podataka.Svako poslovno okruženje ima za cilj da zaštiti podatke svojih klijenata. Neophodno je štititiarhivirane podatke koji se nalaze na računarima zaposlenih ili na nekim drugim medijima.Kako bi bili sigurni da su podaci zaštićeni treba ispuniti dva uslova. Prvi uslov je upotrebapouzadnih kriptografskih mehanizama, a drugi precizno definisani menadžment pristupakriptografskim ključevima.Kada se u medijima ili u razgovoru „običnih“ korisnika računara pomene reč hacker, prvaasocijacija jeste da je to „neki manijak koji sedi za računarom 24 časa dnevno smišljajućikako će da pokvari tuđi računar i na kraju isto sprovede u delo“. Neupućenost ljudi u ovumateriju izaziva strah. Naši preci su se plašili munje i groma, a danas se u 21. veku ljudi plašehacker-a i imaju predrasude o njima, a ne umeju da objasne zašto.Kao što u svakom poslu

Page 10: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 10

ima loših i dobrih radnika, tako se i u hacker-skom zanatu pojavljuju „dobri“ i „loši momci“ kojikorisnicima računara mogu ulepšati ili zagorčati život pred monitorom.

Vrste napada na baze podataka

Napadi koji se izvršavaju na baze podataka mogu biti spoljašnji i unutrašnji. Spoljni napadina baze podataka izvode hakeri koji dolaze sa eksterne mreže, oni deluju na zaštitni zidposlovnog okruženja s ciljem da prođu kroz njega i dođu do bitnih informacija ili da narušeoperativnost sistema. Zaštita unutar poslovnog okruženja postaje jedna od najvažnijih stvariprilikom zaštite baza podataka. Taj vid zaštite je izuzetno važan zbog korisnika koji imajupristup mrežnim resursima iznutra. Kada dođe do takvog vida pretnje, tada pretnje ne dolazesamo spolja već i iznutra od strane zapošljenih koji imaju pristup bitnim podacima pri čemu jeteško definisati preventivno polje zaštite. Tada zaštitni zid nije od neke koristi. Prilikom zaštitepodataka iznutra, mora se znati ko može imati pristup kom delu baza podataka.U daljem tekstu biće prikazane najkritične pretnje, kao i detaljna objašnjenja i predlogmogućih rešenja. Spisak je preuzet sa sajta GTD-a (Global terrorism database). [CODEP]

1. Zloupotreba preterane privilegije (excessive privilege abuse) se javlja u slučajukada se korisnicima ili aplikacijama odobre privilegije za pristup bazi podataka, pa setakve privilegije zloupotrebe. Kao primer možemo uzeti naš univerzitet. Administratorna univerzitetu ima sposobnost da izmeni informacije o raznim informacijama kako ozaposlenima tako i o studentima. Ukoliko bi došlo do zloupotrebe privilegija, na primer ubazi bi mogla da se izmeni ocena studenta. Kako bi se sprečila zloupotreba zbog preteranihprivilegija, može se uvesti kontrola pristupa na nivou upita. Ona se odnosi na neki mehanizamkoji ograničava privilegije za bazu podataka na minimalni broj SQL operacija i podataka.

2. Zloupotreba legitimne privilegije je zloupotreba koja se javlja od strane legitimnogkorisnika. Na primer na fakultetu postoje podaci o ispitnim pitanjima koja se nalaze nasistemu. Ispit se formira tako što se pitanja sa testova, sa svih petnaest predavanja sakupei random listaju. Samo unošenje testova i realizacija istih se razvija preko Interneta. Ukolikozlonamerni student ima dovoljno iskustva može zaobići ograničenja i ući u bazu podataka.Snimajući podatke, student može koristiti to na ispitu. Sprečavanje zloupotrebe kada se radio legitimnom pristupu je kontrola pristupa bazi podataka koja se primenjuje ne samo naspecifične upite već i na kontekst koji se odnosi na pristup bazi podataka.

3. Do uvećavanja privilegije dolazi tako što sami napadači iskoriste ranjivost softverskeplatforme baze podataka i tako povećaju privilegije pristupa uobičajnog korisnika. Običankorisnik tada dobija privilegije administratora i samim tim mu se sva vrata otvaraju.Ranjive tačke se mogu pronaći u skladištenim procedurama, ugrađenim funkcijama,implemetacijama protokola, SQL upita. Kako bi se sprečio ovakav način upada uvode sekombinacije tradicionalnih sistema za detekciju upada i kontrola pristupa na nivou upada.Sami ISP ispituje saobraćaj i javlja o aktivnostima koje se dešavaju. Za razliku od zaštitnogzida on nema mogućnost da zaustavi saobraćaj već samo da ga detektuje i prijavi. Tada sepreuzimaju odgovarajući koraci.

4. Sami operativni sistemi sadrže ranjive tačke, i dodatni servisi koji se instaliraju u serverbaze podataka te mogu dovesti do pojave neovlašćenog pristupa, oštećenja podataka ilido odbijanja izvršenja usluge. Kako bi se sprečio napad na platformu potrebno je stalnoažuriranje softvera i sistema za sprečavanje upada. To znači da je potrebno redovno krptisistem kako bi sistem bio što sigurniji.

5. SQL injekcija je napadačka tehnika koja se koristi kako bi se ugrozila sigurnost webaplikacije koja konstruiše SQL upite iz korisnički unesenih podataka. SQL injekcija je tehnikakoja se sastoji od upisivanja odgovarajućeg teksta u polja obrasca koja aplikacija koristi usvojim SQL upitima, tako da upiti iz baze vrate podatke koje inače ne bi. Ova metoda, kao i

Page 11: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 11

većina hakerskih postupaka, počiva na metodi pokušaja i grešaka i temelji se na pogađanjustrukture SQL upita i imena atributa i tablica.Teško je reći da postoji siguran način da se spreče SQL injekcije. Kako bi se smanjileverovatnoće njihovih događaja mogu se koristiti neke od poznatih tehnika:• Proveravati ulaz• Zabraniti navodnike i escape znakove u ulazu• Koristiti ograničene parametre• Zaključavati sistem• Koristiti uskladištene procedure za pristup bazi podataka• Izolovati web server• Podesiti prijavljivanje grešaka• Enkripcija podataka

Slika: Izgled korišćenja SQL Injekcije

6. Odbijanje pružanja usluge (Denial of Service - DOS) je kategorija generalnog napadakod kojeg se budućim korisnicima ne dozvoljava pristup aplikacijama na mreži ili podacima.Odbijanje pružanja usluge može se izvesti na osnovu mnogih tehnika. DOS se možerealizovati tako što bi se iskorisitla ranjivost platforme u bazi podataka sa ciljem da se prekinerad servera. Uobičajene tehnike DOS-a obuhvataju oštećene podataka, preplavljivanja mreže,i preopterećenje resursa servera. Preopterećenje servera naročito je uobičajno u okruženjimabaze podataka. Zaštita od aktiviranja DOS zahteva preuzimanje zaštite na višestrukimnivoima. Neophodne su zaštite na svim nivoima mreže aplikacije i baze podataka.

7. Postoji sve veći broj ranjivih tačaka u oblasti bezbednosti u komunikacionimprotokolima u bazi podataka. Kao što se može i videti u GTD-u [CODEP] :" Četiri od sedambezbednosnih intervencija kod dva najnovija IBM DB2 FixPacks odnose se na ranjivosti 1protokola. Na sličan način, 11 od 23 ranjivih tačaka kod baza podataka koje su otklonjene unajnovijoj četvoromesečnoj zakrpi (patch) Oracle-a odnose se na protokole. Malverzantskeaktivnosti koje se ciljno usmeravaju na ovakve ranjive tačke mogu da variraju po obimuod neovlašćenog pristupa podacima, preko nanošenja štete podacima, pa sve do odbijanjapružanja usluge. Crv SQL Slammer2, na primer, je iskoristio slabu tačku kod Microsoft SQLServer protokola da bi iznudio odbijanje pružanja usluge. I da situacija bude još gora, nikakvizapisi o ovakvim malverzantskim vektorima neće postojati u lokalnim dnevničkim zapisimabudući da operacije protokola ne obuhvataju mehanizme upisivanje u dnevnik aktivnosti."Napad na komunikacioni protokol u bazi podataka može se preduprediti uz pomoć tehnologijekoja se naziva validacija protokola. Ona u suštini raščlanjuje saobraćaj u bazi podataka iupoređuje ga sa očekivanim. U slučaju da aktivni saobraćaj ne odgovara očekivanjima, moguse dati upozorenja i mogu se blokirati aktivnosti.

Page 12: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 12

8. Slaba autentikacija napadačima omogućava da pribave identitet legitimnih korisnikabaze podataka kada putem krađe ili na neki drugi način dobiju akreditive neophodne zaprijavljivanje.

9. Skladištenje arhiviranih baza podataka često je nezaštićeno od napada. Kao rezultat toga,nekoliko ozbiljnih previda u pogledu bezbednosti su doveli do krađa traka sa arhiviranimpodacima iz baze podataka. Kako bi se sprečilo otkrivanje podataka iz arhive svi podaci izbaze bi trebali biti šifrovani.

Distribuirane baze podataka

Cilj• Objasniti koncept distribuiranih baza podataka

Distribuirane baze podatakaSistem za upravljanje distribuiranim bazama podataka je i sam distribuiran, pa se označavasa DDBMS – distribuirani DBMS. Distribuirane baze podataka i DDBMS zajedno obrazujusistem distribuiranih baza podataka. Za obe vrste sistema koristi se i kraći termin distribuiranisistem, kada je iz konteksta jasno na koju vrstu sistema se termin odnosi.

Neke od poznatih prototipskih implementacija DDBMS-a su SDD-1 (System for DistributedDatabases Computer Corporation of America ), R* (IBM Research Lab.) i distribuirani INGRES(University of Califomia, Berkeley). Najpoznatiji komercijalni DDBMS su INGRES/STAR,ORACLE7/DDO ("distributed database option"), DB2/DDF ("distributed database facility"). Svinabrojani sistemi su relacioni, s obzirom da nerelacioni DDBMS ne mogu biti uspešni.

Osnovna karakteristika distribuiranih sistema je velika količina poruka i podataka koji seprenose preko komunikacione mreže. Zato je glavni cilj u postizanju efikasnosti distribuiranihsistema – smanjenje mrežne komunikacije. Ovaj cilj se projektuje na sve ključne funkcijeDBMS; one moraju da se razmatraju iz novog ugla, a problemi u njihovoj realizaciji zahtevajunova rešenja.

Neformalno govoreći, distribuirana baza podataka je baza podataka koja se ne nalazi u celostina jednoj fizičkoj lokaciji (na jednom računaru), već je razdeljena na više lokacija koje supovezane komunikacionom mrežom. Svaka lokacija, koja se zove i čvor komunikacione mreže,poseduje svoj sopstveni, autonomni sistem za upravljanje bazama podataka, sa sopstvenomkontrolom, upravljačem transakcija i oporavka od pada, i ostalim značajnim funkcijama, a imai svoj centralni procesor i ulazno/izlazne uređaje.

Osnovna pretpostavka za uspešnost sistema za upravljanje distribuiranim bazama podatakaje nevidljivost lokacije. Naime, ovaj sistem treba da obezbedi još jedan nivo fizičkenezavisnosti podataka: korisnik i njegov program ne treba da znaju na kojoj se lokaciji udistribuiranom sistemu nalaze podaci koji su im potrebni. Za korisnika, distribuirani sistemtreba da izgleda identično sa nedistribuiranim (centralizovanim), tj. pristup podacima trebada je isti kao da su svi podaci smešteni u lokalnom čvoru korisnika. Sistem odlučuje (neuključujući korisnika) o tome da li će potrebne podatke, ukoliko su na udaljenoj lokaciji, donetina lokalni čvor za obradu, ili će obradu preneti na udaljenu lokaciju.

Sistem distribuiranih baza podataka se može predstaviti grafom ćiji su čvorovi – lokacije,a grane – komunikacione linije. Svaka lokacija sadrži centralni procesor (CP), lokalnu bazupodataka (BP) i pripadni DBMS, kao i skup klijentskih računara. Dve lokacije su povezane akomeđu njima postoji direktna veza koja funkcioniše, ili ako postoji treća lokacija koja je sa njimau direktnoj vezi (slika “Šematski prikaz distribuirane baze podataka”).

Page 13: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 13

Slika: Šematski prikaz distribuirane baze podataka

Na različitim lokacijama, lokalni sistemi za upravljanje bazama podataka mogu biti različiti.Tada se DDBMS naziva heterogenim. Ako su DBMS na svim lokacijama isti, DDBMS se nazivahomogenim.

Prednosti distribuiranih baza podataka

Cilj• Objasniti prednosti distribuiranih baza podataka

Prednosti distribuiranih baza podatakaPrednosti distribuiranih baza podataka su:• Lokalna autonomija podataka, upavljanja i kontrole: Okruženje u kome se distribuirane

baze primenjuju, obično je i samo logički i fizički distribuirano (npr. univerzitet, fakulteti,odseci, odeljenja; centralna biblioteka, matične biblioteke, ogranci; ministarstvo, regionalnicentri, itd). Distribuiranje baza podataka kao i sistema za upravljanje njima, omogućujepojedinim grupama da lokalno kontrolišu sopstvene podatke, uz mogućnost pristupapodacima na drugim lokacijama kada je to potrebno;

• Veći kapacitet i postupni rast: Čest razlog za instaliranje distribuiranog sistema jenemogućnost jednog računara da primi i obrađuje sve potrebne podatke. U slučaju dapotrebe nadmaše postojeće kapacitete, dodavanje čvora distribuiranom sistemu je znatnojednostavnije nego zamena centralizovanog sistema većim;

• Pouzdanost i raspoloživost: Distribuirani sistemi mogu da nastave svoje funkcionisanje ikada neki od čvorova privremeno izgube funkcionalnost

• Efikasnost i fleksibilnost: Podaci su fizički blizu onome ko ih stvara i koristi, pa je znatnosmanjena potreba za udaljenom komunikacijom.

Jedan jednostavan specijalni slučaj distribuiranog sistema je klijent/server sistem. To jedistribuirani sistem u kome su neki čvorovi klijenti a neki serveri, pri čemu su na serverimasmešteni podaci (i sistemi za upravljanje podacima) a, na klijentima se izvršavaju aplikacije.

Page 14: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 14

Korisnik, odnosno aplikacija vodi računa o tome na kom serveru su smešteni relevantnipodaci, što znači da u ovim sistemima nije ostvarena nevidljivost lokacije.

Postizanje efikasnosti distribuiranih baza podataka:fragmentacija podataka

Uvodne napomeneDa bi se postigla efikasnost DDBMS-a, sve njegove komponente treba realizovati na način kojismanjuje mrežnu komunikaciju. Najznačajniji problemi koje tom prilikom treba rešiti su:• fragmentacija podataka• distribuirana obrada upita• distribuirano (preneto) ažuriranje• upravljanje katalogom• distribuirano izvršenje skupa transakcija, što uključuje konkurentnost, integritet, oporavak i

protokole kompletiranja transakcija.

Ovde će biti reči o fragmentaciji podataka

Cilj• Objasniti fragmentaciju podataka kao jedan od načina za postizanje efikasnosti

distribuiranih baza podataka

Fragmentacija podatakaPodaci u distribuiranom sistemu mogu biti podeljenii (partitioned) ili ponovljeni (replicated) ufizičkoj memoriji.

U slučaju ponavljanja podataka, jedan logički objekat može imati više fizičkih reprezentacija(veći broj kopija) na većem broju lokacija. Ponovljenost podataka povećava raspoloživostpodataka i efikasnost pristupa podacima, ali u značajnoj meri usložnjava ažuriranje podataka,koji moraju biti konzistentni u svim svojim kopijama. Složenost koju nosi sobom strategijaponavljanja podataka mora biti sakrivena od korisnika, tj. mora biti obezbeđena nevidljivostponavljanja podataka.

U slučaju deljenja podataka, logički skup podataka (skup podataka sa logičkog nivoa) treba naneki način podeliti, a zatim delove – fragmente (eventualno sa ponovljenim kopijama) razdelitipo raznim lokacijama. Logički skup podatka u relacionom sistemu je relacija, a prirodnifragment relacije (koji je opet relacija) jeste neki njen podskup definisan uslovom projekcijei restrikcije. Fragmentacija mora biti izvedena tako da se spajanjem fragmenata može dobitipolazna relacija.

Na primer, relacija, predstavljena tabelom (relacijom) IZDAVACI:

se može SQL-om podeliti na sledeće fragmente:

DEFINE FRAGMENT SRB1

Page 15: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 15

AS SELECT I_SIF, NAZIVFROM IZDAVACIWHERE DRZAVA = 'Srbija'

DEFINE FRAGMENT SRB2AS SELECT I_SIF, STATUS, DRZAVAFROM IZDAVACIWHERE DRZAVA = 'Srbija'

DEFINE FRAGMENT AM1AS SELECT I_SIF, NAZIVFROM IZDAVACIWHERE DRZAVA = 'SAD'

DEFINE FRAGMENT AM2AS SELECT I_SIF, STATUS, DRZAVAFROM IZDAVACIWHERE DRZAVA = 'SAD'

Najčešće primenjivana tehnika u obezbeđivanju očuvanja informacija pri fragmentacijipodataka jeste uvođenje sistemskih identifikatora n-torki (tzv. nametnu-tih ključeva)kao primarnih ključeva, koji se pamte uz svaki deo pojedine n-torke, i omogućuju njenurekonstrukciju. Ova tehnika je primenjena u distribuiranim sistemima R* i SDD-1.

Postizanje efikasnosti distribuiranih baza podataka:Distribuirana obrada upita

Uvodne napomeneDa bi se postigla efikasnost DDBMS-a, sve njegove komponente treba realizovati na način kojismanjuje mrežnu komunikaciju. Najznačajniji problemi koje tom prilikom treba rešiti su:1. fragmentacija podataka2. distribuirana obrada upita3. distribuirano (preneto) ažuriranje4. upravljanje katalogom5. distribuirano izvršenje skupa transakcija, što uključuje konkurentnost, integritet, oporavak i

protokole kompletiranja transakcija.

Ovde će biti reči o distribuiranoj obradi upita.

Cilj• Objasniti distribuiranu obradu upita kao jedan od načina za postizanje efikasnosti

distribuiranih baza podataka

Page 16: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 16

Distribuirana obrada upitaDistribuirana obrada upita podrazumeva distribuiranu optimizaciju kao i distribuiranoizvršavanje upita. Strategije optimizacije upita nad distribuiranom bazom podataka imajuza cilj da minimizuju cenu obrade i vreme za koje će korisnik dobiti odgovor. U troškovimaobrade najveću stavku čine troškovi mrežne komunikacije, tj. prenosa podataka kroz mrežu,dok su troškovi komumkacije sa ulazno/izlaznim uređajima i korišćenja procesora niži zanekoliko redova veličine. Zbog toga je veoma značajno, u zavisnosti od propusnosti mreže(količine podataka koje može da primi u sekundi) i vremena kašnjenja, pravilno odabratirelacije i njihove fragmente koji će biti prenošeni sa jedne lokacije na drugu u cilju obradeupita (globalna optimizacija).

Razlog za prenošenje podataka može biti to što su podaci na lokaciji različitoj od one na kojojse postavlja upit, ili što u upitu učestvuje veći broj relacija sa različitih lokacija. Izbor strategijeza izvršenje operacija na jednoj lokaciji poznat je kao lokalna optimizacija.

Ako se n relacija R1, R2,..., M koje učestvuju u upitu nalaze na k različitih lokacija l1,l2,...,lk,pri čemu je svaka relacija Ri – u celosti na lokaciji lj, onda se osnovna strategija distribuiraneobrade upita sastoji od sledeća dva koraka:• Maksimalna redukcija svake relacije na njenoj lokaciji (lokalna restrikcija i projekcija na

atribute spajanja i izlazne atribute)• Prenošenje dobijenih relacija na jednu lokaciju, ili na više lokacija, redom, na kojima je

moguće izvršiti pojedinačna spajanja i projekciju na izlazne atribute.

Za drugi korak osnovne strategije vezana je odluka o tome koje se relacije prenose i na kojelokacije. Ta odluka se donosi na osnovu procene količine podataka koji se prenose izmedulokacija u svakom pojedinačnom slučaju; izbor relacija i lokacija vrši se tako da minimizujeprotok podataka kroz mrežu.

Postizanje efikasnosti distribuiranih baza podataka:Distribuirana obrada upita-primer

Cilj• Objasniti distribuiranu obradu upita kao jedan od načina za postizanje efikasnosti

distribuiranih baza podataka na konkretnom primeru

Page 17: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 17

Distribuirana obrada upita: Primer

nalaze na lokacijama l1, l2, l3, redom, i neka se na lokaciji l1 postavi sledeći SQL upit (naćinaslove romana srpskih izdavača kao i brojeve izdanja i nazive tih izdavača):

SELECT K.NASLOV, I.NAZIV, KI.IZDANJEFROM K, KI, IWHERE I.DRZAVA='Srbija 'AND K.OBLAST='roman'AND K.K_SIF=KI.K_SIFAND KI.I_SIF=I.I_SIF;

U upitu su prisutne operacije restrikcije nad relacijama K i I, dve operacije spajanja, jedna nadrelacijama K i KI a druga nad relacijama KI i I, kao i operacija projekcije na izlazne atributeNASLOV, NAZIV i IZDANJE.

Prvi korak osnovne strategije distribuiranog izvršavanja ovog upita sastoji se u izvršavanju, nalokaciji l1, jednorelacionog upita:SELECT NASLOV, K_SIFFROM KWHERE OBLAST='roman';

Page 18: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 18

i u izvršavanju, na lokaciji l2, jednorelacionog upita:

SELECT NAZIV, I_SIFFROM IWHERE DRZAVA='Srbija';

Prvi upit proizvodi relaciju K'(NASLOV, K_SIF) na lokaciji l1, a drugi upit proizvodi relacijuI'(NAZIV, I_SIF) na lokaciji l2.

Pred drugi korak osnovne strategije postavlja se sledeći izbor:

a. Moguće je preneti relacije K' i I' na lokaciju l3 (analogno, relacije K' i KI nalokaciju l2, odnosno relacije I' i KI na lokaciju l1) i tamo izvršiti oba spajanja iprojekciju na izlazne atribute:

SELECT K'.NASLOV, I'.NAZIV, KI.IZDANJEFROM K', I', KIWHERE K'.K_SIF=KI.K_SIFAND KI.I_SIF=I'.I_SIF;

a zatim rezultat preneti na lokaciju l1.

b. Moguće je, takođe, pojedinačna spajanja vršiti na različitim lokacijama.Na primer, relacija I' može se preneti na lokaciju l3, tamo izvršiti spajanje sa relacijom KI, uzprojekciju na izlazne atribute celog upita i atribute spajanja preostalog upita:

SELECT I'.NAZIV, KI.K_SIF, KI.IZDANJEFROM I', KIWHERE I'.I_SIF=KI.I_SIF;

Neka je dobijena relacija – rezultat IKI(NAZIV, K_SIF, IZDANJE). Sada se relacija IKI možepreneti na lokaciju l1. i tamo izvršiti spajanje sa relacijom K' i projekcija na izlazne atribute:

SELECT K'.NASLOV, IKI.NAZIV, IKI.IZDANJEFROM IKI, K'WHERE IKI.K_SIF=K'.K_SIF;

(rezultat se nalazi na lokaciji l1).

Prethodni upiti spajanja tipa b) predstavljaju jednu mogućnost pojedinačnih spajanja narazličitim lokacijama. Ti upiti se mogu predstaviti parom izraza relacione algebre sa naznakomlokacije na kojoj se izvršavaju,

IKI = (I * KI) [NAZIV, K_SIF, IZDANJE] (l3)REZ = (IKI * K') [NASLOV, NAZIV, IZDANJE] (l1).

Analogne mogućnosti pojedinačnih spajanja na različitim lokacijama tipa b) opisuju se isledećim parovima izraza relacione algebre, sa naznakom lokacija:

IKI = (I * KI) [NAZIV, K_SIF, IZDANJE] (l2)

Page 19: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 19

REZ = (IKI * K') [NASLOV, NAZIV, IZDANJE] (l1),

KKI = (K' * KI) [NASLOV, I_SIF, IZDANJE] (l1)REZ = (KKI * I') .[NASLOV, NAZIV, IZDANJE] (l2),

KKI = (K' * KI) [NASLOV, I_SIF, IZDANJE] (l3)REZ = (KKI * I') [NASLOV, NAZIV, IZDANJE] (I2).

Razmotrimo efikasnost nabrojanih varijanti koraka 2 osnovne strategije distribuirane obradeupita.

Neka su veličine relacija date sa:

K (KJSIF, NASLOV, OBLAST) – 10 000 n-torkiI (I_SIF, NAZIV, STATUS, DRZAVA) – 1 000 n-torkiKI (K_SIF, I_SIF, IZDANJE, GODINA, TIRAZ) – 50000 n-torki

i neka svaka n-torka zauzima po 100 bita. Neka je, dalje, procenjeno da ima 1000 romanau relaciji K, 100 srpskih izdavača u relaciji I i 20000 srpskih izdanja u relaciji KI. Ako se jošpretpostavi da je propusnost mreže 50000 bita u sekundi, a vreme kašnjenja 0.1 sekunda,onda se za optimalnu strategiju proglašava ona koja ima minimalnu vrednost vremenakomunikacije.

t = kašnjenje + (količina podataka za prenos / propusnost), tj.t = (broj poruka * 0.1sec) + (broj bita za prenos / 50000)sec.

Primena raznih varijanti mogućnosti navedenih pod a) i b) rezultovala bi različitim ukupnimvremenima komunikacije. Na primer, u slučaju a) biće

t 0.2 + (1100*100) / 50000 = 2.4 sekunde (bez prenošenja rezultata na lokaciju l1),dok u slučaju b) dobijamo

t 0.2 + (100 + 20000)* 100 / 50000 = 40.4sec.

Jedna od varijanti b) mogla bi da bude i prenošenje relacije KI na lokaciju l2, spajanje sarelacijom I' i projekcija na atribute K_SIF, IZDANJE, NAZIV, zatim prenošenje rezultata nalokaciju l1 i spajanje sa relacijom K'. U ovom slučaju ukupno vreme komunikacije je:

t 0.2 + (70000)* 100 / 50000 = 140.2 sekunde

što je znatno više od prethodnih vremena.

Na sličan način mogu se izračunati ukupna vremena komunikacije i u drugim varijantama,pri čemu je zadatak globalne optimizacije da izabere varijantu sa najmanjim vremenskimutroškom.

Znatno poboljšanje efikasnosti može se postići primenom sofisticiranih algoritama zaizvođenje nekih operacija. Jedan od takvih algoritama, primenjen u sistemu SDD-1, odnosise na izvršenje operacije spajanja i uključuje operaciju poluspajanja (semijoin). Rezultatoperacije poluspajanja relacija R i S jednak je rezultatu spajanja tih relacija, projektovanom naatribute relacije R. Tako, ako je potrebno izvršiti spajanje relacije R (sa lokacije l1) i relacije S(sa lokacije l2), umesto da se cela relacija R prenese na lokaciju l2 i tamo spoji sa relacijom S,moguće je izvršiti sledeći niz radnji:

Page 20: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 20

• izračunati projekciju relacije S po atributu spajanja, na lokaciji l2 (rezultat je relacija TEMP1)• preneti relaciju TEMPl na lokaciju l1• izvršiti poluspajanje relacije R i TEMP1 po atributu spajanja, na lokaciji l1 (rezultat je

relacija TEMP2)• preneti relaciju TEMP2 na lokaciju l2,• izvršiti spajanje relacija TEMP2 i S po atributu spajanja, na lokaciji l2.

Ovaj niz radnji smanjuje količinu prenosa podataka samo ako je:

broj bitova (TEMP1) + broj bitova (TEMP2) < broj bitova (R),

i nije efikasan ako se spajanje izvodi po primarnom ključu relacije R koji je strani ključ relacijeS (npr. u slučaju relacija I', KI).

Postizanje efikasnosti distribuiranih baza podataka: Prenetoažuriranje

Uvodne napomeneDa bi se postigla efikasnost DDBMS-a, sve njegove komponente treba realizovati na način kojismanjuje mrežnu komunikaciju. Najznačajniji problemi koje tom prilikom treba rešiti su:• fragmentacija podataka• distribuirana obrada upita• distribuirano (preneto) ažuriranje• upravljanje katalogom• distribuirano izvršenje skupa transakcija, što uključuje konkurentnost, integritet, oporavak i

protokole kompletiranja transakcija.

Ovde će biti reči o prenetom ažuriranju.

Cilj• Objasniti preneto ažuriranje kao jedan od načina za postizanje efikasnosti distribuiranih

baza podataka

Preneto ažuriranjeKao što je već rečeno, ponavljanje podataka podrazumeva da jedan logički objekat (npr.relacija ili jedan njen fragment) mogu imati više fizičkih reprezentacija (kopija) na većembroju lokacija. Posledica ove ideje je da se, s obzirom na potrebu za konzistentnošću podatakau svim kopijama, ažuriranje jednog logičkog objekta mora preneti i na sve fizičke kopije togobjekta. Međutim, momentalno prenošenje ažuriranja na sve kopije može da onemogući (ili danedopustivo dugo odloži) uspešno izvršenje ažuriranja u slučaju da je bilo koja od lokacija upadu; time ponavljanje podataka smanjuje umesto da povećava raspoloživost podataka.

Jedan široko prihvaćeni pristup prenošenju ažuriranja oslanja se na koncept primarne kopije, isastoji se u sledećem postupku:• jedna kopija svakog ponovljenog objekta proglašava se za primarnu kopiju tog objekta, pri

čemu primarne kopije različitih objekata mogu biti na različitim lokacijama• operacija ažuriranja objekta smatra se logički izvršenom čim se izvrši ažuriranje primarne

kopije tog objekta; ažuriranje ostalih kopija je sada u nadležnosti lokacije na kojojje primarna kopija, ali se mora izvršiti pre kompletiranja transakcije. Ovaj postupak

Page 21: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 21

zahteva primenu protokola dvofaznog kompletiranja transakcije, koji se pak ne možeuspešno sprovesti ako je bar jedna relevantna lokacija u padu, što je nezanemarljivo čestslučaj. Ukoliko se dopusti ažuriranje kopija i posle kompletiranja transakcije, ne može segarantovati konzistentnost podataka u svim njihovim kopijama. Ipak, neki komercijalnidistribuirani sistemi pribegavaju tom rešenju jer puno poštovanje ažuriranja svih kopija prekompletiranja transakcije može bitno da poveća vreme obrade.

Postizanje efikasnosti distribuiranih baza podataka:Upravljanje katalogom

Uvodne napomeneDa bi se postigla efikasnost DDBMS-a, sve njegove komponente treba realizovati na način kojismanjuje mrežnu komunikaciju. Najznačajniji problemi koje tom prilikom treba rešiti su:• fragmentacija podataka• distribuirana obrada upita• distribuirano (preneto) ažuriranje• upravljanje katalogom• distribuirano izvršenje skupa transakcija, što uključuje konkurentnost, integritet, oporavak i

protokole kompletiranja transakcija.

Ovde će biti reči o upravljanju katalogom.

Cilj• Objasniti upravljanje katalogom kao jedan od načina za postizanje efikasnosti distribuiranih

baza podataka

Upravljanje katalogomKatalog je, kako je već istaknuto ranije, sistemska baza podataka koja sadrži podatke obaznim relacijama, pogledima, indeksima, korisnicima, itd, a u slučaju distribuiranog sistema,i o načinu i lokacijama na koje su podaci razdeljeni i (eventualno) ponovljeni. Sam katalog udistribuiranom sistemu može biti centralizovan (samo na jednoj lokaciji), potpuno ponovljen(na svim lokacijama po jedna kopija kataloga), podeljen (na svakoj lokacijije deo katalogakojise odnosi na objekte sa te lokacije) ili kombinovan (katalog je podeljen, ali na jednoj lokacijipostoji i jedna centralna kopija kompletnog kataloga).

S obzirom na nedostatke koje ispoljava svaki od navedenih pristupa (zavisnost od centralnelokacije, visoka cena prenošenja ažuriranja kataloga ili skup pristup udaljenoj lokaciji),implementirani sistemi koriste druge strategije. Tako, na primer, u sistemu R* svaka lokacijasadrži sledeće kataloške informacije:

• slog kataloga za svaki objekat "rođen" na toj lokaciji (tj. čija je prva kopija kreirana na tojlokaciji); ovaj slog sadrži i informaciju o tekućoj lokaciji objekta (ako je premešten)

• slog kataloga za svaki objekat koji je trenutno smešten na toj lokaciji• tabelu sinonima za svakog korisnika prijavljenog na toj lokaciji, koja preslikava sinonime

objekata, definisane iskazom kreiranja sinonima, u sistemske identifikatore objekata,jedinstvene u celom distribuiranom sistemu.

Sistemski identifikator objekta, koji se nikada ne menja (dok se objekat ne ukloni), sastoji seod identifikatora korisnika koji je kreirao prvu kopiju tog objekta, lokacije sa koje je kreirana,lokalnog imena objekta (koje mu je dao korisnik pri rođenju) i lokacije na kojoj je rođen.

Page 22: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 22

Pronalaženje objekta, kada je dato njegovo lokalno ime ili sinonim, počinje preslikavanjemlokalnog imena (automatski), odnosno sinonima (pregledanjem tabele sinonima), u sistemskiidentifikator objekta. Zatim se, prema sistemskom identifikatoru, nalazi lokacija rođenjaobjekta, pristupa joj se i u slogu koji odgovara tom objektu, pronalazi se lokacija na kojoj jetrenutno smešten. U sledećem koraku pristupa se (u opštem slučaju udaljenoj) lokaciji nakojoj je objekat smešten, i lokalnim operacijama pronalazi objekat.

Karakteristike distribuiranih baza podataka

Cilj• Objasniti koncept distribuiranihbazapodataka

Distribuirane baze podatakaDistribuirana baza podataka je baza podataka koja se ne nalazi u celini na jednom računaru,već je razdeljena na više lokacija koje su povezane mrežom.

Svaka lokacija, koja se zove i čvor mreže, ima svoj vlastiti, autonomni sistem za upravljanjebazama podataka, sa vlastitom kontrolom, upravljačem transakcija i opravka od pada, iostalim važnim funkcijama, a ima i svoj procesor i ulazno/izlazne uređaje.

Aplikacije istovremeno pristupaju i menjaju podatke na više različitih baza podataka u mreži,gde mreža može biti LAN ili WAN.

Osnovna svojstva distribuiranih baza podataka:

- Skup logički povezanih deljivih podataka- Podaci su razdvojeni na više fragmenata- Fragmenti se mogu replicirati- Fragmenti/Replikacije pripadaju lokacijama- Lokacije su povezane komunikacijskom mrežom- Podaci na svakoj lokaciji su pod nadzorom DBMS-a- DBMS na svakoj lokaciji može upravljati lokalnim aplikacijama autonomno- Svaki DBMS učestvuje u najmanje jednoj globalnoj aplikaciji.

Prednosti distribuiranih baza podataka:

- Fleksibilnost i efikasnost: Podaci su fizički blizu onome ko ih stvara i koristi. Smanjenapotreba za udaljenom komunikacijom.

- Lokalna autonomija podataka, upravljanja i kontrole. Okruženje u kojem se distribuiranebaze podataka primenjuju je i samo distribuirano (npr. fakulteti, zavodi...). Distribuiranjebaza podataka kao i sistema za upravljanje njima, omogućava pojedinim grupama da lokalnokontrolišu vlastite podatke, uz mogućnost pristupa podacima na drugim lokacijama kada je topotrebno.

- Veći kapacitet i postupni rast. Čest razlog za instaliranje distribuiranog sistema jenemogućnost jednog računara da primi i obrađuje sve potrebne podatke. U slučaju da potrebenadmaše postojeći kapacitet, dodavanje čvora distribuiranom sistemu je znatno jednostavnijenego zamena sistema većim.

Page 23: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 23

- Pouzdanost i raspoloživost. Distribuirani sistemi mogu nastaviti svoje funkcioniranje i kadaneki od čvorova izgube funkcionalnost.

Slika: Prikaz distribuiranih baza podataka

Jedan od primera za distribuirane baze podataka:

Na slici je prikazan primer koji pokazuje komunikaciju između upravljača baze podatakau distribuiranim sistemima. Upravljači bi trebali da održavaju podatke svojih baza kako biostali identični. Svako ažuriranje mora biti praćen na svim menadžerima i mora da ih tera daobavljaju slično ažuriranje.

Page 24: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 24

Slika: Prikaz primera distribuiranih baza podataka

Primer je preuzet sa članka [AMAP1997] K.Jensen-a, a više o prikazanom distribuiranommodelu možete pročitati http://cpntools.org/_media/documentation/distributeddatabase.pdf.

Heterogeni distribuirani sistemi

Cilj• Objasniti koncept heterogenih distribuiranih bazapodataka

Heterogeni distribuirani sistemiPretpostavka o homogenosti DSUBP, tj. pretpostavka da sve lokacije u DSUBP poseduju istiDBMS pokazuje se kao prejako ograničenje u današnjim uslovima, kada značajne količinepodataka i aplikacija postoje na raznim računarima, pod različitim operativnim sistemimai pod kontrolom različitih DBMS. Potreba za istovremenim pristupom ovakvim podacimaunutar jedne aplikacije, ili čak i jedne transakcije, postavlja zahtev pred proizvođače DBMS daobezbede podršku heterogenim DDBMS. To znači da, pored nezavisnosti pristupa podacimai obrade podataka od lokacije, fragmentacije, ponavljanja podataka, mašine, operativnogsistema i mrežnog protokola, heterogeni distribuirani sistem mora da obezbedi i nezavisnostod SUBP na pojedinim lokacijama.

Page 25: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 25

Postoje dva bitno različita pristupa rešavanju ovog problema. Jedan je izgradnja tzv. sistemamultibazapodataka, SMBP (multidatabasesystem). SMBP je programski sistem koji se sastojiod niza komponenti. Jedna od tih komponenti je jedinstveni jezik za kreiranje podataka imanipulisanje podacima koji su pod kontrolom heterogenih DBMS. DBMS omogućava da kroznjega korisnici i aplikacije mogu da komuniciraju sa raznorodnim sistemima.

Druga komponenta SMBP je globalni upravljač transakcija. DBMS obezbeđuje, pored lokalnihtransakcija (nad jednim SUBP), i upravljanje globalnim transakcijama. Globalne transakcije sesastoje od većeg broja podtransakcija koje se izvršavaju nad pojedinačnim (različitim) SUBP, isa njihovog aspekta se ponašaju kao lokalne transakcije.

SMBP uključuje i skup servera, po jedan za svaki lokalni DBMS, koji se ponašaju kao vezaizmeđu globalnog upravljača transakcija i lokalnog DBMS. Svaka globalna transakcija predajeglobalnom upravljaču transakcija operacije čitanja i upisa, a ovaj može da ih preda naobradu lokalnim SUBP (preko odgovarajućih servera), da odloži ili da prekine transakciju..Kada globalni upravljač transakcija odluči da kompletira globalnu transakciju, on upućujekomandu za kompletiranje lokalnim SUBP. Globalni upravljač transakcija je odgovoran iza funkcionalnost i održavanje svojstava globalnih transakcija (ACID svojstva, globalnalinearizovanost izvršenja skupa transakcija, izbegavanje ili razrešavanje uzajamnog blokiranja,oporavak od sistemskih padova).

Oblast sistema multibaza je još uvek otvorena istraživačka oblast. Osnovni cilj ovih sistema jeda kroz upravljanje globalnim transakcijama održavaju konzistentnost multibaze.

Drugi pristup heterogenim DDBMS je manje ambiciozan, ali i komercijalno zastupljeniji.Njegova suština je u izgradnji aplikativnih programa, tzv. prolaza (gateway), na primer,sistema DBMS1 prema sistemu SUBP2, koji omogućuju korisniku DBMS1 (na lokaciji l1) dakomunicira sa SUBP2 (koji je na lokaciji l2), na isti način na koji komunicira sa sistemom DBMS.

Realizacija aplikativnog programa prolaza sistema DBMS1 prema sistemu DBMS2 je unadležnosti sistema DBMS1, a program se izvršava nad sistemom DBMS2. Na primer, akoje DBMS1 – sistem Oracle a DBMS2 – sistem DB2, onda bi prolaz sistema Oracle premasistemu DB2 omogućio korisniku sistema Oracle da komunicira sa sistemom DB2, "lažno"predstavljajući sistem DB2 kao Oracle.

Aplikativni program prolaz(ateway) ostvaruje sledeće komponente i zadatke :• protokol za razmenu informacija između SUBP1 i SUBP2• relacioni server za SUBP2• preslikavanja između tipova podataka i upitnih jezika dva sistema• preslikavanje strukture kataloga sistema SUBP2 u strukturu kataloga sistema SUBP1• učešće u dvofaznom protokolu kompletiranja transakcija• doslednu primenu mehanizma zaključavanja, itd.

Heterogeni distribuirani sistemi

Cilj• Objasniti koncept heterogenih distribuiranih sistema

Heterogeni distribuirani sistemiPretpostavka o homogenosti DSUBP, tj. pretpostavka da sve lokacije u DSUBP poseduju istiDBMS pokazuje se kao prejako ograničenje u današnjim uslovima, kada značajne količine

Page 26: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 26

podataka i aplikacija postoje na raznim računarima, pod različitim operativnim sistemimai pod kontrolom različitih DBMS. Potreba za istovremenim pristupom ovakvim podacimaunutar jedne aplikacije, ili čak i jedne transakcije, postavlja zahtev pred proizvođače DBMS daobezbede podršku heterogenim DDBMS. To znači da, pored nezavisnosti pristupa podacimai obrade podataka od lokacije, fragmentacije, ponavljanja podataka, mašine, operativnogsistema i mrežnog protokola, heterogeni distribuirani sistem mora da obezbedi i nezavisnostod SUBP na pojedinim lokacijama.

Postoje dva bitno različita pristupa rešavanju ovog problema. Jedan je izgradnja tzv. sistemamultibazapodataka, SMBP (multidatabasesystem). SMBP je programski sistem koji se sastojiod niza komponenti. Jedna od tih komponenti je jedinstveni jezik za kreiranje podataka imanipulisanje podacima koji su pod kontrolom heterogenih DBMS. DBMS omogućava da kroznjega korisnici i aplikacije mogu da komuniciraju sa raznorodnim sistemima.

Druga komponenta SMBP je globalni upravljač transakcija. DBMS obezbeđuje, pored lokalnihtransakcija (nad jednim SUBP), i upravljanje globalnim transakcijama. Globalne transakcije sesastoje od većeg broja podtransakcija koje se izvršavaju nad pojedinačnim (različitim) SUBP, isa njihovog aspekta se ponašaju kao lokalne transakcije.

SMBP uključuje i skup servera, po jedan za svaki lokalni DBMS, koji se ponašaju kao vezaizmeđu globalnog upravljača transakcija i lokalnog DBMS. Svaka globalna transakcija predajeglobalnom upravljaču transakcija operacije čitanja i upisa, a ovaj može da ih preda naobradu lokalnim SUBP (preko odgovarajućih servera), da odloži ili da prekine transakciju..Kada globalni upravljač transakcija odluči da kompletira globalnu transakciju, on upućujekomandu za kompletiranje lokalnim SUBP. Globalni upravljač transakcija je odgovoran iza funkcionalnost i održavanje svojstava globalnih transakcija (ACID svojstva, globalnalinearizovanost izvršenja skupa transakcija, izbegavanje ili razrešavanje uzajamnog blokiranja,oporavak od sistemskih padova).

Oblast sistema multibaza je još uvek otvorena istraživačka oblast. Osnovni cilj ovih sistema jeda kroz upravljanje globalnim transakcijama održavaju konzistentnost multibaze.

Drugi pristup heterogenim DDBMS je manje ambiciozan, ali i komercijalno zastupljeniji.Njegova suština je u izgradnji aplikativnih programa, tzv. prolaza (gateway), na primer,sistema DBMS1 prema sistemu SUBP2, koji omogućuju korisniku DBMS1 (na lokaciji l1) dakomunicira sa SUBP2 (koji je na lokaciji l2), na isti način na koji komunicira sa sistemom DBMS.

Realizacija aplikativnog programa prolaza sistema DBMS1 prema sistemu DBMS2 je unadležnosti sistema DBMS1, a program se izvršava nad sistemom DBMS2. Na primer, akoje DBMS1 – sistem Oracle a DBMS2 – sistem DB2, onda bi prolaz sistema Oracle premasistemu DB2 omogućio korisniku sistema Oracle da komunicira sa sistemom DB2, "lažno"predstavljajući sistem DB2 kao Oracle.

Aplikativni program prolaz(ateway) ostvaruje sledeće komponente i zadatke :• protokol za razmenu informacija između SUBP1 i SUBP2• relacioni server za SUBP2• preslikavanja između tipova podataka i upitnih jezika dva sistema• preslikavanje strukture kataloga sistema SUBP2 u strukturu kataloga sistema SUBP1• učešće u dvofaznom protokolu kompletiranja transakcija• doslednu primenu mehanizma zaključavanja, itd.

Domaći zadatak

Page 27: IT2008 IM BazePodataka IT350 Bazepodataka L12

 | LearningObject | 27

Domaći zadatak1. Za svaki od 9 opisanih vrsta napada na baze podataka opisati kako bi ste se zaštitili odtakvih napada. Kako bi ste pronašli kako se zaštiti slobodno možete koristiti Internet. Domaćizadatak mora imati minimum 2 strane (font 10) teksta.2. Kreirati korisnika nad proizvoljnom bazom. Dodeliti mu sve privilegije. Snimiti sve korake.Domaći poslati predmetnom asistentu.

Lekcija-12-Predavanja

ZaključakU ovom predavanju se najpre govori o potrebama za distribucijom podataka a zatim io problemima koje ovakav način pamćenja podataka nosi. Najveći problem u ovakvomokruženju je omogućiti da se podaci dislocirani na različitim lokacija što efikasnije obrade ismanji prenos podataka kroz mrežu. U predavanju se opisane metode kojima se ovaj problemmože rešiti.

U drugom delu predavanja se govori o zaštiti baza podataka što takođe pretstavlja velikiproblem u korišćenju baza podataka. Da bi podaci smešteni u bazama podataka bili što boljesačuvani, zaštita se vrši na više nivoa.