Upload
mmmmm1900
View
19
Download
5
Embed Size (px)
DESCRIPTION
KDI, Ognjen Orel
Citation preview
Otkrivanje znanja iz relacijskih podataka uporabom
graf baza podataka
Ognjen Orel Sveuilini raunski centar Srce
J. Marohnia 5 Zagreb, HR-10000, Hrvatska
Saetak- Grafovi ine jedan od najprikladnijih naina za opis stvarnoga svijeta te su stoga sastavni dio istraivanja mnogih znanstvenih grana ve dui niz godina. U tom vremenu je predloen veliki broj modela graf baza podataka i pripadnih
jezika definiranih nad njima. Istraivanja u ovom smjeru dobivaju novi zamah pojavom NoSQL baza podataka, nastalih
iz potrebe za boljim iskoritavanjem resursa i jednostavnijom suradnjom izmeu sloja za pohranu podataka i aplikativnog
sloja, a kojima pripadaju i aktualne graf baze podataka.
Dubinska analiza grafova odnosi se i na algoritme za analizu i
dobivanje znanja iz grafova koja je teko dobiti iz relacijskih baza podataka. Obzirom na veliki broj relacijskih baza
podataka i koliinu podataka u njima, razmatramo mogunosti transformacije relacijskih baza podataka u graf baze podataka
i provoenja dubinske analize nad tim tranformiranim podacima.
Kljune rijei- model podataka, graf, relacijska baza
podataka, graf baza podataka, NoSQL
I. UVOD
Graf baze podataka i pripadni modeli postoje ve vie od 25 godina. Tijekom prvog vremena istraivanja ovog podruja, razvijen je velik broj modela graf baza podataka i jo vei broj programskih jezika za pristup i manipulaciju podacima. Istraivanje je s vremenom zastalo, no u posljednje vrijeme, pojavom NoSQL baza podataka i same
filozofije pohrane podataka koja se razlikuje od relacijskih
baza podataka, te orijentacijom informacijskih sustava k
boljem iskoritavanju resursa u kraem vremenu, ova tema dobiva novi zamah. Sve vie podataka koji se svakodnevno koriste se ini prirodno opisati grafovima i pohraniti u graf baze podataka: semantiki web, drutvene mree, lokacije navigacijskih sustava, itd.
Poveana potreba za dubinskom analizom podataka nije zaobila ni podatke prikazane grafovima, tako da je vremenom razvijen vei broj vie ili manje uinkovitih algoritama koji spadaju u ovo podruje. Velike koliine podataka koje se u dananje vrijeme prikupljaju i pohranjuju iziskuju i potrebe za komprimiranjem grafova, te je i to
razlog za efikasnijom analizom grafova. Ne moe se zanemariti niti injenica kako je veina podataka danas sastavni dio relacijskih baza podataka, iako ih je prirodno
prikazati u grafovima, tako da su zanimljivi i algoritmi za
transformaciju podataka iz relacijskih u graf baze podataka.
Rad je koncipiran kako slijedi. U drugom poglavlju dan je
pregled ranije predloenih modela graf baza podataka. Nakon toga su prikazani jezici za rad s predloenim modelima. Nastavno na jezike u kojima se implementiraju
razni algoritmi, u etvrtom poglavlju je dan opis dubinske
analize grafova i najeih aktivnosti koje spadaju u ovu temu. Peto poglavlje donosi pregled mogunosti transformacija relacijskih podataka u grafove, a esto se odnosi na prikaz NoSQL baza podataka i aktualnih graf baza
podataka. Diskusija o navedenome i mogui smjerovi daljnjeg istraivanja zakljuuju rad.
II. MODELI GRAF BAZA PODATAKA
Formalno, graf je definiran kao
G = (V, E) (1)
pri emu je V neprazni konaan skup, ije elemente se naziva vrhovi, a E konaan skup razliitih dvolanih podskupova skupa V, ije elemente se naziva bridovi. Shema graf baze podataka je u formi
Gdb= (V, E, , L, ) (2)
gdje je V skup vorova, E skup bridova, je funkcija incidencije iz E u VV, L je skup oznaka, a je funkcija za oznaavanje iz V E u L [1]. Postoje razliiti teoretski modeli graf baza podataka, a svi imaju formalno uporite u nekoj od varijacija osnovne definicije grafa (1). Veina ovih modela nastala je prije razvoja NoSQL baza podataka, aktualnog u posljednjih
nekoliko godina. Najraniji model koji se moe smatrati modelom graf baze podataka je R&M iz 1975 [2], a koji je
nastao iz nemogunosti tadanjih sustava da uzmu u obzir semantiku baza podataka. Functional Data Model [3]
predlae da podaci u bazi podataka budu grafovi. Potpuno drugaiji pristup daje model Logical Data Model (LDM) [4] kojim se pokualo modelom graf baze podataka generalizirati relacijski, hijerarhijski i mreni model podataka. Model G-Base za modeliranje baza znanja
predloen je 1987 [5]. Objektno orijentirani model O2 koji je temeljen na strukturi
grafova je predloen 1988 [6]. 1990 je predloen jedan od najutjecajnih modela GOOD [7], graf-orijentirani objektni
model, kao teorijska osnova za sustav u kojem e manipulacija i prikaz podataka biti zasnovani na grafovima.
Vei broj novih modela zasnovan je na ovom modelu. Meu njima su GMOD [8] koji donosi nekoliko koncepata za
korisnika suelja zasnovana na grafovima; Gram [9], model graf baze za hipertekstualne podatke; PaMaL [10],
koji proiruje GOOD model s n-torkama i skupovima; GOAL [11] koji proiruje GOOD model s povezanim vorovima; G-Log [12] koji predlae deklarativni upitni jezik za grafove; GDM [13] koji dodaje viestruke simetrine veze.
Neki prijedlozi modela graf baza podataka koriste
generalizaciju grafova sa svrhom modeliranja podataka.
Hypernode Model [14] je model koji se temelji na
ugnijedenim grafovima (vor moe biti drugi graf). Ovaj je model npr. koriten pri modeliranju genoma [15]. GROOVY [16] je objektno orijentirani model koji koristi hipergrafove,
grafove temeljene na hipertekstualnim podacima.
Pregled modela nastalih do 2002. godine, kao i drugih alata
i prijedloga vezanih uz graf baze podataka dan je u [17].
Napravljena je i analiza povezanosti pojedinih modela
drugima, te su se referentnima pokazali Logical Data Model
(LDM), GOOD i Hypernode. U istraivanju objavljenom 2012. [1] kao primarna razlika izmeu navedenih modela promatra se sloenost vorova pri emu sloeni modeli omoguavaju pohranu grafova u vorove drugih grafova. Nastavno na to istraivanje je predloen novi model SPIDER, prilagoen definiciji i manipulaciji grafovima temeljenim na ontologiji poslovanja.
Aktualna klasifikacija modela graf baza podataka temelji
se na usporedbi kljunih mogunosti trenutno dostupnih baza podataka [18], koje definiraju model podataka:
struktura podataka, programski jezici i ogranienja integriteta. Struktura podataka odnosi se na samu vrstu
grafova koji se pohranjuju u bazi (jednostavni, hipergrafovi,
hipervorovi, grafovi opisani atributima), vorove (oznaeni, opisani atributima) i bridove (usmjereni, oznaeni, opisani atributima). Pri dostupnosti programskih jezika promatraju se implementira li pojedina baza neki od
jezika za pretraivanje, implementira li posebno programsko suelje za pristup i manipulaciju podacima (API), te implementira li grafiki prikaz i pretraivanje podataka. U podruju integritetskih ogranienja promatra se provjera domenskog integriteta, postojanje jedinstvenog
identifikatora vora i brida, referencijski integritet i sl. Osim navedenih, od aktualnih baza podataka se takoer zahtijeva koritenje trajne memorije i indeksiranje podataka.
III. JEZICI U GRAF BAZAMA PODATAKA
Upitni jezik (query language) se temelji na operatorima ili
pravilima zakljuivanja koja se mogu primjeniti na bilo koju instancu modela strukture podataka, a koji obavljaju
operacije nad podacima i pretrauju ih u bilo kojem eljenom poretku [19]. Uz modele graf baza podataka postoji i veliki broj pripadnih jezika za manipulaciju i
pretraivanje podataka. Ovi se jezici mogu grupirati u etiri vrste: vizualni jezici, jezici nalik na SQL, formalni jezici i
semantiki jezici.
A. Vizualni jezici
Vizualni jezici nude funkcionalnost tekstualnih jezika onim
korisnicima koji ne pripadaju kategoriji naprednih korisnika,
ali isto tako i poveanu produktivnost strunim korisnicima baza podataka. Korisnici mogu nacrtati upite u formi uzorka
iz baze podataka uz pomo grafikog suelja, a dobiveni rezultat se prikazuje na isti nain. Radi se dakle o pretraivanju po predloku (query by example, QBE). G [20] je jezik temeljen na regularnim izrazima i
omoguava jednostavnu formulaciju rekurzivnih upita koji se ne mogu jednostavno predstaviti relacijskim upitima. Ne
podrava grafove sa zatvorenim petljama, pronalazak
najkraeg puta, izraun udaljenosti vorova niti agregatne funkcije. Ovaj jezik je kasnije evoluirao u G+ [21] koji
ispravlja navedene nedostatke. Na osnovu G+ je nastao
GraphLog [22] koji omoguava koritenje negacije, podrava agregatne funkcije i sumiranje po putanjama, a uz to i praenje izraunavanja upita. Hyperlog [16] je deklarativni jezik za pretraivanje i auriranje definiran nad Hypernode modelom. Vizualizira shemu baze podataka, podatke i rezultate upita kao skupove
ugnijedenih grafova, koji se na jedinstven nain mogu pohranjivati, pregledavati i pretraivati. Programsko suelje pomae korisniku u radu s ovim jezikom ograniavajui ga samo na mogue akcije. Upiti u QGRAPH [23] jeziku se kreiraju kao oznaeni spojeni graf kojeg se pretrauje u svojstvu podgrafa u modelu baze podataka. Praktian je u sluajevima kad je potrebno definirati podupite, no ne podrava agregatne funkcije. GOOD [7] je jezik s grafikom sintaksom i semantikom, razvijen za istoimeni model baza podataka. Temelji se na
definiranju uzoraka grafova. Unos i brisanje vorova i bridova se takoer obavljaju kroz grafiko suelje, a mogue je i grupiranje vorova po odreenim kriterijima, no ne moe pronalaziti putanje proizvoljne duljine. Kako su razvoj GOOD modela baza podataka slijedili GMOD [8], PaMaL
[10] i GOAL [11], tako su na osnovu GOOD jezika nastali i
istoimeni jezici GMOD, PaMaL i GOAL, koji su odgovarali
svakom od predloenih modela i donosili odreena proirenja u odnosu na GOOD.
B. Jezici nalik na SQL
Ovi jezici su deklarativni jezici koji proiruju standardni SQL jezik s novim operatorima za rad s grafovima i
objektima. Lorel [24] je upitni jezik definiran nad Object
Exchange Model (OEM) modelom podataka. Omoguava pretraivanje bez tonog poznavanja strukture putanje i koritenje regularnih izraza. GOQL [25] je proirenje OQL-a mogunostima za kreiranje, manipulaciju i pretraivanje objekata koji su tipa graf, putanja i brid. Ova tri tipa
zajedno s tipom vor ine proirenje objektnog modela. GOQL sadri i operatore koji olakavaju pretraivanje grafova, a to su next, until i connected.
SoQL (Social networks Query Language) [26] je
namijenjen pretraivanju i manipulaciji podataka u drutvenim mreama. Slino osnovnim objektima koji se koriste u standardnom SQL-u, uvedeni su objekti putanja
(PATH) i grupa (GROUP), te operatori kojima je mogue odrediti uvjete na putanji ili grupi. Postoje i agregatne
funkcije, te egzistencijalni i univerzalni kvantifikatori koji
se mogu primjeniti na vorove i bridove u putanji ili grupi, te na putanje unutar grupe.
GraphQL [27] namijenjen je grafovima kojima atributi nisu
unaprijed definirani. Operandi koji se koriste su grafovi, tj.
operatori koriste grafove kao ulaze i vraaju grafove kao rezultate. Temelji se na algebri grafova.
C. Formalni jezici
Logical Database Model (LDM) [28] koristi istoimeni jezik
za rad s podacima, koji je prikazan na slian nain kao relacijski raun. Koristi osnovne formule za prikaz upita, te prikazuje rezultate u obliku n-torki.
Gram [9] je algebarski jezik temeljen na regularnim
izrazima. Podrava ogranienu rekurziju. Regularni izrazi se koriste za pronalazak putanja, a moraju se definirati kao
naizmjenini slijed vorova i bridova. G-Log [12] je deklarativni nedeterministiki jezik namijenjen sloenim objektima s identifikatorom. Definiran je nad istim modelom podataka kao i GOOD, s time da je
GOOD imperativni (proceduralni) jezik (program pisan
imperativnim jezikom se izvodi slijedno, dok se onaj pisan
deklarativnim izvodi vrednovanjem izraza). Osnovna
jedinica programa u G-Logu je pravilo, koje se temelji na
grafu. Skup pravila definira pojedinu operaciju, a cijeli
program je slijed takvih skupova pravila.
HyperNode Query Language (HNQL) [29] je upitni jezik
definiran nad Hypernode modelom podataka. Sastoji se od
osnovnog skupa operatora za pretraivanje po predlocima i auriranje hipervorova. Takoer je proiren u proceduralnom smislu s mogunostima grananja, iteriranja i rekurzije.
D. Semantiki jezici
Semantiki jezik je upitni jezik koji je definiran za pretraivanje semantikih grafova koji se temelje na nekoj ontologiji. Takav jezik prikazan je u [30]. Upiti koriste
funkcije koje odreuju uzorke i uvjete koje traeni grafovi u bazi trebaju ispunjavati (npr. union, diff, pattern..).
Temeljit pregled jezika za pretraivanje i manipulaciju graf baza podataka, prema specifinoj namjeni (semantiki web, drutvene mree,...), funkcionalnostima za pretraivanje, agregaciji, te u konanici uspjenosti implementacije jezika i sloenosti izvravanja naredbi, dan je u [31].
IV. DUBINSKA ANALIZA GRAFOVA
Dubinska analiza grafova (rudarenje grafova, graph
mining) je podruje istraivanja grafova s ciljem dolaska do novih informacija o grafu i pripadnim mu podacima.
Istraivanje grafova se uglavnom realizira kroz algoritme implementirane u ranije navedenim jezicima. Obzirom na
mogunost primjene graf modela podataka, dubinska analiza grafova se primjenjuje u raznolikim podrujima znanosti: raunarstvo, biologija, kemija, fizika, sociologija itd. Pod temu dubinske analize grafova se esto svrstavaju aktivnosti detekcije uzoraka u grafu (graph pattern mining),
klasifikacije grafa, komprimiranja grafa, vizualizacije,
analize pravilnosti (power laws) kojih se grafovi
pridravaju, grupiranja vorova u grafu i sl. Meu navedenima, podruje istraivanja koje ima utjecaj na sva druga, pa je stoga i najaktivije, jest detekcija uzoraka u
grafu. Chakrabarti [32] navodi vanost detekcije uzoraka u grafu u sluajevima: detekcije nepravilnih podgrafova / vorova / bridova (kako bi se prepoznale nepravilnosti u grafu, vano je znati prepoznati pravilnosti), simulacije i realnosti uzoraka (grafovi koji se izrauju za potrebe simulacija predstavljaju modele iz stvarnog svijeta i moraju
im odgovarati) te komprimiranja podataka (uzorci u grafu
predstavljaju pravilnosti u podacima, te su stoga dobri
kandidati za komprimiranje grafa).
Detekcija uzoraka u grafovima najee se oslanja na metode pronalaska estih podgrafova grafa, pri emu je graf
G' je podgraf grafa G = (V, E) ako njegovi vrhovi pripadaju
skupu V, a njegovi bridovi skupu E.
V. TRANSFORMACIJA RELACIJSKE BAZE PODATAKA U GRAF BAZU PODATAKA
Relacijske baze podataka danas su duboko ukorijenjene u
informacijske sustave, iako bi se sadrani podaci u nekim sluajevima mogli prikladnije pohraniti u nekoj od graf baza podataka. Stoga, ukoliko se eli te podatke analizirati dubinskom analizom grafova, prvi je korak transformacija
podataka iz relacijske baze podataka u graf, odnosno graf
bazu podataka.
Soussi [33] sugerira da je podatke iz relacijske baze
mogue transformirati u neki meumodel iz kojeg je kasnije mogue na jednostavniji nain stvoriti graf. Meu mogue modele svrstava ER (Entity-Relationship), RDF (Resource
Description Framework) i XML, te daje prikaz radova iz tih
domena. Iako postoji nekoliko proirenja XML-a namijenjenih opisivanju grafova (GraphXML, GXL i
GraphML) trenutno ne postoji niti jedan predloeni algoritam za konverziju relacijske baze podataka u neki od
ovih modela. Osnovna mana pristupa izgradnje grafova uz
pomo meumodela jest nemogunost detekcije interakcije meu generiranim vorovima bez prvobitne izgradnje ontologije kojom e se opisati potrebiti podaci i odnosi. Razvijeni su pristupi relacijskim bazama podataka koji
omoguavaju neupuenom korisniku postavljanje upita putem kljunih rijei, a koji kao odgovore vraaju neku vrstu grafa [34]. Ovisno o strukturi baze podataka, stvaraju
se sloeni SQL upiti u kojima su relacije (tablice) spojene prirodnim spajanjem, vanjskim spajanjem ili unijom, te se
na osnovu rezultantnih n-torki stvaraju grafovi u kojima
relacije, n-torke i veze meu njima mogu biti prikazane na razliite naine. BANKS [35] modelira n-torke kao vorove grafa koji su spojeni bridovima koje tvore strani kljuevi ili druge veze (npr. tranzitivne). Meu slina rjeenja spadaju BLINKS [36], DBXplorer [37] i Discover [38].
RDB2Graph [39] je pristup transformacije relacijskih
podataka u graf temeljem konceptualnog grafa (conceptual
graph) [40]. Listovi instanci grafa koje stvara su vrijednosti
atributa pojedine n-torke. Ovaj algoritam ne podrava kompozitne primarne i strane kljueve, te nije prikladan za vee baze podataka obzirom na utroak resursa. DB2Graph algoritam [41] se temelji na RR grafu (relation-of-relations
graph). RR graf je graf u kojem vorovi predstavljaju relacije (tablice), atributi vora su vrijednosti podataka iz tablica, a bridovi predstavljaju veze (strane kljueve) meu relacijama. Prikladniji je za koritenje obzirom na utroak resursa, ali nedovoljno testiran na veim bazama podataka.
VI. NOSQL BAZE PODATAKA I GRAF BAZE PODATAKA KAO NJIHOVA PODVRSTA
Tijekom vremena su se pojavljivale manje ili vie uspjene alternative relacijskim bazama podataka, a u posljednje
vrijeme primjetan je nastanak i porast koritenja takozvanih NoSQL (Not only SQL) baza podataka, koje postupno
dobivaju svoj udio na tritu. To su baze podataka sljedee generacije za koje veinom vrijedi da: nisu relacijske, distribuirane su, rade na principu otvorenog koda (open-
source) i horizontalno su skalabilne [42].
Primarni razlozi za nastanak ovih baza su:
Razlika izmeu relacijskog modela podataka i podatkovnih struktura koje koriste moderni programski
jezici (impedance mismatch) [43]. Veina programskih jezika i alata dananjice su objektno orijentirani, pri emu je u radu s podacima potrebna stalna pretvorba zapisa (n-torki) u relacijama u objekte i obratno, to se dodatno uslonjuje postojanjem referencijskog integriteta meu relacijama i preslikavanjem istoga u objektni model. Ovaj problem djelomino rjeavaju brojni programski okviri za objektno-relacijsko
mapiranje (ORM object-relational mapping) kao to su Hibernate [44] i MyBatis [45], no esto postaju problematini u sluajevima gdje inzistiranje na objektnom modelu dovodi do loih performansi relacijske baze.
Ovaj problem moe se formulirati kao razlika izmeu relacijskog modela podataka i modela podataka koji se
koristi za rjeavanje tipinog problema, kao to je npr. sluaj s podacima predstavljenim grafovima.
Prikupljanje i procesiranje vrlo velikih koliina podataka tvrtkama postaje skuplje u financijskom i
vremenskom kontekstu ako ga obavljaju kroz relacijske
baze podataka. Razni oblici nakupina fizikih i virtualnih raunala (klasteri, grid, oblaci) su cijenom i performansama vrlo konkuretni. Veina relacijskih sustava za upravljanje bazama podataka trenutno
prisutnih na tritu nije dizajnirana imajui na umu performanse i skalabilnost na ovoj razini, ili uope nije dizajnirana za rad u oblaku.
Informacijski sustavi koji u kratkom vremenu
prikupljaju i obrauju velike koliine podataka ele iskoristiti veliki broj cijenom pristupanih posluitelja umjesto investiranja u vrlo skupa superraunala.
NoSQL baze podataka podravaju razliite modele podataka te su stoga prikladan izbor pri brem i jednostavnijem razvoju i odravanju aplikacija, a mnoge od njih su dizajnirane za rad u distibuiranim okruenjima (raunalni klaster ili raunalni oblak). Uglavnom se klasificiraju u etiri kategorije [18, 42, 43, 46]: klju-vrijednost (key-value), dokument baze, stupaste (column-family) i graf baze podataka.
Klju-vrijednost (key-value) baze podataka odnose se na podatke spremljene u parovima klju-vrijednost. Svi podaci unutar baze podataka su spremljeni na ovaj nain. Pri tome vrijednost koja se pohranjuje uz pojedini klju moe biti bilo kojeg tipa podatka. Tipini predstavnici ove vrste su Riak [47], Redis [48], Berkeley DB [49], HamsterDB [50].
Dokument baze podataka (npr. MongoDB [51]) temelje se
na radu s raznim vrstama dokumenata (XML, JSON,
BSON,...), ukljuujui i binarne dokumente. U ove baze se podaci pohranjuju u formatu klju-dokument, pri emu je klju je intifikator podatka. Dokumenti se mogu dodatno indeksirati ovisno o svojoj strukturi, ali nije nuno da imaju istu strukturu ili da su dokumenti unutar jedne baze
podataka istoga formata.
Stupaste baze podataka (ili baze podataka sa skupinama stupaca, column-family, wide-column) se temelje na
BigTable modelu podataka predloenom od Googlea [52]. Radi se o proirenom modelu klju-vrijednost. Klju je neka vrsta identifikatora, a vrijednosti su podatkovne mape, koje
sadravaju skupine (stupce) vezanih podataka. U ovu grupu spadaju Cassandra [53], HBase [54], Hypertable [55],
Amazon SimpleDB [56] i druge.
Graf baze podataka slue za pohranu podataka u formi usmjerenog grafa. Entiteti i relacije meu njima se takoer nazivaju vorovi i bridovi. I jedni i drugi imaju svojstva, a bridovi su takoer odreeni i smjerom. Angles definira graf bazu podataka kao bazu podataka ije su shema i/ili instance modelirane kao (oznaeni) (usmjereni) graf, ili generalizacija graf podatkovne strukture, pri emu je manipulacija podacima izraena graf-orijentiranim operacijama i tipovima, i ima integritetska ogranienja prikladna strukturi grafa [17]. Obzirom na postojanje odreenih razlika izmeu graf baza podataka s jedne i ostalih triju vrsta (klju-vrijednost, dokument, stupaste) s druge strane, u nekim radovima graf baze podataka nisu navedene meu NoSQL baze podataka [57, 58]. Dvije su osnovne razlike koje do ovoga dovode.
Prva su vee razlike u modelu podataka: klju-vrijednost, dokument i stupaste se sve oslanjaju na postojanje identifikatora s kojim su povezani ostali podaci koji su u
veoj ili manjoj mjeri strukturirani, dok su mogui modeli graf baza podataka potpuno drugaiji. Druga razlika je arhitekturne prirode: klju-vrijednost, dokument i stupaste baze su prvenstveno dizajnirane za rad u vrlo distribuiranim
i skalabilnim rjeenjima, dok je primarni cilj pri dizajnu graf baza podataka upravo podravanje pripadnog modela podataka i pojedine graf baze podataka uope ne podravaju skaliranje na vie raunala. Spremanje podataka u formi grafa omoguava interpretiranje podataka na razliite naine ovisno o vezama meu vorovima. Jedna od kljunih razlika izmeu pohrane grafa u relacijsku bazu podataka i graf bazu podataka jest
fleksibilnost aplikacija izgraenih na tom modelu [49]. Promjene sheme u relacijskoj bazi podataka mogu, ovisno o
nainima implementacije, uzrokovati tekoe zbog potrebe istovremenih promjena aplikacija koje nad tim podacima
obavljaju operacije. U produkcijskom okruenju to moe implicirati i odreenu nedostupnost aplikacije. Zbog drugaijeg pristupa NoSQL bazama, aplikacije izgraene za rad s graf bazama podataka e vjerojatnije biti fleksibilnije spram potencijalnih izmjena shema baze podataka.
Trenutno je dostupno vie graf baza podataka: AllegroGraph [59], DEX [60, 61], HyperGraphDB [62, 63],
Neo4j [64], Infinite Graph [65], itd. Osim njih, postoji jo niz tehnologija za pohranu grafova izvan graf baze
podataka.
VII. DISKUSIJA I SMJEROVI BUDUEG ISTRAIVANJA
Kao to je pokazano, prikaz podataka i njihova analiza u formi grafa predmet je istraivanja ve dugi niz godina. Prikladnost formata za prezentaciju podataka iz raznih
znanstvenih disciplina i podruja ljudskog djelovanja osigurava i budunost ovog podruja. Sve vea informatizacija u raznim domenama omoguava prikupljanje velikih koliina podataka koje je potrebno pohranjivati i analizirati. U tom smislu takoer postoji aktualna potrebama za bazama podataka koje e omoguavati rad s velikim koliinama podataka u formatima koji istovremeno doputaju aplikativnu fleksibilnost i brzinu razvoja.
Analiza podataka u formatu grafa omoguava pronalazak odreenih informacija koje moe biti vrlo teko dobiti ako su podaci u nekom drugom formatu (npr. relacijskom). Ipak,
velika veina podataka koji su danas dio informacijskih sustava pohranjena je upravo u relacijskim bazama podataka
koje dominiraju tritem u posljednjih nekoliko desetljea. I dalje se razvoj novih informacijskih sustava uglavnom
zasniva na relacijskim bazama podataka. Kako je sve vea svjesnost o kvalitetnoj analizi podataka (npr. u poslovne
svrhe business inteligence), tako nastaju i vee potrebe za alatima i nainima analize tih podataka. Obzirom da se veliki broj domena pohranjenih u relacijskim bazama
podataka moe prirodno prikazati grafovima, tako je jasna i potreba za transformacijom relacijskih podataka u grafove.
Iz svega navedenog u ovom i prethodnim poglavljima
moe se donijeti nekoliko zakljuaka. Graf baze podataka imaju svoje mjesto u podruju pohrane, manipulacije i analize podataka. Algoritmi za dubinsku analizu grafova su
aktivno podruje istraivanja u kojem se i dalje trai napredak rezultata, poglavito obzirom na sve vee primjene grafova u raznim podrujima znanosti. Transformacija relacijskih podataka u graf (ili u graf baze podataka) je
takoer potreba, ali se stjee dojam kako to nije problem kojem je posveeno dovoljno pozornosti i jo uvijek ima dosta otvorenih pitanja. Obzirom na razloge razvoja i
trenutne mogunosti, aktualne graf baze podataka se doimaju kao logian izbor za pohranu transformiranih relacijskih podataka u grafove, te budue istraivanje treba temeljiti na uporabi ovih rjeenja. U nastavku istraivanja mogue je ispitati iskoristivost ranije razvijenih modela graf baza podataka i pripadnih
jezika u aktualnim graf bazama podataka te mogunosti graf baza podataka spram dubinske analize grafova unutar baze.
Mogue je istraiti naine poboljanja aktualnih algoritama za transformaciju relacijske u graf bazu podataka zbog
provoenja dubinske analize. Obzirom na brojna podruja primjene grafova, mogue je odabrati jedno ogledno podruje. Na primjer, ako je prepoznato da svaki informacijski sustav osim hardvera i softvera ine i ljudi (bilo kao korisnici sustava, bilo kao osobe koje su na neki
nain objekti u podacima), a da su ljudi i njihovi odnosi jako dobar primjer grafa, mogue je napraviti ekstrakciju mree osoba iz relacijske baze podataka. Ove je podatke mogue kombinirati s povijeu snimanja traga u relacijskim bazama podataka [66] te dubinskom analizom istraivati meudjelovanja osoba i njihovih odnosa. iri pregled osoba i njihovih meudjelovanja bilo bi mogue dobiti kombiniranjem FOAF ontologije [67], odnosno
kombiniranjem podataka dobivenih obradom i onih koji su
prikupljeni putem javnih FOAF dokumenata. U ovu svrhu
mogue je istraiti i po potrebi prilagoditi algoritme iz podruja analize drutvenih mrea (SNA Social Network Analysis) koji su podgrupa algoritama za dubinsku analizu
grafova. Na slinoj premisi kako ljudi ine dio sustava je u [39] predloen nain automatiziranog proirenja ontologije poslovanja. Postojea ontologija poslovanja se proiruje posebno za svako promatrano poduzee analizom njihovih polustrukturiranih podataka kao to su poruke elektronske pote, objave na drutvenim mreama i blogovima i sl. kako bi se to bolje identificirali podaci za daljnju analizu u grafovima.
LITERATURA [1] Soussi R., Aufaure M.-A., Baazaoui H.: Graph Database for
Collaborative Communities, Community-Built Databases, Springer-
Verlag, Heidelberg, Njemaka, 2012 [2] Roussopoulos N., Mylopoulos J.: Using Semantic Networks for
Database Management, Proceedings of the International Conference
on Very Large Data Bases, Framingham, SAD, 1975 [3] Shipman D.W.: The Functional Data Model and the Data Language
DAPLEX, ACM Transactions on Database Systems, 1981
[4] Kuper G.M., Vardi M.Y.: A New Approach to Database Logic, Proceedings of the 3rd Symposium on Principles of Database Systems
(PODS), Waterloo, Kanada, 1984
[5] Kunii H.S.: DBMS with Graph Data Model for Knowledge Handling, Proceedings of the 1987 Fall Joint Computer Conference on
Exploring Technology: Today and Tomorrow,Dallas, SAD, 1987
[6] Lecluse C., Richard P., Velez F.: O2, an Object-Oriented Data Model, Proceedings of the ACM SIGMOD International Conference on
Management of Data, Chicago, SAD, 1988
[7] Gyssnes M., Paredaens J., den Bussche J.V., Gucht D.V.: A Graph-Oriented Database Model, Proceedings of the 9th Symposium on
Principles of Database Systems (PODS), Nashville, SAD, 1990
[8] Andries M., Gemis M., Pareadaens J., Thyssens I, den Bussche J.V.: Concepts for Graph-Oriented Object Manipulation, Proceedings of
the 3rd International Conference on Extending Database Technology
(EDBT), Be, Austrija, 1992 [9] Amann B., Scholl M.: Gram: A Graph Data Model and Query
Language, European Conference on Hypertext Technology (ECHT),
Milano, Italija, 1992 [10] Gemis M., Pareadaens J.: An Object-Oriented Patter Matching
Language, Proceedings of the First JSSST International Symposium
on Object Technologies for Advanced Software, Kanazawa, Japan, 1993
[11] Hidders J., Paredaens J.: GOAL, A Graph-Based Object and
Association Language, Advances in Database Systems:
Implementations and Applications, CISM, 1993
[12] Paredaens J., Peelman P., Tanca L.: G-Log: A Graph-Based Query
Language, IEEE Transactions on Knowledge and Data Engineering, Vol. 7, 1995
[13] Hidders J.: Typing Graph-Manipulation Operations, Proceedings of
he 9th International Conference on Database Theory (ICDT), Siena, Italija, 2002
[14] Levene M., Poulovassilis A.: The Hypernode Model and its
Associated Query Language, Proceedings of the 5th Jerusalem Conference on Information Technology, Jerusalem, Izrael, 1990
[15] Graves M., Bergeman E.R., Lawrence C.B.: A Graph-Theoretic Data
Model for Genome Mapping Databases, Proceedings of the 28th Hawaii International Conference on Systems Sciences (HICSS),
Kihei, Maui, SAD, 1995
[16] Levene M., Poulovassilis A.: An Object-Oriented Data Model Formalised Through Hypergraphs, Data & Knowledge Engineering,
1991 [17] Angles R., Gutierrez C.: Survey of Graph Database Models, ACM
Computing Surveys, Vol. 40, No. 1, 2008
[18] Angles R.: A Comparison of Current Graph Database Models, 28th International Conference on Data Engineering Workshops (ICDEW),
Arlington, 2012
[19] Codd E.F.: Data Models in Database Management, Proceedings of the 1980 Workshop on Data Abstraction, Databases and Conceptual
Modeling, Pingree Park, SAD, 1980
[20] Cruz I.F., Mendelzon A.O., Wood P.T.: A Graphical Query Language Supporting Recursion, Proceedings of the 1987 ACM SIGMOD
International conference on Management of Data, New York, SAD,
1987 [21] Cruz I.F., Mendelzon A.O., Wood P.T.: G+: Recursive Queries
without Recursion, Proceedings of the 2nd International Conference
on Expert Database Systems (EDS), Vienna, Virginia, SAD, 1989 [22] Consens M.P., Mendelzon A.O.: Expressing Structural Hypertext
Queries in Graphlog, Proceedings of the 2nd International Conference
on Hypertext, 1989 [23] Blau H., Immerman N., Jensen D.: A Visual Language for Querying
and Updating Graphs, University of Massachusetts Amherst,
Computer Science Department Technical Report, 2002 [24] Abiteboul S., Quass D., McHugh J., Widom J., Wiener J.L.: The
Lorel Query Language for Semistructured Data, International Journal
on Digital Libraries, Vol. 1, 1997
[25] Sheng L., Ozsoyoglu Z.M., Ozsoyoglu G.: A Graph Query Language
and Its Query Processing, Proceedings of the 15th International
Conference on Data Engineering (ICDE), Sydney, Australia, 1999
[26] Ronen R., Shmueli O.: A Language for Querying and Creating Data
in Social Networks, Proceedings of the 2009 IEEE International Conference on Data Engineering, Shanghai, Kina, 2009
[27] He H., Singh A.K.: Graphs-at-a-time: Query Language and Access
Methods for Graph Databases, Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data,
Vancouver, Kanada, 2008
[28] Kuper G.M., Vardi M.Y.: The Logical Data Model, ACM Transactions on Database Systems, Vol. 18, 1993
[29] Levene M, Loizou G.: A Graph-Based Data Model and its
Ramifications, IEEE Transactions on Knowledge and Data Engineering, Vol. 7, 1995
[30] Kaplan I.: A Semantic Graph Query Language, technical report,
Lawrence Livermore National Laboratory, 2006 [31] Wood P.T.: Query Languages for Graph Databases, SIGMOD
Record, Vol. 41, 2012
[32] Chakrabarti D., Faloutsos C.: Graph Mining: Laws, Generators, and Algorithms, ACM Computing Surveys, Vol. 38, 2006
[33] Soussi R.: Querying and Extracting Heterogeneous Graphs from
Structured Data and Unstructured Content, doctoral thesis, Ecole Centrale Paris and Ecole Nationale des Sciences de l'Informatique,
Paris, Francuska, 2012
[34] Park J., Lee S.G.: Keyword Search in Relational Databases, Knowledge and Information Systems, Springer, Vol. 26, 2011
[35] Kacholia V., Pandit S., Chakrabarti S., Sudarshan S., Desai R., Karambelkar H.: Bidirectional Expansion for Keyword Search on
Graph Databases, Proceedings of the 31st International Conference on
Very Large Data Bases, Trondheim, Norveka, 2005 [36] He H., Wang H., Yang J., Yu P.S.: BLINKS: Ranked Keyword
Searches on Graphs, Proceedings of the 2007 ACM SIGMOD
International Conference on Management of Data, SIGMOD, Beijing, Kina, 2007
[37] Agrawal S.: DBXplorer: A System for Keyword-Based Search over
Relational Databases, Proceedings of the 18th International Conference on Data Engineering, ICDE, San Jose, SAD, 2002
[38] Hristidis V., Papakonstantinou Y.: Discover: Keyword Search in
Relational Databases, Proceedings of the 28th International Conference on Very Large Data Bases, Hong Kong, Kina, 2002
[39] Palod S.: Transformation of Relational Database Domain into Graphs
Based Domain for Graph Based Data Mining. Department of Computer Science and Engineering, University of Texas at Arlington,
Arlington, SAD, 2004
[40] Sowa J.F.: Conceptual Graphs Summary, http://www.jfsowa.com/cg/cgif.htm [28.12.2012.]
[41] Pradhan S., Chakravarthy S., Telang A.: Modeling Relational Data as
Graphs for Mining, Proceedings of the 15th International Conference on Management of Data, Mysore, Indija, 2009
[42] NoSQL Databases, http://nosql-databases.org [23.12.2012.]
[43] Sadalage P. J., Fowler M.: NoSQL Distilled, Pearson Education, Inc., Upper Saddle River, 2012
[44] Hibernate Relational Persistence for Java and .NET, http://www.hibernate.org [30.12.2012.]
[45] MyBatis, http://www.mybatis.org [30.12.2012.]
[46] Clarence J.M.T., Aravindh S., Shreeharsha A.B.: Comparative Study
of the New Generation, Agile, Scalable, High Performance NOSQL Databases, Internation Journal of Computer Applications, Vol. 48,
2012
[47] Basho Riak Database, http://basho.com/products/riak-overview [23.12.2012.]
[48] Redis, http://redis.io [23.12.2012.]
[49] Oracle Berkeley DB, http://www.oracle.com/technetwork/products/berkeleydb
[23.12.2012.]
[50] Hamster Database, http://hamsterdb.org [23.12.2012.] [51] mongoDB Database, http://www.mongodb.org [23.12.2012.]
[52] Chang F., Dean J., Ghemawat S., Hsieh W.C., Wallach D.A.,
Burrows M., Chandra T., Fikes A., Gruber R.E.: Bigtable: A Distributed Storage System for Structured Data, Proceedings of the
7th USENIX Symposium on Operating Systems Design and
Implementation, Seattle, SAD, 2006 [53] Apache Cassandra Database, http://cassandra.apache.org
[23.12.2012.]
[54] Apache Hbase Database, http://hbase.apache.org [23.12.2012.] [55] Hypertable Database, http://hypertable.org [23.12.2012.]
[56] Amazon SimpleDB, http://aws.amazon.com/simpledb [23.12.2012.]
[57] Pokorny J.: NoSQL Database: A Step to Database Scalability in Web
Environment, Proccedinds of the 13th International Conference on
Information Integration and Web-based Applications & Services, Ho
Chi Minh City, Vietnam, 2011 [58] Padhy R.P., Patra M.R., Satapathy S.C.: RDBMS to NoSQL:
Reviewing Some Next-Generation Non-Relational Databases,
International Journal of Advanced Engineering Sciences and Technologies, Vol. 11, 2011
[59] AllegroGraph Database, http://www.franz.com/agraph/allegrograph
[23.12.2012.] [60] Martinez-Bazan N. et al: DEX: Hihg-Performance Exploration on
Large Graphs for Information Retireval, Proceedings of the 16th
Conference on Information and Knowledge Management (CIKM), ACM, Lisbon, 2007
[61] DEX Graph Database, http://www.sparsity-technologies.com/dex
[23.12.2012.] [62] Iordanov B.: Hypergraphdb: A Generalized Graph Database,
Proceedings of the 11th International Conference on Web-age
Information Management (WAIM), Springer-Verlag, Juizhaigou, 2010
[63] HyperGraphDB, http://www.hypergraphdb.org [23.12.2012]
[64] Neo4j Graph Database, http://www.neo4j.org [23.12.2012.] [65] Objectivity Infinite Graph, http://www.inifinitegraph.com
[23.12.2012.]
[66] Orel O.: Nadzor nad radom korisnika u relacijskim bazama podataka, magistarski rad, Fakultet elektrotehnike i raunarstva, 2008
[67] The Friend of a Friend (FOAF) Project, http://www.foaf-project.org [4.1.2013]