Professional Documents
Culture Documents
Digitalne puskice
Digitalne puskice
Digitalne puskice
Baza podataka je organizovano skladiste podataka, dostupnim preko imenovanih elemenata podataka.
DBMS predstavlja softver koji omogucava korisnicima ili programerima da kreiraju, azuriraju, dohvataju I
smestaju podatke u bazu podataka. Softver je odgovoran za sigurnost, integritet i kontrolu pristupa
podacima I za optimizaciju.
•Kreiranje konceptualnih i logičkih modela podataka da bi precizno opisali vezu između elemenata
podataka u poslovnim procesima
Prihvata logicke modele od DA radi implementacije fizicki baze podataka. Razvija bazu podataka, testira,
implementira I odrzava njen rad. Bavi se I performansama Sistema kako bi ga ubrzao.
DBA Sistema (Isto kao SA podesavanje Sistema instalacija softvera, bavi se tehnickim problemima)
Modeler podataka (Isto kao DA prikuplja zahteve, analizira, kreira konceptualni i logicki model podataka)
Kreator baze podataka (Kreiranje logickog modela podataka ukoliko nema DA ili modelera podataka.
Translacija iz logickog modela u fizicki dizajn baze podataka.
Implementiranje efikasnih baza podataka pomocu indeksa fizicke strukture I njihovo mapiranje na fizicke
uredjaje.
Analiza pristupa podataka I izvrsavanje zahteva kako bi se obezbedilo efikasno izvrsavanje SQL naredbi.
5.Od čega zavisi koliko administratora baza je potrebno zaposliti? Nabrojiti bar tri aspekta.
Broja korisnika
6.Navesti i objasniti okruženja na kojima se implementira baza podataka. Objasniti posao DBA u
navedenim okruženjima.
Postoje 3 okruzenja TEST (sandbox okruzenje) , QA (Quality Assurance, provera kvaliteta) Production
Test okruzenje
Testiranje integracija
QA
Production
U produkciji se moze analizirati baza podataka koriscenje podataka I optimizovanje samog rada
baze na osnovu zelja korisnika. Odrzavanje Sistema nakon pustanja u rad
7.Objasniti računarstvo u Oblaku sa stanovišta baze podataka? Koji su problemi u poslu DBA za
administriranje baze podataka u Oblaku?
Nasu bazu podataka mozemo smestiti na udaljeni server preko servisa koji nude cuvanje te baze i bez
brige o hardveru tih racunara koji te podatke skladiste, to je posao trece strane.
Glavni problem je bezbednost podataka, jer ostavljamo podatke trecoj strani I prilikom rada sa njima te
podatke prenosimo preko nebezbednog kanala kao sto je internet do korisnika veca je sansa da dodje do
kradje tih podataka.
Dostupnost nasih podataka je takodje problem zato sto nam oni mogu reci da ce godisnje biti do 1000
minuta prekida.
LEKCIJA 2
1.Navesti faktore koji utiču na odluku o izboru DBMS-a.
Tip organizacije
Skalabilnost
Trosak
DBMS Preduzeca
DBMS Odeljenja
Poboljsanja hardvera softvera PC mogu omoguciti obavljanje zadataka na nivou DBMS preduzeca
Personalni DBMS
Jedan korisnik
Mobilni DBMS
Poveravamo bazu podataka cloud provajderu kako bi smanjili troskove odrzavanja I hardverske
opreme I ljudstva da to sami napravimo.
Grupisanje povecava dostupnost I skalabilnost tako sto se vise nezavisnih Sistema rade zajedno kao
jedan. Postoji podrska ako neka instance padne (failover)
DN (Deljeno Nista)
U slucaju kvara vlasnistvo nad podacima ide drugom sistemu. Skalabilnost je Velika.
Deljeni disk
Svi povezani sistemi dele iste disk uredjaje. Svaki system moze adresirati sve disk uredjaje.
Ne skaliraju se dobro za slabije racunare. Potrebno je imati jaci racunar poput mainframe koji moze
obradtiti ogromne kolicine posla. Ima visoku dostupnost performanse najbolje pri citanju podataka.
Mane:
Mane :
DBMS kesira podatke radi brzeg izvrsavanaj upita. Citanje direktno sa diska je skupo, odnsono znatno je
sporije, u odnosu na citanje podataka sa nekog bafera obicno RAM memorije koja mnogo ubrzava ceo
process.
Prilikom potraznje jednog programa za redom iz tabele zaposleni. Red se izvlaci sa diska I skladisti u
buffer pool I prosledjuje se programu koji je taj red trazio. Kada isti ili drugi program potrazuje isti red
nece biti potrebno ponovno citanje iz baze vec ce se podatak direktno proslediti program od strane
DBMS.
7.Koji problemi mogu da nastanu kod odluke da se instalira nova verzija DBMS-a u postojeći sistem?
Mozda ce nova verzija generisati putanje pristupa SQL koje se izvrsavaju losije nego ranije
LEKCIJA 4
1.Koji su koraci za transformaciju logičkog modela u fizički? Šta je DDL skripti čemu služi?Šta se
definiše prilikom transformacije atributa u kolone.
Razmotriti performanse kreirane baze podataka i ukoliko postoji potreba moguce je uraditi
denormalizaciju I tako ubrzati izvrsavanje upita.
DDL(Data definition language) nam omogucava da sve te zeljene korake i ucinimo. DDL skriptom taj fizicki
dizajn transliramo u bazu podataka, ona nam omogucava da kreiramo tabele, kolone, ogranicenja, tip
podataka, autoinkrementaciju, indeksiranje. Ona predstavlja skup SQL upita koji se sekvencijalno
izvrsavaju i time se ubrzava rad.
2.Kojim redosledom treba da se kreiraju kolone? Zašto je bitan redosled kolona. Objasniti.
Redosled kolona je bitan zbog logovanja,citljivosti, kao I zbog performansi upita koje radimo.
Staticke kolone
3.Objasniti šta su prostori za tabele (table spaces) ili filegoups i u kakvoj su vezi sa fizičkim fajlovima.
Da li se tabela može naći u više table spaces (filegroups)? Da li se tabela može naći u više fajlova?
Table spaces ili file groups su logicki prostori za smestanje I grupisanje tabela I indeksa na fizickom nivou.
Smestanjem tabele u file groupu omogucava administratoru bolje
upravljanje prostorom I performansama. Tabela moze biti deo samo jednog
table space, ali moze biti u vise fizickih fajlova unutar istog table space.
Indeks je struktura podataka ili tehnika koja se koristi za brzo pretrazivanje, sortiranje i pristup podacima
u tabeli.
B tree index (struktura podataka) se sastoji iz cvorova koji su medjusobno povezani. Pocinje sa korenom
stable I zavrsava se u listovima stabla. Cvorovi koji nisu listovi sadrze stranice sa opsezima vrednosti
kljuca I pokazivaca na sledeci cvor.
6.Objasniti šta je indeks i kako radi Bitmap index. Kada je pogodno koristiti ovaj indeks?
Indeks je struktura podataka ili tehnika koja se koristi za brzo pretrazivanje, sortiranje i pristup podacima
u tabeli.
Bitmap index (struktura podataka) za svaku mogucu vrednost iz kolone koja je indeksirana kreira niz
bitova duzine jednake broju redova date tabele. Ukoliko imamo kolonu pol iz tabele zaposleni
(Musko,Zensko,Ostalo) imamo 3 moguce vrednosti kolone pol I zato cemo imati 3 niza bitova duzine
jednake broju redova tabele zaposleni na primer 5. I za taj zadati primer niz za muski pol moze izgledati
ovako.
M[1,0,0,1,1] – mesto na koje je postavljena 1 predstavlja da se u tom redu nalazi vrednost Muski pol
Indeks je struktura podataka ili tehnika koja se koristi za brzo pretrazivanje, sortiranje i pristup podacima
u tabeli.
Ulazni podatak prolazi kroz neku hash funkciju(MD5,SHA-2,BLAKE) I kao rezultat dobijem hes vrednost
koju smestamo u kantice(buckets) koje su organizovane poput niza. Kada se izvrsava upit nad tom
kolonom koja ima hash indeks. Podatak iz where klauzulu ce proci kroz hes funkciju dati jedinstvenu hes
vrednost i onda cemo nju pronaci u kanticama bez potrebe da prolazimo kroz celu tabelu I tako doci do
rezultata.
Ako se odredjeni podaci cesto koriste u upitima, a njihovo izracunavanje moze biti zahtevno. Smestanjem
tih izvedenih podataka u tabelu moze poboljsati performanse I ubrzati upite koji mozda korisnici cesto
izvrsavaju. Moze nam pomoci I kod cuvanja tih podataka radi neke analize.
Klasterovani indeksi moze biti samo jedan po tabeli I to zato sto klasterovani indeks uredjuje celu tabelu
po koloni koja je indeksirana I podatke na disku organizuje po toj koloni. Ukoliko imamo primarni kljuc on
je verovatno klasterovan i kako god mi ubacivali te vrednosti ID (8,5,7,2,3,1) on ce biti I fizicki i nama
vizuelno sortiran od 1 pa na dalje.
Neklasterovani indeks za razliku od klasterovanog ima 2 fajla jedan za indekse drugi za podatke I moze
biti vise neklasterovanih indeksa po tabeli. Neklasterovani indeks pored vrednosti kolone ili vise njih koje
su indeksirane sadrzi RID koji ukazuje na originalne podatke i na taj nacin se pretraga radi kroz indeks sto
je brze I efikasnije i preko njega dolazimo do tacno onog reda koji nam je potreban iz tabele.
Redudantni Podaci – za redukovanje broja spajanja uvodimo kolonu npr. (ukupan iznos racuna)
Kombinovane tabele – za eliminaciju veze 1-1 (Tabela zaposleni I tabela adresa zaposlenog)
12.Objasniti šta je vreme poslovanja a šta sistemsko vreme u bazama podataka. Kako DBMS podržava
ova dva vremena?
Vreme poslovanja (Vreme aplikacije ili validno vreme) moze biti neki vremenski period u kojem je
odredjeni podatak validan u kontekstu poslovanja. To je neko realno vreme koje ima znacaj za nase
poslovanje.
Vreme poslovanja mozemo prikazati preko jedne tabele gde imamo period pocetka I kraja.
Sistemsko vreme se odnosi na vremenske informacije o unosenju, azuriranju ili brisanju podataka iz baze
podataka. Kolone za pracenje sistemskog vremena created_at, updated_at, deleted_at
Sistemsko vreme se prati koristeci dve tabele. Jedna tabela sadrzi trenutne podatke, a druga, istorijska
tabela, neke zastarele podatke(mozda obrisane).
Particionisanje nam omogucava fizicko razdvajanje podataka na osnovu vrednosti u odredjenoj koloni.
Omogucava nam poboljsanje performansi I omogucava paralelnu pretragu I azuriranje podataka.
14.Ukoliko indeksi poboljšavaju performanse, zašto ne kreirati sve moguće indekse za svaki slučaj?
Objasniti
Ukoliko to ucinimo dobicemo samo kontra efekat. Svakim azuriranjem ili unosenjem podataka DBMS se
stara da azurira I indekse I tim odrzavanjem indeksa stetimo performansama Sistema. Pored ovoga
indeksi zauzimaju I neki prostor na disku I ukoliko ih kreiramo previse to moze zauzeti odredjeni prostor
na disku koji kasnije moze steti performansama sistema.
LEKCIJA 5
1. Opisati šta znači akronim ACID i definisati svaku komponentu.
Atomicity svi upiti se izvrse ili se nijedan ne izvrsi. Ako ne uspe jedan deo transakcije cela transakcija se
ponistava.
Isolation transakcije su medjusobno izolovane, to znaci da izvrsavanje jedne trans. Ne sme biti vidljivo
drugim transakcijama pre nego se zavrsi
Bez zakljucavanja moglo bi doci do trenutka da 2 korisnika istovremeno menjaju podatke i time bi doslo
do narusavanja integriteta podataka ili gubljenja podataka. Zakljucavanjem podatka osiguravamo da ce
samo jedan korisnik u jednom trenutku azurirati neku kolonu ili obrisati neki red.
Optimisticko zakljucavanje – tehnika koja omogucava da se resursi nece zakljucati tokom trajanja
transakcije, vec ce pre zakljucavanja transakcije doci do provere konfilkta sa ostalim transakcijama I
ukoliko ih ima transakcija se ponistava.
Delimicno zakljucavanje - Umesto zakljucavanja celog resursa, delimicno se zakljucavaju samo delovi
resursa koji se trenutno koriste. Ova tehnika smanjuje vreme tokom kojeg resursi ostaju zakljucani, cime
se povecava stepen paralelizma i performanse se poboljsavaju.
4. Šta znači „relaciono zatvaranje“ i kakvog uticaja ima na dizajn aplikacije.
Relaciono zatvaranje se odnosi na sposobnost relacionog modela da dodje do skupa podataka putem
veza izmedju razlicitih tabela. Ovo svojstvo omogucava konzistentno I efikasno predstavljanje podataka.
II Relaciono zatvaranje je karakteristika baze podataka da kao rezultat upita vrati skup podataka.
Aplikacija mora znati kako da te redove I kolone obradjuje putem svojih funkcija i petlji.
5. Opisati, ugrubo, šta je potrebno da bi se koristio SQL u programu koji je pisan na jeziku kao što je C
ili Visual Basic?
Potreban je Database API (CLI) koji ce te podatke preneti iz baze unutar samog programa. U slucaju C ili
Visual Basic potreban nam je ODBC kako bi uspostavili vezu izmedju baze I programa I preko njega
dobijali rezultate sql upita. Nakon dobijanja rezultata nas program mora biti u mogucnosti da obradi ove
rezultate.
6. Nacrtati komponente ODBC modela i objasniti komunikaciju aplikacije sa bazom podataka pomoću
tog modela.
Drajveri baze podataka omogucavaju komunikaciju izmedju aplikacija I baza podataka. Pored instalacije
svake baze podataka instalira se i kompatiblini drajver (u odnosu na operativni sistem) koji nama
omogucava ovu komunikaciju. Tako da nasa aplikacija moze komunicirati sa vise baza ukoliko poseduje
odgovarajuce drajvere za njih, koji sql upite translira u komande prepoznate od tih baza podataka .
Drajveri implementiraju protocol za transfer upita i rezultata izmedju klijenta I baze.
Mehanizam brave nam garantuje integritet podataka. Omogucava da vise korisnika iz vise okruzenja
pristupe I modifikuju podatke u bazi podataka u isto vreme.
9. Šta je granularnost brave? Navesti moguće nivoe zaključavanja. U kakvoj vezi su granularnost brave i
konkurentan pristup?
Granularnost brava nam govori koji nivo baze zakljucavamo prilikom izvrsavanja transakcija, odnosno
stepen detalja kojim se kontrolise pristup podacima.
Njihov odnos je obrnuto proporcijalan. Visoska konkurentnost pristupa ce biti ukoliko je granularnost na
nivou reda ili kolona. Odnosno moze vise korisnika da obradjuje jednu tabelu kroz transakcije. Dok u
slucaju zakljucavanja cele baze moguce je da samo jedan korisnik obradjuje podatke kroz tu transakciju.
10. Koje vrste brava postoje? Objasniti svaku. Prikazati matricu kompatibilnosti brava.
Deljena brava
Eksluzivna brava
Ukoliko se eks. Brava uzme na redu, strain ili tabeli, ostalim procesima ili korisnicima se ne
dozvoljava citanje ili izmena istih podataka
Brava za azuriranje
Uzima se kada se podatak prvo cita pre nego sto se promeni ili obrise.
Ukoliko se podaci modifikuju ili brisu,DBMS ce unaprediti bravu za azuriranje na eksluzivnu bravu
S – deljena brava
U - brava za ažuriranje
X – ekskluzivna brava
11. Šta je istek vremena (timeout) brave. U kom slučaju i zašto se koristi taj parametar?
Mehanizam zakljucavanja u DBMSu sprecava procese da zauvek cekaju na dodelu brava dodelom isteka
vremena(lock timeout value) Koristi se u slucaju velike konkurentnosti zato sto ce drugi procesi dobiti
lock timeout value odnosno njihova transakcija ce biti prekinuta I time cemo zaobici taj dugacak period
cekanja koji bi mogao nasteti performansama Sistema I takodje sprecavamo nastanak deadlocka.
Istek vremena brave pokusava da spreci nastanak deadlocka dok je deadlock situacija kada 2 ili vise
transakcije cekaju jedna na drugu da oslobode resurse I time prave zagusenje u saobracaju.
Kada dodje do njih preko isteka vremena brave mozemo odbaciti neku od transakcija dok ce se ostale
izvrisiti do kraja
LEKCIJA 6
1.Navesti i objasniti u jednoj rečenici vrste promena koje utiču na bazu podataka.
DBMS softver – dba mora da kreira pravila I procedure za koriscenje neke nove DBMS osobine
logicki I fizicki dizajn baze podataka – Ukoliko se promeni logicki model mora se promeniti I fizicki I
Samim tim I na samu bazu podataka (tabele, relacije, indeksi)
aplikacije – Promene u bazi podataka moraju promeniti I samu aplikacij, jer u suprotnom ta promena u
bazi nema efekta I obrnuto
Fizicke strukture baze podataka – Tabele, indeke I njihove promene kroz ddl naredbe
2.Tačno ili netačno? DBA obično inicira promene u bazi podataka. Zašto da ili zašto ne?
Netacno to cini obicno sam korinsik ili programmer preko upita kroz samu aplikaciju koja je u vezi sa
bazom.
3.Zašto je teško dodati kolonu između dve postojeće kolone u tabeli koja je već kreirana?
Svaka kolona iz tabele ima svoju poziciju koja je zapisana u sys katalogu I zbog toga je nemoguce dodati
kolonu izmedju dve postojece to bi zahtevalo I fizicko premastanje svih podataka na disku sto nije
moguce. Ukoliko to zelimo da ucinimo moramo celu tabelu obrisati I ponovo je kreirati.
4.Koje su tri vrste poređenja baze podataka koje mogu da budu zahtevane pri promeni okruženja baze
podataka?
Strukutre
Podaci
5.Koji je uticaj brisanja tabele iz baze podataka?
Brisanje uklanja tu tabelu iz fizicke strukture baze podataka I uklanja ga iz fizickog I logickog modela.
6.Opisati alternativni metod promene koji može da se koristi u slučaju kada ne postoji alat za
upravljanje promenama u bazi podataka?
Moramo snimiti DDL script koji se koristi za kreiranje baze I azurirati ga blagovremeno.
Kada se objekat na visem nivou izbrise, brisu se I objekti na nizem nivou u hijerarhiji. Na primer, nas
primarni kljuc odeljenjeID se nalazi kao strain kljuc u tabeli zaposleni. Ukoliko u glavnoj tabeli obrisemo
odeljenje sa ID=10 brisu se svi zaposleni koji su pripadali tom odeljenju.
8.Zašto DBA treba da razume vezu između promene baze i povezanih promena u aplikaciji?
Promene u bazi podataka moraju promeniti I samu aplikacij, jer u suprotnom ta promena u bazi nema
efekta unutar aplikacije I obrnuto
9.Ukoliko je potrebno da se ubaci kolona između treće i četvrte kolone u tabeli koja ima 10 kolona,
opisati korake da bi se ova promena implementirala.
10.Zašto bi DBA želeo da ima mogućnost brzog poređenja strukture baze podataka?
Ova sposobnost je kljucna za efikasno upravljanje pri menjaju okruzenja, odrzavaju konzistentnosti,
uocavanju gresaka .
Lekcija 7
1.Definisati termin „dostupnosti“ baze podataka.
Imaju neke slicnosti, ali glavna je razlika u tome sto je moguce pristupiti bazi podataka sa losim
performansama, dok bazi podataka koja je nedostupna pristup nije moguc. Ukoliko su performanse lose
do tog nivoa da korisnik ne moze obavljati svoj posao ta baza je nedostupna.
4.Objasniti kako dopunski sistemi za analizu (BI i Skladišta podataka) kao i održavanje utiče na
dostupnost baze podataka.
Dopunski sistemi za analizu kao I odrzavanje uticu na dostupnost baze podataka I to moze izazvati
privremeni zastoj baze podataka ili privremenu nedostupnost samih podataka . To vreme mora biti sto
manje, jer je trosak zastoja skup u danasnje vreme.
5.Navesti koji su mogući planirani i neplanirani prekidi i čime su uzrokovani. Koji je odnos planiranih i
neplaniranih prekida u procentima (okvirno)? Koji je procenat dostupnosti visoko dostupnih sistema?
Otkaz elemenata
Degradacija performansi
Ogranicenje kapaciteta
Greska aplikacije
Povratak transakcije
Korupcija podataka
Procenat visoko dostupnih Sistema je 99,999% dostupnosti (5 minuta zastoja na godisnjem nivou)
6.Navesti bar 5 mogućih uzroka problema dostupnosti.
Korupcija podataka
Gubitak podataka
Problem sa hardverom
Problemi aplikacije
Planirani i neplanirani prekidi
Problemi sa mrezom
Greske administratora