Sistemi baza usmeni - pitanja Flashcards

1
Q
  1. ER model: pojam i osnovni elementi.
A

Osnovna ideja
 Realan savet može se opisati pomoću dva primitivna koncepta: entitet i veza.
 Entitet je bilo koji objekat koji se može jednoznačno identifikovati.
 Veza je relacija između dva ili više entiteta.
Namena modela
 Za formiranje konceptualnog (logičkog) modela podataka.
 Pogodno sredstvo za komunikaciju između korisnika i analitičara i projektanta softvera.
Osnovni koncepti ER model su:
 entiteti i tip entiteta; jaki i slabi tip entiteta
 atributi i vrednost atributa; ključni atribut; domen atributa
 veze i tip veze; specijalni tipovi veza
 ER dijagram (grafička reprezentacija ER modela)
Opis elemenata ER modela:
 Entitet je subjekat, objekat, pojam, događaj ili stanje o kojima se prikupljaju, obrađuju i prezentiraju podaci u automatizovanim informacionim sistemima a koji se može jednoznačno identifikovati.
 Atributi predstavljaju zajedničke osobine koje poseduju svi entiteti jednog skupa entiteta (jednovrednosni, viševrednosni, prost, složen, izveden, ključ).
 Tip veze modelira relacije između entiteta u istom ili različitim skupovima. Veza uvek funkcioniše u oba smera.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. EER model: pojam i osnovni elementi.
A

EER (Enhanced entity-relationship) – prošireni ER model.
Osnovni koncepti:
 Klase
 Klasa se posmatra kao skup (kolekcija) entiteta. Tipovi entiteta se tretiraju kao klase.
 Podklasa i nadklasa
 Podklase nasleđuju nadklase.
 Nasleđivanje
 Ograničenja u nasleđivanju:
1. Participacija – disjunktna (svaki entitet nadklase pripada samo jednoj podklasi), overlap (entitet nadklase može da pripada većem broju podklasa).
2. Kompletnost – potpuna (svaki entitet nadklase priprada nekoj podklasi), parcijalna (entiteti nadklase ne moraju pripadati nijednoj podklasi).
 Specijalizacija
 Postupak definisanja podklasa pri čemu se kreće od postojećih klasa, kod kojih se traže moguće specijalizacije koje pored zajedničkih osobina sadržanih u klasi imaju svoje specifične.
 Generalizacija
 Postupak kod koga se od više postojećih uočavanjem zajedničkih osobina definiše generalnija klasa.
 Kategorije
 Kategorije su nastale zbog potrebe postojanja klasa koje imaju više od jedne nadklase.
 Ako se nadklase jedne podklase totalno razlikuju, nemaju isti ključ takva podklasa se naziva kategorija.
 Kod kategorija postoji selektivno nasleđivanje odnosno nasleđivanje predstavlja presek nadklasa.
 Deljive klase
 Deljive klase su klase sa više od jedne nadklase.
 Deljive klase obezbeđuju višestruko nasleđivanje.
 Deljive klase nasleđuju klase istog tipa (isti ključ) i nasleđivanje predstavlja uniju.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Prevođenje ER modela u relacioni model.
A
  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
  1. 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 ranije, paralelno sa slabim tipovima entiteta.
1. Preslikavanje veza tipa klasa/podklasa.
Alternativa A: Tabele i za nadklase i podklase.
Alternativa B: Tabele samo za podklase.
Alternativa C: Tabela samo za nadklasu sa svim mogudim atributima i tipom.
Alternativa D: Tabela samo za nadklasu sa svim mogudim atributima i bool-ovima za podklase.
2. Preslikavanje deljivih klasa.
Slično kao i za klase/podklase, te alternative.
3. Preslikavanje kategorija.
Dodaje se surogat ključ svim relacijama. Relacije za sve entitete.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. PL/SQL – pojam, namena i osnovni elemeneti.
A

 Procedural language extension to SQL – proceduralno proširenje SQL-a.
 SQL ne poseduje elemente koji bi omogudili razvoj strukturnih programa.
 Koristi se kada je korisnik ograničen samo na SQL on prosleđuje jednu po jednu naredbu DBMS-u.
 PL/SQL prevazilazi ograničenja i dodaje strukturne elemente SQL-u.
 Strukturni programski jezik za ORACLE.
