Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

PRIPREMA ZA ISPIT

LEKCIJA 8
1. Definisati pojam performanse baze podataka.
Mera (brzina) kojom DBMS pruza informacije korisniku na njegov zahtev.

Razni faktori uticu : obim posla, propusnost, resursi, optimizacija, sukob

Takodje se moze definisati kao mera optimizacije koriscenja resursa da bi se povecala propusnost
I smanjio sukob I time omogucavajuci da se najveci obim posla odradi.

2.Objasniti pravilo 80/20 I kako se ono može primeniti na podešavanje


performanse aplikacije.
To pravilo je zapravo Pareto prncip koji nam kaze da ce 20% rada aplikacije izazvati 80% problema.

Ovo pravilo nam ukazuje na to da je potrebno identifikovati najproblematicnije oblasti I tu resiti


probleme zato sto cemo tako resiti 80% svih problema aplikacije. 80/20 pravilo nam kaze da od
20% napora podesavanja dolazi do 80% rezultata I zbog toga je Velika verovatnoca da ukoliko
resimo tu kriticnu oblast resavamo skoro sve probleme.
Obicno aplikacija kreira probleme oko performansi koriscenjem neefikasnih SQL upita, kodom
aplikacije ili prelaskom na izvrsno okruzenje.

3.Navesti i objasniti 3 koraka u upravljanju performansama baze


podataka? 1. Identifikovanje problema
Pracenje rada aplikacije (monitoring) nakon cega je potrebno da uocimo da li negde
imamo preduge operacije da li neko predugo drzi resurse dok drugi cekaju itd.

2. Analiziranje problema

Podatke koje smo sakupili moze analizirati ili DBA ili neki automatizovani alat koji
ce odrediti na koji nacin cemo otkloniti problem.

3. Ispravljanje problema (Optimizovati)

Nakon toga se pristupa optimizaciji koju izvodi DBA ili alat pomocu skripti ili dogadjaja
koji automatski pokrecu.
LEKCIJA 9
1.Objasniti zašto je važno konfigurisanje korišćenja memorije. DBMS koji ima
vise memorije (RAM) ce pruzati I bolje performanse, zato sto je citanje podataka iz memorije
mnogo jetiinija operacija od citanja podataka sa diska.

Potrebno je dobro konfigurisati sam DBMS kako bi imali I bolje performanse I to se u SQL server
manageru radi tako sto podesavamo minimalnu I maksimalnu memoriju koja mu je na
raspolaganju.

2.Objasniti keš podataka i keš procedure.


Kes podataka nam daje mogucnost da izbegnem I/O operacije sa discom vec da podatke citamo iz kes
memorije koja se nalazi u RAM memoriji. DBMS prvobitno uzima stranicu sa diska skladisti je u RAM-u I
nakon toga ukoliko opet neko trazi taj podatak on ce biti iscitan iz RAM memorije I promene nad tim
podacima se upisuju u kes pa tek onda na disk.

Kes procedure smesta SQL I strukture vezane za program. Pre izvrsavanja SQL upita, DBMS optimizuje
putanje pristupa podacima koji su trazeni. Ove putanje pristupa DBMS moze smestiti u kes I ponovo ih
koristiti za taj SQL upit

3.Objasniti keš za sortiranje i keš internih struktura.


Kes za sortiranje se koristi za smestanje medjurezultata sortiranja u memoriju. Mnoge operacije
zahtevaju sortiranje (group by, order, union, join) I sto se vise to sortiranje izvrsava u memoriji to su
bolje performanse.

Kesiranje internih struktura se koristi radi ubrzavanja relacionih operacija koje su DBMS-u potrebne,
dok su krajnjem korisniku nebitne.

4.Objasniti zašto se koristi keš loga baze podataka.


Kesiranje loga baze podataka se koristi za ubrzavanje modifikacije baze podataka. Prilikom modifikacije
podataka neophodni podaci za to izvrsenje su obicno u kesu, ali prilikom svake modifikacije potrebno
je to zabeleziti I logu baze.U tom slucaju mi cemo podatke upisivati direktno na disk sto je mnogo
sporije I zato imamo kesiran red za upis u log, kako bi modifikacija podataka nekog reda tabele I
upisivanje u log bili podjednake brzine moraju oba podatka biti u kesu.

