Usmeni Flashcards

1
Q

ER model: pojam i osnovni elementi.

A

Osnovna ideja ER modela je da realan svet opisemo pomocu dva primitivna koncepta : entitet i veza. Entitet je bilo koji objekat koji moze jednoznacno da se indetifikuje. Veza je relacija izmedju dva ili vise entiteta.Osnovni elementi ER modela su entitet i tip entiteta, atribut i vrednost atributa, veze i tip veze i ER dijagram

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

EER model: pojam i osnovni elementi

A

EER model je prosireni ER model, ima iste elemente kao ER model ali sa dodatnim konceptima. Ti koncepti su :
Klasa - skup ili kolekcija entiteta, tipovi entiteta se mogu tretirati kao klase.
Podklasa i nadklasa - podklasa nasledjuje atribute i veze iz nadklase.
Nasledjivanje - kod nasledjivanja postoje 2 vrste ogranicenja, to su:
Participacija podklasa u vezi - moze biti disjunktna sto znaci da svaki entitet nadklase pripada samo jednoj nadklasi, i preklapajuca gde entitet nadklase moze da pripada vecem broju podklasa.
Drugo ogranicenje je kompletnost, koja moze biti potpuna gde svaki entitet nadklase pripada nekoj podklasi i parcijalna kompletnost gde entiteti nadklase ne moraju pripadati njenoj podklasi

Primer : disjunktna, parcijalna
Osobe mogu biti ili nastavnici ili studenti, postoje osobe koje nisu ni nastavnici ni studenti
Disjunktna, totalna gde su sve osobe ili nastavnici ili studenti
Preklapajuca, parcijalna - osobe mogu biti nastavnici ili studenti ili i jedno i drugo i postoje osobe koje nisu ni jedno ni drugo

Od osnovnih koncepata imamo i specijalizaciju : to je postupak definisanja podklasa pri cemu se krece od postojecih klasa kod kojih se traze moguce specijalizacije koje pored zajednickih osobina sadrzanih u klasi imaju svoje specificne i generalizacija :
Postupak kod koga se od vise postojecih klasa uocavanjem zajednickih osobina definise generalnija klasa

Kategorije - kategorije su nastale zbog potrebe postojanja klasa koje imaju vise od jedne nadklase. Ako se nadklase jedne podklase totalno razlikuju, nemaju isti kljuc, takva podklasa se naziva kategorija. Kod kategorija postoji selektivno nasledjivanje odnosno nasledjivanje predstavlja presek nadklasa.

Deljive klase - to su klase sa vise od jedne nadklase, obezbedjuju visestruko nasledjivanje i nasledjuju klase istog tipa (isti kljuc) i nasledjivanje predstavlja uniju

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Prevođenje ER modela u relacioni model

A

Koraci :
1. Prevođenje regularnih tipova entiteta.
2. Prevođenje slabih tipova entiteta.
3. Prevođenje veze 1:1.
4. Prevođenje veze 1:N.
5. Prevođenje veze M:N.
6. Prelikavanje viševrednosnih atributa.
7. Preslikavanje N-arnih veza.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Prevođenje EER modela u relacioni model.

A

Za prevođenje EER modela neophodna su tri dodatna koraka u odnosu na ER model. U praksi se primenjuju i ranije, odmah
nakon koraka 1 (paralelno se prevode sa
slabim tipovima entiteta).

  1. Preslikavanje veza tipa klasa/podklasa.
    Alternativa A:
    ◦ Kreirati relacije za svaku nadklasu sa svim atributima nadklase.
    ◦ Kreirati relacije za svaku podklasu sa svim atributima podklase i ključem nadklase, koji je istovremeno i ključ podklasa.
    Alternativa B:
    ◦ Kreirati relacije za sve podklase tako da sadrže sve atribute nadklase i sve atribute podklase. Primarni ključ relacije podklase je primarni ključ njegove nadklase.
    ◦ Treba uočiti da se kod ove opcije ne kreira relacija za nadklasu. Ova alternativa je moguća samo ukoliko je specijalizacija TOTALNA.
    Alternativa C:
    ◦ Kreirati jednu relaciju koja sadrži sve atribute nadklase i sve atribute podklasa i atribut tip koji svojom vrednošću određuje podklasu.
    Alternativa D:
    Slicno kao 8.c sem sto se umesto atributa TIP dodaju atributi za svaku podklasu I ovo je dobro za preklapajuce podklase.
    9.Preslikavanje deljivih klasa-primenjuje se neka alternativa iz slucaja 8.
    10.Preslikavanje kategorija- Kreira se relacija za kategoriju I relacije za njene nadklase, ako su
    kljucevi razliciiti kreira se novi kljuc koji predstavlja surogat kljuc
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

