6
Otkrivanje znanja iz relacijskih podataka uporabom graf baza podataka Ognjen Orel Sveučilišni računski centar – Srce J. Marohnića 5 Zagreb, HR-10000, Hrvatska Sažetak- Grafovi čine jedan od najprikladnijih načina za opis stvarnoga svijeta te su stoga sastavni dio istraživanja mnogih znanstvenih grana već duži niz godina. U tom vremenu je predložen veliki broj modela graf baza podataka i pripadnih jezika definiranih nad njima. Istraživanja u ovom smjeru dobivaju novi zamah pojavom NoSQL baza podataka, nastalih iz potrebe za boljim iskorištavanjem resursa i jednostavnijom suradnjom između 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 teško dobiti iz relacijskih baza podataka. Obzirom na veliki broj relacijskih baza podataka i količinu podataka u njima, razmatramo mogućnosti transformacije relacijskih baza podataka u graf baze podataka i provođenja dubinske analize nad tim tranformiranim podacima. Ključne riječi- model podataka, graf, relacijska baza podataka, graf baza podataka, NoSQL I. UVOD Graf baze podataka i pripadni modeli postoje već više od 25 godina. Tijekom prvog vremena istraživanja ovog područja, razvijen je velik broj modela graf baza podataka i još veći broj programskih jezika za pristup i manipulaciju podacima. Istraživanje 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 iskorištavanju resursa u kraćem vremenu, ova tema dobiva novi zamah. Sve više podataka koji se svakodnevno koriste se čini prirodno opisati grafovima i pohraniti u graf baze podataka: semantički web, društvene mreže, lokacije navigacijskih sustava, itd. Povećana potreba za dubinskom analizom podataka nije zaobišla ni podatke prikazane grafovima, tako da je vremenom razvijen veći broj više ili manje učinkovit ih algoritama koji spadaju u ovo područje. Velike količine podataka koje se u današnje vrijeme prikupljaju i pohranjuju iziskuju i potrebe za komprimiranjem grafova, te je i to razlog za efikasnijom analizom grafova. Ne može se zanemariti niti činjenica kako je većina 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 predloženih modela graf baza podataka. Nakon toga su prikazani jezici za rad s predloženim modelima. Nastavno na jezike u kojima se implementiraju razni algoritmi, u četvrtom poglavlju je dan opis dubinske analize grafova i najčešćih aktivnosti koje spadaju u ovu temu. Peto poglavlje donosi pregled mogućnosti transformacija relacijskih podataka u grafove, a šesto se odnosi na prikaz NoSQL baza podataka i aktualnih graf baza podataka. Diskusija o navedenome i mogući smjerovi daljnjeg istraživanja zaključuju rad. II. MODELI GRAF BAZA PODATAKA Formalno, graf je definiran kao G = (V, E) (1) pri čemu je V neprazni konačan skup, čije elemente se naziva vrhovi, a E konačan skup različitih dvočlanih podskupova skupa V, čije elemente se naziva bridovi. Shema graf baze podataka je u formi G db = (V, E, ψ, L, λ) (2) gdje je V skup čvorova, E skup bridova, ψ je funkcija incidencije iz E u V×V, L je skup oznaka, a λ je funkcija za označavanje iz V E u L [1]. Postoje različiti teoretski modeli graf baza podataka, a svi imaju formalno uporište u nekoj od varijacija osnovne definicije grafa (1). Većina ovih modela nastala je prije razvoja NoSQL baza podataka, aktualnog u posljednjih nekoliko godina. Najraniji model koji se može smatrati modelom graf baze podataka je R&M iz 1975 [2], a koji je nastao iz nemogućnosti tadašnjih sustava da uzmu u obzir semantiku baza podataka. Functional Data Model [3] predlaže da podaci u bazi podataka budu grafovi. Potpuno drugačiji pristup daje model Logical Data Model (LDM) [4] kojim se pokušalo modelom graf baze podataka generalizirati relacijski, hijerarhijski i mrežni model podataka. Model G-Base za modeliranje baza znanja predložen je 1987 [5]. Objektno orijentirani model O 2 koji je temeljen na strukturi grafova je predložen 1988 [6]. 1990 je predložen 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. Veći broj novih modela zasnovan je na ovom modelu. Među njima su GMOD [8] koji donosi nekoliko koncepata za korisnička sučelja zasnovana na grafovima; Gram [9], model graf baze za hipertekstualne podatke; PaMaL [10], koji proširuje GOOD model s n-torkama i skupovima; GOAL [11] koji proširuje GOOD model s povezanim čvorovima; G-Log [12] koji predlaže deklarativni upitni jezik za grafove; GDM [13] koji dodaje višestruke simetrične veze.

KDI, Ognjen Orel

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]