Osnovni ciljevi PL/SQL:
 Povedanje ekspresivnosti SQL-a.
 Pristup rezultatima upita korišdenjem slogova.
 Optimizacija kombinacija SQL naredbi.
 Razvoj modularnih aplikacija za rad sa bazom podataka.
 Višestruko korišdenje programskog koda.
 Smanjenje cene održavanja i izmene aplikacije.
Osnovna struktura PL/SQL programa:
 Osnovna gradivna jedinica je blok.
 PL/SQL program se satoji od blokova koji se mogu ugnježdavati.
 Blok predstavlja jednu logučku operaciju.
 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 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…).
 PL/SQLprogram 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
  1. Objasniti pojam trigera.
A

 Element šeme baze podataka.
 Blok PL/SQL koda koji se izvršava (jednom, pre ili posle) kao odgovor na događaje –insert, update, delete, ako je ispunjen zadati uslov.
 Nadgledanje (potencijalnih) promena u bazi podataka.
 Forsiranje ograničenja.
Primena trigera:
 Forsiranje poslovnih (business) pravila koja se ne mogu predstaviti built-in ograničenjima integriteta.
 Automatsko setovanje IDova (autonumber, surogat ključeva) i izvedenih vrednosti .
 Provera promena u podacima.
 Automatsko čuvanje starih verzija podataka (logovanje akcija korisnika).
 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. 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 (skladistenje, indeksiranje i pribavljanje) 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.
Dvoslojna arhitektura (prezentacioni + app log/resursi):
Ovo je tradicionalna ahitektura i ukljucuje postojanje 2 racunara koji ucestvuju u izvrsenju aplikacije.
Klijenti su medjusobno nezavisni pa za različite klijente moze da postoji različiti prezentacioni sloj u zavisnosti od funkcionalnosti koje aplikacija nudi. Obicno su tanki (thin client) i imaju vrlo ogranicene mogucnosti. Klijentima su se smatrali i prosti ulazni uredjaji ciji zadatak je bio da samo prikazu klijentski interfejs koji se izvrsava na udaljenoj platformi. Ovo su tanki klijenti.
Na serveru se nalaze sve datoteke, baza podataka i komponente koje implementiraju aplikativnu logiku.
Baza podataka ima samo jednog klijenta: sloj aplikativne logike.
Vremenom klijentski racunari postaju sve mocniji. U cilju rasterecivanja servera deo aplikativne logike se seli na klijentski racunar. Samim tim klijenti dobijaju mogucnost da izvrsavaju znacajniji deo funkcionalnosti aplikacije pa se klijenti u tim situacijama smatraju debljim (fat client). Debljina klijenta varira od aplikacije do aplikacije i delom je odgovornost projektanata aplikacija. Ukoliko se zanemari prezentacioni sloj, na serverskoj strani se sve izvrsava na jednom mestu poput sistema sa jednoslojnom arhitekturom. Definise se pojam programskog interfejsa aplikacije (API) – interfejs koji omogucava da se elementi aplikativne logike pozovu spolja.
Dvoslojna klijent/server arhitektura uvodi pojam servisa. Klijenti koriste servise koje server implementira. Takodje se uvodi pojam interfejsa servisa. Interfejs servisa definise kako klijent moze koristiti servis. Interfejsi svih servisa koje server implementira predstavlja serverski API.
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
  1. Tehnike za razdvajanje slojeva kod aplikacija za rad sa bazama podataka.
A

Osnovu svake aplikacije cine podaci, logika za njihovu obradu i nacin njihovog prikaza. Ove tri komponente cesto predstavljaju poprilicno nezavisne aspekte razvoja aplikacije. Posmatrano iz ugla koriscenja podataka, nebitan je izvor iz koga su podaci pribavljeni (baza podataka, fajl sistem, email..). Veoma je bitno izabrati otvoreni model za predstavljanje i obradu podataka. Time se omogucava vizuelizacija informacija na razlicite nacine tj kreiranje razlicitih pogleda na isti model podataka. Za razdvajanje slojeva mogu se koristiti razliciti projektni obrasci.
Model-View-Controller (MVC)
FALI SLIKA
Kontroler moze da salje komande modelu kako bi azurirao njegovo stanje. Kontroler salje komande pridruzenom pogledu kako bi promenio prezentaciju modela.
Model salje notifikacije pridruzenim kontrolerima i pogledima kada promeni svoje stanje. Ove notifikacije omogucavaju pogledima da generisu izmenjenu reprezentaciju modela a kontrolerima da izmene dostupni skup komandi. U nekim slucajevima implementacija MVC obrasca je pasivna. I pogledi i kontroleri moraju da prozivaju model kako bi detektovali izmene u njegovom stanju. Pogled zahteva informacije od modela na osnovu kojih generise reprezentaciju za potrebe korisnika.
Model-View-Presenter (MVP)
FALI SLIKA
Model predstavlja interfejs koji definise podatke koji ce biti prikazani ili na drugi nacin reaguje na akcije korisnika.
Pogled predstavlja pasivni interfejs koji prikazuje podatke i rutira korisnicke komande prezenteru radi dalje obrade.
Prezenter predstavlja sponu izmedju pogleda i modela. Na osnovu primljenih dogadjaja, pribavlja podatke iz modela i formatira za potrebe prikaza u pogledu.
Model-View-ViewModel (MVVM)
Model
FALI SLIKA
Model je skup klasa koje predstavljaju objektnu reprezentaciju podataka pribavljenih iz izvora podataka (baza podataka ili servis).
Pogled je komponenta sistema odgovorna za prezentaciju informacija.
ViewModel priprema podatke pribavljene iz modela za prikaz u pogledu. ViewModel se cesto opisuje kao reprezentacija stanja podataka u modelu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Navesti i objasniti projektne obrasce koji se koriste za modeliranje domena.
A