PL/SQL – pojam, namena i osnovni elemeneti.

A

PL/SQL je jezik koji predstavlja proceduralno
proširenje SQL-a.
 Kada je korisnik ograničen samo na SQL on prosleđuje
jednu po jednu naredbu DBMS-u.
 PL/SQL prevazilazi ovo ograničenje i dodaje
strukturne elemente SQL-u.
 PL/SQL predstavlja strukturni programski jezik za
ORACLE.

Osnovni ciljevi su :
Povecanje ekspresivnosti SQL-a.
 Pristup rezultatima upita korišcenjem slogova.
 Optimizacija kombinacija SQL naredbi.
 Višestruko korišcenje programskog koda.
 Smanjenje cene održavanja i izmene aplikacije.

Osnovna gradivna jedinica PL/SQL programa je blok.
 Blok predstavlja jednu logučku operaciju.
 PL/SQL program se satoji od blokova koji se mogu ugnježdavati.
 Blokovi koji predstavljaju funkcije, procedure ili pakete moraju imati ime.
 PL/SQL ima opcionu selekciu za deklaracije, obavezan deo koji sadrži PL/SQL naredbe i opcioni deo za obradu grešaka i izuzetka.
 PL/SQL program u obaveznom delu može imati SQL naredbe iz grupe DML narebi (SELECT, INSERT,UPDATE, DELETE…).
 Ali ne sme da sadrži SQL naredbe iz grupe DDL narebi (CREATE, DROP, ALTER…) umesto njih koristi funkcije iz posebno definisanih paketa.
PL/SQL program sadrži:
 deklaracije promenljivih
 naredbe dodele
 naredbe za kontrolu toka
 naredbe petlji
 pozive funkcija i procedura
 pozive trigger-a
 naredbe za obradu grešaka i izuzetaka
Promenljive se koriste za razmenu podataka između baze podataka i PL/SQL programa.
Konstante, promenljive, kursori i izuzeci koji se koriste u nekom bloku moraju biti deklarisani u DECLARE sekciji tog bloka.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Objasniti pojam trigera.

A

Trigeri su elementi šeme baze podataka, on je blok PL/SQL koda koji se izvršava kao odgovor na događaje insert, update ili delete ako je ispunjen zadati uslov. Triger se izvršava jednom pre ili posle insert-a, delete-a ili update-a
Primena trigera:
 Automatsko setovanje IDova (autonumber, surogat ključeva) i izvedenih vrednosti .
 Provera promena u podacima.
 Automatsko čuvanje starih verzija podataka
 Automatska propagacija modifikacija.
 Realizacija materijalizovanih pogleda (pogledi koji fizički postoje, fizička kopija podataka)i replikacija promena u osnovne tabele.
 Podrška za smart modifikacije pogleda .
Šta sve može da se nadgleda:
 Događaji u bazi podataka.
 Događaji koji se odnose na definiciju podataka.
 Događaji koji se odnose na manipulaciju podacima.
Granularnost trigera:
 Na nivou izraza – izvršava se kod trigera jednom, pre ili posle izraza koji je naveden.
 Na nivou vrste – Izvršava se kod trigera jednom, pre ili posle promene svake vrste

BEFORE trigeri se izvršavaju PRE DML operacije (INSERT, UPDATE, DELETE, MERGE)
*Trigerovani kod vidi stanje BP PRE/BEFORE modifikacije..
AFTER trigeri se izvršavaju POSLE modifikacije
*Trigerovani kod vidi stanje BP POSLE/AFTER izvršenja operacije.
*Ako triger generiše izuzetak, modifikacija nije završena
Ako triger može da se izvrši i kao BEFORE ili AFTER
triger, izborom tipa trigera može da se utiče na
redolsed izvršenja, tako da se on izvrši pre ili posle
drugih trigera
BEFORE ROW trigeri se izvršavaju
* Posle izračunavanja nove vrednosti vrste
* Pre nego što se vrsta zapamti u tabeli

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tipična arhitekturna rešenja za razvoj aplikacija za rad sa bazama podataka

