際際滷

際際滷Share a Scribd company logo
XXXVI Simpozijum o novim tehnologijama u po邸tanskom i telekomunikacionom
saobraaju  PosTel 2018, Beograd, 4. i 5. decembar 2018.
NERELACIONE BAZE PODATAKA:
MOGUNOSTI I OGRANIENJA
Slaana Jankovi, Sne転ana Mladenovi, Ana Uzelac, Stefan Zdravkovi
Univerzitet u Beogradu - Saobraajni fakultet,
s.jankovic@sf.bg.ac.rs, snezanam@sf.bg.ac.rs,
ana.uzelac@sf.bg.ac.rs, s.zdravkovic@sf.bg.ac.rs
Sadr転aj: Modeli podataka i tehnologije baza podataka koje su ih pratile do転iveli su do
sada tri revolucije. Prvu revoluciju donelo je pojavljivanje hijerarhijskog i mre転nog
modela podataka, drugu - relacioni model podataka, a treu -nerelacione (NoSQL) baze
podataka. Prve NoSQL baze podataka nastale su sa ciljem da zadovolje potrebe Web 2.0,
zbog ega su distribuirane, open-source i horizontalno skalabilne. Danas su ove baze
jedan od noseih stubova Big Data tehnologija. U poreenju sa relacionim bazama
podataka, one omoguavaju veu raspolo転ivost, ali se kod ovih baza podataka, ne mo転e
garantovati konzistentnost svih podataka u svakom trenutku. Do danas su razvijeni sledei
nerelacioni modeli podataka: klju-vrednost, kolonski, grafovski i model zasnovan na
dokumentima. Ovaj rad opisuje kontekst u kom su nastale nerelacione baze podataka,
predstavlja njihove zajednike karakteristike, prednosti i ogranienja u kori邸enju, a na
primerima demonstrira osobenosti svakog od etiri u ovom trenutku prisutna nerelaciona
modela podataka.
Kljune rei: NoSQL baze podataka, klju-vrednost baze podataka, kolonske baze
podataka, baze dokumenata, grafovske baze podataka
1. Uvod
Dosada邸nji razvoj tehnologija baza podataka jasno je podeljen na tri epohe. Prva
epoha bila je period od nastanka elektronskih raunara do pojave relacionog modela
podataka, tj. od 1950-1970. godine. Tokom prve epohe za dominaciju su se borili
hijerarhijski i mre転ni modeli podataka i njima odgovarajui sistemi za upravljanje bazama
podataka (SUBP). Engleski matematiar i programer Edgar Frank Codd, zaposlen u
istra転ivakoj laboratoriji IBM-a, 1970. godine objavio je nauni rad u kojem je dao osnove
relacionog modela podataka [1]. Objavljivanje ovog rada predstavlja poetak druge, do
sada najznaajnije epohe u razvoju baza podataka. Tokom naredne tri decenije dominirale
su relacione baze podataka bez znaajnije konkurencije. Prve godine XXI veka donele su
nove modele podataka i nove tehnologije baza podataka, 邸to oznaava poetak tree epohe
u razvoju baza. Baze podataka tree generacije imaju jednu zajedniku karakteristiku 
nisu relacione. Stoga su dobile zajedniko ime  nerelacione baze podataka. Kao sinonim
za nerelacione baze podataka, 2009. godine pojavio se termin NoSQL baze podataka.
- 236 -
Suprotno oekivanom, NoSQL ne znai Not SQL ve ima znaenje Not only SQL.
Termin NoSQL ne predstavlja jedan proizvod ili tehnologiju, ve klasu proizvoda i
kolekciju razliitih, ponekad povezanih koncepata o nainima skladi邸tenja i manipulacije
podacima.
Druga sekcija rada sadr転i uporednu analizu relacionog i osnovnih nerelacionih
modela podataka i njima odgovarajuih predstavnika sistema za upravljanje bazama
podataka. Trea sekcija rada istie prednosti, ali prepoznaje i ogranienja u kori邸enju
nerelacionih baza podataka. U poslednjoj sekciji rada dati su zakljuci o najistaknutijim
vrstama baza podataka danas, kao i pravci buduih istra転ivanja.
2. Nerelacione vs. relacione baze podataka
Savremeni internet i njegovi servisi neprekidno generi邸u ogromne koliine
nestrukturiranih ili polustrukturiranih podataka, kao 邸to su: senzorski podaci, podaci koji
se dele putem dru邸tvenih mre転a, lina pode邸avanja vezana za razliite naloge, fotografije,
informacije o lokaciji ureaja, online aktivnosti i dr. Poku邸aji da se skladi邸te, obrade i
analiziraju ovakvi podaci, uz pomo relacionih baza podataka, otkrili su ogranienja ove
vrste baza.
Osnovni razlozi koji su inicirali razvoj nerelacionih baza podataka su: internetom
izazvana eksplozija koliine i vrsta podataka, kao i broja istovremenih zahteva nad bazom
podataka i nepredvidiva du転ina trajanja ACID (Atomicity - atominost, Consistency -
konzistentnost, Isolation - izolacija, Durability - trajnost) transakcije u Big Data okru転enju.
ACID osobine transakcija definisao je ameriki naunik Jim Gray krajem 1970-ih godina
[2]. One karakteri邸u transakcije koje se izvr邸avaju u relacionim bazama podataka. Kod
nerelacionih baza podataka, da bi se transakcija izvr邸ila u razumnom vremenu, nije uvek
mogue obezbediti da pre poetka i posle okonanja transakcije stanje baze podataka
zadovoljava uslove konzistentnosti. Osobine transakcija kod NoSQL sistema bie detaljno
razmatrane u treoj sekciji rada.
Iako postoje na desetine nerelacionih baza, prema modelu podataka sve se mogu
svrstati u jednu od etiri kategorije: klju-vrednost baze podataka, kolonske baze podataka,
baze podataka bazirane na dokumentima i grafovske baze podataka. Sledi kratak opis
relacionih i sve etiri kategorije nerelacionih baza podataka.
2.1. Relacione baze podataka
Relacione baze podataka (RBP) predstavljaju poseban tip baza podataka ija je
organizacija podataka zasnovana na relacionom modelu. U ovakvim bazama podataka
podaci se organizuju u skup relacionih tabela (relacija) izmeu kojih mogu biti kreirani
odreeni tipovi veza. U RBP svaka relacija mora da ima primarni klju, odnosno skup
atributa pomou kojeg se jedinstveno identifikuje svaka n-torka. Skup atributa preko kojih
se ostvaruje veza sa nekom drugom relacijom naziva se spoljni klju. U relacionim
sistemima za upravljanje bazama podataka (RSUBP) uglavnom se koristi najmoniji upitni
jezik danas - SQL (Structured Query Language) ili neki od njegovih dijalekata. Va転na
prednost RSUBP ogleda se u tome 邸to pru転aju izvanrednu sigurnost. Administrator baze
podataka korisnicima mo転e dodeliti odreene privilegije kojima ih ovla邸uje za
odgovarajue operacije u bazi podataka.
- 237 -
Transakcije RBP esto su kompleksne jer zahtevaju spajanje tabela i izvr邸avanje
operacija nad vi邸e zapisa. Ukoliko je potrebno izvr邸iti veliki broj transakcija u jedinici
vremena, kao kod zadataka Big Data analize, kompleksnost transakcija mo転e biti znaajan
nedostatak. RBP projektovane su tako da nisu horizontalno ve samo vertikalno skalabilne.
U sluaju poveanja optereenja baze podataka, kod relacionih baza, bolji rezultati se
posti転u pojaavanjem resursa servera (hard diska, memorije i procesora), nego deljenjem
optereenja na vi邸e servera. Meutim, ovakva re邸enja mogu da budu izuzetno skupa i u
sluaju primene kod Big Data ekonomski su neisplativa. Big Data okru転enje podrazumeva
i esta pojavljivanja novih izvora i formata podataka. Nefleksibilan relacioni model
podataka nije odgovarajui izbor u takvim sluajevima.
2.2. Klju-vrednost baze podataka
Klju-vrednost baze podataka predstavljaju najjednostavniji tip NoSQL baza
podataka. Svaki zapis se uva kao par sastavljen od kljua i njemu odgovarajue vrednosti,
pri emu je vrednost potpuno nepoznata sistemu i mo転e joj se pristupiti samo putem kljua.
Koristi se za prikaz polimorfnih i nestrukturiranih podataka jer omoguuje skladi邸tenje
podataka bez prethodno definisane 邸eme, kori邸enjem klju-vrednost parova. Imaju
mogunost primanja i a転uriranja podataka zasnovanih samo na ogranienom skupu
vrednosti dok je za potrebe upita nad drugim vrednostima neophodno kreirati sopstvene
indekse. A転uriranje ovakvih sistema zahteva vi邸e prolaza kroz bazu: prvi kojim se
pronalazi zapis, drugi kojim se a転urira zapis i trei kojim se a転urira indeks. Koriste se u
sluajevima kada postoji potreba da se podatku pristupi pomou jedne kljune rei. Klju-
vrednost baze podataka dozvoljavaju horizontalno skaliranje u meri u kojoj to neke druge
baze ne omoguavaju.
DynamoDB je prva u nizu klju-vrednost baza podataka i po uzoru na nju su
nastale mnoge druge baze ovog tipa, mada postoji i jedan broj klju-vrednost baza podataka
koje se dosta razlikuju od nje kao 邸to su Redis i Oracle NoSQL. DynamoDB je napravljen
od strane Amazona sa ciljem da podr転i njihovu veliku online prodavnicu. Infrastruktura
DynamoDB se sastoji od desetina hiljada servera i mre転nih komponentni lociranih u
mnogim centrima podataka 邸irom sveta [3]. DynamoDB tabele nemaju fiksnu 邸emu dok
njeni objekti mogu imati proizvoljan broj atributa. Prednost ove baze podataka je 邸to raste
paralelno sa podacima, a za pobolj邸anje performansi je dovoljno dodati nove servere. U
DynamoDB, tabela predstavlja kolekciju stavki a svaka stavka predstavlja kolekciju klju-
vrednost parova koji predstavljaju atribute. U DynamoDB postoji podr邸ka i za primarne
kljueve koji su unutar tabele jedinstveni i slu転e da jedinstveno odrede stavku. Primarni
klju je predstavljen putem he邸a ili putem he邸a sa opsegom. He邸 klju koristi jedan atribut
od koga se kreira he邸 indeks. Da bi se prona邸la stavka sa ovim kljuem, neophodno je znati
njegovu tanu vrednost. Na primer, ako bi postojala tabela korisnika koja koristi korisniki
UserId kao primarni he邸 klju, do podataka o korisniku bi bilo mogue doi kori邸enjem
UserId vrednosti. Da bi se kreirali robusniji indeksi koriste se dva atributa: he邸 i opseg
vrednosti. Pomou ova dva atributa mogue je obaviti pretragu opsega od neke poetne
take. Na primer u tabeli gde se uvaju poruke korisnika mo転e se koristiti UserId kao he邸
klju, a za opseg vremenska oznaka pa bi na taj nain bilo mogue doi do poruka datog
korisnika koje su novije od zadate vremenske take [4]. Na Slici 1 dat je prikaz tabele
Korisnici u DynamoDB. Tip podataka list u DynamoDB mo転e da uva ureenu kolekciju
- 238 -
vrednosti razliitih tipova. Pogledu u RBP odgovara globalni sekundarni indeks u
DynamoDB.
Slika 1. Primer tabele u DynamoDB
2.3. Kolonske baze podataka
Za razliku od klju-vrednost baza podataka, u kolonskim bazama podataka
podacima se pristupa po kolonama, a ne po vrednostima. Obrada po kolonama prilikom
paralelnog procesiranja doprinosi boljim performansama. Za uvanje podataka se koriste
kolonske familije, odnosno multidimenzione sortirane mape. Kolone imaju ime i pamte
vei broj vrednosti po vrsti koje su identifikovane vremenskom oznakom, tako da
predstavljaju trodimenzionalnu strukturu i do svake vrednosti se mo転e doi kori邸enjem
klju-vrste, klju-kolone i vremenske oznake. Primer ovakve baze podataka je Cassandra
koja predstavlja distribuiranu bazu podataka i koristi se prilikom obrade velike koliine
brzorastuih podataka. Na Slici 2 dat je primer tabele u kolonskoj bazi Cassandra. Podaci
su organizovani u particije, svaka particija sadr転i vi邸e kolona, a particije se skladi邸te u
vorove [5]. vorovi predstavljaju deo klastera gde je svaki vor zadu転en za deli particije.
Svaki klju particionisanja se sastoji od jedne ili vi邸e kolona. Druge popularne baze ovog
tipa su: MariaDB, CrateDB, ClickHouse, Apache HBase, Hypertable, itd.
Slika 2. Primer tabele u kolonskoj bazi Cassandra
- 239 -
2.4. Baze podataka bazirane na dokumentima
Za razliku od prethodno opisanih vrsta baza podataka, ova baza podatke skladi邸ti
u dokumentima. Ovi dokumenti imaju strukturu nalik JSON (JavaScript Object Notation)
formatu. Svaki dokument opisuje jedan objekat, a sadr転i jedno ili vi邸e polja. Svako polje
sadr転i jednu vrednost nekog od predefinisanih tipova: tekstualnog, binarnog, decimalnog,
datumskog ili tipa niza. Ovaj model podi転e produktivnost u razvoju baza podataka jer se
podaci mogu unositi onakvi kakvi jesu, bez prethodnih priprema. Model podataka je takav
da obezbeuje jednostavan i brz pristup podacima.
Najpopularnija meu bazama ove vrste danas je MongoDB. MongoDB baza
podataka sastoji se od kolekcija (Collections). U kolekcije se dodaju dokumenti. Ono 邸to
su kod relacionih baza tabele, to su kod MongoDB baze kolekcije, dok zapisima u
relacionim bazama odgovaraju dokumenti kod MongoDB baze. Kljuna razlika izmeu
ovih koncepata je u tome 邸to svi zapisi jedne relacione tabele moraju imati istu strukturu,
dok dokumenti jedne kolekcije mogu imati razliita polja. Osim toga, istoimena polja u
razliitim dokumenta mogu biti razliitih tipova podataka, ak i kada modeliraju istu vrstu
objekata. U ovim osobinama ogleda se fleksibilnost modela podataka baziranog na
dokumentima. Izmeu MongoDB dokumenata mogu se kreirati veze tipa 1:1 ili 1:N. Obe
vrste veza mogu se ostvariti na dva naina: uz pomo ugnje転denih dokumenata (Slika 3)
ili referenciranjem dokumenata (Slika 4). Implementiranjem veza izmeu dokumenata u
MongoDB bazi obezbeuje se referencijalni integritet podataka.
{
_id: "marko",
ime: "Marko Markovi",
adrese: [
{
ulica: "Petra Lekovia 74",
grad: "U転ice",
dr転ava: "Srbija"
},
{
ulica: "Kostolaka 123",
grad: "Beograd",
dr転ava: " Srbija "
}
]
}
Slika 3. Veza 1:N ostvarena uz pomo
ugnje転denih dokumenata
{
_id: "orm",
naziv: "O'Reilly Media",
godina_osnivanja: 1980,
dr転ava: "SAD",
knjige: [123456789, 234567890]
}
{
_id: 123456789,
naslov: "MongoDB: The Definitive
Guide",
autor: [ "Kristina Chodorow", "Mike
Dirolf" ],
broj_strana: 216,
jezik: "Engleski"
}
{
_id: 234567890,
naslov: "50 Tips and Tricks for MongoDB
Developer",
autor: "Kristina Chodorow",
broj_strana: 68,
jezik: "Engleski "
}
Slika 4. Veza 1:N ostvarena
referenciranjem dokumenata
MongoDB pru転a bogat skup opcija indeksiranja radi optimizovanja razliitih vrsta
upita. Osim standardnih indeksa nad jednim poljem, ovaj proizvod nudi i sledee vrste
indeksa: slo転ene (Compound), tekstualne (Text), geoprostorne (Geospatial), indekse za
polja koja sadr転e nizove (Multikey), indekse koji omoguavaju upravljanje 転ivotnim vekom
podataka (Time to Live Indexes), jedinstvene indekse (Unique Indexes) i druge. Uz pomo
svog Aggregation Framework-a MongoDB omoguava analiziranje podataka u samoj bazi,
bez potrebe za kopiranjem podataka u analitike softverske sisteme. U Big Data
sluajevima upotrebe ovo je veoma va転na osobina baze podataka. Ono 邸to MongoDB bazu
takoe kandiduje za Big Data skladi邸te jeste njena sposobnost skladi邸tenja fajlova bilo koje
vrste i veliine. Fajlovi koji se uvaju u bazi mogu se povezati sa dokumentima iz
MongoDB kolekcija.
Osim MongoDB baze, trenutno najpopularnije baze ovog tipa su: Amazon
WorkDocs, ArangoDB, Amazon DynamoDB, Azure Cosmos DB, MarkLogic, itd.
2.5. Grafovske baze podataka
Grafovske baze podataka zasnovane su na teoriji grafova uzimajui u obzir veze
izmeu podataka i tipove podataka. Grafovi se sastoje od vorova (entiteta), koji mogu da
budu meusobno povezani neodreenim brojem veza (grana) i svojstava koja predstavljaju
atribute vorova ili veza. Cilj projektovanja ovakve baze je uvanje podataka bez
ogranienja nametnutih unapred definisanim modelom. Umesto toga, podaci se organizuju
na nain koji diktiraju priroda podataka i njihovih meusobnih veza. Organizacija podataka
u bazi pokazuje kako se svaki pojedinani entitet povezuje, odnosno u kakvoj je relaciji sa
drugim entitetima. Samoreferencirajui podaci predstavljaju jedan od znaajnih problema
RBP. U grafovksim bazama podataka kao 邸to je npr. Neo4j ovaj problem je prevazien
brzim prolaskom kroz vorove i njihove veze, kako bi se prona邸li relevantni podaci [6].
Neo4j predstavlja tipinu grafovsku bazu podataka koja uva podatke u formatu koji je
optimizovan za grafovsku obradu u realnom vremenu. To istovremeno znai da ovo nije
baza podataka op邸te namene i da ima deliminu primenu u druge svrhe. Na Slici 5 mo転e
se videti primer vorova, usmerenih veza i svojstava u grafovskoj bazi podataka.
Slika 5. Primer grafovskog modela podataka [2]
Posebna prednost ovakve baze podataka je uvanje podataka u obliku u kom su
uneti, kao i kori邸enje pokazivaa za navigaciju i prolazak kroz graf. U najpopularnije
grafovske baze podataka spadaju jo邸: AllegroGraph, GraphDB Lite, Amazon Neptune,
AnzoGraph, ArangoDB, InfiniteGraph, InfoGrid, HyperGraphDB, itd. Ove baze nastale su
- 241 -
popularizacijom dru邸tvenih mre転a gde postoji veliki broj korisnika koji poseduje odreene
veze sa drugim korisnicima, komentarima, slikama i statusima.
Grafovske baze podataka ne podr転avaju deklarativni upitni jezik visokog nivoa
poput SQL-a, kako bi se izbeglo prekovremeno izvr邸avanje upita. Umesto toga upiti nad
ovakvim bazama zavise od konkretnog modela podataka [7]. Jezici SPARQL, Cypher i
Gremlin su optimizovani za operacije prolaska kroz graf. Oni imaju sintaksu koja
omoguava prolazak kroz graf bez potrebe za rekurzivnim spojevima koji su karakteristni
za RBP. Retko se koriste u op邸toj operativnoj primeni. Umesto toga povezuju se sa
dokumentima ili relacionim bazama podataka u vidu multimodalne baze podatka kako bi
ostvarili specifinu grafovsku strukturu podataka. Grafovske baze podataka imaju
specifinu primenu i od njih se ne oekuje da zamene RBP. One predstavljaju dobru
alternativu relacionim bazama u situacijama kada je pored samih objekata od velikog
znaaja i analiza odnosa izmeu njih.
3. Mogunosti i ogranienja u kori邸enju nerelacionih baza podataka
Nerelacione baze podataka nastale su kao odgovor na rastue potrebe Web 2.0
aplikacija, kao 邸to su: dru邸tvene mre転e, vikipedije, blogovi, folksonomije, online deljenje
video zapisa, web i mobilne aplikacije (Apss), itd. U skladu sa njihovom osnovnom
namenom, sposobne su da prihvate velike koliine nestrukturiranih, heterogenih podataka
i efikasno se skaliraju po potrebi, ali ne mogu uvek garantovati konzistentnost podataka.
3.1. Mogunosti
Najva転nije prednosti nerelacionih baza podataka, u poreenju sa relacionim, su:
elastino, horizontalno skaliranje, mnogo bolje odgovaraju zahtevima Big Data, manje su
zahtevne u pogledu odr転avanja, ekonominije su i nude fleksibilnije modele podataka.
Decenijama unazad administratori baza podataka radije su se oslanjali na
vertikalno skaliranje (scale vertically or scale up/down), nego na horizontalno skaliranje
(scale horizontally or scale out/in). To znai da su radije kupovali monije servere kako je
optereenje baza raslo, nego 邸to su distribuirali baze podataka na vi邸e vorova. Jedan od
razloga za to bio je 邸to relacione baze podataka nisu dizajnirane za horizontalno skaliranje.
Ipak, kako su brzine transakcija i zahtevi u pogledu dostupnosti rasli, a posebno kako su
baze podataka preseljene u oblak ili virtuelizovano okru転enje, ekonomske prednosti
horizontalnog skaliranja postale su neodoljive. Zbog toga su NoSQL baze projektovane za
horizontalno skaliranje.
Big Data era donela je ogromno poveanje koliina podataka koje treba skladi邸titi
i obraditi. Kapaciteti RSUBP rasli su da bi zadovoljili nove zahteve, ali koliina podataka
kojom se praktino mo転e upravljati uz pomo RSUBP za mnoge organizacije ipak je bila
nedovoljna. Danas, koliina podataka kojom mo転e rukovati neki NoSQL sistem, kao 邸to je
Hadoop, daleko prevazilazi mogunosti najveih RSUBP.
Uprkos mnogim pobol邸anjima upravlivosti koje su proizvoai RSUBP postigli
tokom godina, vrhunski RSUBP mogu se odr転avati samo uz pomo skupih, visoko struno
obuenih administratora baza podataka. Administratori su uklueni u projektovanje,
instalaciju i tekua pode邸avanja sistema. NoSQL baze podataka od samog poetka
dizajnirane su tako da im je potrebno manje upravljanja. Automatsko popravljanje i
- 242 -
distribucija podataka i jednostavniji modeli podataka dovode do smanjenja potreba za
administracijom i pode邸avanjem.
NoSQL baze podataka obino koriste klastere jeftinih servera za upravljanje brzo
rastuim koliinama podataka i transakcija, dok se RSUBP oslanjaju na skupe vlasnike
servere i sisteme za skladi邸tenje podataka. Rezultat je da cena po GB ili po broju transakcija
u sekundi, kod NoSQL sistema, mo転e biti mnogo puta manja nego kod relacionih, 邸to
omoguava skladi邸tenje i obradu veih koliina podataka po ni転oj ceni.
Upravljanje promenama je veliki problem za RSUBP. ak i manje promene u
relacionom modelu podataka moraju biti pa転ljivo sprovedene i gotovo uvek zahtevaju
privremeno zaustavljanje rada sistema ili smanjenje nivoa usluga. NoSQL baze podataka
znaajno su relaksirane od problema koje nosi menjanje modela podataka  veina gotovo
da i nema ogranienja tog tipa. Klju-vrednost baze podataka i baze zasnovane na
dokumentima dozvoljavaju aplikaciji da uva bilo koju strukturu koju 転eli u elementu
podataka. ak i stro転e definisane baze podataka bazirane na BigTable modelu, kao 邸to su
Cassandra i HBase, dozvolavaju da se kreiraju nove kolone bez dodatnih komplikacija.
Zahvaljujui fleksibilnim modelima podataka NoSQL baze podataka olak邸avaju praenje
evolucije aplikacije kroz njen 転ivotni ciklus.
3.2. Ogranienja
Prema CAP (Consistency - konzistentnost, Availability - raspolo転ivost, Partition
tolerance - tolerancija razdvojenosti) teoremi, primenljivoj na sisteme zasnovane na
distribuiranoj arhitekturi, sistem koji skladi邸ti deljene podatke mo転e obezbediti
istovremeno zadovoljenje najvi邸e dva od sledea tri uslova: konzistentnost, raspolo転ivost i
tolerancija razdvojenosti [8]. Sistem poseduje osobinu konzistentnosti ako svako itanje iz
baze podataka kao rezultat ima najnoviju verziju podataka. Raspolo転ivost se odnosi na
odziv sistema u garantovanim vremenskim okvirima. Razdvojenost nastupa kada je sistem
podeljen na dve ili vi邸e particija izmeu kojih ne postoji komunikacija. Tolerancija
razdvojenosti znai da nijedan skup otkaza, osim potpunog otkazivanja, ne sme da
proizvede neispravan odziv sistema baze podataka. To znai da sistem mora da prihvata
delimine otkaze i nastavlja ispravan rad. Tvrenje CAP teoreme, primenjeno na
savremene relacione i nerelacione baze podataka, grafiki je prikazano na Slici 6.
SUBP dizajnirani tako da ispunjavaju ACID garancije, u Big Data eri ne mogu
uvek istovremeno da obezbede i konzistentnost i dostupnost. U takvim situacijama ACID
sistemi prednost daju konzistentnosti, na raun dostupnosti. Nasuprot njima, NoSQL
sistemi ne ispunjavaju ACID garancije, ve su kreirani tako da ispunjavaju BASE (Basically
Available, Soft state, Eventual consistency) garancije:
 su邸tinski raspolo転iv (Basically available): veina podataka je dostupna vei deo
vremena,
 nekonzistentno stanje (Soft state): baza podataka ne mora biti konzistentna u
svakom trenutku,
 konvergentna konzistencija (Eventual consistency): ne postoji garancija da e u
svakom trenutku svi vorovi sadr転ati identine kopije podataka. Te転i se
vremenskoj taki u kojoj e svi vorovi sadr転ati konzistentne podatke.
- 243 -
Slika 6. CAP teorema i savremene baze podataka
4. Zakljuak
Nestrukturirani podaci ili este potrebe za promenom strukture podataka
zahtevaju fleksibilan model podataka, 邸to relacioni model nije. S druge strane, svi
nerelacioni modeli podataka veoma su fleksibilni. Skladi邸tenje podataka u oblaku (Cloud-
based storage) je odlino re邸enje koje smanjuje tro邸kove, ali samo ako je obezbeena
horizontalna skalabilnost sistema, tj. ako se sistem skalira dodavanjem novih servera. Za
razliku od NoSQL sistema koji su horizontalno skalabilni, relacione baze podataka su
vertikalno skalabilne, 邸to znai da njihovo skaliranje zahteva kupovinu monijih i skupljih
servera. Velike koliine heterogenih podataka zahtevaju efikasne algoritme obrade, kao 邸to
je Apache MapReduce. Obrada podataka u relacionim bazama zasnovana je na zahtevnim
operacijama spajanja. Kompleksni SQL upiti u sluaju sistema distribuiranih na hiljade
servera ne pru転aju zadovoljavajue performanse. Relacioni model podataka i ACID
transakcije spreavaju brojne anomalije, garantuju konzistentnost i integritet baze
podataka. Nerelacione baze podataka podr転avaju BASE transakcije, pa se za njih ka転e da
su eventualno konzistentne. Za mnoge aplikacije, kao 邸to su aplikacije elektronske trgovine
i finansijske aplikacije, ACID garancije su neophodne.
Iz svega gore navedenog proizilazi zakljuak da ne postoji jedna tehnologija baza
podataka koja zadovoljava sve potrebe. Razliiti zadaci zahtevaju da koristimo kako
relacione, tako i nerelacione baze podataka. Integracija nerelacionih i relacionih baza
podataka namee se kao izazov za neka budua istra転ivanja.
Tolerancija razdvojenosti
(Partition tolerance):
sistem radi dobro uprkos
fizikoj razdvojenosti
njegovih particija
Konzistentnost
(Consistency):
svi klijenti uvek
itaju istu-
najnoviju
verziju podataka
Raspolo転ivost (Availability):
svaki klijent u svakom
trenutku mo転e itati i
upisivati podatke u bazu
RSUBP (SQL Server,
Oracle, MySQL,
Postgres...)
Vertica
Cassandra
SimpleDB
CouchDB
Riak
Dynamo
Voldemort
Tokyo Cabinet
KAI
Relacioni
Klju-vrednost
Kolonski
Baziran na dokumentima
Modeli
podataka
AP
CA
najvi邸e
dve od tri
osobine
C
A
P
CP
BigTable
Hypertable
HBase
MongoDB
Terrastore
Scalaris
Berkeley DB
MemcacheDB
Redis
- 244 -
Zahvalnost
Ovaj rad delimino je podr転an od strane Ministarstva prosvete, nauke i
tehnolo邸kog razvoja Republike Srbije, u okviru projekta pod brojem 032025.
Literatura
[1] E. F. Codd, A relational model of data for large shared data banks, Communications
of the ACM, vol. 13 (6), pp. 377-387, 1970.
[2] J. Gray, The Transaction Concept: Virtues and Limitations, In Proceedings of 7th
International Conference on Very Large Databases, pp. 144-154, 1981.
[3] G. Harrison, Next Generation Databases NoSQL and Big Data, New York, NC: Apress,
2015.
[4] Amazon DynamoDB. (2018, October 10). [Online]. Available at:
https://aws.amazon.com/dynamodb/
[5] C. Sherman (2017, April 16). Designing a Cassandra Data Model [online]. Available
at: https://shermandigital.com/blog/designing-a-cassandra-data-model/
[6] Neo4j. (2018, October 2). [online]. Available at: https://neo4j.com/developer/graph-
database/
[7] 3pillar global. (2018, October 5). A short history of databases: From RDBMS to
NoSQL & beyond [online]. Available at: https://www.3pillarglobal.com/insights/short-
history-databases-rdbms-nosql-beyond
[8] E. Brewer, Towards Robust Distributed Systems, In Proceedings of 19th
Annual ACM
Symposium on Principles of Distributed Computing, pp. 7-10, July 2000.
Abstract: Data models and the technologies that follow databases development went
through three revolutions. The first revolution delivered a hierarchical and network data
model, the second  a relational data model, while the third brought non-relational
(NoSQL) databases. The first NoSQL databases were developed in order to meet the needs
of Web 2.0 which determined them to be distributed, open-source and horizontally
scalable. Today, these databases represent the main pillar of Big Data technology.
Comparing to relational databases, non-relational databases enable high availability
while sacrificing data consistency through time. Till now, the following four non-relational
data models have been developed: key-value, wide column, graph, and document model.
This paper defines a context in which non-relational databases were appear, presents their
common features, demonstrates their advantages and limitations, and describes
characteristics of each data model through examples.
Keywords: NoSQL databases, key-value databases, wide column databases, document
databases, graph databases
NON-RELATIONAL DATABASES: OPPORTUNITIES AND LIMITATIONS
Slaana Jankovi, Sne転ana Mladenovi, Ana Uzelac, Stefan Zdravkovi

More Related Content

11.JankovicMladenovicUzelacZdravkovic.pdf

  • 1. XXXVI Simpozijum o novim tehnologijama u po邸tanskom i telekomunikacionom saobraaju PosTel 2018, Beograd, 4. i 5. decembar 2018. NERELACIONE BAZE PODATAKA: MOGUNOSTI I OGRANIENJA Slaana Jankovi, Sne転ana Mladenovi, Ana Uzelac, Stefan Zdravkovi Univerzitet u Beogradu - Saobraajni fakultet, s.jankovic@sf.bg.ac.rs, snezanam@sf.bg.ac.rs, ana.uzelac@sf.bg.ac.rs, s.zdravkovic@sf.bg.ac.rs Sadr転aj: Modeli podataka i tehnologije baza podataka koje su ih pratile do転iveli su do sada tri revolucije. Prvu revoluciju donelo je pojavljivanje hijerarhijskog i mre転nog modela podataka, drugu - relacioni model podataka, a treu -nerelacione (NoSQL) baze podataka. Prve NoSQL baze podataka nastale su sa ciljem da zadovolje potrebe Web 2.0, zbog ega su distribuirane, open-source i horizontalno skalabilne. Danas su ove baze jedan od noseih stubova Big Data tehnologija. U poreenju sa relacionim bazama podataka, one omoguavaju veu raspolo転ivost, ali se kod ovih baza podataka, ne mo転e garantovati konzistentnost svih podataka u svakom trenutku. Do danas su razvijeni sledei nerelacioni modeli podataka: klju-vrednost, kolonski, grafovski i model zasnovan na dokumentima. Ovaj rad opisuje kontekst u kom su nastale nerelacione baze podataka, predstavlja njihove zajednike karakteristike, prednosti i ogranienja u kori邸enju, a na primerima demonstrira osobenosti svakog od etiri u ovom trenutku prisutna nerelaciona modela podataka. Kljune rei: NoSQL baze podataka, klju-vrednost baze podataka, kolonske baze podataka, baze dokumenata, grafovske baze podataka 1. Uvod Dosada邸nji razvoj tehnologija baza podataka jasno je podeljen na tri epohe. Prva epoha bila je period od nastanka elektronskih raunara do pojave relacionog modela podataka, tj. od 1950-1970. godine. Tokom prve epohe za dominaciju su se borili hijerarhijski i mre転ni modeli podataka i njima odgovarajui sistemi za upravljanje bazama podataka (SUBP). Engleski matematiar i programer Edgar Frank Codd, zaposlen u istra転ivakoj laboratoriji IBM-a, 1970. godine objavio je nauni rad u kojem je dao osnove relacionog modela podataka [1]. Objavljivanje ovog rada predstavlja poetak druge, do sada najznaajnije epohe u razvoju baza podataka. Tokom naredne tri decenije dominirale su relacione baze podataka bez znaajnije konkurencije. Prve godine XXI veka donele su nove modele podataka i nove tehnologije baza podataka, 邸to oznaava poetak tree epohe u razvoju baza. Baze podataka tree generacije imaju jednu zajedniku karakteristiku nisu relacione. Stoga su dobile zajedniko ime nerelacione baze podataka. Kao sinonim za nerelacione baze podataka, 2009. godine pojavio se termin NoSQL baze podataka.
  • 2. - 236 - Suprotno oekivanom, NoSQL ne znai Not SQL ve ima znaenje Not only SQL. Termin NoSQL ne predstavlja jedan proizvod ili tehnologiju, ve klasu proizvoda i kolekciju razliitih, ponekad povezanih koncepata o nainima skladi邸tenja i manipulacije podacima. Druga sekcija rada sadr転i uporednu analizu relacionog i osnovnih nerelacionih modela podataka i njima odgovarajuih predstavnika sistema za upravljanje bazama podataka. Trea sekcija rada istie prednosti, ali prepoznaje i ogranienja u kori邸enju nerelacionih baza podataka. U poslednjoj sekciji rada dati su zakljuci o najistaknutijim vrstama baza podataka danas, kao i pravci buduih istra転ivanja. 2. Nerelacione vs. relacione baze podataka Savremeni internet i njegovi servisi neprekidno generi邸u ogromne koliine nestrukturiranih ili polustrukturiranih podataka, kao 邸to su: senzorski podaci, podaci koji se dele putem dru邸tvenih mre転a, lina pode邸avanja vezana za razliite naloge, fotografije, informacije o lokaciji ureaja, online aktivnosti i dr. Poku邸aji da se skladi邸te, obrade i analiziraju ovakvi podaci, uz pomo relacionih baza podataka, otkrili su ogranienja ove vrste baza. Osnovni razlozi koji su inicirali razvoj nerelacionih baza podataka su: internetom izazvana eksplozija koliine i vrsta podataka, kao i broja istovremenih zahteva nad bazom podataka i nepredvidiva du転ina trajanja ACID (Atomicity - atominost, Consistency - konzistentnost, Isolation - izolacija, Durability - trajnost) transakcije u Big Data okru転enju. ACID osobine transakcija definisao je ameriki naunik Jim Gray krajem 1970-ih godina [2]. One karakteri邸u transakcije koje se izvr邸avaju u relacionim bazama podataka. Kod nerelacionih baza podataka, da bi se transakcija izvr邸ila u razumnom vremenu, nije uvek mogue obezbediti da pre poetka i posle okonanja transakcije stanje baze podataka zadovoljava uslove konzistentnosti. Osobine transakcija kod NoSQL sistema bie detaljno razmatrane u treoj sekciji rada. Iako postoje na desetine nerelacionih baza, prema modelu podataka sve se mogu svrstati u jednu od etiri kategorije: klju-vrednost baze podataka, kolonske baze podataka, baze podataka bazirane na dokumentima i grafovske baze podataka. Sledi kratak opis relacionih i sve etiri kategorije nerelacionih baza podataka. 2.1. Relacione baze podataka Relacione baze podataka (RBP) predstavljaju poseban tip baza podataka ija je organizacija podataka zasnovana na relacionom modelu. U ovakvim bazama podataka podaci se organizuju u skup relacionih tabela (relacija) izmeu kojih mogu biti kreirani odreeni tipovi veza. U RBP svaka relacija mora da ima primarni klju, odnosno skup atributa pomou kojeg se jedinstveno identifikuje svaka n-torka. Skup atributa preko kojih se ostvaruje veza sa nekom drugom relacijom naziva se spoljni klju. U relacionim sistemima za upravljanje bazama podataka (RSUBP) uglavnom se koristi najmoniji upitni jezik danas - SQL (Structured Query Language) ili neki od njegovih dijalekata. Va転na prednost RSUBP ogleda se u tome 邸to pru転aju izvanrednu sigurnost. Administrator baze podataka korisnicima mo転e dodeliti odreene privilegije kojima ih ovla邸uje za odgovarajue operacije u bazi podataka.
  • 3. - 237 - Transakcije RBP esto su kompleksne jer zahtevaju spajanje tabela i izvr邸avanje operacija nad vi邸e zapisa. Ukoliko je potrebno izvr邸iti veliki broj transakcija u jedinici vremena, kao kod zadataka Big Data analize, kompleksnost transakcija mo転e biti znaajan nedostatak. RBP projektovane su tako da nisu horizontalno ve samo vertikalno skalabilne. U sluaju poveanja optereenja baze podataka, kod relacionih baza, bolji rezultati se posti転u pojaavanjem resursa servera (hard diska, memorije i procesora), nego deljenjem optereenja na vi邸e servera. Meutim, ovakva re邸enja mogu da budu izuzetno skupa i u sluaju primene kod Big Data ekonomski su neisplativa. Big Data okru転enje podrazumeva i esta pojavljivanja novih izvora i formata podataka. Nefleksibilan relacioni model podataka nije odgovarajui izbor u takvim sluajevima. 2.2. Klju-vrednost baze podataka Klju-vrednost baze podataka predstavljaju najjednostavniji tip NoSQL baza podataka. Svaki zapis se uva kao par sastavljen od kljua i njemu odgovarajue vrednosti, pri emu je vrednost potpuno nepoznata sistemu i mo転e joj se pristupiti samo putem kljua. Koristi se za prikaz polimorfnih i nestrukturiranih podataka jer omoguuje skladi邸tenje podataka bez prethodno definisane 邸eme, kori邸enjem klju-vrednost parova. Imaju mogunost primanja i a転uriranja podataka zasnovanih samo na ogranienom skupu vrednosti dok je za potrebe upita nad drugim vrednostima neophodno kreirati sopstvene indekse. A転uriranje ovakvih sistema zahteva vi邸e prolaza kroz bazu: prvi kojim se pronalazi zapis, drugi kojim se a転urira zapis i trei kojim se a転urira indeks. Koriste se u sluajevima kada postoji potreba da se podatku pristupi pomou jedne kljune rei. Klju- vrednost baze podataka dozvoljavaju horizontalno skaliranje u meri u kojoj to neke druge baze ne omoguavaju. DynamoDB je prva u nizu klju-vrednost baza podataka i po uzoru na nju su nastale mnoge druge baze ovog tipa, mada postoji i jedan broj klju-vrednost baza podataka koje se dosta razlikuju od nje kao 邸to su Redis i Oracle NoSQL. DynamoDB je napravljen od strane Amazona sa ciljem da podr転i njihovu veliku online prodavnicu. Infrastruktura DynamoDB se sastoji od desetina hiljada servera i mre転nih komponentni lociranih u mnogim centrima podataka 邸irom sveta [3]. DynamoDB tabele nemaju fiksnu 邸emu dok njeni objekti mogu imati proizvoljan broj atributa. Prednost ove baze podataka je 邸to raste paralelno sa podacima, a za pobolj邸anje performansi je dovoljno dodati nove servere. U DynamoDB, tabela predstavlja kolekciju stavki a svaka stavka predstavlja kolekciju klju- vrednost parova koji predstavljaju atribute. U DynamoDB postoji podr邸ka i za primarne kljueve koji su unutar tabele jedinstveni i slu転e da jedinstveno odrede stavku. Primarni klju je predstavljen putem he邸a ili putem he邸a sa opsegom. He邸 klju koristi jedan atribut od koga se kreira he邸 indeks. Da bi se prona邸la stavka sa ovim kljuem, neophodno je znati njegovu tanu vrednost. Na primer, ako bi postojala tabela korisnika koja koristi korisniki UserId kao primarni he邸 klju, do podataka o korisniku bi bilo mogue doi kori邸enjem UserId vrednosti. Da bi se kreirali robusniji indeksi koriste se dva atributa: he邸 i opseg vrednosti. Pomou ova dva atributa mogue je obaviti pretragu opsega od neke poetne take. Na primer u tabeli gde se uvaju poruke korisnika mo転e se koristiti UserId kao he邸 klju, a za opseg vremenska oznaka pa bi na taj nain bilo mogue doi do poruka datog korisnika koje su novije od zadate vremenske take [4]. Na Slici 1 dat je prikaz tabele Korisnici u DynamoDB. Tip podataka list u DynamoDB mo転e da uva ureenu kolekciju
  • 4. - 238 - vrednosti razliitih tipova. Pogledu u RBP odgovara globalni sekundarni indeks u DynamoDB. Slika 1. Primer tabele u DynamoDB 2.3. Kolonske baze podataka Za razliku od klju-vrednost baza podataka, u kolonskim bazama podataka podacima se pristupa po kolonama, a ne po vrednostima. Obrada po kolonama prilikom paralelnog procesiranja doprinosi boljim performansama. Za uvanje podataka se koriste kolonske familije, odnosno multidimenzione sortirane mape. Kolone imaju ime i pamte vei broj vrednosti po vrsti koje su identifikovane vremenskom oznakom, tako da predstavljaju trodimenzionalnu strukturu i do svake vrednosti se mo転e doi kori邸enjem klju-vrste, klju-kolone i vremenske oznake. Primer ovakve baze podataka je Cassandra koja predstavlja distribuiranu bazu podataka i koristi se prilikom obrade velike koliine brzorastuih podataka. Na Slici 2 dat je primer tabele u kolonskoj bazi Cassandra. Podaci su organizovani u particije, svaka particija sadr転i vi邸e kolona, a particije se skladi邸te u vorove [5]. vorovi predstavljaju deo klastera gde je svaki vor zadu転en za deli particije. Svaki klju particionisanja se sastoji od jedne ili vi邸e kolona. Druge popularne baze ovog tipa su: MariaDB, CrateDB, ClickHouse, Apache HBase, Hypertable, itd. Slika 2. Primer tabele u kolonskoj bazi Cassandra
  • 5. - 239 - 2.4. Baze podataka bazirane na dokumentima Za razliku od prethodno opisanih vrsta baza podataka, ova baza podatke skladi邸ti u dokumentima. Ovi dokumenti imaju strukturu nalik JSON (JavaScript Object Notation) formatu. Svaki dokument opisuje jedan objekat, a sadr転i jedno ili vi邸e polja. Svako polje sadr転i jednu vrednost nekog od predefinisanih tipova: tekstualnog, binarnog, decimalnog, datumskog ili tipa niza. Ovaj model podi転e produktivnost u razvoju baza podataka jer se podaci mogu unositi onakvi kakvi jesu, bez prethodnih priprema. Model podataka je takav da obezbeuje jednostavan i brz pristup podacima. Najpopularnija meu bazama ove vrste danas je MongoDB. MongoDB baza podataka sastoji se od kolekcija (Collections). U kolekcije se dodaju dokumenti. Ono 邸to su kod relacionih baza tabele, to su kod MongoDB baze kolekcije, dok zapisima u relacionim bazama odgovaraju dokumenti kod MongoDB baze. Kljuna razlika izmeu ovih koncepata je u tome 邸to svi zapisi jedne relacione tabele moraju imati istu strukturu, dok dokumenti jedne kolekcije mogu imati razliita polja. Osim toga, istoimena polja u razliitim dokumenta mogu biti razliitih tipova podataka, ak i kada modeliraju istu vrstu objekata. U ovim osobinama ogleda se fleksibilnost modela podataka baziranog na dokumentima. Izmeu MongoDB dokumenata mogu se kreirati veze tipa 1:1 ili 1:N. Obe vrste veza mogu se ostvariti na dva naina: uz pomo ugnje転denih dokumenata (Slika 3) ili referenciranjem dokumenata (Slika 4). Implementiranjem veza izmeu dokumenata u MongoDB bazi obezbeuje se referencijalni integritet podataka. { _id: "marko", ime: "Marko Markovi", adrese: [ { ulica: "Petra Lekovia 74", grad: "U転ice", dr転ava: "Srbija" }, { ulica: "Kostolaka 123", grad: "Beograd", dr転ava: " Srbija " } ] } Slika 3. Veza 1:N ostvarena uz pomo ugnje転denih dokumenata { _id: "orm", naziv: "O'Reilly Media", godina_osnivanja: 1980, dr転ava: "SAD", knjige: [123456789, 234567890] } { _id: 123456789, naslov: "MongoDB: The Definitive Guide", autor: [ "Kristina Chodorow", "Mike Dirolf" ], broj_strana: 216, jezik: "Engleski" } { _id: 234567890, naslov: "50 Tips and Tricks for MongoDB Developer", autor: "Kristina Chodorow", broj_strana: 68, jezik: "Engleski " } Slika 4. Veza 1:N ostvarena referenciranjem dokumenata
  • 6. MongoDB pru転a bogat skup opcija indeksiranja radi optimizovanja razliitih vrsta upita. Osim standardnih indeksa nad jednim poljem, ovaj proizvod nudi i sledee vrste indeksa: slo転ene (Compound), tekstualne (Text), geoprostorne (Geospatial), indekse za polja koja sadr転e nizove (Multikey), indekse koji omoguavaju upravljanje 転ivotnim vekom podataka (Time to Live Indexes), jedinstvene indekse (Unique Indexes) i druge. Uz pomo svog Aggregation Framework-a MongoDB omoguava analiziranje podataka u samoj bazi, bez potrebe za kopiranjem podataka u analitike softverske sisteme. U Big Data sluajevima upotrebe ovo je veoma va転na osobina baze podataka. Ono 邸to MongoDB bazu takoe kandiduje za Big Data skladi邸te jeste njena sposobnost skladi邸tenja fajlova bilo koje vrste i veliine. Fajlovi koji se uvaju u bazi mogu se povezati sa dokumentima iz MongoDB kolekcija. Osim MongoDB baze, trenutno najpopularnije baze ovog tipa su: Amazon WorkDocs, ArangoDB, Amazon DynamoDB, Azure Cosmos DB, MarkLogic, itd. 2.5. Grafovske baze podataka Grafovske baze podataka zasnovane su na teoriji grafova uzimajui u obzir veze izmeu podataka i tipove podataka. Grafovi se sastoje od vorova (entiteta), koji mogu da budu meusobno povezani neodreenim brojem veza (grana) i svojstava koja predstavljaju atribute vorova ili veza. Cilj projektovanja ovakve baze je uvanje podataka bez ogranienja nametnutih unapred definisanim modelom. Umesto toga, podaci se organizuju na nain koji diktiraju priroda podataka i njihovih meusobnih veza. Organizacija podataka u bazi pokazuje kako se svaki pojedinani entitet povezuje, odnosno u kakvoj je relaciji sa drugim entitetima. Samoreferencirajui podaci predstavljaju jedan od znaajnih problema RBP. U grafovksim bazama podataka kao 邸to je npr. Neo4j ovaj problem je prevazien brzim prolaskom kroz vorove i njihove veze, kako bi se prona邸li relevantni podaci [6]. Neo4j predstavlja tipinu grafovsku bazu podataka koja uva podatke u formatu koji je optimizovan za grafovsku obradu u realnom vremenu. To istovremeno znai da ovo nije baza podataka op邸te namene i da ima deliminu primenu u druge svrhe. Na Slici 5 mo転e se videti primer vorova, usmerenih veza i svojstava u grafovskoj bazi podataka. Slika 5. Primer grafovskog modela podataka [2] Posebna prednost ovakve baze podataka je uvanje podataka u obliku u kom su uneti, kao i kori邸enje pokazivaa za navigaciju i prolazak kroz graf. U najpopularnije grafovske baze podataka spadaju jo邸: AllegroGraph, GraphDB Lite, Amazon Neptune, AnzoGraph, ArangoDB, InfiniteGraph, InfoGrid, HyperGraphDB, itd. Ove baze nastale su
  • 7. - 241 - popularizacijom dru邸tvenih mre転a gde postoji veliki broj korisnika koji poseduje odreene veze sa drugim korisnicima, komentarima, slikama i statusima. Grafovske baze podataka ne podr転avaju deklarativni upitni jezik visokog nivoa poput SQL-a, kako bi se izbeglo prekovremeno izvr邸avanje upita. Umesto toga upiti nad ovakvim bazama zavise od konkretnog modela podataka [7]. Jezici SPARQL, Cypher i Gremlin su optimizovani za operacije prolaska kroz graf. Oni imaju sintaksu koja omoguava prolazak kroz graf bez potrebe za rekurzivnim spojevima koji su karakteristni za RBP. Retko se koriste u op邸toj operativnoj primeni. Umesto toga povezuju se sa dokumentima ili relacionim bazama podataka u vidu multimodalne baze podatka kako bi ostvarili specifinu grafovsku strukturu podataka. Grafovske baze podataka imaju specifinu primenu i od njih se ne oekuje da zamene RBP. One predstavljaju dobru alternativu relacionim bazama u situacijama kada je pored samih objekata od velikog znaaja i analiza odnosa izmeu njih. 3. Mogunosti i ogranienja u kori邸enju nerelacionih baza podataka Nerelacione baze podataka nastale su kao odgovor na rastue potrebe Web 2.0 aplikacija, kao 邸to su: dru邸tvene mre転e, vikipedije, blogovi, folksonomije, online deljenje video zapisa, web i mobilne aplikacije (Apss), itd. U skladu sa njihovom osnovnom namenom, sposobne su da prihvate velike koliine nestrukturiranih, heterogenih podataka i efikasno se skaliraju po potrebi, ali ne mogu uvek garantovati konzistentnost podataka. 3.1. Mogunosti Najva転nije prednosti nerelacionih baza podataka, u poreenju sa relacionim, su: elastino, horizontalno skaliranje, mnogo bolje odgovaraju zahtevima Big Data, manje su zahtevne u pogledu odr転avanja, ekonominije su i nude fleksibilnije modele podataka. Decenijama unazad administratori baza podataka radije su se oslanjali na vertikalno skaliranje (scale vertically or scale up/down), nego na horizontalno skaliranje (scale horizontally or scale out/in). To znai da su radije kupovali monije servere kako je optereenje baza raslo, nego 邸to su distribuirali baze podataka na vi邸e vorova. Jedan od razloga za to bio je 邸to relacione baze podataka nisu dizajnirane za horizontalno skaliranje. Ipak, kako su brzine transakcija i zahtevi u pogledu dostupnosti rasli, a posebno kako su baze podataka preseljene u oblak ili virtuelizovano okru転enje, ekonomske prednosti horizontalnog skaliranja postale su neodoljive. Zbog toga su NoSQL baze projektovane za horizontalno skaliranje. Big Data era donela je ogromno poveanje koliina podataka koje treba skladi邸titi i obraditi. Kapaciteti RSUBP rasli su da bi zadovoljili nove zahteve, ali koliina podataka kojom se praktino mo転e upravljati uz pomo RSUBP za mnoge organizacije ipak je bila nedovoljna. Danas, koliina podataka kojom mo転e rukovati neki NoSQL sistem, kao 邸to je Hadoop, daleko prevazilazi mogunosti najveih RSUBP. Uprkos mnogim pobol邸anjima upravlivosti koje su proizvoai RSUBP postigli tokom godina, vrhunski RSUBP mogu se odr転avati samo uz pomo skupih, visoko struno obuenih administratora baza podataka. Administratori su uklueni u projektovanje, instalaciju i tekua pode邸avanja sistema. NoSQL baze podataka od samog poetka dizajnirane su tako da im je potrebno manje upravljanja. Automatsko popravljanje i
  • 8. - 242 - distribucija podataka i jednostavniji modeli podataka dovode do smanjenja potreba za administracijom i pode邸avanjem. NoSQL baze podataka obino koriste klastere jeftinih servera za upravljanje brzo rastuim koliinama podataka i transakcija, dok se RSUBP oslanjaju na skupe vlasnike servere i sisteme za skladi邸tenje podataka. Rezultat je da cena po GB ili po broju transakcija u sekundi, kod NoSQL sistema, mo転e biti mnogo puta manja nego kod relacionih, 邸to omoguava skladi邸tenje i obradu veih koliina podataka po ni転oj ceni. Upravljanje promenama je veliki problem za RSUBP. ak i manje promene u relacionom modelu podataka moraju biti pa転ljivo sprovedene i gotovo uvek zahtevaju privremeno zaustavljanje rada sistema ili smanjenje nivoa usluga. NoSQL baze podataka znaajno su relaksirane od problema koje nosi menjanje modela podataka veina gotovo da i nema ogranienja tog tipa. Klju-vrednost baze podataka i baze zasnovane na dokumentima dozvoljavaju aplikaciji da uva bilo koju strukturu koju 転eli u elementu podataka. ak i stro転e definisane baze podataka bazirane na BigTable modelu, kao 邸to su Cassandra i HBase, dozvolavaju da se kreiraju nove kolone bez dodatnih komplikacija. Zahvaljujui fleksibilnim modelima podataka NoSQL baze podataka olak邸avaju praenje evolucije aplikacije kroz njen 転ivotni ciklus. 3.2. Ogranienja Prema CAP (Consistency - konzistentnost, Availability - raspolo転ivost, Partition tolerance - tolerancija razdvojenosti) teoremi, primenljivoj na sisteme zasnovane na distribuiranoj arhitekturi, sistem koji skladi邸ti deljene podatke mo転e obezbediti istovremeno zadovoljenje najvi邸e dva od sledea tri uslova: konzistentnost, raspolo転ivost i tolerancija razdvojenosti [8]. Sistem poseduje osobinu konzistentnosti ako svako itanje iz baze podataka kao rezultat ima najnoviju verziju podataka. Raspolo転ivost se odnosi na odziv sistema u garantovanim vremenskim okvirima. Razdvojenost nastupa kada je sistem podeljen na dve ili vi邸e particija izmeu kojih ne postoji komunikacija. Tolerancija razdvojenosti znai da nijedan skup otkaza, osim potpunog otkazivanja, ne sme da proizvede neispravan odziv sistema baze podataka. To znai da sistem mora da prihvata delimine otkaze i nastavlja ispravan rad. Tvrenje CAP teoreme, primenjeno na savremene relacione i nerelacione baze podataka, grafiki je prikazano na Slici 6. SUBP dizajnirani tako da ispunjavaju ACID garancije, u Big Data eri ne mogu uvek istovremeno da obezbede i konzistentnost i dostupnost. U takvim situacijama ACID sistemi prednost daju konzistentnosti, na raun dostupnosti. Nasuprot njima, NoSQL sistemi ne ispunjavaju ACID garancije, ve su kreirani tako da ispunjavaju BASE (Basically Available, Soft state, Eventual consistency) garancije: su邸tinski raspolo転iv (Basically available): veina podataka je dostupna vei deo vremena, nekonzistentno stanje (Soft state): baza podataka ne mora biti konzistentna u svakom trenutku, konvergentna konzistencija (Eventual consistency): ne postoji garancija da e u svakom trenutku svi vorovi sadr転ati identine kopije podataka. Te転i se vremenskoj taki u kojoj e svi vorovi sadr転ati konzistentne podatke.
  • 9. - 243 - Slika 6. CAP teorema i savremene baze podataka 4. Zakljuak Nestrukturirani podaci ili este potrebe za promenom strukture podataka zahtevaju fleksibilan model podataka, 邸to relacioni model nije. S druge strane, svi nerelacioni modeli podataka veoma su fleksibilni. Skladi邸tenje podataka u oblaku (Cloud- based storage) je odlino re邸enje koje smanjuje tro邸kove, ali samo ako je obezbeena horizontalna skalabilnost sistema, tj. ako se sistem skalira dodavanjem novih servera. Za razliku od NoSQL sistema koji su horizontalno skalabilni, relacione baze podataka su vertikalno skalabilne, 邸to znai da njihovo skaliranje zahteva kupovinu monijih i skupljih servera. Velike koliine heterogenih podataka zahtevaju efikasne algoritme obrade, kao 邸to je Apache MapReduce. Obrada podataka u relacionim bazama zasnovana je na zahtevnim operacijama spajanja. Kompleksni SQL upiti u sluaju sistema distribuiranih na hiljade servera ne pru転aju zadovoljavajue performanse. Relacioni model podataka i ACID transakcije spreavaju brojne anomalije, garantuju konzistentnost i integritet baze podataka. Nerelacione baze podataka podr転avaju BASE transakcije, pa se za njih ka転e da su eventualno konzistentne. Za mnoge aplikacije, kao 邸to su aplikacije elektronske trgovine i finansijske aplikacije, ACID garancije su neophodne. Iz svega gore navedenog proizilazi zakljuak da ne postoji jedna tehnologija baza podataka koja zadovoljava sve potrebe. Razliiti zadaci zahtevaju da koristimo kako relacione, tako i nerelacione baze podataka. Integracija nerelacionih i relacionih baza podataka namee se kao izazov za neka budua istra転ivanja. Tolerancija razdvojenosti (Partition tolerance): sistem radi dobro uprkos fizikoj razdvojenosti njegovih particija Konzistentnost (Consistency): svi klijenti uvek itaju istu- najnoviju verziju podataka Raspolo転ivost (Availability): svaki klijent u svakom trenutku mo転e itati i upisivati podatke u bazu RSUBP (SQL Server, Oracle, MySQL, Postgres...) Vertica Cassandra SimpleDB CouchDB Riak Dynamo Voldemort Tokyo Cabinet KAI Relacioni Klju-vrednost Kolonski Baziran na dokumentima Modeli podataka AP CA najvi邸e dve od tri osobine C A P CP BigTable Hypertable HBase MongoDB Terrastore Scalaris Berkeley DB MemcacheDB Redis
  • 10. - 244 - Zahvalnost Ovaj rad delimino je podr転an od strane Ministarstva prosvete, nauke i tehnolo邸kog razvoja Republike Srbije, u okviru projekta pod brojem 032025. Literatura [1] E. F. Codd, A relational model of data for large shared data banks, Communications of the ACM, vol. 13 (6), pp. 377-387, 1970. [2] J. Gray, The Transaction Concept: Virtues and Limitations, In Proceedings of 7th International Conference on Very Large Databases, pp. 144-154, 1981. [3] G. Harrison, Next Generation Databases NoSQL and Big Data, New York, NC: Apress, 2015. [4] Amazon DynamoDB. (2018, October 10). [Online]. Available at: https://aws.amazon.com/dynamodb/ [5] C. Sherman (2017, April 16). Designing a Cassandra Data Model [online]. Available at: https://shermandigital.com/blog/designing-a-cassandra-data-model/ [6] Neo4j. (2018, October 2). [online]. Available at: https://neo4j.com/developer/graph- database/ [7] 3pillar global. (2018, October 5). A short history of databases: From RDBMS to NoSQL & beyond [online]. Available at: https://www.3pillarglobal.com/insights/short- history-databases-rdbms-nosql-beyond [8] E. Brewer, Towards Robust Distributed Systems, In Proceedings of 19th Annual ACM Symposium on Principles of Distributed Computing, pp. 7-10, July 2000. Abstract: Data models and the technologies that follow databases development went through three revolutions. The first revolution delivered a hierarchical and network data model, the second a relational data model, while the third brought non-relational (NoSQL) databases. The first NoSQL databases were developed in order to meet the needs of Web 2.0 which determined them to be distributed, open-source and horizontally scalable. Today, these databases represent the main pillar of Big Data technology. Comparing to relational databases, non-relational databases enable high availability while sacrificing data consistency through time. Till now, the following four non-relational data models have been developed: key-value, wide column, graph, and document model. This paper defines a context in which non-relational databases were appear, presents their common features, demonstrates their advantages and limitations, and describes characteristics of each data model through examples. Keywords: NoSQL databases, key-value databases, wide column databases, document databases, graph databases NON-RELATIONAL DATABASES: OPPORTUNITIES AND LIMITATIONS Slaana Jankovi, Sne転ana Mladenovi, Ana Uzelac, Stefan Zdravkovi