5.Objasniti pražnjenje aktivnog loga (log offloading). Koji je razlog da se neke


operacije ne loguju?
Tokom vremena log fajl ce se napuniti podacima. Log offloading je process arhiviranja aktivnog loga
u arhivni log I zamena upisa loga(svih operacija nad bazom podataka) u novi aktivni log.

To je moguce uraditi ili manuelno ili automatski.

Neke operacije poput CREATE INDEX mozda ne moramo da logujemo zato sto znamo da ce to kreirati
nas DBA koji nadgleda I upravlja sistemom. On zna da je za to zaduzen I znamo da ostalim korisnicima to
nije omoguceno da cine. Na primer kada reorganizujemo indeks to je operacija koja moze samo da nam
poveca performanse i koja bi takodje bila suvisna u logu.
LEKCIJA 10
1.Navesti 5 tehnika za optimizaciju baze podataka i objasniti jednu, po
izboru. Particionisanje
Tabela bp. Je logicki rezultat skupa podataka koju su fizicki smesteni na nekom disku. Svaki DBMS
pruza razlicite mehanizme za fizicke fajlove.

1 tabela u jedan fajl 1 tabela u vise fajlova Vise tabela u jedan fajl

Raw Particije

Indeksiranje

Omogucava brzu pretragu I pristup podacima baze podataka.

Denormalizacija

Klastering

Kompresija

Reorganizacija

Velicina strane (Velicina bloka)

2.Šta je paralelizam u bazama podataka? Navesti vrste paralelizma u


bazama podataka.
Paralelizam je process koriscenja vise zadataka za paralelni pristup podacima u bazi. Particionisanje
nam moze pomoci u postizanju paralelizma. Omogucava smanjenje vremena za izvrsavanje upita.

Jedan upit moze biti podeljen na nekoliko zahteva koji obradjuje po jedno CPU jezgro(CPU
thread virtuelno jezgro)

Prosirivanjem posla duz nekoliko instanci baze podataka

Izvrsavanje paralelnih upita koju nudi DBMS, treba analizirati jer svaki ima svoj nacin kako to postize.
3.Objasniti uticaj indeksa na performanse baze podataka. Šta se dešava sa
indeksima ukoliko postoji puno dodavanja I brisanja redova iz baze
podataka? Omogucava nam : lociranje redova po vrednostima kolona, pravljenje efiksanijih
spajanja, soritranje podataka da bi se zadovoljio upit

To je mozda I najbolja tehnika za optimizaciju baze podataka zato sto se podaci brze pretraziti I pronaci.

Mogu poboljsati performanse upita, ali ce degradirati perf. Brisanja I dodavanja I mogu degradirati
perf. Azuriranja. Dolazi do fragmentacije indeksa koji moraju nakon toga da se reorganizuju ili cak da
se obnove (rebuild- brisanje I ponovno kreiranje indeksa).

4.Šta je preopterećenje indeksa? Zašto je nekada poželjno preopteretiti indekse.


Kod koje vrste indeksa ima smisla preopteretiti indeks?
Pored kolone kljuca na primer SALARY mozemo dodati preko SQL klauzule INCLUDE dodatne kolone
koje se cesto koriste uz kolonu kljuca (SALARY). Na primer to bi sigurno bilo FirstName I LastName. U
Where klauzuli bi pitali za odredjenu platu I kao rezultat tog upita mozemo vratiti platu I ime radnika.
Ovo ima smisla samo kod neklasterovanog indeksa. To je pozeljno uciniti kako ne bi morali da trazimo
dodatne podatke u nasoj tabeli ili unutar klasterovanog indeksa I time se poboljsavaju performanse.

5.Objasniti obe vrste deljenja stranice.


Normalna podela se obavlja na sledeci nacin:

1. Kreiranje nove prazne strane izmedju pune stranice I sledece


2. Pola unosa iz pune stranice se prebacuje na praznu
3. Podesava interne pokazivace ka obema stranica

Monotonicna podela (Izbegava trosenje prostora) se obavlja na jednostavniji nacin:

1. Kreira novu stranicu izmedju pune I sledece strane


2. Ubacuje nove vrednosti u novu stranu

6.Šta je kompresija u bazama podataka i kakav uticaj ima na performanse?