A

Klijent je bilo koji korisnik ili program koji zeli da izvrsi odredjenu operaciju nad sistemom. Klijent interaguje sa sistemom koriscenjem prezentacionog sloja (korisnicki interfejs).
Aplikativna logika definise sta sistem radi. Namece poslovna pravila i definise poslovne procese.
Sloj za upravljanje resursima definise organizaciju podataka koji su neophodni kao podrska za aplikativnu logiku. Tipicno se radi o bazi podataka.

Jednoslojna arhitektura (prez/app log/resursi) :
Svi slojevi aplikacije su implementirani kao jedan monolitni entitet. Kompletna aplikacija se nalazi na jednom racunaru tj. Na jednoj platformi. Sve se desava na jednom mestu.

Ovo je tradicionakna arhitetkura i uključuje postojanje dva računara koji učestvuju u izvršenju aplikacije. Klijenti su međusobno nezavisni, pa za različite klijente može da postoji različiti prezentacioni sloj u zavisnosti od funkcionalnosti koje aplikacija nudi. Klijenti obično imaju vrlo ograničene mogućnosti (tanki). Klijentima su se smatrali i prosti ulazni uređaji čiji je zadatak bio da samo prikažu klijentski interfejs koji se izvršava na udaljenoj platformi (vrlo tanki klijenti). Na serveru se nalaze sve datoteke, baza podataka i komponente koje implementiraju aplikativnu logku. Baza podataka ima samo jednog klijenta i to je sloj aplikativne logike.

Troslojna arhitektura (prez + app log + resursi):
Dvoslojne arhitekture su bile popularne do trenutka kada je postalo jasno da je opterecenje na serverskoj strani moguce dodatno raspodeliti odnosno distribuirati. Osnovni problem dvoslojne arhitekture je jaka sprega izmedju aplikativne logike i izvora podataka koji aplikacija koristi. Kod troslojnih sistema tri sloja aplikacije su potpuno odvojena i u vecini slucajeva distribuirana na razlicitim platformama. Srednji sloj obuhvata kompletnu aplikativnu logiku i naziva se middleware i aplikativni server. Bolja raspodela opterecenja i bolja skalabilnost sistema.

Viseslojna arhitektura (prez sloj nije više kod klijenta) :
Web serveri se cesto ponasaju kao klijenti u situacijama kada koriste usluge drugih servera, ukljucujuci i servere baze podataka. Viseslojne aplikacije poseduju veci broj slojeva koji se mogu ponasati i kao klijenti i kao serveri. Svaki skup susednih slojeva predstavlja klijent-server uparivanje. U viseslojnim aplikacijama
svaki sloj predstavlja aplikacioni sloj (browser, web server, aplikacioni server, baza podataka..). Poslednji sloj u arhitekturi je web klijent (u vecini slucajeva Web citac ili inteligenti agent) koji inicira obradu podataka slanjem podataka Web serveru.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Tehnike za razdvajanje slojeva kod aplikacija za rad sa bazama podataka.

A

Za razdvajanje slojeva se koriste razliciti projektni obrasci:
➢ Model-View-Controller(MVC) –
▪ Model salje notifikacuje kontrolerima I pogledima kada menja stanje
▪ Pogledi zahtevaju informacje od modela na snovu kojih generisu reprezentaciju
▪ Controler moze da salje komande modelu kako bi azurirao njegovo stanje
➢ Model-View-Presenter(MVP) –
▪ Model je interfejs koji definise podatkemodel salje notifikacuje kontrolerima I pogledima
▪ Pogled je asivni interfejs koji prikazuje podatke I rutira komande
▪ Prezenter prestavlja granu izmedju pogledai modela
➢ Model-View-ViewModel(MVVM) –
▪ Model je skup klasa koje predstavljaju reprezentaciju podataka iz izvora podataka
▪ Pogled je komponenta sistema odgovorna za prezentaciju
▪ ViewModel- priprema podatke iz modela za prikaaz u pogledu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Navesti i objasniti projektne obrasce koji se koriste za modeliranje domena.

