Bases de dades NoSQL

Sota el concepte de les bases de dades NoSQL s'agrupen un grup heterogeni de tecnologies que competeixen amb els grans grups empresarials que han dominat el mercat de les bases de dades relacionals en els darrers 25 anys.

 
Les NoSQL sorgeixen com a resposta a la necessitat de manegar els Sistemes d'Informació que requereixen sites globals, la web 2.0 i les xarxes socials, amb centenars o milers de servidors, i que necessiten capturar quantitats ingents de dades en qualsevol horari i punt del planeta.
 
Els embrions del fenomen van ser gestats als laboratoris de Google i Amazon, i publicats a la comunitat amb pocs mesos de diferència els anys 2006 (Google BigTable) i 2007 (Amazon's Dynamo). Els dos articles van proporcionar les bases del que després s'ha fet famós com a BigData i les bases de dades NoSQL. 
 
Dynamo i BigTable no són implementacions alliberades en forma de producte, però la publicació dels seus principis va provocar que molts altres jugadors en el tauler de la web 2.0 veiessin una oportunitat per optimitzar les seves inversions en infraestructures de bases de dades. Altres grans companyies, com Facebook, Twitter o Linkedin van crear les seves pròpies implementacions de NoSQL i van fer el pas per alliberar-les com a codi obert. Altres petites companyies han anat sorgint seguint l'estela d'aquestes i han proporcionat al mercat les seves pròpies implementacions. Totes elles mantenen el principi d'oferir les seves solucions com a codi obert i així poder obtenir suport d'altres programadors de la comunitat per a desenvolupar més ràpidament el seu producte.
 
Les bases de dades NoSQL es fonamenten en una sèrie de principis:
  • No fan servir el model relacional, ni tampoc el llenguatge SQL.
  • Estan dissenyades per a funcionar en grans clústers amb maquinari comú no especialitzat, sigui propi, o al núvol, o a tots dos alhora.
  • Afegir o treure nodes no ha de provocar una disrupció del servei i la seva activació ha de ser immediata i automàtica.
  • Són de codi obert.
  • La velocitat de lectura i escriptura han de ser màximes, però han de ser modulables segons els requeriments de consistència del sistema.
  • Sense esquema prefixat, permeten que s'afegeixin camps a les taules de la base de dades conforme es necessitin.
 
Durant aquests darrers 5 anys l'evolució de les NoSQL ha estat espectacular i cada cop més el mercat els hi està prestant més atenció. Totes han buscat la seva especialització per a desmarcar-se dels sistemes relacionals i de les seves pròpies competidores. Aquesta aposta per la innovació ha fet que a hores d'ara les NoSQL es puguin classificar en 3 tipus principals:
  • Clau/Valor: cada item està composat per un estructura no prefixada, i al que s'hi accedeix per una clau. Les opcions d'actualització agafen la totalitat de l'ítem, no parts d'ell. Per la seva simplicitat de disseny, acostumen a ser les que més velocitat poden aportar a un sistema.
  • Basades en documents: com a documents s'entén informació no estructurada i diversa que agrupa diferents parelles clau/valor en un sol ítem al que s'anomena document. No tenen un esquema predefinit i en la majoria de casos permeten cerques indexades i actualitzacions atòmiques a dades internes als documents, sense haver d'accedir cada cop al document sencer.
  • Basades en grafs o relacions: permeten establir relacions diverses i no prefixades entre els diferents objectes que conformen el sistema, com per exemple, quins dels meus amics han vist algun capítol d'una de les meves sèries favorites. En aquest exemple tenim les relacions d'amistat, sèries favorites, capítols d'una sèrie i capítols vistos.
 
Per als dissenyadors i desenvolupadors d'aplicacions hi ha un principi determinant: no hi ha un esquema de dades, prefixat i normalitzat prèviament, que sigui condició imprescindible per a poder començar a treballar amb l'aplicació. En molts casos, l'aplicació es va construint conforme els requeriments del client van aflorant, i en la pròpia codificació va definint-se el model de dades. Aquesta agilitat en el desenvolupament facilita que pugui haver-hi més d'una plataforma de base de dades a l'aplicació, cadascuna especialitzada en un domini funcional concret. Per exemple:
  • Les dades de pagament de taxes en una base de dades relacional, aprofitant les seves característiques de consistència i seguretat.
  • El catàleg de tràmits en una base de dades NoSQL basada en documents, facilitant la introducció de nous elements al catàleg sense haver d'aturar el servei.
  • Els logs de l'aplicació i la sessió d'usuari en una basada en clau/valor, per la seva rapidesa en les escriptures.
  • Les relacions entre tràmits, ciutadans, organismes i empreses en una basada en grafs o relacions.
D'aquesta manera, ens trobem amb el mateix fenomen que hem estat observant els darrers anys amb els llenguatges de programació: una aplicació estarà construïda utilitzant diferents llenguatges especialitzats (HTML, CSS, XML, XSL, Javascript, Java, SQL, etc.), i  també la seva capa de dades estarà formada per diferents repositoris especialitzats.

Destaquem

Governança Radioelèctrica

Governança Radioelèctrica

Consulta els nivells reals d'exposició a camps electromagnètics a Catalunya i tot allò relacionat amb la telefonia mòbil

Coneix el CTTI

Sobre el CTTI

Coneix una mica més qui som i què fem.

Cercador de torres de TDT

Consulta els centres emissors de TDT més propers a través d'aquesta aplicació de realitat augmentada.