1
1/22
SISTEMI ZA UPRAVLJANJE
BAZAMA PODATAKA (SUBP)
Tema:
2/22
Sistem za upravljanje bazom podataka (SUBP)Sistem za upravljanje bazom podataka (SUBP)
SUBP je programski proizvod koji omogućava efikasno:� formiranje,� korišćenje i� menjanje BP.
Da bi mogao izvršavati ove zadatke, SUBP:1. je zasnovan na nekom teorijskom modelu podataka,2. podržava programske jezike za:
- definisanje strukture i uslova integriteta BP,- selekciju i izmene sadržaja BP,
2
3/22
Sistem za upravljanje bazom podataka (SUBP)Sistem za upravljanje bazom podataka (SUBP)
3. Poseduju mehanizme za:
- upravljanje transakcijama,- zaštitu od neovlašćenog korišćenja,- zaštitu od uništenja,- obezbeđenje performantnog korišćenja BP,- upravljanje distribuiranim delovima BP.
Modeli podataka i programski jezici (jezici baza podataka) predstavljaju posebne teme.
4/22
Upravljanje transakcijamaUpravljanje transakcijama
� U bazi podataka se, preko programa, registruju rezultati nekih poslova koji se obavljaju u realnom vremenu. Primer: Ako u nekom bankarskom IS korisnik želi da prebaci novac sa jednog
računa na drugi, tada će se ova logička jedinica posla obaviti na sledeći način:
Učitaj iznosp za prenos;
Nađi račun R1 sa koga se iznosp skida;
Upiši iznosR1 – iznosp na račun R1;
Nađi račun R2 na koji se iznosp stavlja;
Upiši iznosR2 + iznosp na račun R2.
� Svaka operacija nad bazom može da menja njeno stanje, ali je za korisnika od značaja samo ukupna promena koju izaziva logička jedinica posla.
3
5/22
Upravljanje transakcijamaUpravljanje transakcijama
� Transakcija je niz operacija nad bazom podataka koja odgovara jednoj logičkoj jedinici posla.
� U situaciji kada više programa istovremeno (konkurent-no) zahteva pristup istim podacima ovi zahtevi mogu biti konfliktni te ih SUBP mora razrešiti i tako sprečiti neželjene interference programa.
� Upravljanje transakcijama treba da obezbedi konzistent-no stanje BP u uslovima konkurentne obrade podataka.
Ako jedan program učita neke podatke, a drugi ih odmah nakontoga izmeni u BP, prvi će program koristiti netačne podatke!
6/22
Upravljanje transakcijamaUpravljanje transakcijama
80080080010001000iR u rad. podr. T2
50050050050010001000iR u rad. podr. T1
piši iRpostavi
iR=iR-200čitaj iRT2
piši iRpostavi
iR=iR-500čitaj iRT1
8005001000100010001000iR u BP
4
7/22
Upravljanje transakcijamaUpravljanje transakcijama
� Rešenje problema se traži u zaključavanju.
� Zaključavanjem, transakcija sprečava druge transakcijeda pristupe tim podacima.
� Deo BP koji se zaključava može biti:– skup pojava TE ili TP,– određene pojave nekog TE ili TP,– samo jedna pojava,– samo deo jedne pojave.
� To je objekat zaključavanja.
8/22
Upravljanje transakcijamaUpravljanje transakcijama
� Pored ostalih naredbi, program mora sadržati i naredbezaključavanja i otključavanja
ZAKLJUČAJ iRČITAJ iRPOSTAVI iR= iR - 500UPIŠI iROTKLJUČAJ iR
� Sada će T2 početi da se izvršava tek po otključavanju iR.
� Uvođenje zaključavanja otvara dva nova problema:1. izgladnjavanje i2. uzajamno zaključavanje
5
9/22
Upravljanje transakcijamaUpravljanje transakcijama
� Izgladnjavanje je situacija kada transakcija neograničenočeka, jer stalno neka druga dobija pravo zaključavanja. Rešava se uvođenjem FIFO protokola.
� Uzajamno zaključavanje
...Zaključaj A...Zaključaj B....T2
......Zaključaj B...Zaključaj AT1
Uzajamno zaključano A i B
10/22
Upravljanje transakcijamaUpravljanje transakcijama
Tri moguća rešenja uzajamnog zaključavanja:
− transakcija traži od SUBP da izvrši sva zaključavanjaodjednom,
− linearni redosled podataka (prvo A onda B, bez obzirana redosled u programu),
− ništa se ne preduzima u cilju sprečavanja, već se uzajamno zaključavanje detektuje, pa se jedna odtransakcija vraća na početak, a druga završava.
6
11/22
ZaZašštita od neovlatita od neovlaššććenog korienog koriššććenja BPenja BP
� Rešava se pomoću mehanizama:
– operativnog sistemaUSERNAME, PASSWORD
– samog SUBP-a# SQL GRANT# SQL CREATE VIEW
� Jedan od mehanizama za zaštitu od neovlašćenogkorišćenja je podšema ili pogled. To nije i dovoljno; stoga se uvodi privilegija.
12/22
ZaZašštita od neovlatita od neovlaššććenog korienog koriššććenja BPenja BP
� Privilegije se definišu za svakog korisnika i svakielement intenzionalnog opisa BP, a odnose se nadozvolu:
– samo čitanja,– čitanja i upisivanja,– čitanja i modifikovanja,– čitanja i brisanja sadržaja BP.
� Privilegije se unose u autorizacionu tabelu, koja sadrži trojke (korisnik, element intenzionalnog opisa, privilegija).
7
13/22
ZaZašštita BP od unitita BP od unišštenjatenja
� Za zaštitu BP od uništenja, RSUBP koriste sledeće mehanizme:
– BACKUP (kopiranje BP)– RESTORE (restauracija BP)– JOURNAL (evidentiranje promena BP)– FORWARD RECOVERY (ažur.kopije BP promenama iz JOURNAL-a)– ROLL BACK (vraćanje nezavršenih transakcija na početak)
� Ključni mehanizam je vođenje journal datoteke (JOURNAL FILE ili TRANSACTION LOG).
� Tu se evidentiraju sve promene izvršene nad bazom podataka.
14/22
ZaZašštita BP od unitita BP od unišštenjatenja
� JOURNAL se dalje koristi za:– ažuriranje kopije BP promenama, pri restauraciji– vraćanju onih promena, koje su u BP izvršile nezavršene
transakcije.
Vraćanje promena je zadatak upravljača transakcijama (kaokomponente RSUBP).
Cilj tog vraćanja je stalno održavanje indeksa i tabela u usaglašenom stanju.
Ako se neka transakcija ne završi, zbog greške u programu, ili zbogpada sistema, upravljač transakcijama detektuje to stanje (čak i nakon ponovnog dizanja sistema) i automatski poništava izvršeneizmene baze podataka, koristeći JOURNAL.
8
15/22
Arhitektura RSUBPArhitektura RSUBPKorisnici DBA
Ad-hoc upitiAplikativni pr. Šema BP
Procesor upita DDL kompajler
BAZA PODATAKA
I SISTEM KATALOG
Upravljač baze pod.
Programeri
Upravljač rečnika
DML predprocesor
Progr. objektni kod
Upravljač datot.Metode pristupa
Sistemski baferi
SUBP
16/22
Arhitektura RSUBPArhitektura RSUBP
� Procesor upita Najvažniji deo SUBP koji upite transformiše u niz elementarnih instrukcija koje se prosleđuju upravljaču BP.
� Upravljač baze podataka Prihvata upite i analizira eksterne i konceptualne šeme radi detektovanja konceptualnih zapisa neophodnih da bi se udovoljilo zahtevu (proverava pravo pristupakorisnika elementima intenzionalnog opisa BP, formira i održava specijalnu tabelu sa podacima o zaključavanju objekata, ...)
� Upravljač datotekama Manipuliše datoteke koje sadrže podatke i upravlja alokacijom memorijskog prostora na disku. Uspostavlja iodržava liste struktura i indeksa definisanih u internoj šemi. Upravljanje fizičkim ulazom/izlazom podataka prepušta odgovaraju-ćim metodama pristupa koje čitaju/pišu podatke iz/u sistemski bafer.
9
17/22
Bitne funkcionalne karakteristike RSUBPBitne funkcionalne karakteristike RSUBP--aa
� Rečnik
� Funkcionalnost
� Produktivnost
� Performanse
� Distributivnost
18/22
ReReččnik podatakanik podataka
� Služi za memorisanje podataka o:– Šemi BP– Korisnicima i ovlašćenjima– Aplikacijama
• Menijima• Formama• Programima
� To su podaci o podacima (METAPODACI).
10
19/22
Tipovi reTipovi reččnikanika
� Pasivni - služi za evidentiranje podataka o objektima baze podataka(polje, struktura sloga i sl.), ali ne postoji mogućnost povezivanja tihobjekata.
� Aktivni - sadrži i podatke o vezama između objekata, te se može koristiti za analizu uticaja (“šta se sve menja ako se jedan objekatpromeni").
� Dinamički - sadrži objekte i veze ali održava i sve njihove definicje u izvršnom kodu. Ako se menja definicija objekta, automatski se prekompajliraju odgovarajući objekti.
� Distribuirani - sadrži podatke o lokacijskoj distribuciji objekata.
20/22
Idealna organizacija reIdealna organizacija reččnikanika
CASE alati
Glavni rečnik
Rečnik BP Rečnik 4GL
RSUBP 4GL software
Sve se ovde menja
logički i fizički aspekti
ažuriranje
Bitna karakteristika rečnika je da omogući “kasno povezivanje” definicije strukture podataka sa programskim kodom – u momentu izvršavanja SQL izraza.
11
21/22
FunkcionalnostFunkcionalnost
� Najveći doprinos RSUBP je nivo fleksibilnosti, kojiRSUBP nude. To je, primarno, posledica separacijefizičkih od logičkih aspekata BP.
� Mnoge izmene, kao što su:
– dodavanje nove kolone u postojeću tabelu– dodavanje, ili ukidanje indeksa– dodavanje novih tabela,
uopšte ne utiču na programe. Ne treba ih rekompilirati.Čak štaviše, te izmene se vrše dinamički, tokomizvršenja programa.
22/22
EfikasnostEfikasnost
� Za brz razvoj i implementaciju programa korisnicima stoje na raspolaganju:
– Neproceduralni jezici i – Sledeći mehanizmi:
• Ograničenja• Okidači• Procedure baze podataka• Nezavisnost programa i podataka
� Za obezbeđenje efikasne selekcije i manipulisanja sadržajem baze podataka, savremeni SUBP koriste:
– Optimizaciju upita– Metode pristupa– Različita rešenja zaključavanja.
12
23/22
PerformansePerformanse
� Optimizator upita, metode pristupa i postupci zaključavanja značajno utiču na performanse korišćenja baze podataka.
� Optimizator upita
– Suštinska komponenta za obezbeđenje performantne obrade
– U manipulacionom jeziku RMP programer zadaje zahtev koristeći intenzionalni opis baze podataka, a zadatak je SUBP da, poznajući:
• fizičku strukturu baze podataka• brojeve pojava tipova entiteta i poveznika i• raspodelu vrednosti obeležja,
odredi kako taj zahtev treba da se, na efikasan način, izvrši.
24/22
PerformansePerformanse
� Tri osnovne vrste optimizatora upita:
– Sintaksni optimizator upitaZasnovan na strukturi samog upita koju određuje programer. Međutim, sa logičke tačke gledišta isti upit može se izvršavati sa veoma različitim vreme-nima, u zavisnosti od redosleda navođenja obeležja, operatora i uslova. Programer vodi računa o optimalnosti upita.
– Optimizator zasnovan na ceniKoristi restriktivnost operatora poređenja i podatke o brojevima pojava tipova entiteta i poveznika. Svaki operator poređenja ima svoju ocenu restriktivnosti(“=“ je restriktivnije od “>=“). Kombinovanjem ocene restriktivnosti operatora sa brojevima pojava tipova entiteta i poveznika, na koje se operatori primenjuju, dobija se cena “plana izvršenja” upita.SUBP analizira više mogućih planova izvršavanja za dati upit, a realizuje najjeftiniji.
13
25/22
PerformansePerformanse
– Statistički optimizator upitaRadi na sličnom principu kao i optimizator zasnovan na ceni, ali koristi još i histograme sa raspodelom vrednosti ključa za donošenje odluke o najboljem planu izvršenja upita.Predstavljaju najbolje rešenje ali je za njihovu primenu potrebno povremeno vršiti inoviranje histograma sa raspodelom vrednosti ključa.
�Metode pristupaSUBP ili koriste usluge upravljača datotekama operativnog sistema, ili imaju svoje metode pristupa. Svi relacioni SUBP podržavaju:– serijsku organizaciju podataka (pile),– indeksnu organizaciju sa B-stablom,a neki SUBP podržavaju još i:– rasutu (hash) i– indeks-sekvencijalnu organizaciju.
26/22
DistributivnostDistributivnost
� Potreba efikasnog upravljanja i korišćenja distribuirane baze podataka diktira potrebu postojanja mehanizama, kao što su:
– distribuirani rečnik,
– dvofazni komit,
– automatski replikator,
– lokacijska transparentnost
– klijent/server arhitektura.
14
27/22