Domenska logika ili poslovna logika Posao koji sistem zaista obavlja odnosno implementacija različitih poslovnih procesa.
Za modeliranje domena mogu se iskoristiti 3 projektna obrasca:
1. Transaction Script.
Organizuje poslovnu logiku u vidu procedura pri čemu je svaka procedura zadužena za obradu jednog zahteva od strane prezentacionog sloja. Transaction Script logiku organizuje u jednu proceduru pri čemu se vrši direktna komunikacija sa izvorom podataka. Može se implementirati korišdenjem procedura, grupisanjem tranakcija u jednu ili više klasa i korišdenjem command patterna. Osnovna prednost korišdenja je jednostavnost i koristi se kada je domeska logika jednostavna. Za kompleksne poslovne logike se ne preporučuje (ograničen interfejs ili teško razumljiv kod).
2. Table Module.
Za svaku tabelu/pogled/upit postoji posebna instanca koja sadrži kompletnu poslovnu logiku za rad sa vrstama te tabele/pogleda/upita. Upakovani podaci da bi se maksimalno koristile prednosti relacionog modela. Poslovna logika upakovana kroz niz metoda koje pristupaju odgovarajudoj tabeli. Nije pogodan za predstavljanje kompleksne logike.
3. Domain Model.
OO model domena koji uključuje i podatke i poslovnu logiku. Mogu postojati objekti koji samo predstavljaju podatke, objekti koji predstavljaju poslovnu logiku ili objekti koji sadrže i jedno i drugo. Svaki objekat predstavlja neki od domenskih entiteta. Za kompleksne sisteme se koristi. Problem su razlike između OO modela i relacionog modela, neophodna stalna transformacija.
Za implementaciju se koriste 2 pristupa:
I. Active Record – Pored podataka i poslovne logike objekat uključuje i metode za rad sa relacionom bazom podataka. Predstavlja slog u tabeli odnosno za svaki slog se može kreirati instanca.
II. Data Mapper – Pored objekata koji sadrže podatke i poslovnu logiku postoje i posebni objekti koji su zaduženi za komunikacijom sa bazom podataka (transformacija jednog modela u drugi). OO model 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
  1. Objasniti problem Object-Relational Impedance Mismatch.
A

Skup konceptualnih i 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 vs. identičnost i jednakost objekata

Asocijacije – veze između klasa vs. strani ključevi

Navigacija podataka – veze između klasa vs. strani ključevi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Objasniti pojam objektno-relacionog mapera.
A

O/R maper predstavlja implementaciju Data Mapper projektnog obrasca. Object-Relational mapper (ORM) predstavlja tehniku koja omogudava konverziju podataka između nekompatibilnih sistema OO aplikacija i relacionih baza podataka. O/R maperi obezbeđuju perzistentnost objekata odnosno omogudavaju da objekti postoje nezavisno od same aplikacije.
-Prednosti korišdenja O/R mapera:
Skalabilnost
Skradeno 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
  1. Navesti tipične projektne obrasce na kojima s ebazira arhitektura O/R mapera.
A