A

Za modeliranje domena se mogu koristiti 3 projektna obrasca :
1) Transaction script : Organizuje poslovnu logiku u vidu procedura pri cemu je svaka procedura zaduzena za obradu
jednog zahteva od strane prezentacionog sloja. Moze se implementirati koriscenjem procedura, grupisanjem transackija u
jednu ili vise klasa i koriscenjem command patterna. Prednost koriscenja je jednostavnost i koristi se kada je domenska
logika jednostavna, za kompleksne poslovne logike se ne preporucuje.

2) Table module : Za svaku tabelu, pogled ili upit postoji posebna instanca koja sadrzi kompletnu poslovnu logiku za
rad sa vrstama te tabele/pogleda/upita. Nije pogodan za predstavljanje kompleksne logike.

3) Domain model : Predstavlja OO model domena koji ukljucuje i podatke i poslovnu logiku. Mogu postojati objekti koji
samo predstavljaju podatke, objekti koji predstavljaju poslovnu logiku ili objekti koji sadrze i jedno i drugo.
Svaki objekat predstavlja neki od domenskih entiteta. Koristi se za kompleksne sisteme. Problem su razlike izmedju
OO modela i relacionog modela jer je neophodna stalna transformacija. Za implementaciju se koriste 2 pristupa :
1. Active record - Pored podataka i poslovne logike objekat ukljucuje i metode za rad sa relacionom bazom podataka.
Predstavlja slog u tabeli.
2. Data Mapper - Pored objekata koji sadrze podatke i poslovnu logiku postoje i posebni objekti koji su zaduzeni za
komunikaciju s bazom podataka. OO model je potpuno odvojen od baze i ne mora da bude svestan njenog postojanja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Objasniti problem Object-Relational Impedance Mismatch.

A

Skup tehničkih problema koji se javljaju u situacijama kada OO sistem treba da koristi podatke u relacionoj bazi podataka, naročito u situacijama kada je objekte i klase potrebno mapirati u šemu
relacione baze podataka.
Tipični problemi:
Granularnost – broj klasa ne odgovara broju tabela u bazi
Nasleđivanje – nije podržano u relacionom modelu
Identitet- jednakost primarnih ključeva i jednakost objekata
Asocijacije – veze između klasa strani ključevi
Navigacija podataka – veze između klasa strani ključevi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Objasniti pojam objektno-relacionog mapera.

A

O/R maper predstavlja implementaciju Data Mapper projektnog obrasca. To je tehnika koja omogucava konverziju podataka između
nekompatibilnih sistema OO aplikacija i relacionih baza podataka.
O/R maperi obezbeđuju perzistentnost objekata odnosno omogucavaju da objekti postoje nezavisno od same aplikacije.
-Prednosti korišcenja O/R mapera:
Skalabilnost
Skraceno vreme razvoja
Domain driven design
Nezavisnost od RDBMS-a
-Nedostaci O/R maper tehnologije
Performanse
Problemi prilikom mapiranja između OO modela i relacionog modela

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Navesti tipične projektne obrasce na kojima s ebazira arhitektura O/R mapera.

A

Unit of work - projektni obrazac koji omogucava O/R maperima vodjenje evidencije o svim objektima koji su izmenjeni
tokom transakcije, resavanje problema konkurencije. Ovde se izmene prosledjuju bazi podataka tek po zavrsetku transakcije

Identity map - projektni obrazac koji omogucava O/R maperima da svaki objekat moze da se ucita samo jednom u memoriju,
sve objekte ucitane u memoriju cuva u mapi i prilikom referenciranja objekata koristi se njihova instanca koja je ucitana u mapu.

Lazy load - projektni obrazac koji omogucava O/R maperima da se prilikom ucitavanja podataka ne ucitavaju svi podaci
koje objekat sadrzi nego su inicijalno ucitani samo neophodni podaci, dok se ostali ucitavaju na zahtev odnosno onda kad su potrebni

