El model de dades relacional que va aparèixer fa més de 40 anys, és eficient per diferents escenaris que es plantegin i pot gestionar molt bé certs tipus de dades, però, no és perfecte. Cada cop més s’està treballant en sistemes no relacionals, l’anomenat moviment NoSQL (Not only SQL). Moltes empreses incorporen aquests sistemes com Google, Amazon o LinkedIn entre altres.
Avui dia, el món avança cap a noves tecnologies on tot el que ens envolta a la nostra ciutat estarà connectat per oferir serveis més eficients i facilitats per el ciutadà. Aquest concepte es tradueix en el famós “Smart City”. Tot això generarà una gran quantitat de dades que s’hauran de tractar i processar. En el camp de la informació geogràfica, aquest estudi tracta sobre la comparació de dos tipus de bases de dades diferents com son Neo4j amb la extensió espacial “Neo4j-Spatial” dins el camp de NoSQL, i el tradicional PostgreSQL amb la extensió espacial PostGIS com a base de dades relacional. En aquests escenaris es comprova l’emmagatzematge i la consulta de dades vectorials.
L’objectiu d’aquest estudi és determinar el sistema tradicional de bases de dades relacional com PostgreSQL comparat amb el sistema NoSQL de Neo4j, amb una càrrega de gran quantitat de dades, quin podria ser més eficient en temps de resposta a l’hora de recuperar dades espacials d’una base topogràfica 1:5.000 com la de l' Institut Cartogràfic i Geològic de Catalunya (ICGC).
Neo4j és una base de dades orientada a grafs implementada en Java que pot ser afegida a una aplicació Java com qualsevol altra llibreria. Es considera una base de dades de grafs perquè el model de dades que utilitza per expressar les seves dades és un graf, on s’emmagatzemen nodes que s’uneixen amb relacions i cada node i/o relació pot tenir diferents propietats.
Els tests s’han efectuat utilitzant exactament les mateixes dades per a cada base de dades, tant per la relacional com la de graf, mitjançant 13 arxius amb extensió shapefile de diferents tipologia de geometries.
El component Java de Neo4j-Spatial és relativament fàcil d’implementar en una aplicació Java. Aquesta aplicació serà la que realitzi les consultes a la base de dades. Per tal que les consultes estiguin en igualtat de condicions, les consultes a PostgreSQL s'ha realitzat també a través d'una aplicació Java. Ambdues aplicacions s'han creat fent servir l'entorn de desenvolupament d'aplicacions de codi lliure Eclipse.
En resum, aquest estudi mostra que PostgreSQL-PostGIS és una base de dades molt més madura amb moltes més funcionalitats, documentació i suport a l’aprenentatge. En canvi Neo4j està més orientada a entorns que tinguin coneixements més elevats d'informàtica i programació, no hi ha tanta documentació com té PostgreSQL. En el cas de les extensions espacials PostGIS ofereix una infinitat de funcions integrades amb el llenguatge SQL, cosa que Neo4j-Spatial no té amb el seu llenguatge Cypher (excepte alguna funció).
En alguns casos, Neo4j pot ser considerada com una alternativa per a tasques específiques. Les dues tecnologies, tant les relacionals com les no relacionals, es podran complementar una amb l’altra, cada una amb el seu ajust adequat per a les seves pròpies capacitats. Si es treballa amb gran volum de dades a recuperar i es volen obtenir uns temps de resposta adequats, Neo4j és una possibilitat seriosa com a model de base de dades. Si per el contrari es vol treballar amb dades específiques d'un territori de poca extensió, PostgreSQL seria una solució adequada per eficiència, documentació i facilitat d'ús.
Al llarg d'aquest estudi es fa un recorregut per les diferents bases de dades existents en l'actualitat, s'analitzen en aprofundiment les dues bases de dades amb les que es treballarà, com s'estructuraran les dades importades, es mostra el codi programat per efectuar les consultes i es fa un anàlisi comparatiu en temps de resposta. |