Unit of Work
Projektni obrazac koji omogudava O/R maperima:
Vođenje evidencije o svim objektima koji su izmenjeni tokom transakcije Kordinaciju upisa izmena u bazu podataka Rešavanje problema konkurencije
Nije pogodan pristup kod koga se svaka izmena nad objektima u memoriji prenosi u bazu podataka. Izmene se prosleđuju bazi podataka tek po završetku transakcije.
Identity map
Projektni obrazac koji omogudava O/R maperima:
Svaki objekat može u memoriju da se učita samo jednom Sve objekte učitane u memoriju čuva u mapi (dictionary) Prilikom referenciranja objekata koristi se njihova instanca koja je učitana u mapu
Identity map je validna tokom trajanja Unity of Work.
Lazy load
Projektni obrazac koji omogudava O/R maperima:
Prilikom učitavanja objekta ne učitavaju se svi podaci koje objekat sadrži Inicijalno su učitani samo neophodni podaci Ostali podaci se učitavaju na zahtev odnosno u trenutku kada su potrebni Objekat zna kako da učita nedostajude podatke
Kada se objekat učitava u memoriju korisno je učitati i povezane objekte. Time se znatno olakšava navigacija podataka. Takva strategija može da dovede do nepotrebnog učitavanja velikih količina podataka. Zbog toga je korišdenje lazy load tehnika od ključne važnosti.
NHibernate
Glavna funkcionalnost koju Nhibernate obezbeđuje je mapiranje između .NET klasa i odgovrajudih tabela u relacionoj bazi. Osim toga obezbeđuje mehanizme za pretraživanje i učitavanje podataka. Omogudava 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 odgovarajude .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
  1. Definisati pojam transakcije, osnovne operacije I svojstva.
A

ACID svojstva transakcije:
1. Atomičnost (atomicity) – Sve naredbe transakcije se izvršavaju kao celina ili se ne izvršavaju.
2. Konzistentnost (consistency)- Transakcija prevodi bazu podataka iz jednog konzistentnog stanja u drugo.
3. Izolacija (isolation) – Efekti transakcije nisu vidljivi dok se transakcija ne komituje.
4. Trajnost (Durability) – Izmene nad podacima načinjene tokom transakcije su trajne.

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 (commited) ili dok ne budu poništene (rollbacked).

Prva SQL naredba nekog programa započinje novu transakciju. Jedna se završi slededa počinje.

Svaka SQL naredba je sastavni deo neke transakcije.

COMMIT Nareba završava tekudu transakciju i potvrđuje i trajno snima modifikacije učinjene tokom trasakcije.

ROLLBAC K naredba završava tekudu transakciju i poništava sve modifikacije učinjene tokom transakcije.

SAVEPOINT naredba označava i snima tekudu tačku u transakciji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Definisati pojam nivo izolacije I objasniti na primeru Oracle DBMS-a.
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. Podržane su naredbe: SELECT INTO, FETCH, CLOSE, LOCK TABLE, COMMIT, ROLLBACK.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Definisati mehanizam zaključavanja kod relacionih DBMS-ova.
A

Mehanizam zaključivanja omogudava korišdenje baze podataka u višekorisničkom okruženju bez opasnosti da de dodi do narušavanja konzistentnosti podataka. Sprečava mogudnost destruktivne iterakcije između transakcija. Oracle vodi automatski računa o mehanizmu zaključivanja. Svi lock-ovi koje naredbe pribave u okviru jedne transakcije sve dok se ne commituje ili rollbackuje. Po završetku Oracle oslobađa sve lock-ove.
Oracle podržava dva moda zaključavanja:
1. Ekskluzivni mod – Onemogudava deljenje resursa između transakcija.
2. Deljivi mod – Omogudava 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 toko 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
  1. Objasniti kako se obrađuju SQL upiti kod relacionih DBMS-ova.
A

SQL pripada grupi deklarativnih jezika. Korisnik znači treba da specificira šta treba da uradi a ne kako to da uradi.

Obrada upita obuhvata niz aktivnosti čiji je cilj pribavljanje podataka iz baze podataka.

Ciljevi:
I. Transformacija upita napisanog korišdenjem jezika visokog nivoa (SQL npr) u validnu i efikasnu strategiju izvršavanja opisanu korišdenjem nekog jezika niskog nivoa.

II. Izvršavanja rezultujude strategije u cilju pribavljanja zahtevanih podataka.

17
Q
  1. Objasniti pojam optimizacije upita (primer Oracle Query optimizer).
A