NHibernate
Glavna funkcionalnost koju Nhibernate obezbeđuje je mapiranje između .NET klasa i odgovrajucih tabela u
relacionoj bazi. Osim toga obezbeđuje mehanizme za pretraživanje i učitavanje podataka. Omogucava da se
razvijaju poslovni objekti u obliku .NET klasa. Svaki poslovni objekat je predstavljen jednom POCO .NET
klasom. To je standardna klasa koja ne nasleđuje bilo koju specijanu klasu. Nhibernate koristi XML mapping
datoteke za odgovarajuce .NET klase kako bi obezbedio podršku za CRUD operacije.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Definisati pojam transakcije, osnovne operacije I svojstva.

A

Transakcija predstavlja sekvencu SQL DML (data manipulation) naredbi koja predstavlja jednu logičku celinu.
Oracle transakciju tretira kao celinu sve dok sve izmene načinjene od strane SQL naredbi ne postanu validne ili dok ne budu poništene
Prva SQL naredba nekog programa započinje novu transakciju.
Svaka SQL naredba je sastavni deo neke transakcije.

Atomicity (Atomičnost)
◦ Princip sve ili ništa.
◦ Mora da se izvrši svaka operacija unutar transakcije ili se ne izvršava nijedna.
◦ Kada se deo transakcije ne izvrši, ne izvrši se čitava transakcija.
 Consistency (Konzistentnost)
◦ Transakcija mora da zadovolji sve definisane protokole i pravila u bilo kom trenutku.
◦ Transakcija ne sme da naruši ova pravila i sistem mora da bude u konzistentnom stanju na početku i na kraju transakcije.
◦ Ne postoje transakcije koje su poluzavršene.
◦ Transakcija prevodi DB iz jednog konzistentnog stanja u drugo.
 Isolation (Izolacija)
◦ Nijedna transakcija nema pristup nekoj drugoj transakciji koja nije završena.
◦ Transakcija ne vidi nekomitovane izmene iz drugih transakcija
◦ Svaka transakcija je nezavisna za sebe.
 Durability
◦ Kada se transakcija završi, pamti se d aje završena i ne može se
poništiti.
◦ Završene transakcije moraju da prežive bilo koji pad sistema.
◦ Komitovane izmene u bazi podataka su trajne.

COMMIT Nareba završava tekucu transakciju i potvrđuje i trajno snima modifikacije učinjene tokom trasakcije.
ROLLBACK naredba završava tekucu transakciju i poništava sve modifikacije učinjene tokom transakcije.
SAVEPOINT naredba označava i snima tekudu tačku u transakciji.

 Sve dok se promene ne potvrde (commit-uju) one nisu vidjlive ostalim korisnicima. Ostali korisnici vide podatke
u onom obliku u kome su bili pre početka transakcije.
 Naredba COMMIT poništava sve lock-ove koji su
tokom transakcije kreirani nad tabelama ili pojedinim
vrstama u tabelama.

 Transakcija se poništava u situacijama kada je izdata naredba
koja je dovela do neželjenih efekata (obrisani ili ažurirani pogrešni podaci) ili kada naredba iz određenih razloga ne
može da se izvrši ili se tokom izvršenja javi izuzetak.
 Naredba ROLLBACK bazu podataka vraća u prvobitno stanje odnosno stanje u kome se nalazila pre nego što je izvršena
prva naredba transakcije.
 To omogućava korisniku da preduzme korake koji će ispraviti uočene greške i nedostatke i da zatim ponovo pokrene transakciju.
 Ukoliko prilikom izvršavanja neke SQL naredbe dođe do greške ili pojave izuzetka Oracle automatski poništava (automatic rollback) sve efekte te naredbe.
 Automatski rollback na nivou naredbe ne utiče na
efekte prethodnih naredbi transakciji.
 Oracli automatski može da poništi neku SQL naredbu ukoliko detektuje pojavu deadlock-a u sistemu.

Naredba SAVEPOINT omogućava da se označi
(imenuje) i snimi tekuća tačka u transakciji.
 U kombinaciji sa naredbom ROLLBACK, naredba
SAVEPOINT, omogućava da se u slučaju grešaka ponište efekti samo pojedinih delova transakcije a ne čitave transakcije.
 Nazivi SAVEPOINT tačaka se mogu ponavljati više puta.
 Aktivna SAVEPOINT tačka je poziv SAVEPOINT
naredbe nakon poslednjeg poziva COMMIT ili
ROLLBACK naredbe.
 Transakcija može da ima neograničeni broj aktivnih
SAVEPOINT tačaka..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Definisati pojam nivo izolacije I objasniti na primeru Oracle DBMS