Kompresija se koristi radi smanjivanja velicine baze podataka. Podaci se kompresuju na ulazu u bazu
I dekompresuju kada se citaju.

Pozitivna strana je ta sto se stedi prostor na disku(na strani ili bloku se moze smestiti vise redova)
I potencijalno smanjeje I/O troskova zbog toga

Negativna strana je imamo dodatni CPU trosak za process kompresije I dekompresije podataka.
7.Navesti moguće uzroke odsustva fizičke organizacije baze podataka? Čemu
služi naredba REORG? Da li se prilikom izvršavanja naredbe baza zaustavlja ili
ne?
Dosta je skupo, odredjeno smestanje fajla je cesto tesko, iako moze povecati bezbednost I
dostupnost (RAID tehnologije).
Radi ispravljanja neorganizovanih struktura koristimo naredbu REORG koja podatke koji su razbacani
na disku prikuplja i sabija tako da se nalaze jedan do drugog. Moguce je raditi i OFFLINE I ONLINE
REORG.

Originalni podaci su onlajn i koriste ih korisnici dok se kopija tih podataka reorganizuje i nakon toga se
ta kopija postavlja na mesto originala sa dodatnim vrednostima koji su se desili u medjuvremenu
putem loga baze podataka.

LEKCIJA 11
1.Objasniti šta je optimizator i koji mu je zadatak.
Optimizator je srce DBMS-a masina zakljucivanja koji odredjuje strategiju navigacije baze podataka.
On pronalazi najefikasniji put do podataka koje korisnik trazi. On daje informacije gde su podaci
locirani I odlucuje kako da se efikasno dodje do njih (odredjuje putanje pristupa).

Sustina je da parsuje SQL iskaz izvrsava razlicite faze optimizacije


Upit se analizira I kreiraju se putanje pristupa za kreiranje upita

2.Objasniti uticaj LIKE operatora sa „džoker“ karakterom na početku


vrednosti stringa na performanse upita.
Kada postavimo % na pocetku nas optimizator mora obraditi sve moguce redove kako bi uoci da li on
ima zadatu vrednost na kraju. Na primer firstName LIKE %ca, na ovaj nacin on ce uraditi cluster index
scan ili noncluster index scan sto ce trajati znatno duže u odnosu na sledeći upit LIKE A%ca. Kada
postavimo karakter pre % on će uraditi index seek i pronaći sve vrednosti koje počinju sa A pa će unutar
tih vrednosti tražiti onu koja se završava sa ca.

3.Objasniti suštinu procesa optimizacije upita. U kakvoj je vezi proces


optimizacije sa troškovima izvršenja upita?
Suština optimizacije jeste da smanjimo direktno čitanje podataka sa diska i njihovu obradu, već
pokušavamo da smanjimo troškove čitanja nekih podataka tako što ćemo koristiti indekse, radi
ubrzavanja tih I/O operacija. Optimizacija se bazira na troškovima upita, što znači da se putanje pristupa
i kreiraju na osnovu tih procenjenih troškova. Jetiinija putanja je i bolja.

4.Navesti moguće načine pristupa podacima u DBMS-u(operatore


pristupa).Objasniti bilo koja dva načina pristupa podacima i kada se
koriste. Operatori pristupa mogu biti: =,<,>, <>, LIKE, IN, BETWEEN, IS NULL
Operator IN predstavlja pojednostavljeni skup više upita odvojenih OR.
Position=’Manager’ OR Position=’Director’ OR Position=’Vice President’
Position IN (‘Manager’,’Director’,’Vice President’)

Zamenom višestrukog OR-a verovatno će doći do poboljšanja performansi.


Operator LIKE se mora pažljivo koristi i nikako ne bi trebalo postavljati % na početak zato što tako
optimizator mora proći kroz celu tabelu u potrazi za vrednostima.
LIKE ‘%ca’ nikako

LIKE ‘A%ca’ se moze koristiti

Operator BETWEEN se moze zameniti sa vise upita razdvojenih AND


cena BETWEEN 5 and 10

Cena>=5 AND cena <=10

Može se koristiti kada želimo da DBMS izgeneriše drugačiju putanju pristupa podacima.

5.Objasniti kako uskladištene procedure mogu da poboljšaju performanse. U