Predstavlja aktivnost izbora efikasnije strategije izvršavanja prilikom obrade upita. Transformacijom upita može se dobiti vedi broj ekvivalentnih strategija. Optimizacija upita bira strategiju koja minimizira upotrebu računarskih resursa. Bazira se u velikoj meri na postojanju statistike (to se čuva u bazi statistike, o relaciji atributu, indeksu). Postoje dinamička (uvek kad se izvršava upit) i statička (kad se upit prvi put prosledi na izvršenje). Najbolje da se koristi hibrid pritup, detektuje da li treba dinamička ili statička. Postoje dve glavne strategije za optimizaciju koje se u praksi najčešde kombinuju:
1. tehnika bazirana na heurističkim pravilima na osnovu kojih se određuje redosled operacija u upitu.
2. poređenje različitih strategija na osnovu cene.
Query optimizer je komponeta koja određuje optimalan plan za izvršenje SQL naredbi. Optimizacija u tri koraka:
1. Određivanje mogudih planova izvršenja.
2. Za svaki plan na osnovu statistike se 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. Proedđenjem cena izvršavanja bira se plan.

18
Q
  1. 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
  1. 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
  1. 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 imaju drugačije potrebe u odnosu na aplikacije koje su RDBMS razvijane.

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)

21
Q
  1. Objasniti pojam skalabilnosti.
A

Scaling up je dodavanje resursa jedinom cvoru u sistemu, sto znaci dodavanje CPU ili memorije.
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
  1. 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 ved i za upis

23
Q
  1. 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
  1. 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
  1. NoSQL baze podataka – pojam i osnovne karakteristike.
A

NoSQL baze podataka predstavljaju pokret a ne specifikaciju. Prvi put upotrebljen 1998. godine. NoSQL znaci Not Only SQL i upotrebljava se za sve nerelacione baze podataka (non-RDBMS).
Neki primeri su: Internet, Google, Bigtable whitepaper (Google), Dynamo whitepaper (Amazon), Cassandra release (Facebook), Voldemort release (LinkedIn)…
Tipična primena:
1. Velike količine podataka (Massive data volumes)
 Za skladištenje podataka se koristi distribuirana arhitektura
 Google, Amazon, Facebook –10K-100K servera
2. Veliki broj upita (Extreme query workload)
 Nemogudnost efikasnog izvršavanja spojeva kod RDBMS u takvom okruženju
3. Schema evolution
 -Nije jednostavno obezbediti fleksibilnost šeme
 -Promene u šemi se mogu postepeno uvoditi kod NoSQL
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 Vrlo je teško nadi dva identična scenarija primene.

26
Q
  1. Taksonomija NoSQL baza podataka.
A
  1. Key/Value stores
    Key/Value lookups, Hash. Jedna vrednost, jedan ključ. Nema duplikata. Skaliranje ogromnih količina podataka.
  2. Column stores (Extensible records)
    BigTable klonovi. Rasuta distribuirana multi-dimenizionalna mapa. Sortirana mapa
  3. Document stores
    Key/value store, value predstavlja polu struktuirani dokumet čija je struktura razumljiva DB. Podaci se pretražuju po ključu.
  4. 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.
27
Q

Objasniti osnovne prinicpe razvoja aplikacija za rad sa bazama podataka. Pored ovih pitanja u obzir obavezno dolaze pitanja vezana za izradu projekata i tehnologija koje su pri tome korišćene (NHibernate, FluentNHibernate, mapiranja, WebAPI i sl.).

A

?????
Osnovne aktivnosti:

1) Planiranje(studija izvodljivosti)
Šta sistem treba da radi? (funkcionalnosti na visokom nivou)
Koliko će sistem da košta? Koje su dobre strane uvođenja sistema? Da li se uopšte isplati izrada aplikacije?Da li će sistem vratiti uložene resurse?

2) Analiza
Šta sistem treba da radi(Funkcionalnosti sistema sa mnogo više detalja: predlog delova UI, primeri izveštaja i slično)?
Analiza podataka(npr. Koje entitete treba čuvati u bazi podataka i koja su svojstva entiteta)

3) Projektovanje
Projetovanje modela podataka
Projektovanje aplikacije

4) Implementacija
Programiranje (pisanje koda na osnovu projekta sistema)
Testiranje
Isporuka sistema (korisnička dokumentacija, obuka korisnika, dokumentacija za upotrebu, obuka osoba zaduženih za održavanje sistema

5) Održavanje sistema
Korisnici prijavljuju greške koje treba otkloniti
Korisnici zahtevaju nove funkcionalnosti (funkcionalnosti treba da prođu kroz mini ciklus razvoja)