A

Nivo izolacije je sposobnost sistema da promene učinjene u jednoj operaciji učini nevidljivim za druge
operacije.
Oracle podržava 3 nivoa izolacije:
1. READ COMMITED :
Podrazumevani nivo izolacije. Ukoliko neka naredba transakcije zahteva lock koji ved drži neka druga
transakcija, naredba čeka da se oslobodi. Transakcije se izvršavaju paralelno i izmene koje vrši jedna
transakcija nisu vidljive ostalim dok sene izvrši COMMIT naredba. Vide se izmene samo koje su bile
commitovane pre početka.
2. SERIALIZABLE:
Transakcije se izvršavaju tako da izgleda kao da se izvršavaju jedna za drugom. Ako neka transakcija zahteva lock koji drži neka druga transakcija onda se ta naredba završava greškom. Vide se izmene samo koje su bile validne pre početka transakcije.
3. READ ONLY:
Poseban slučaj serializable izolacije. Transakcija čita podatke samo iz baze. Transakcija vidi izmene koje su
bile validne pre početka transakcije.

Fenomeni koji mogu da se jave kao posledica postojanja konkurentnih transakcija:
◦ Dirty read – transakcija čita podatke koje je izmenila druga transakcija koja još uvek nije komitovana
◦ Nonrepeatable (fuzzy reads) – Ukoliko transakcija pokuša da ponovo učita podatke, koje je prethodno učitala, može se desiti da ti podaci budu modifikovani ili obrisani kao posledica neke druge komitovane transakcije.
◦ Phantom reads – višestruko izvršavanje istog upita u okviru transakcije može da vraća različite rezultate (pojavljuju se novi podaci koji prethodno nisu postojali).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Definisati mehanizam zaključavanja kod relacionih DBMS-ova.

A

Mehanizam zaključivanja omogucava korišcenje baze podataka u višekorisničkom okruženju bez opasnosti da ce doci do narušavanja konzistentnosti podataka.
Oracle automatski vodi računa o mehanizmu zaključivanja.
Po završetku Oracle oslobađa sve lock-ove.
Oracle podržava dva moda zaključavanja:
1. Ekskluzivni mod – Onemogucava deljenje resursa između transakcija.
2. Deljivi mod – Omogucava deljenje resursa u zavisnosti od operacije koja se izvršava nad tim resursom.
Oracle podržava nekoliko tipova zaključavanja:
1. DML locks (row level i table level locks) – Zaključavanje sloga/skupa slogova ili sprečava DDL nad
tabelom.
2. DDL locks – štiti definiciju objekta tokom izvršavanja DDL operacija.
3. Oracle Internal Locks – potpuno automatizovani mehanizam za oracle-ve interne strukture
podataka.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Objasniti kako se obrađuju SQL upiti kod relacionih DBMS-ova.

A

?

17
Q

Objasniti pojam optimizacije upita (primer Oracle Query optimizer).

A

Optimizacija upita predstavlja aktivnost izbora efikasnije strategije izvršavanja prilikom obrade upita.Optimizacija upita se u velikoj meri bazira na postojanju statistike baze podataka. Statistika baze podataka čuva informacije o relacijama, atributima i indeksima. Postoje dva načina na koji se može vršiti optimizacija upita:
* dinamički (svaki put kada se upit izvršava) i
* statički (kada se upit prvi put prosledi na zvršenje).

Query optimizer je komponeta koja određuje optimalan plan za izvršenje SQL naredbi.
Optimizacija u tri koraka:
1. Određivanje mogucih planova izvršenja.
2. Za svaki plan se na osnovu statistike vrši procena cene ali koristi i heuristiku pravila a parametri su:
 Procenat selektovanih vrsta u tabeli.
 Ukupan broj vrsta u tabeli.
 Cena izvršenja SQL naredbe.
3. Poređenjem cena izvršavanja bira se plan.

18
Q

Objasniti pojam statistike baze podataka (primer Oracle).

A

Statistika baze podataka igra značajnu ulogu u procesu optimizacije upita.
U bazi se čuvaju podaci za svaku tabelu/ svaku kolonu u tabeli/ svaki indeks, sistemska statistika.
Statistika se čuva u sistemskim tabelama (meta podaci).
Objekti u bazi se stalno menjaju i potrebno je redovno ažurirati prikupljenje podatke.
Statistika se ažurira periodično da ne bi opteretila sistem.