kom slučaju sortiranje ne utiče na performanse?
Uskaldištena procedura smanjuje mrežni saobraćaj i poboljšava performanse tako što sadrži više SQL
iskaza koji prolaze samo jednom kroz mrežu, u suprotnom bi svaki taj SQL iskaz morao da prolazi kroz
mrežu i to može smanjiti performanse.

Ukoliko imamo klasterovani indeks nad kolonom primarnog ključa (na primer EmployeeID)
možemo sortirati i opadajuće i rastuće i to će se izvršiti jako brzo zato što su podaci tako i
postavljeni na disku sortirani rastuće po EmployeeID i on će ih samo redom iščitavati sa diska i tako
prikazati.

LEKCIJA 12
1.Objasniti naredbe GRANT, REVOKE, WITH GRANT, kaskadni efekat
REVOKE. Grant iskaz se izdaje nad korisnikom ili više njih kako bi se izdala lista privilegija.
With grant opcija omogucava korisniku (administratoru) da preda ovlascenja drugom korisniku da
on moze dodeliti privilegije drugima.

Revoke ukida dozvolu korisniku baze podataka

Kaskadni efekat REVOKE se desava kada uradimo REVOKE nad korisnikom koji je drugima dodeljivao
privilegije za upotrebu nekog objekta baze i samim tim svi koji se nalaze ispod njega vise nece imati
pravo pristupa koja su ranije imali.

2.Objasnite koje su to privilegije nad objektima baze podataka. Dati


primer. Privilegije mogu biti: ALTER, DELETE, EXECUTE, INDEX, INSERT, SELECT, UPDATE, ALL
SELECT omogućava čitanje podataka iz tabele-pogleda
INSERT da omogući ubacivanje redova u tabelu-pogled

UPDATE da omogući ažuriranje tabele-pogleda

DELETE – da omogući brisanje redova

ALL – Da omogući selektovanje, ubacivanje, ažuriranje i brisanje redova u tabeli ili

pogledu GRANT SELECT on employees TO user;

3.Objasniti koje su sistemske privilegije.


Sistemske privilegije kontrolišu koji korisnici mogu da koriste određene funkcije DBMSa i
izvršavaju određene komande.

- Mogućnost da se arhiviraju logovi baze podataka

- Isključenje i restart servera baze podataka

- Početak praćenja (monitoring)

- Upravljanje smeštanjem

- Upravljanje kešom baze podataka

4.Objasniti uloge i grupe u bazama podataka, kao i autorizaciju na nivou uloga i


grupa.
Uloga se može koristiti da se dodeli jedna ili više privilegija korisniku. Sadrži obično više privilegija,
korisnik ih kreira.

Grupa sadrži takođe više privilegija koje možemo dodeliti korisniku i one se ne mogu menjati. Kreira
ih DBMS i nije ih moguće menjati niti brisati. To su : db_owner, db_securityadmin, db_ddladmin,
db_datareader, db_datawriter

Autorizacija je jako slična ulogama. Ukoliko budu izbačeni iz grupe svima koji su oni dodeli privilegije će
se ta prava ukinuti.

5.Kako korišćenje pogleda poboljšava sigurnost? Šta su vertikalna i horizontalna


ograničenja?
Pogled može izostavljati neke osetljive informacije.(Na primer jmbg ili platu ako su u pitanju zaposleni)

Vertikalna ograničenja, kada pogled eliminiše kolone iz osnovne tabele korišćenjem listing kolona

Horizontalna ograničenja, Kada pogled eliminiše redove iz osnovne tabele, korišćenjem WHERE

klauzule
6.Koje dve vrste enkripcije se koriste u bazama podataka? Objasniti
obe. Postoje 2 vrste:
1. U mirovanju
2. U tranzitu

Šifrovanjem u mirovanju se branimo od njuškanja baze podataka u pozadini. Naravno neophodno je


imati tradicionalne metode autentifikacije i autorizacije korisnika baze, ali ukoliko haker to probije
važno je da su podaci šifrovani i da bez ključa ne može doći do originalnih podataka. Nekada nije
neophondo sve podatke šifrovati već samo id korisnika i njegovu lozinku i bekap podataka.

