Neo4j versus PostGIS
Neo4j versus PostGIS
Bart Baas
Bart Baas
NoSQL spatial
NoSQL spatial
Neo4j versus PostGIS
Neo4j versus PostGIS
Maser Thesis Maser Thesis Date: Date: May 22, 2012 May 22, 2012 Version: Version: 1.01 fnal 1.01 fnal Author: Author: Bar Baas Bar Baas
Geographical Inor!aton Manage!en an" #pplicatons $GIM#% Geographical Inor!aton Manage!en an" #pplicatons $GIM#%
Supervisor: Supervisor: &. Q'a( $T)*% &. Q'a( $T)*% Professor: Professor: +. an -osero! $T)*% +. an -osero! $T)*% Reviewer: Reviewer: . "e By $IT/% . "e By $IT/% iii iii
NoSQL spatal NoSQL spatal
$Gee( #n" +o(e NoSQL 2011% $Gee( #n" +o(e NoSQL 2011%
i i
Abstract
Abstract
The relatonal "aa !o"el is no !ore han 0 years ol". I3s goo" or ery "i4eren scenarios an" can The relatonal "aa !o"el is no !ore han 0 years ol". I3s goo" or ery "i4eren scenarios an" can han"le cerain ypes o "aa ery ell. B' i isn3 perec. #n increasing n'!5er o non6relatonal syse!s han"le cerain ypes o "aa ery ell. B' i isn3 perec. #n increasing n'!5er o non6relatonal syse!s are 5eing or(e" on, collectely calle" he 3NoSQL !oe!en3. NoSQL is an '!5rella er! or a loosely are 5eing or(e" on, collectely calle" he 3NoSQL !oe!en3. NoSQL is an '!5rella er! or a loosely "efne" class o non6relatonal "aasores an" 5es "escri5e" as 3No only SQL3. 78a!ples are Google3s "efne" class o non6relatonal "aasores an" 5es "escri5e" as 3No only SQL3. 78a!ples are Google3s BigTa5le an" #!a9on3s *yna!o. These syse!s !ay proi"e a"anages oer relatonal "aa5ases, 5' BigTa5le an" #!a9on3s *yna!o. These syse!s !ay proi"e a"anages oer relatonal "aa5ases, 5' generally lac( he relatonal ro5'sness or hose a"anages.
generally lac( he relatonal ro5'sness or hose a"anages.
In an a:e!p o !o"esly conri5'e o he c'rren research in he fel" o geographical inor!aton In an a:e!p o !o"esly conri5'e o he c'rren research in he fel" o geographical inor!aton sys
syse!e!s, s, hihis s resresearearch ch repreporors s on on a a co!co!parparisoison n o o one s'ch one s'ch NoSQNoSQL L "a"aasasore calleore calle" " NeoNeo; ; iih h hehe ra"itonal relatonal "aa5ase +osgreSQL hen soring an" <'erying spatal ecor "aa. The goal o his ra"itonal relatonal "aa5ase +osgreSQL hen soring an" <'erying spatal ecor "aa. The goal o his s'"y as o "eer!ine heher a ra"itonal relatonal "aa5ase syse! li(e +osGIS, or a NoSQL syse!, s'"y as o "eer!ine heher a ra"itonal relatonal "aa5ase syse! li(e +osGIS, or a NoSQL syse!, s'ch as Neo;6Spatal, o'l" 5e !ore e4ecte as he 'n"erlying echnology or operatng -penSreeMap s'ch as Neo;6Spatal, o'l" 5e !ore e4ecte as he 'n"erlying echnology or operatng -penSreeMap "a
"aa. a. NeoNeo; ; is is an an e!5e!5e""e""a5la5le e gragraph ph "a"aa5asa5ase. e. 7!57!5e""e""a5la5le e 5ec5eca'sa'se e i i can can 5e 5e a""a""e" e" o o a a =a=aa6a65as5ase"e" applicaton an" 'se" ;'s li(e any oher li5rary, an" graph "aa5ase 5eca'se he "aa !o"el i 'ses o applicaton an" 'se" ;'s li(e any oher li5rary, an" graph "aa5ase 5eca'se he "aa !o"el i 'ses o e8press is "aa is a graph, soring no"es an" relatonships ha connec he!, s'pportng 'ser "efne" e8press is "aa is a graph, soring no"es an" relatonships ha connec he!, s'pportng 'ser "efne" propertes on 5oh consr'cs.
propertes on 5oh consr'cs.
M'ltple aspecs are o ineres hen co!paring spatal "aa5ase syse!s. The eal'aton !eho"ology M'ltple aspecs are o ineres hen co!paring spatal "aa5ase syse!s. The eal'aton !eho"ology "esigne" o co!pare he o, inoles 5oh o5;ecte !eas're!ens an" s'5;ecte !eas're!ens 5ase" "esigne" o co!pare he o, inoles 5oh o5;ecte !eas're!ens an" s'5;ecte !eas're!ens 5ase" on "oc'!enaton an" e8perience. The o5;ecte ess incl'"e processing spee" 5ase" on a pre"efne" se on "oc'!enaton an" e8perience. The o5;ecte ess incl'"e processing spee" 5ase" on a pre"efne" se o <'eries, "is( space re<'ire!ens, an" scala5iliy. S'5;ecte ess incl'"e !a'riy>leel o s'ppor, o <'eries, "is( space re<'ire!ens, an" scala5iliy. S'5;ecte ess incl'"e !a'riy>leel o s'ppor, sa5i
sa5iliy an" liy an" ease o ease o 'se. Meanhi'se. Meanhile, he le, he asseassess!enss!en ra!era!eor( applie" or he or( applie" or he o5;eco5;ecte ess co'l" te ess co'l" 5e5e 'se
'se" " as as a a eses s'is'ie e or or eeal'al'atnatng g he perohe peror!ar!ance an" nce an" relrelia5ia5iliiliy y o o ne spatane spatal l "a"aasasoreores. s. # # eses eniron!en hae 5een creae" 'sing he sa!e -penSreeMap "aa in 5oh he graph "aa5ase an" he eniron!en hae 5een creae" 'sing he sa!e -penSreeMap "aa in 5oh he graph "aa5ase an" he relat
relatonal "aa5ase. &hile onal "aa5ase. &hile he syse!s hae he syse!s hae 'n"a!'n"a!enaenal l "i4er"i4erencesences, , i"enti"entcal cal operatoperatons ons hae 5eenhae 5een "eelope" ha proi"es e<'al res'ls ro! "i4erenly si9e"
"eelope" ha proi"es e<'al res'ls ro! "i4erenly si9e" s'"y areas.s'"y areas.
egar"ing he o5;ecte !eas're!ens, he res'ls o his research sho ha he graph "aa5ase is egar"ing he o5;ecte !eas're!ens, he res'ls o his research sho ha he graph "aa5ase is !os 5enefcial hen <'eries can 5e e8presse" as raersals oer local regions o a graph. Q'eries ha are !os 5enefcial hen <'eries can 5e e8presse" as raersals oer local regions o a graph. Q'eries ha are ell6s'ie" o his approach are, or e8a!ple, shores pah analyses or connectiy <'eries. Bo'n"ing 5o8 ell6s'ie" o his approach are, or e8a!ple, shores pah analyses or connectiy <'eries. Bo'n"ing 5o8 <'eries ere aser on he relatonal "aa5ase. egar"ing he s'5;ecte !eas're!ens, Neo; proi"es a <'eries ere aser on he relatonal "aa5ase. egar"ing he s'5;ecte !eas're!ens, Neo; proi"es a lo o
lo o 'nct'nctonalionaliy. Transacty. Transacton s'ppor is on s'ppor is a elco!e a""iton an" here are n'!ero's ays o a elco!e a""iton an" here are n'!ero's ays o e8ec'e8ec'ee <'eries, or insance 'sing =aa, /QL or a geopipeline. The "aa5ase !o"el is sche!a6less an" allos <'eries, or insance 'sing =aa, /QL or a geopipeline. The "aa5ase !o"el is sche!a6less an" allos a"
a""it"itonons s or or a"a";';'ss!e!enns s o o hhe e scschehe!a !a iihho'o' anany y !a!a;o;or r i!i!papac c on on hhe e "a"aa a !o!o"e"el. l. #s #s a a =a=aaa co!
co!ponponenen, , i i is is relrelatately ely easeasy y o o i!pi!ple!le!enen NeoNeo;6;6SpatSpatal al as as an an e!5e!5e""e""e" e" co!co!ponponen in en in any any =a=aaa progra!. +osgreGIS is 5y ar he !ore !a're "aa5ase ih a lo o 'nctonaliy, "oc'!enaton an" progra!. +osgreGIS is 5y ar he !ore !a're "aa5ase ih a lo o 'nctonaliy, "oc'!enaton an" s'ppor.
s'ppor.
-erall, his research shos ha, in so!e cases, Neo; sho'l" 5e consi"ere" as an alernate or -erall, his research shos ha, in so!e cases, Neo; sho'l" 5e consi"ere" as an alernate or speci
specifc as(s. # fc as(s. # 5'ye5'yer3s g'i"e has r3s g'i"e has 5een creae5een creae" in " in he or! o he or! o a a ??o "iagra! o o "iagra! o "eci""eci"e heher Neo;6e heher Neo;6 Spatal or +osGIS is s'ia5le or a pro;ec. The o echnologies, relatonal "aa5ases an" non6 relatonal Spatal or +osGIS is s'ia5le or a pro;ec. The o echnologies, relatonal "aa5ases an" non6 relatonal "aa5ase, ill re!ain in 'sage si"e 5y si"e, each ih he perec f or is on capa5ilites.
"aa5ase, ill re!ain in 'sage si"e 5y si"e, each ih he perec f or is on capa5ilites. Keywords
Keywords GIS, Geo, "aa5ases, NoSQL, Neo;, +osgreSQL, GIS, Geo, "aa5ases, NoSQL, Neo;, +osgreSQL, !eas're!ens.!eas're!ens.
NoSQL spatal NoSQL spatal
i i
Acknowledgement
Acknowledgementss
This is a Maser hesis on a NoSQL syse! calle" Neo;, is capa5ilites, a"anages an" "isa"anages hen This is a Maser hesis on a NoSQL syse! calle" Neo;, is capa5ilites, a"anages an" "isa"anages hen 'sing i o sore an" <'ery -penSreeMap "aa. This s'"y an" research as(s sare" in ='ly 2011 an" 'sing i o sore an" <'ery -penSreeMap "aa. This s'"y an" research as(s sare" in ='ly 2011 an" ere co!plee" in May 2012.
ere co!plee" in May 2012. @irs o all, I
@irs o all, I o'l" li(e o hano'l" li(e o han( !y ( !y s'pes'perisor &il(risor &il(o Q'a( or sharing ih !e his ies an" i"eas on heo Q'a( or sharing ih !e his ies an" i"eas on he hesis. Ao'r co!!ens hae helpe
hesis. Ao'r co!!ens hae helpe" !e o creae his fnal pro"'c. @'rher!ore, I an o han( proessor" !e o creae his fnal pro"'c. @'rher!ore, I an o han( proessor +eer an -osero! or his critcal re!ar(s an" or proi"ing "o9ens o 'se'l liera're.
+eer an -osero! or his critcal re!ar(s an" or proi"ing "o9ens o 'se'l liera're.
I has 5een har" or( ih t!e con?ics 5eeen or(6lie, s'"y6lie an" so!et!es a personal lie, 5' I I has 5een har" or( ih t!e con?ics 5eeen or(6lie, s'"y6lie an" so!et!es a personal lie, 5' I en;oye" eery 5i o !y research. I o'l" li(e o han( !y parens, &ille! an" +era Baas, or all he en;oye" eery 5i o !y research. I o'l" li(e o han( !y parens, &ille! an" +era Baas, or all he s'ppor hey hae gien !e "'ring he entre "'raton o GIM# an" o co'rse Maaren 'ls(e!per or his s'ppor hey hae gien !e "'ring he entre "'raton o GIM# an" o co'rse Maaren 'ls(e!per or his 5ig t!e s'ppor in i!proing !y 7nglish gra!!ar. @inally, special han(s goes o !y girlrien" *aphne "e 5ig t!e s'ppor in i!proing !y 7nglish gra!!ar. @inally, special han(s goes o !y girlrien" *aphne "e Groo or her loe an" patence an" her neer ailing a5iliy o !a(e !e rela8 hich !a"e ha I neer los Groo or her loe an" patence an" her neer ailing a5iliy o !a(e !e rela8 hich !a"e ha I neer los !otaton. !otaton. Bes egar"s, Bes egar"s, Bar Baas Bar Baas ii ii
NoSQL spatal NoSQL spatal
Table of Contents
Table of Contents
#5srac... #5srac... #c(nole"ge!ens... #c(nole"ge!ens...i...i ii Lis oLis o #55reiatons...#55reiatons...8i...8i 1
1 Inro"'cton...Inro"'cton... 11 1.1
1.1 +ro5le! "es+ro5le! "escripton...cripton... 11 1.2
1.2 esearch o5;ectesesearch o5;ectes...C...C 1.2.1
1.2.1 esearch <'estonsesearch <'estons...C...C 1.2.2 1.2.2 *eliera5les...*eliera5les... CC 1.2.C Scope... 1.2.C Scope... CC 1.C 1.C Meho"ology...Meho"ology... 1.
1. ea"ing g'i"eea"ing g'i"e... DD 2
2 NoSQL...NoSQL...E...E 2.1
2.1 NoSQL !o"elNoSQL !o"el...E...E 2.1.1
2.1.1 /onsisency, aaila5iliy /onsisency, aaila5iliy an" partton an" partton olerance...olerance... FF 2.1.2
2.1.2 Q'erying...Q'erying... 1010 2.2
2.2 /o!parison.../o!parison... 1010 2.2.1
2.2.1 /o'ch*B ih /o'ch*B ih Geo/o'ch e8ensionGeo/o'ch e8ension... 1111 2.2.2
2.2.2 Mongo*B Mongo*B ih ih geohashing...geohashing... 1111 2.2.C
2.2.C Neo; ih he spatal pl'ginNeo; ih he spatal pl'gin...11...11 2.2. /o
2.2. /oncl'sion...ncl'sion... 1212 C
C /oncep'al /oncep'al ra!eor(...ra!eor(... 1C1C C.1
C.1 #ssess!en #ssess!en syse!...syse!... 1C1C C.2 C.2 7niron!en...7niron!en...1...1 C.2.1 Soare...1 C.2.1 Soare...1 C.2.2 C.2.2 *aases...*aases... 1H1H C.2.C C.2.C ar"are...ar"are... 11 C.C C.C Tess...Tess... 11 C.C.1
C.C.1 Scale regionsScale regions... 11 C.C.2
C.C.2 Spatal 5o'n"ing 5o8 Spatal 5o'n"ing 5o8 co'n operatons $B%co'n operatons $B%...20...20 C.C.C
C.C.C Spatal 5o'n"ing 5o8 ge operatons Spatal 5o'n"ing 5o8 ge operatons $G%...$G%...20...20 C.C.
C.C. /loses poin /loses poin operatons $/%operatons $/%... 2020 C.C.D
C.C.D Shores pah Shores pah operatons $+%operatons $+%... 2121
Neo; inernalsNeo; inernals...2C...2C .1
.1 Graph Graph heory...heory... 2C2C .2
.2 Neo;...Neo;... 2D2D .2.1
.2.1 No"es No"es an" elatonshipsan" elatonships... 2D2D .2.2
.2.2 *aa operaton...*aa operaton...2H...2H .2.C
.2.C @ile @ile sorage...sorage... 2H2H D
D I!ple!enaton...I!ple!enaton... 2F2F D.1
D.1 7niron!en 7niron!en confg'raton...confg'raton... 2F2F D.1.1
D.1.1 Neo; Neo; "ash5oar"..."ash5oar"... 2F2F D.1.2
D.1.2 +osGIS +osGIS "ash5oar"..."ash5oar"... C1C1 D.2
D.2 *aa *aa sr'c're...sr'c're... C2C2 D.2.1 D.2.1 Geography...Geography... C2C2 D.2.2 Neo;... D.2.2 Neo;... C2C2 D.2.C +osGIS...CE D.2.C +osGIS...CE D.C
D.C Geo!ery Geo!ery "issi!ilarites..."issi!ilarites... CFCF D.
D. o'tng o'tng opology...opology... 22 D.D
D.D Tess...Tess... DD D.D.1
D.D.1 7!py 7!py operaton...operaton... DD D.D.2
D.D.2 Tes B J 5o'n"ing Tes B J 5o'n"ing 5o8 co'n...5o8 co'n...H...H iii
D.D.C
D.D.C Tes G J Tes G J 5o'n"ing 5o8 ge5o'n"ing 5o8 ge...H...H D.D.
D.D. Tes / J Tes / J closes no"ecloses no"e... EE D.D.D
D.D.D Tes + J Tes + J shores pah...shores pah...... H
H Meas're!ens...Meas're!ens...D1...D1 H.1
H.1 -5;ecte -5;ecte !eas're!ens...!eas're!ens... D1D1 H.1.1
H.1.1 Soring -SM "aaSoring -SM "aa...D1...D1 H.1.2
H.1.2 /reatng a /reatng a ro'tng neor( ro'tng neor( opology...opology... D2D2 H.1.C
H.1.C Spatal operatonsSpatal operatons...D...D CC H.1.
H.1. )p6scaling...)p6scaling... DD H.2
H.2 S'5;ecte !eas're!S'5;ecte !eas're!ens...ens...DD...DD H.2.1
H.2.1 Ma'riy an" Ma'riy an" leel o leel o s'ppor...s'ppor... DDDD H.2.2
H.2.2 Sa5iliy...Sa5iliy... DHDH H.2.C
H.2.C )sa5iliy...)sa5iliy... DHDH H.C
H.C Neo; Neo; ers's ers's +osGIS...+osGIS... DD E
E /oncl'sions.../oncl'sions... H1H1 E.1
E.1 &rapping 'p&rapping 'p...H1...H1 E.2
E.2 @''re @''re research...research... HCHC eerences...
eerences... HH #ppen"ices...
#ppen"ices... #ppen"i8 I
#ppen"i8 I Breer3s $/#+% Breer3s $/#+% Theore!...Theore!... #ppen"i8 II
#ppen"i8 II Graph inernaGraph inerna ls...ls... #ppen"i8 III Neo;
#ppen"i8 III Neo; -SM "aa sr'c'r-SM "aa sr'c'r e...e... #ppen"i8 IK +osGIS
#ppen"i8 IK +osGIS -SM a5le sr'c're...-SM a5le sr'c're... #ppen"i8 K
#ppen"i8 K Maen po! fleMaen po! fle... #ppen"i8 KI -SM
#ppen"i8 KI -SM i!por "i4erences...i!por "i4erences... #ppen"i8 KII
#ppen"i8 KII -SM e<'al -SM e<'al geo!eries...geo!eries... #ppen"i8 KIII
#ppen"i8 KIII *ea'l.syle fle...*ea'l.syle fle... #ppen"i8 I Neo;
#ppen"i8 I Neo; Syleea"er class...Syleea"er class... #ppen"i8 Neo;
#ppen"i8 Neo; -SMI!porer $i!proe"%...-SMI!porer $i!proe"%... #ppen"i8 I /reat
#ppen"i8 I /reat ng ro'e opolong ro'e opolo gy...gy... #ppen"i8 II
#ppen"i8 II Neor(s...Neor(s... #ppen"i8 III So'rce
#ppen"i8 III So'rce co"e, G)I3s par...co"e, G)I3s par... #ppen"i8 IK So'rce
#ppen"i8 IK So'rce co"e ess...co"e ess... #ppen"i8 K es'ls
#ppen"i8 K es'ls o he operao he opera tons...tons... #ppen"i8 KI
#ppen"i8 KI Ta5les o Ta5les o !eas're!ens...!eas're!ens... #ppen"i8 KII Me!ory
#ppen"i8 KII Me!ory !eas're!ens Neo;...!eas're!ens Neo;...
List of Tables
List of Tables
Ta5le 1 Inp' coor"inaes 5o'n"ing 5o8
Ta5le 1 Inp' coor"inaes 5o'n"ing 5o8 operaton $&GS%...operaton $&GS%... 2020 Ta5le 2 Inp' coor"inaes closes poin operaton $&GS%...
Ta5le 2 Inp' coor"inaes closes poin operaton $&GS%... 2020 Ta5le C Inp' coor"inaes shores pah operaton operaton $&GS%...
Ta5le C Inp' coor"inaes shores pah operaton operaton $&GS%... 2121 Ta5le Graph ypes $o"rig'e9 an" Ne'5a'er 2010%...
Ta5le Graph ypes $o"rig'e9 an" Ne'5a'er 2010%... 22 Ta5le D #""itonal =KM para!eers or a
Ta5le D #""itonal =KM para!eers or a Neo; =aa serleNeo; =aa serle... C0C0 Ta5le H Neo;6Spatal layers "aa sr'c're
Ta5le H Neo;6Spatal layers "aa sr'c're... CDCD Ta5le E Neo;6Spatal "yna!ic layers "aa sr'c're...CD Ta5le E Neo;6Spatal "yna!ic layers "aa sr'c're...CD Ta5le Neo;6Spatal geo!eries
Ta5le Neo;6Spatal geo!eries "aa sr'c're..."aa sr'c're... CHCH Ta5le F Neo;6Spatal ays "aa sr'c're...CH Ta5le F Neo;6Spatal ays "aa sr'c're...CH Ta5le 10 Neo;6Spatal no"es "aa sr'c're...CH Ta5le 10 Neo;6Spatal no"es "aa sr'c're...CH Ta5le 11 Neo;6Spatal 'sers "aa sr'c're
Ta5le 11 Neo;6Spatal 'sers "aa sr'c're... CHCH Ta5le 12 Neo;6Spatal change6se "aa sr'c're...
Ta5le 12 Neo;6Spatal change6se "aa sr'c're... CECE Ta5le 1C +osGIS
Ta5le 1C +osGIS poin "aa sr'c're...Cpoin "aa sr'c're...C Ta5le 1 +osGIS linesring "aa sr'c're...
Ta5le 1 +osGIS linesring "aa sr'c're... CFCF Ta5le 1D +osGIS polygon "aa sr'c're...
Ta5le 1D +osGIS polygon "aa sr'c're... CFCF i8
NoSQL spatal NoSQL spatal Ta5le 1H +osGIS
Ta5le 1H +osGIS neor( "aa sr'c're...neor( "aa sr'c're... CFCF Ta5le 1E Inital res'ls i!portng -SM fle...
Ta5le 1E Inital res'ls i!portng -SM fle... 00 Ta5le 1 @inal res'ls i!portng -SM fle $Me"e!5li(%...2 Ta5le 1 @inal res'ls i!portng -SM fle $Me"e!5li(%...2 Ta5le 1F es'ls i!portng -SM
Ta5le 1F es'ls i!portng -SM fle...fle... D1D1 Ta5le 20 es'ls spatal operatons...DC Ta5le 20 es'ls spatal operatons...DC Ta5le 21 es'ls pri!ites Neo;
Ta5le 21 es'ls pri!ites Neo;... DD
List of code snippets
List of code snippets
Snippe 1 -penSreeMap fle...1H Snippe 1 -penSreeMap fle...1H Snippe 2 # s!all graph...
Snippe 2 # s!all graph... 2H2H Snippe C I!por -SM "aa...CC Snippe C I!por -SM "aa...CC Snippe Bash scrip or -SM o +osGIS...
Snippe Bash scrip or -SM o +osGIS... CC Snippe D /lose" line logic
Snippe D /lose" line logic $i!proper%...$i!proper%... 11 Snippe H /lose"
Snippe H /lose" line logic $proper%line logic $proper%... 11 Snippe E -SMI!porer !o"ifcat
Snippe E -SMI!porer !o"ifcat ons...ons...2...2 Snippe /reae ro'tng neor( in
Snippe /reae ro'tng neor( in =aa...=aa... CC Snippe F /reae a ro'tng neor( in SQL...
Snippe F /reae a ro'tng neor( in SQL... Snippe 10 7!py operaton call =aa SQL...D Snippe 10 7!py operaton call =aa SQL...D Snippe 11 Bo'n"ing 5o8 co'n operatons =aa SQL
Snippe 11 Bo'n"ing 5o8 co'n operatons =aa SQL... HH Snippe 12 Bo'n"ing 5o8 ge operatons =aa SQL
Snippe 12 Bo'n"ing 5o8 ge operatons =aa SQL... EE Snippe 1C /loses poin operatons =aa SQL... Snippe 1C /loses poin operatons =aa SQL... Snippe 1 Shores pah operatons =aa SQL...F Snippe 1 Shores pah operatons =aa SQL...F Snippe 1D Neo; resoling a ransacton...DH Snippe 1D Neo; resoling a ransacton...DH
List of Figures
List of Figures
@ig're 1 The research process...
@ig're 1 The research process... @ig're 2 The NoSQL
@ig're 2 The NoSQL a!ily $San(ar 2010%...a!ily $San(ar 2010%... EE @ig're C /#+ To no"es in a neor( $Brone 200F%
@ig're C /#+ To no"es in a neor( $Brone 200F%... FF @ig're /#+ To no"es in a neor( !essaging
@ig're /#+ To no"es in a neor( !essaging $Brone 200F%...$Brone 200F%... FF @ig're D /#+ To no"es in a neor( in practce $Brone 200F%
@ig're D /#+ To no"es in a neor( in practce $Brone 200F%... 1010 @ig're H igh leel assess!en syse!
@ig're H igh leel assess!en syse!... 11 @ig're E Neo; archiec're...1D @ig're E Neo; archiec're...1D @ig're +osGIS archiec're...
@ig're +osGIS archiec're...1...1 HH @ig're F #5o'
@ig're F #5o' he har"are...he har"are... 11 @ig're 10 -penSreeMap "aase 5o'n"aries...1F @ig're 10 -penSreeMap "aase 5o'n"aries...1F @ig're 11 # si!ple graph...
@ig're 11 # si!ple graph...2...2 CC @ig're 12 Graph ype !orphis! $o"rig'e9 an" Ne'5a'er 2010%...2 @ig're 12 Graph ype !orphis! $o"rig'e9 an" Ne'5a'er 2010%...2 @ig're 1C #n e8a!ple o a Neo; graph
@ig're 1C #n e8a!ple o a Neo; graph... 2D2D @ig're 1 Neo;
@ig're 1 Neo; fle sorage...fle sorage...2E...2E @ig're 1D Neo; "ash5oar"
@ig're 1D Neo; "ash5oar"... C0C0 @ig're 1H
@ig're 1H +osGIS "ash5oar"...+osGIS "ash5oar"...C2...C2 @ig're 1E Neo;3s high6leel "aa !o"el or -SM "aa $si!plife"%
@ig're 1E Neo;3s high6leel "aa !o"el or -SM "aa $si!plife"%... CCCC @ig're 1 Neo; ra
@ig're 1 Neo; ra "aa..."aa... CC @ig're 1F Inital i!por -SM "aa
@ig're 1F Inital i!por -SM "aa... 00 @ig're 20 o'tng
@ig're 20 o'tng opology #!ser"a!...opology #!ser"a!... @ig're 21 Meas're!ens J i!portng -SM "aa...D2 @ig're 21 Meas're!ens J i!portng -SM "aa...D2 @ig're 22 Meas're!ens J creatng a ro'e opology...D2 @ig're 22 Meas're!ens J creatng a ro'e opology...D2 @ig're 2C Neo; !
@ig're 2C Neo; !e!ory ooprin...e!ory ooprin... DDDD @ig're 2 Neo; ers's +osGIS ?o "iagra!...DF @ig're 2 Neo; ers's +osGIS ?o "iagra!...DF
8 8
List of
List of Abbreviations
Abbreviations
So!e re<'enly 'se" a55reiae" er!s So!e re<'enly 'se" a55reiae" er!s #/
#/I*I* ##o!o!icic, , /o/onsnsisiseenn, , IsIsololaae"e", , *'*'rara5l5le.e. B#
B#S7S7 BaBasisicacalllly #y #aailila5a5lele, S, So o ssaae, e, 77enen''alally cly cononsisissenen.. /
/++)) //oo!!pp''eer r ++rroocceessssiinng g ))nnii.. /
/QQLL //oo!!!!oon Qn Q''eerry y LLaanngg''aaggee.. *
*BBMMSS **aaaaBBasase e MMaannaaggee!!eenn SSyyssee!! 7/Q
7/QLL 7878en"en"e" /e" /o!!o!!on Qon Q'ery 'ery LangLang'ag'age. e. 7/Q7/QL eL e8e8en"s n"s he he li!li!iatiatons ons o /o /QL, QL, proproi"ii"ing ng a !a !ore ore ?e8?e8i5li5lee lang'age ih sronger si!ilarites ih SQL.
lang'age ih sronger si!ilarites ih SQL. 7+S
7+SGG 7'r7'ropeopean +ean +erolrole'! e'! S'rS'rey ey GroGro'p J 'p J hehey ary are he he a'e a'hohoriy riy or a or a lo lo o o he she spatapatal rel reereerence nce syssyse! e! 'se'se".". In SS heir initals are pref8e" as 7+SGi"O.
In SS heir initals are pref8e" as 7+SGi"O. G
GBB GGiiggaa55yyee.. G7
G7-S-S GeGeo!o!eery 7nry 7ngigine -ne -pepen Son So'rc'rce J he J he ene engigine 'sne 'se" oe" or !anr !any +osy +osGGIS a"IS a"aancnce" 'e" 'ncnctotonsns.. G
GII GGeeo o IInnoorr!!aattoonn.. GI
GIM#M# GeGeogograpraphihical cal InInoror!a!aton ton MaMananagege!e!en an an" #n" #ppppliclicatoatonsns, MS, MSc prc progogra!ra!!e!e.. G
GIISS GGeeooggrraapphhiic Ic Innoorr!!aattoon Sn Syyssee!!.. G
GiiSSTT GGeenneerraallii99ee" " SSeeaarrcch Th Trreeee.. GM
GMLL GeGeogograpraphy Mhy Mar(ar('p L'p Langang'ag'age, e, he he ML gML gra!ra!!a!ar "er "efnfne" 5e" 5y hy he -pe -pen Gen Geoeospspataatal /ol /onsnsorort'! t'! $-$-G/G/% o% o e8press geographical ea'res.
e8press geographical ea'res. G
G++LL GGeenneerraal l ++''55lliic c LLiicceennssee.. G)I
G)I Graphical Graphical )ser )ser Inerace.Inerace. G
G&&TT GGoooogglle e &&ee5 5 TTooooll((ii II>>-- IInnpp''>>--''pp'' I*7
I*7 Inegrae" Inegrae" *es(op *es(op 7niron!en.7niron!en. IITT IInnoorr!!aattoon n TTeecchhnnoollooggiieess..
M
MBB MMeeggaa55yyee.. No
NoSQSQLL NoNo - -nlnly Sy SQLQL, n, nonon6r6relelatatononal al "a"aaassorore.e.
--**@@ --ppeen n **oocc''!!eenn @@oorr!!aa.. -G
-G// -p-pen Gen Geoeospspatatal /al /onsonsortort'! J s'! J saan"n"ar"ar"s 5os 5o"y "y or Gor Geoeospspatatal inal ineeroropepera5ra5iliiliy 5y 5eeeeen pen pro"ro"'c'css.. -SG
-SG7-7- -pe-pen Son So'rc'rce Gee Geospospatal atal @o'@o'n"an"aton J ton J inc'inc'5a5aor o or o !an!any opy open6sen6so'rco'rce proe pro;ec;ecs.s.
--SSMM --ppeennSSrreeeeMMaapp.. #M
#M an"o! #ccess Me!ory.an"o! #ccess Me!ory. *
*BMBMSS eelalatontonal al *a*aaa5as5ase e MaManagnage!e!enen SySysse!e!.. 7ST
7ST 7presenatonal 7presenatonal Sae Sae Transer.Transer.
ss ThThe e sesecocon" n" $S$SI I 'n'ni i sysy!5!5olol s% s% is is hhe Ie Innerernanatotonanal Sl Sysysee! ! o o )n)niis s $S$SI% I% 5a5ase se 'n'ni i o o t!t!e.e. S
SQQLL SSrr''cc''rree" " QQ''eerry y LLaanngg''aaggee.. S
SI*I* SpSpatatal eal eeerenrence Ice I"e"entntfefer, hr, his iis is hs he prie pri!a!ary (ery (ey in a spy in a spataatal rel reereerencnce sye sysse! ce! caaaalolog o opg o optontons.s. SS $
SS $i"%i"% Spatal Spatal eereneerence Syce Syse! se! J his J his is sis si!ilar i!ilar in conin concep cep o spo spatal "aatal "aa5ase a5ase SI*, SI*, i "ei "efnes fnes he che coor"inaoor"inaee syse!, pro;ecton an" "a'! o spatal "aa.
syse!, pro;ecton an" "a'! o spatal "aa. )
)MMLL ))nniiffee" " MMoo""eelliinng g LLaanngg''aaggee.. )
)NNII **eerriiee" " rroo!! UnicsUnics $)Niple8e" Inor!aton an" /o!p'tng Serice%. $)Niple8e" Inor!aton an" /o!p'tng Serice%. &GS
&GS &orl&orl" G" Geo"eo"etc etc SysSyse! e! J sJ sanan"ar" "ar" or or "ef"efninning gg geo"eo"etc etc "aa"aa, e, ellipllipsoisoi" a" an" n" geogeoi" i" !o"!o"els els haha i is s hehe o'n"aton o !any spatal reerence syse!s longi'"e an" lat'"e "aa 'sing a reerence ellipsoi". o'n"aton o !any spatal reerence syse!s longi'"e an" lat'"e "aa 'sing a reerence ellipsoi". Mos co!!only 'se" is &GS 1F.
Mos co!!only 'se" is &GS 1F. &PB
&PB &e&ell6ll6PnoPnon n BiBinarnary, y, as as spspececifife" e" 5y 5y -p-penenGIGIS S o o e8e8prepress ss spspatatal al o5o5;e;eccs.s. &P
&PTT &e&ellll6P6Pnonon Tn Te8e8, a, as ss spepecicifefe" 5y -" 5y -pepenGnGIS IS o e8o e8prpresess sps spatatal oal o5;5;ececss..
MMLL eeeennssii55lle e MMaarr((''p p LLaanngg''aaggee..
8i 8i
NoSQL spatal NoSQL spatal
8ii 8ii
1
1 ntroduction
ntroduction
I so!eone o'l" "escri5e a lan"scape, i is li(ely he person o'l" caegori9e i ino roa"s, fel"s, rees, I so!eone o'l" "escri5e a lan"scape, i is li(ely he person o'l" caegori9e i ino roa"s, fel"s, rees, 5'il"
5'il"ings or ings or rierriers an" s an" gies geogragies geographical reephical reerences li(e 3a";acrences li(e 3a";acen o3 or en o3 or 3o he righ 3o he righ o3 o o3 o "escr"escri5e hei5e he locato
locaton o n o he ea'rehe ea'res. I s. I is i!possiis i!possi5le or he 5le or he persoperson o n o "escr"escri5e all i5e all he "eailhe "eails o s o he lan"scahe lan"scape, hepe, he person gies an inerpreaton 5ase
person gies an inerpreaton 5ase" on his on ineress. The sa!e applies or "igit9ing a lan"scape i is" on his on ineress. The sa!e applies or "igit9ing a lan"scape i is i!possi5le o represen all he ea'res o a lan"scape in a co!p'er. Geographical "aa is a si!plife" i!possi5le o represen all he ea'res o a lan"scape in a co!p'er. Geographical "aa is a si!plife" represenaton o so!e aspecs o he real orl". *epen"ing on he 'se an" ineress, he "aa co'l" 5e represenaton o so!e aspecs o he real orl". *epen"ing on he 'se an" ineress, he "aa co'l" 5e ro
ro! ! reareally lly si!si!ple o ple o erery y co!co!pleple8. 8. $e$eyoyoo" o" e e al. 200H, al. 200H, chachapeper r 2 2 B'rB'rro'gro'gh h an" Mc*onan" Mc*onnelnell l 1FF1FF,, chaper 2%
chaper 2%
#s a 'ser o'l" "escri5e a lan"scape 5ase" on ineres, he ay e sore spatal "aa is also or a #s a 'ser o'l" "escri5e a lan"scape 5ase" on ineres, he ay e sore spatal "aa is also or a specifc p'rpose. This research "escri5es he li!iatons o ra"itonal "aa5ase sorage an" <'erying ro! a specifc p'rpose. This research "escri5es he li!iatons o ra"itonal "aa5ase sorage an" <'erying ro! a GI poin o ie. The consr'cton o a Geographic Inor!aton Syse! $GIS% 5ase" on a non6relatonal GI poin o ie. The consr'cton o a Geographic Inor!aton Syse! $GIS% 5ase" on a non6relatonal "aas
"aasore is ore is propospropose". So!e e". So!e s'cces'ccess'l real orl" ss'l real orl" e8a!pe8a!ples e8is an" les e8is an" pro!ipro!ise !ore se !ore ??e8i5ile8i5iliy "oingiy "oing operatons on he spatal ea'res. The !otaton or his approach ill 5e e8plaine" in he ne8 chaper. operatons on he spatal ea'res. The !otaton or his approach ill 5e e8plaine" in he ne8 chaper.
1!1
1!1 "roblem
"roblem description
description
@or@or seseeeraral l "e"ecaca"e"es, s, hhe e !o!os s co!co!!o!on n "a"aa a ssororagage e !o!o"e"el l or or gegeogograraphphic ic "a"aa a anan" " asassosociaciae"e" a"!in
a"!inisratisrate "aa has e "aa has 5een he relaton5een he relatonal "aa al "aa !o"e!o"el. /o"" l. /o"" $1FE0% inro"'$1FE0% inro"'ce" his er! in ce" his er! in his paper 3#his paper 3# elatonal Mo"el o *aa or Large Share" *aa Ban(s3. Soare i!ple!entng his !o"el is calle" a elatonal Mo"el o *aa or Large Share" *aa Ban(s3. Soare i!ple!entng his !o"el is calle" a elatonal *aa5ase Manage!en Syse!, or *BMS, 5' he less sric er! 3relatonal "aa5ase3 is oen elatonal *aa5ase Manage!en Syse!, or *BMS, 5' he less sric er! 3relatonal "aa5ase3 is oen 'se" in is place. Sricly spea(ing, a relatonal "aa5ase is a se o a5les conaining "aa f:e" ino 'se" in is place. Sricly spea(ing, a relatonal "aa5ase is a se o a5les conaining "aa f:e" ino pre"efne" caegories. 7ach a5le conains one or !ore a:ri5'es in col'!ns. 7ach ro conains a 'ni<'e pre"efne" caegories. 7ach a5le conains one or !ore a:ri5'es in col'!ns. 7ach ro conains a 'ni<'e insance o "aa or he a:ri5'e "efne" 5y he col'!ns. )sers are a5le o access or reasse!5le he "aa insance o "aa or he a:ri5'e "efne" 5y he col'!ns. )sers are a5le o access or reasse!5le he "aa in "i4eren ays iho' haing o reorgani9e he "aa5ase a5les.
in "i4eren ays iho' haing o reorgani9e he "aa5ase a5les.
Beca'se o heir rich se o ea'res, <'ery capa5ilites an" ransacton !anage!en, *BMSs see! o Beca'se o heir rich se o ea'res, <'ery capa5ilites an" ransacton !anage!en, *BMSs see! o f al!os eery possi5le "aa5ase as(. B' heir ea're richness is also heir ea(ness. -n he hole, f al!os eery possi5le "aa5ase as(. B' heir ea're richness is also heir ea(ness. -n he hole, relat
relatonal "aa5asonal "aa5ases "o es "o a a goo" ;o5 in goo" ;o5 in sorinsoring g "aa, 5' here are so!e li!iaton"aa, 5' here are so!e li!iatons s $*e/a$*e/an"ia e al. n"ia e al. 200E200E Pi! an" Lochos(y 1FF, page 1EF%
Pi! an" Lochos(y 1FF, page 1EF% •• )p6scaling)p6scaling
&heneer a relatonal "aa5ase nee"s !ore sorage or co!p'er poer, i !'s 5e loa"e" on &heneer a relatonal "aa5ase nee"s !ore sorage or co!p'er poer, i !'s 5e loa"e" on a !ore poer'l co!p'er. &hen he "aa5ase "oes no f on one single co!p'er, i nee"s a !ore poer'l co!p'er. &hen he "aa5ase "oes no f on one single co!p'er, i nee"s o 5e "isri5'e" across !'ltple co!p'ers. elatonal "aa5ases are no "esigne" o 'ncton o 5e "isri5'e" across !'ltple co!p'ers. elatonal "aa5ases are no "esigne" o 'ncton ih "isri5'e" syse!s co!5ining !'ltple a5les across "i4eren c
ih "isri5'e" syse!s co!5ining !'ltple a5les across "i4eren c o!p'ers is "iRc'l an"o!p'ers is "iRc'l an" gies !osly a "ecrease in peror!ance.
gies !osly a "ecrease in peror!ance. •• +rogra!!e an" "aa5ase lang'ages+rogra!!e an" "aa5ase lang'ages
San"ar" Q'ery Lang'age $SQL% is a conenien lang'age o <'ery a relatonal "aa5ase. San"ar" Q'ery Lang'age $SQL% is a conenien lang'age o <'ery a relatonal "aa5ase. oeer, he Graphical )ser Inerace $G)I% in a co!p'er progra! is oen "eelope" in a oeer, he Graphical )ser Inerace $G)I% in a co!p'er progra! is oen "eelope" in a "i4eren lang'age, hich lea"s o all (in"s o conersion iss'es.
"i4eren lang'age, hich lea"s o all (in"s o conersion iss'es. •• *aa iho' a sche!a*aa iho' a sche!a
elatonal "aa5ases are goo" or sr'c're" "aa. @or e8a!ple, sales fg'res f ell in elatonal "aa5ases are goo" or sr'c're" "aa. @or e8a!ple, sales fg'res f ell in organi9e" a5les. )nsr'c're" "aa, s'ch as i!ages, or" "oc'!ens an" he "aa o social organi9e" a5les. )nsr'c're" "aa, s'ch as i!ages, or" "oc'!ens an" he "aa o social neor(ing sies are no ery s'ia5le or a *BMS eiher.
neor(ing sies are no ery s'ia5le or a *BMS eiher. The ne8 paragraphs gie a !ore in6"eph ie o hese li!iatons. The ne8 paragraphs gie a !ore in6"eph ie o hese li!iatons. Up-scaling
Up-scaling &i
&ih h he he grogroh h o o he he ininernerne, e, "is"isriri5'5'e" e" co!co!p'tp'tng ng 5ec5eca!e a!e !or!ore e an" an" !or!ore e 'se'se'l'l. . *is*isriri5'5'e"e"
1 1
NoSQL spatal NoSQL spatal
co!p'tng is a echni<'e in hich a as( is peror!e" 5y a collecton o neor(e" co!p'ers. The co!p'tng is a echni<'e in hich a as( is peror!e" 5y a collecton o neor(e" co!p'ers. The collecton !ay consis o co!p'er e<'ip!en in a single roo!, or co!p'ers a !'ltple locatons, 'sing collecton !ay consis o co!p'er e<'ip!en in a single roo!, or co!p'ers a !'ltple locatons, 'sing conentonal neor( echnology an" he Inerne. The i"ea is o increase oerall co!p'tng $processing% conentonal neor( echnology an" he Inerne. The i"ea is o increase oerall co!p'tng $processing% poer 5y co!5ining he poer o in"ii"'al co!p'ers, he syse! "eliers high processing poer 'sing poer 5y co!5ining he poer o in"ii"'al co!p'ers, he syse! "eliers high processing poer 'sing relately ine8pensie har"are. By sprea"ing co!p'er locatons, only a par o he processing poer ill relately ine8pensie har"are. By sprea"ing co!p'er locatons, only a par o he processing poer ill 5e re"'ce" in case a single co!p'er 5rea(s "on. # ell6(non e8a!ple o a "isri5'e" syse! is 5e re"'ce" in case a single co!p'er 5rea(s "on. # ell6(non e8a!ple o a "isri5'e" syse! is Google3s Mape"'ce $*ean an" Ghe!aa 200% o pro"'ce is in"e8 o he &orl" &i"e &e5.
Google3s Mape"'ce $*ean an" Ghe!aa 200% o pro"'ce is in"e8 o he &orl" &i"e &e5.
&hen i co!es o "esigning a "isri5'e" eniron!en, hree core syse!ic re<'ire!ens e8is in a &hen i co!es o "esigning a "isri5'e" eniron!en, hree core syse!ic re<'ire!ens e8is in a special relatonship /onsisency, #aila5iliy an" +artton6olerance $/#+%. This concep J calle" he /#+ special relatonship /onsisency, #aila5iliy an" +artton6olerance $/#+%. This concep J calle" he /#+ heore! J as frs inro"'ce" 5y 7ric Breer $2000% a he +-*/
heore! J as frs inro"'ce" 5y 7ric Breer $2000% a he +-*/11 conerence an" as laer or!ali9e" 5y conerence an" as laer or!ali9e" 5y Gil5er an" Lynch $2002%. +roo o he /#+ heore! is "isc'sse" in paragraph
Gil5er an" Lynch $2002%. +roo o he /#+ heore! is "isc'sse" in paragraph 2.1.1,2.1.1, page page F F. #ccor"ing o. #ccor"ing o he heore!, a "isri5'e" syse! can satsy only o o hese g'aranees a he sa!e t!e, no all hree. he heore!, a "isri5'e" syse! can satsy only o o hese g'aranees a he sa!e t!e, no all hree. Tra"it
Tra"itonal relatonaonal relatonal l "aa"aa5ases all 5ases all 'n"e'n"er r he caegory /onsisehe caegory /onsisency an" ncy an" #aila#aila5iliy $/#% 5iliy $/#% heir s'!5liheir s'!5lingng 5loc( is a parttone" neor(. Ne (in"s o "aa5ases !a(e i possi5le o choose 5eeen /onsisency 5loc( is a parttone" neor(. Ne (in"s o "aa5ases !a(e i possi5le o choose 5eeen /onsisency $/+% an" #aila5iliy $#+%. 78a!ples are Google3s BigTa5le $/+%, Mongo*B $/+%, #!a9on3s *yna!o $#+%, $/+% an" #aila5iliy $#+%. 78a!ples are Google3s BigTa5le $/+%, Mongo*B $/+%, #!a9on3s *yna!o $#+%, Kol"e!or $#+%, Si!ple*B $#+%, /o'ch*B $#+%
Kol"e!or $#+%, Si!ple*B $#+%, /o'ch*B $#+% an" Ber(eley*B $/+%. #s he "eelop!en o hese "aa5asesan" Ber(eley*B $/+%. #s he "eelop!en o hese "aa5ases is consanly changing, his lis is no co!plee. $/hang e al.
is consanly changing, his lis is no co!plee. $/hang e al. 200 *e/an"ia e al. 200E%200 *e/an"ia e al. 200E% Program and dataase languages
Program and dataase languages
The !ain "i4erences 5eeen progra!!ing lang'ages can 5e e8plaine" 5y heir origins. In he co!p'er The !ain "i4erences 5eeen progra!!ing lang'ages can 5e e8plaine" 5y heir origins. In he co!p'er applicaton "eelop!en orl", o5;ec6oriene" progra!!ing !eho"s an" ools hae 5eco!e san"ar". applicaton "eelop!en orl", o5;ec6oriene" progra!!ing !eho"s an" ools hae 5eco!e san"ar". -5;ec6oriene" lang'ages li(e S!allal(, /, =aa or +yhon s'ppor he 5'il"ing o applicatons o' o -5;ec6oriene" lang'ages li(e S!allal(, /, =aa or +yhon s'ppor he 5'il"ing o applicatons o' o o5;
o5;ececs s haha hahae e 5o5oh h "a"aa a an" an" 5eh5ehaiaior or $Pi$Pi! ! an" Lochoan" Lochos(y s(y 1F1FF, F, pagpage e D%. D%. elelatoatonal echnnal echnoloologiegiess s'ppor he sorage o "aa in a5les or relatonal sche!a. Manip'laton o "aa is "one ia a "eclarate s'ppor he sorage o "aa in a5les or relatonal sche!a. Manip'laton o "aa is "one ia a "eclarate progra!!ing lang'age li(e SQL, Lisp or SLT ha can 5e e8ec'e" 5oh inernally an" e8ernally ia sore" progra!!ing lang'age li(e SQL, Lisp or SLT ha can 5e e8ec'e" 5oh inernally an" e8ernally ia sore" proce
proce"'res"'res. #s . #s a res'l, a res'l, prograprogra! lang'age! lang'ages an" "aa5ase lang'as an" "aa5ase lang'ages are 5ase" on "i4ereges are 5ase" on "i4eren se!antn se!antcc o'n"atons an" opt!i9aton sraegies 1% The o5;ec6oriene" para"ig! is 5ase" on proen soare o'n"atons an" opt!i9aton sraegies 1% The o5;ec6oriene" para"ig! is 5ase" on proen soare engineering principles, 2% The relatonal para"ig! is 5ase" on proen !ahe!atcal principles. These engineering principles, 2% The relatonal para"ig! is 5ase" on proen !ahe!atcal principles. These "i4er
"i4erences are (non inor!ally as ences are (non inor!ally as 3I!pe3I!pe"ance !is!a"ance !is!ach3 ch3 $Maie$Maier r 1FF0%. To 1FF0%. To a a large e8enlarge e8en, , herhere e is anis an oerl
oerlap ap in he in he as(s progra!as(s progra!!ing lang'age!ing lang'ages s an" "aa5asean" "aa5ases s can peror!. can peror!. $Pi! an" $Pi! an" LochoLochos(y 1FF s(y 1FF /oo(/oo( an" I5rahi! 200H%
an" I5rahi! 200H% Inno
Innoate Graphicaate Graphical l )ser Inerac)ser Ineraces es $G)Is$G)Is% % allo non6proallo non6progra!!egra!!ers rs o o accesaccess s an" !anip'laan" !anip'lae e hehe recor"s in a "aa5ase. @ro! an en"6'ser3s pro"'ctiy poin o ie, i is consi"ere" a goo" practce o recor"s in a "aa5ase. @ro! an en"6'ser3s pro"'ctiy poin o ie, i is consi"ere" a goo" practce o "esign G)Is ha he non6echnical 'sers can e8ec'e ery co!ple8 <'eries iho' haing o (no ha "esign G)Is ha he non6echnical 'sers can e8ec'e ery co!ple8 <'eries iho' haing o (no ha happens a he 5ac(en". To co!5ine o5;ecs an" relatonal "aa5ases in s'ch an inerace, a "eeloper happens a he 5ac(en". To co!5ine o5;ecs an" relatonal "aa5ases in s'ch an inerace, a "eeloper nee"s o 'n"ersan" 5oh para"ig!s, an" heir "i4erences, an" hen !a(e inelligen ra"e6o4s 5ase" on nee"s o 'n"ersan" 5oh para"ig!s, an" heir "i4erences, an" hen !a(e inelligen ra"e6o4s 5ase" on ha (nole"ge. Mos iss'es o !apping "aa 5eeen "aa5ases en progra!!ing lang'ages hae largely ha (nole"ge. Mos iss'es o !apping "aa 5eeen "aa5ases en progra!!ing lang'ages hae largely 5een resole", 5' signifcan iss'es re!ain $/oo( an" I5rahi! 200H%.
5een resole", 5' signifcan iss'es re!ain $/oo( an" I5rahi! 200H%. Schema-less data
Schema-less data
)nsr'c're" "aa reer o inor!aton ha eiher "oes no hae a pre"e
)nsr'c're" "aa reer o inor!aton ha eiher "oes no hae a pre"efne" "aa !o"el an">or "oes nofne" "aa !o"el an">or "oes no f ell ino relatonal a5les. This res'ls in irreg'larites an" a!5ig'ites hich !a(e i "iRc'l o sore in f ell ino relatonal a5les. This res'ls in irreg'larites an" a!5ig'ites hich !a(e i "iRc'l o sore in ra"itonal relatonal "aa5ases. 7specially ih 'ser6"rien conen, i is "iRc'l o pre6conceie he e8ac ra"itonal relatonal "aa5ases. 7specially ih 'ser6"rien conen, i is "iRc'l o pre6conceie he e8ac sche!a o he "aa ha ill 5e han"le". )nor'naely, he relatonal !o"e
sche!a o he "aa ha ill 5e han"le". )nor'naely, he relatonal !o"el re<'ires 'pron sche!as an"l re<'ires 'pron sche!as an" !a(es i "iRc'l o f "yna!ic an" a"6hoc "aa. $&eglar9 200%
!a(es i "iRc'l o f "yna!ic an" a"6hoc "aa. $&eglar9 200%
1
1 +-*/ +-*/ is a conis a conerence ha erence ha oc'ses on oc'ses on research in research in he heory, he heory, "esign, sp"esign, specifcaton anecifcaton an" i!ple!enat" i!ple!enaton o "on o "isri5'e" sysisri5'e" syse!s.e!s. 2
1!#
1!# $esearc%
$esearc% ob&ectives
ob&ectives
The iss'eThe iss'es s "es"escricri5e" in 5e" in he preihe preio's o's secsecton are ton are "ri"riining g orgorganianisatsatons ons o o looloo( ( a a alalernernatates es o o hehe ra"itonal relatonal "aa5ase echnology. /ollectely, hese alernates hae 5eco!e (non as 3NoSQL ra"itonal relatonal "aa5ase echnology. /ollectely, hese alernates hae 5eco!e (non as 3NoSQL "aasores3. NoSQL "aasores !ay proi"e a"anages oer relatonal "aa5ases, 5' generally lac( he "aasores3. NoSQL "aasores !ay proi"e a"anages oer relatonal "aa5ases, 5' generally lac( he relatonal ro5'sness or hose a"anages. The ai! o his paper is o "iscoer so!e a"anages o a relatonal ro5'sness or hose a"anages. The ai! o his paper is o "iscoer so!e a"anages o a selece" NoSQL "aasore as co!pare" o a ra"itonal relatonal "aa5ase hen soring an" <'erying selece" NoSQL "aasore as co!pare" o a ra"itonal relatonal "aa5ase hen soring an" <'erying spata
spatal ecor "aa. The choice or he NoSQL l ecor "aa. The choice or he NoSQL "aas"aasore ill 5e par o ore ill 5e par o his pro;ehis pro;ec. @or co!parison o hec. @or co!parison o he relatonal !o"el, he open6so'rce pro;ec +osGIS ill 5e 'se". # !ain o5;ecte can 5e "efne" o reach relatonal !o"el, he open6so'rce pro;ec +osGIS ill 5e 'se". # !ain o5;ecte can 5e "efne" o reach his oerall goal i9.
his oerall goal i9.
Analy!e the advantages of a "oS#$ datastore for spa%al data as compared to a rela%onal datastore& Analy!e the advantages of a "oS#$ datastore for spa%al data as compared to a rela%onal datastore& The !ain o5;ecte is "ii"e" ino
The !ain o5;ecte is "ii"e" ino s'56o5;ectess'56o5;ectes
•• 78a!ine he echnical an" geographical capa5ilites o c'rren NoSQL spatally6aare "aasores78a!ine he echnical an" geographical capa5ilites o c'rren NoSQL spatally6aare "aasores an" consi"er a s'ia5le NoSQL syse! or his research
an" consi"er a s'ia5le NoSQL syse! or his research
•• I!ple!en an" r'n he chosen NoSQL an" +osgreSQL syse!s conaining he sa!e "aaI!ple!en an" r'n he chosen NoSQL an" +osgreSQL syse!s conaining he sa!e "aa •• 'n i"entcal spatal 5o'n"ing 5o8 operatons on 5oh "aa5ases'n i"entcal spatal 5o'n"ing 5o8 operatons on 5oh "aa5ases
•• 'n i"entcal shores pah operatons on 'n i"entcal shores pah operatons on 5oh "aa5ases5oh "aa5ases
•• /o!pare he res'ls o he operatons on /o!pare he res'ls o he operatons on he "i4eren "aa5aseshe "i4eren "aa5ases
•• /oncl'"e on he a"anages an" "isa"anages o soring spatal "aa in NoSQL./oncl'"e on he a"anages an" "isa"anages o soring spatal "aa in NoSQL.
1!#!1
1!#!1 $esearc% $esearc% 'uestions'uestions
I is clear ha he p'rpose o he o "aa5ase para"ig!s are "i4eren, 5' ho 'n"a!enal are he I is clear ha he p'rpose o he o "aa5ase para"ig!s are "i4eren, 5' ho 'n"a!enal are he "i4erences, an" ha a"anages can a NoSQL "aasore o4er oer a relatonal "aa5ase The research "i4erences, an" ha a"anages can a NoSQL "aasore o4er oer a relatonal "aa5ase The research o5;ectes, as "efne" a5oe, lea" o he
o5;ectes, as "efne" a5oe, lea" o he olloing research <'estonolloing research <'eston 'he
'hen n doedoes s a a "oS#"oS#$ $ datdatastoastore re for spa%al data for spa%al data proprovide clear vide clear advadvantantageages s comcomparpared ed to to a a relrela%oa%onalnal datastore(
datastore(
The !ain <'eston is "ii"e" ino
The !ain <'eston is "ii"e" ino s'56<'estonss'56<'estons
•• &hich NoSQL pro;ec co'l" 5e a goo" can"i"ae o co!pare ih +osGIS&hich NoSQL pro;ec co'l" 5e a goo" can"i"ae o co!pare ih +osGIS •• &ha are he echnical characeristcs o he chosen NoSQL "aasore&ha are he echnical characeristcs o he chosen NoSQL "aasore •• &ha are s'ia5le !eho"s o <'ery his NoSQL "aasore&ha are s'ia5le !eho"s o <'ery his NoSQL "aasore
•• To ha e8en is an in"e8 sr'c're s'ppore" or spatal "aa in he NoSQL "aasoreTo ha e8en is an in"e8 sr'c're s'ppore" or spatal "aa in he NoSQL "aasore •• o "o spatal 5o'n"ing 5o8 operatons peror! on 5oh "aa5aseso "o spatal 5o'n"ing 5o8 operatons peror! on 5oh "aa5ases
•• o "o shores pah operatons peror! on 5oh "aa5aseso "o shores pah operatons peror! on 5oh "aa5ases
•• &ha are he a"anages an" "isa"anages o soring spatal "aa in he chosen NoSQL "aasore&ha are he a"anages an" "isa"anages o soring spatal "aa in he chosen NoSQL "aasore
1!#!#
1!#!# (eliverables(eliverables
This research pro;ec has o !ain "eliera5les 1% The "esign an" i!ple!enaton o a NoSQL
This research pro;ec has o !ain "eliera5les 1% The "esign an" i!ple!enaton o a NoSQL syse! an"syse! an" a +osGIS syse!, conaining i"entcal spatal "aa an" i"entcal spatal operatons. So'rce co"e ill 5e a +osGIS syse!, conaining i"entcal spatal "aa an" i"entcal spatal operatons. So'rce co"e ill 5e p'5lishe" ia he online pro;ec hostng e5sie gih'5. 78periences 5'il"ing an" <'erying hese sores ill p'5lishe" ia he online pro;ec hostng e5sie gih'5. 78periences 5'il"ing an" <'erying hese sores ill sere as inp' or he scientfc repor. 2% Scientfc repor The repor "oc'!ens all aspecs o he sere as inp' or he scientfc repor. 2% Scientfc repor The repor "oc'!ens all aspecs o he liera're research, he "eelop!en o he operatonal "aasores, an"
liera're research, he "eelop!en o he operatonal "aasores, an" he es res'ls.he es res'ls.
1!#!)
1!#!) ScopeScope
This hesis oc'ses on ha ype o pro;ec co'l" 5enef ro! he a"anages o a NoSQL syse! oer a This hesis oc'ses on ha ype o pro;ec co'l" 5enef ro! he a"anages o a NoSQL syse! oer a relatonal syse!. I "eals ih iss'es o spatal operatons on a NoSQL "aasore an" he peror!ance i relatonal syse!. I "eals ih iss'es o spatal operatons on a NoSQL "aasore an" he peror!ance i
C C
NoSQL spatal NoSQL spatal
ill proi"e. /o!!on "aa5ase pro5le!s li(e scala5iliy an" cl'ser "isri5'ton o "aa5ase !anage!en ill proi"e. /o!!on "aa5ase pro5le!s li(e scala5iliy an" cl'ser "isri5'ton o "aa5ase !anage!en !ay 5e o'che" 'pon, 5' are no he s'5;ec or he goal o his research.
!ay 5e o'che" 'pon, 5' are no he s'5;ec or he goal o his research.
1!)
1!) *et%odolog+
*et%odolog+
In shor, his research is peror!e" 5y i!ple!entng a NoSQL "aasore an" co!paring i ih he ell6 In shor, his research is peror!e" 5y i!ple!entng a NoSQL "aasore an" co!paring i ih he ell6 (non +osGIS "aa5ase !anage!en syse! $*BMS% 'sing he sa!e "aa. This research is "ii"e" ino (non +osGIS "aa5ase !anage!en syse! $*BMS% 'sing he sa!e "aa. This research is "ii"e" ino o !ain pars a heoretcal par an" an e!pirical par. The heoretcal par consiss o liera're s'"y o o !ain pars a heoretcal par an" an e!pirical par. The heoretcal par consiss o liera're s'"y o 5oo(s, e5 pages an" ;o'rnal papers on he e
5oo(s, e5 pages an" ;o'rnal papers on he echnical aspecs o NoSQL. This is nee"e" o selec a s'ia5lechnical aspecs o NoSQL. This is nee"e" o selec a s'ia5le NoSQL "aasore or his research in he frs place. The selece" NoSQL "aasore is he s'
NoSQL "aasore or his research in he frs place. The selece" NoSQL "aasore is he s'5;ec o a !ore5;ec o a !ore in6"eph heoretcal s'"y aerar"s. Beca'se he opic is raher ne, so!e i(i an" 5log pages are also in6"eph heoretcal s'"y aerar"s. Beca'se he opic is raher ne, so!e i(i an" 5log pages are also i!p
i!pororan an so'so'rcerces s o o ininor!or!atoaton. n. The The e!pe!piriirical cal parpar conconsississ s o o e8pe8pererienciences es an" an" eaeal'atl'atons ons o o hehe i!ple!enaton o he "aasores.
i!ple!enaton o he "aasores.
# frs, he c'rrenly aaila5le NoSQL "aasores ill 5e e8a!ine" in or"er o !a(e a
# frs, he c'rrenly aaila5le NoSQL "aasores ill 5e e8a!ine" in or"er o !a(e a proper selecton. Theproper selecton. The !ain "ecision acors in he "ecision are relia5iliy, c'rren spatal aareness o he syse!, a5iliy o sore !ain "ecision acors in he "ecision are relia5iliy, c'rren spatal aareness o he syse!, a5iliy o sore sc
schehe!a!a6l6lesess s "a"aaa, , anan" " hheeheher r hhe e prpro;o;ecec is is opopenen6s6so'o'rcrce e or or nono. . ThThe e sysysse! e! hha a !e!eees s hhesesee re<'ire!ens 5es ill 5e chosen or
re<'ire!ens 5es ill 5e chosen or he research.he research.
#er selecton, he syse! chosen ill 5e analy9e" !ore in6"eph ih seeral aspecs in !in" he #er selecton, he syse! chosen ill 5e analy9e" !ore in6"eph ih seeral aspecs in !in" he "aa"aa !o"el $hich "efnes ho he syse! sores "aa%, he <'ery !o"el $hich e8a!ines he srengh o he !o"el $hich "efnes ho he syse! sores "aa%, he <'ery !o"el $hich e8a!ines he srengh o he <'ery lang'age$s% 'se"%, he consisency aspec $incl'"ing he ra"e6o4s !a"e in he process%, an" fnally <'ery lang'age$s% 'se"%, he consisency aspec $incl'"ing he ra"e6o4s !a"e in he process%, an" fnally
Figure 1: The research process Figure 1: The research process
ail're han"ling $ho he "aasore han"les ario's ypes o ail'res, li(e 'ser process ail'res an"
ail're han"ling $ho he "aasore han"les ario's ypes o ail'res, li(e 'ser process ail'res an" neor(neor( pro5le!s%. To "iscoer he a"anages o a NoSQL !o"el co!pare" o a ra"itonal relatonal !o"el, he pro5le!s%. To "iscoer he a"anages o a NoSQL !o"el co!pare" o a ra"itonal relatonal !o"el, he heoretcal par ill also "escri5e he concep'al ra!eor( ha ill 5e 'se" o peror! a air co!parison heoretcal par ill also "escri5e he concep'al ra!eor( ha ill 5e 'se" o peror! a air co!parison 5eeen he o.
5eeen he o.
The e!pirical par ill "escri5e he echnical "eails o he "esign, i!ple!enaton an" eal'aton o he The e!pirical par ill "escri5e he echnical "eails o he "esign, i!ple!enaton an" eal'aton o he "aase 'sing he NoSQL "aasore. The spatal 'nctonaliy o4ere" 5y 5oh relatonal an" non6relatonal "aase 'sing he NoSQL "aasore. The spatal 'nctonaliy o4ere" 5y 5oh relatonal an" non6relatonal syse!s "i4ers signifcanly in er!s o aaila5le ea'res, r'e geo"etc s'ppor, spatal 'nctons an" syse!s "i4ers signifcanly in er!s o aaila5le ea'res, r'e geo"etc s'ppor, spatal 'nctons an" in"e8
in"e8ing. Bench!aring. Bench!ar(s play (s play a cr'cial role a cr'cial role in eal'atnin eal'atng g he 'nctonahe 'nctonaliy an" liy an" peroperor!ance o a r!ance o a partcpartc'lar'lar "a
"aasasore ore or or 5o5oh h "e"eeloeloperpers s an" an" en"en"6's6'sersers. . TheTherereoreore, , a a 5en5ench!ch!ar( ar( ilill l 5e 5e 'se'se" " o o eaeal'al'ae e hehe srenghs o he NoSQL "aasore. This par o he repor incl'"es he preprocessing o he "aa a
srenghs o he NoSQL "aasore. This par o he repor incl'"es he preprocessing o he "aa a n" se'pn" se'p o he es !achines an" he res'ls o he 5ench!ar(. The heoretcal par sho'l" gie eno'gh inp' o o he es !achines an" he res'ls o he 5ench!ar(. The heoretcal par sho'l" gie eno'gh inp' o !a(e a prooype NoSQL "aasore. #n ierate an" incre!enal "eelop!en approach ill 5e 'se" o !a(e a prooype NoSQL "aasore. #n ierate an" incre!enal "eelop!en approach ill 5e 'se" o creae "i4eren prooypes an" eriy he "esign phase as soon as possi5le. @inally, in case hen i is creae "i4eren prooypes an" eriy he "esign phase as soon as possi5le. @inally, in case hen i is possi5le o <'ery he "aasore, he res'ls are co!pare" ih he +osGIS "aa5ase res'ls r'nning he possi5le o <'ery he "aasore, he res'ls are co!pare" ih he +osGIS "aa5ase res'ls r'nning he sa!e "aa.
sa!e "aa.
1!,
1!, $eading
$eading guide
guide
The re!ain"er o his "oc'!en is sr'c're" as ollos /haper 2 coers he NoSQL !oe!en /haperC The re!ain"er o his "oc'!en is sr'c're" as ollos /haper 2 coers he NoSQL !oe!en /haperC "eai
"eails he ls he "esi"esign gn o he o he asseassess!enss!en syssyse! /haper e! /haper coercoers s grapgraph h 5asics5asics, ho , ho graphs are <'erie" an"graphs are <'erie" an" persise", an" heir applicatons /haper D "eails he i!ple!enaton o he assess!en syse! /haper persise", an" heir applicatons /haper D "eails he i!ple!enaton o he assess!en syse! /haper H
H presepresens he res'ls o ns he res'ls o he !eas'rehe !eas're!en!ens, incl'"ing a s, incl'"ing a shor assesshor assess!en g'i"es!en g'i"e an" an" ffnally /hapnally /haper Eer E proi"es he concl'sions.
proi"es he concl'sions.
Inerese" rea"ers are enco'rage" o "ele ino he
Inerese" rea"ers are enco'rage" o "ele ino he eerenceseerences secton on pagesecton on page H H o fn" !ore reerenceso fn" !ore reerences on hese opics, o engage in heir on research e4ors o 'n"ersan" he characeristcs o hese syse!s on hese opics, o engage in heir on research e4ors o 'n"ersan" he characeristcs o hese syse!s in he cone8 o heir on or(.
in he cone8 o heir on or(.
The -penSreeMap "aa !o"el consiss o 5asic ele!ens hich are eiher a
The -penSreeMap "aa !o"el consiss o 5asic ele!ens hich are eiher a NodeNode,, Way Way ,, RelatonRelaton or or TagTag.. In his
In his reporrepor he -SM6spehe -SM6specifc "aa cifc "aa pri!pri!ites are 'rher reerreites are 'rher reerre" " o capiali9eo capiali9e" " o aoi" con'sion iho aoi" con'sion ih generic graph ele!ens or plain lang'age.
generic graph ele!ens or plain lang'age. In his or(, NoSQL syse!s are reerre" o
In his or(, NoSQL syse!s are reerre" o daasoresdaasores, since he er! 3"aa5ase syse!3 is i"ely 'se" o, since he er! 3"aa5ase syse!3 is i"ely 'se" o reer o ra"itonal *BMSs. #s he !ore general er! 3"aasore3 also incl'"es ?a fles ha can sore "aa, reer o ra"itonal *BMSs. #s he !ore general er! 3"aasore3 also incl'"es ?a fles ha can sore "aa, in he scope o his research, he e8pression 3"aa5ase3 ill 5e 'se" o reer o he sore" "aa in Neo; an" in he scope o his research, he e8pression 3"aa5ase3 ill 5e 'se" o reer o he sore" "aa in Neo; an" +osgreSQL.
+osgreSQL.
D D