Oracle statistika:
Ukoliko se u bazi kreira novi objekat/promeni količina podataka, statistika ne odslikava pravo stanje.
Korisnik baze ima obavezu da obezbedi očuvanje ažurnosti statistike.
Statistika se čuva u data dictionary tabelama ili u tabelama koe se nameski kreiraju u šemi korisnika.
Za pregled statistika se koriste odgovoarajudi pogledi.
ANALYZE naredba se može koristiti za prikupljanje statistike.
DBMS-UTILITY kolekcija funkcija koje omogudavaju rad sa statistikom baze podataka.

19
Q

Objasniti uticaj indeksa na optimizaciju upita (primer Oracle).

A

Kod relacionih baza podataka indeksi predstavljaju strukture podataka koje se koriste da ubrzaju
operacije pretraživanje podataka i operacije sortiranja.
Za implementaciju se koriste razne strukture: Balansirana stabla, B+ stabla, rasute tablice.
Indeks može biti def. kao unique (vrednosti koje se indeksiraju moraju biti jedinstvene) i non-unique.
Po arhitekturi mogu biti Non-clustred (listovi stabla čuvaju referencu na blok koji sadrži odg. Podatak) i
Clustered (listovi stabla ne sadrže referencu ved predstavljaju same podatke, dobre performanse).
Prilikom izvršavanja upita DBMS donosi odluku da li performanse mogu da se poboljšaju korišdenjem
nekog indeksa.
Za analizu iskorišdenosti upita koristi se plan izvršavanja – EXECUTION PLAN.
Indeks koji poboljša performanse jednog upita može drastično da degradira performanse drugog.

Oracle indeksi:
1. Oracle podržava nekoliko tipova indeksa:
2. Normalni indeksi (B stabla).
3. Funkcionalni indeksi (formiraju se nad vrednostima funkcija koje se primenjuju nad kolonama tabele).
4. Bitmap indeksi (za svaku vrednost bitmapa se formira koja pamti da li određena vrsta sadrži tu vr ili ne).
5. Particionisani (particija se formira za svaku ključnu vrednost).
6. Domeski indeksi.
Oracle automatski kreira indekse za ograničenja tipa PRIMARY KEY i UNIQUE.
U svim ostalim slučajevima korisnik kreira – CREATE INDEX.

20
Q

Osnovne karakteristike rada sa podacima u savremenim Web aplikacijama.

A

Četiri osnovne karakteristike podataka na Web-u:
1. Količina podataka
2. Povezanost podataka (relacije)
3. Polustruktuiranost podataka
4. Arhitektura aplikacija koje koriste podatke
Web aplikacije zahtevaju:
Ekstremno veliki broj transakcija u jedinici vremena
Dinamička analiza velikih količina podataka
Kratko i predvidivo vreme odziva (latency)
Skalabilnost (po niskoj ceni)
Visok nivo dostupnosti (high availability)
Fleksibilnu šemu / polustruktuirane podatke
Geografska distribuiranost (vedi broj čvorova u kojima se podaci obrađuju, mreža kao problem)
Web aplikacijama nisu neophodne:
* transakcije,
* kompleksni SQL upiti,
* stroga konzistentnost i
* intergritet podataka.

21
Q

Objasniti pojam skalabilnosti.

A

Scaling up je dodavanje resursa jedinom cvoru u sistemu
Migracija sistema na jaču platformu.
Prednosti:
Brzo i jednostavno
Nedostaci:
Kada se prevaziđu kapaciteti najjačeg sistema
Cena
Zavisnost od samo jednog proizvođača
Scaling out je dodavanje novih cvorova u sistem.
Funkcionalana (vertikalna) skalabilnost:
Grupisanje podataka po funkciji i distribuiranje funkcionalnih grupa u različitim bazama
Horizontalna skalabilnost:
Distribuiranje istih funkcionalnih grupa u različitim bazama
Prednosti: fleksibilnost
Nedostaci: kompleksnost

22
Q

Objasniti pojam distribuiranosti podataka.

A