Šifrovanje u tranzitu se obavlja da se zabrani njuškanje mrežnih paketa. Ako su podaci šifrovani pre
slanja preko mreže i dešifrovani nakon prijema, onda je zaštićen paket duž putanje. Bez ključa podaci
se ne mogu pročitati iako ih neko presretne. To je najčešće podržano korišćenjem DBMSa.

LEKCIJA 13
1.Šta je pun, a šta inkrementalni bekap? Koje su prednosti a koje mane jednog i
drugog?
Pun bekap je kopija svih podataka u objektima baze podataka u vreme kada je kopija
slike(bekap) pokrenuta.

Prednost punog bekapa je ta što se oporavak izvršava brže, a mana je ta što se duže izvršava
bekap odnosno čuvanje baze podataka na disk zato što i zauzima više prostora.

Inkrementalni bekap sadrži samo podatke koji su se promenili od poslednjeg punog ili
inkrementalnog bekapa.

Prednost je brže izvršavanje bekapa odnosno čuvanje podataka bp. (zauzima manje prostora na disku) ,
a mana je ta što se duže izvršava oporavak. (isti red se može više puta menjati)

2.Koje su dve opcije za oporavak indeksa? Objasniti.


Moguće je da neki DBMS zahtevaju bekapovanje indeksa, dok je kod drugih to opciono.

Ukoliko bekapujemo podatke kreiranog indeksa prilikom oporavka on će moći brže krenuti u rad, ali to
će zauzimati i neki prostor na disku.

Ukoliko samo sačuvamo definiciju indeksa i to oporavimo on će sam od podataka iz tabele kreirati svoj
B tree ponovo samo što će to potrajati malo duže od prethodnog rešenja.

3.Objasniti oporavak “do trenutnog”.


On se radi zbog kvara na disku i u tom trenutku tražimo poslednji bekap da se on oporavi, sledeći korak je
da se prođe kroz log baze i da se izvrše sve zapisane promene do trenutka kada radimo oporavak. Ukoliko
nemamo bekap moguće je oporavak uraditi koristeći log.
4.Objasniti oporavak “do određenog trenutka”
Obično se radi zbog neke loše transkacije(problem u aplikaciji).

Ovaj oporavak uklanja efekat loše transakcije i vraća sistem obično u stanje pred njeno izvršavanje tako
što se traži najbliži bekap i od njega do tog trenutka izvršavamo sve promene iz loga kako bi vratili bazu
u stabilno stanje koje je bilo pre izvršenja loše transakcije.

LEKCIJA 14
1.Organizacija je odlučila da kupi RAID. Koje nivoe biste preporučili kao
pogodne za korišćenje u bazama podataka? Objasniti zašto.

RAID-0

Podela podataka na trake(podaci su podeljeni duž diska), nema redudans


Performanse veoma dobre, otkaz diska rezultuje gubitak podataka

RAID-1

Preslikavanje podataka, podaci se upisuju na dva ili vise I diska


Citanje je brže nego upis, pruža redudantne podatke I pri otkazu podaci nisu

izgubljeni RAID-01

Podaci su podeljeni duž diska I plus imaju redudantne podatke.

Performanse veoma dobre I pri otkazu podaci nisu izgubljeni

2.Objasniti kako se podaci kategorišu po temperaturii kako to utiče na


odluku koje uređaje koristiti za smeštanje podataka?

Vruće, Tople, Hladne i Uspavane podatke

Vruć podataka zahteva dosta I/O operacija I zahteva veliku dostupnost, moze se staviti na uredjaje
koji nude visoke performanse, pouzdanost, napredne funkcije I velike kapacitete (RAID, SSD)

Toplim podacima se redje pristupa I cesto se vise cita nego sto se modifikuje. Jetiiniji disk sa dobrim
performansama I pouzdan. (SATA I SCSI)

Hladnim podacima se ne pristupa cesto. Takvi podaci treba svejedno da budu na uredjajima za
skladistenje Kojima se direktno pristupa. NAS (Network atached Storage) odvojeni uredjaj koji sa nalazi
u nasoj racunarskoj mrezi cija je jedina svrha cuvanje podataka.
Uspavani podaci su oni Kojima se nije pristupalo duze vreme I ciji je model podataka stabilan. Oni se
mogu cuvati na nekim offline sistemima za skladistenje podataka, kao sto su opticki diskovi.

You might also like