Distribuirane baze podataka imaju vise cvorova a samo jednu bazu podataka.
Zahtevi koje moraju da ispune distribuirane baze podataka:
1. Consistency–sistem se nalazi u konzistentnom stanju posle svake operacije
Svi klijenti vide iste podatke
2. Availability–sistem je uvek dostupan (“always on”)
“no downtime”
Tolerancija na otkaz čvorova –klijenti uvek imaju pristup nekoj od kopija (replika)
Tolerancija na HW/SW promene
3. Partition tolerance –sistem funkcioniše čak i u slučaju da ne postoji konekcija između distribuiranih
podskupova (pad mreže) ne samo za čitanje vec i za upis

23
Q

CAP teorema (BASE).

A

U potpunostije mogude zadovoljiti samo 2 od 3 zahteva.
Kompromis oko tredeg zahteva
Odustaje se od pristupa “sve ili ništa”
Biraju se različiti nivo konzistentnosti, dostupnosti ili particionisanja.
Treba prepoznati koja su od CAP pravila neophodna za funkcionisanje sistema.
CA: Consistency & Availability
Kompromis oko Partition Tolerance
Karakteristična za single-site cluster rešenja (lakše je obezbediti da su svi čvorovi u stalnom kontaktu)
Kada dođe do narušavanja topologije mreže, odnosno do particionisanja mreže, sistem se blokira.
Primer: dvofazni komit (2PC)
CP: Consistency & Partitioning
Kompromis za Availability
Pristup pojedinim podacima može biti privremeno onemoguden ili ograničen
Ostatak sistema se nalazu u konzistentom/tačnom stanju
Primer: horizonatalno particionisane baze podataka na vedem broju servera (sharded databases)
*AP: Availability & Partitioning
Kompromis za Consistency
Sistem je dostupan i prilikom narušavanja mrežne topologije
Neki od podataka koje sistem vrada mogu biti privremeno neažurni (temporarily not up-to-date)
Zahteva strategiju za rešavanje konflikta (conflict resolution strategy)
Primer: DNS, keš, master/slave replikacija

24
Q

Uporediti ACID i BASE.

A

ACID
Atomicity - Kada se deo transakcije ne izvrši, ne izvrši se čitava transakcija. Baza podataka se ne menja.
Consistency - Transakcija prevodi DB iz jednog konzistentnog stanja u drugo.
Isolation - Transakcija ne vidi nekomitovane izmene iz drugih transakcija
Durability - Komitovane izmene u DB su trajne.
BASE (CAP varijanta ACID svojstava):
Basically Available
Soft State
Eventually Consistent
 ACID forsira konzistentnost podataka dok BASE prihvata da de se konflikti desiti.

25
Q

NoSQL baze podataka – pojam i osnovne karakteristike.

A

NoSQL baze podataka predstavljaju pokret a ne specifikaciju. NoSQL
znaci Not Only SQL i upotrebljava se za sve nerelacione baze podataka (non-RDBMS).
Tipična primena:
1. Velike količine podataka (Massive data volumes)
 Za skladištenje podataka se koristi distribuirana arhitektura
2. Veliki broj upita (Extreme query workload)
3. Schema evolution
Dobre strane:
Fleksibilnost
Skalabilnost
Jednostavne za korišdenje i u pravljanje
Eventually consistent
Jeftine
Prilagođene potrebama Web aplikacija
Loše strane:
Tehnologija još uvek nije stabilna
Ne postoje zajednički standardi
Loša podrška za transakcije
Loša podrška za pretraživanje podataka
Zahteva promenu načina razmišljanja

26
Q

Taksonomija NoSQL baza podataka.

A

1.Key/Value stores
Key/Value lookups, Hash.
Jedna vrednost, jedan ključ. Nema duplikata.
Skaliranje ogromnih količina podataka.

  1. Column stores (Extensible records)
    BigTable klonovi.
    Rasuta distribuirana multi-dimenizionalna mapa.
    Sortirana mapa
  2. Document stores
    Key/value store, value predstavlja polu struktuirani dokumet čija je struktura razumljiva DB.
    Podaci se pretražuju po ključu.
  3. Graph databases
    Inspirisana matematičkom teorijom grafova.
    Modelira se struktura podataka.
    Navigacioni model podataka.
    Key/value parovi za čvorove/potege.
    Relacije su potezi između čvorova.