Una descripció general de les bases de dades NoSQL

L'acrònim NoSQL es va encunyar el 1998. Molta gent pensa que NoSQL és un terme derogatori creat per introduir SQL. En realitat, el terme significa no només SQL. La idea és que ambdues tecnologies puguin conviure i cadascuna té el seu lloc. El moviment NoSQL ha estat notícia en els darrers anys, ja que molts dels líders de la Web 2.0 han adoptat una tecnologia NoSQL. Empreses com Facebook, Twitter, Digg, Amazon, LinkedIn i Google fan servir NoSQL d'una manera o altra.

Anomeu NoSQL per explicar-lo al vostre CIO o fins i tot als vostres companys de feina.

NoSQL va sorgir d'una necessitat

Emmagatzematge de dades: les dades digitals emmagatzemades del món es mesura en exabytes. Un exabyte és igual a mil milions de gigabytes (GB) de dades. Segons Internet.com, la quantitat de dades emmagatzemades afegida el 2006 va ser de 161 exabytes. Tan sols 4 anys més tard el 2010, la quantitat de dades emmagatzemades serà de gairebé 1.000 ExaBytes, que suposa un augment superior al 500%. En altres paraules, hi ha moltes dades que s'estan emmagatzemant al món i que simplement seguirà creixent.

Dades interconnectades: les dades segueixen estant més connectades. La creació de la web fomentada en hipervincles, els blocs tenen pingbacks i tots els principals sistemes de xarxes socials tenen etiquetes que uneixen les coses. Els sistemes principals estan construïts per estar interconnectats.

Estructura de dades complexes: NoSQL pot manejar fàcilment estructures d'informació jerarquitzades. Per aconseguir el mateix en SQL, necessitareu múltiples taules relacionals amb tot tipus de claus.

A més, hi ha una relació entre el rendiment i la complexitat de les dades. El rendiment pot degradar-se en un RDBMS tradicional ja que emmagatzemem les quantitats massives de dades requerides en les aplicacions de xarxes socials i la web semàntica.

Què és NoSQL?

Suposo que una forma de definir NoSQL és considerar què no.

No és SQL i no és relacional. Com el seu nom indica, no és un reemplaçament d'un RDBMS, sinó que el complementa. NoSQL està dissenyat per a magatzems de dades distribuïdes per a necessitats de dades a gran escala. Penseu en Facebook amb els seus 500 milions d'usuaris o Twitter, que acumula Terabits de dades cada dia.

En una base de dades NoSQL, no hi ha cap esquema fix i no s'uneix. Un RDBMS "escalfa" mitjançant un maquinari més ràpid i ràpid i afegint memòria. NoSQL, d'altra banda, pot aprofitar la "ampliació". L'ampliació es refereix a la difusió de la càrrega en molts sistemes de productes bàsics. Aquest és el component de NoSQL que fa que sigui una solució barata per a grans conjunts de dades.

NoSQL Categories

El món NoSQL actual encaixa en 4 categories bàsiques.

  1. Valors clau Les botigues es basen principalment en el document Dynamo Paper d'Amazon que es va escriure el 2007. La idea principal és l'existència d'una taula hash on hi ha una clau única i un punter a un determinat element de dades. Aquestes assignacions solen estar acompanyades de mecanismes de memòria cau per maximitzar el rendiment.
    Les botigues Familiars de columnes es van crear per emmagatzemar i processar grans quantitats de dades distribuïdes en moltes màquines. Encara hi ha claus però apunten a diverses columnes. En el cas de BigTable (model de NoSQL de la família de columnes de Google), les files s'identifiquen mitjançant una clau de fila amb les dades ordenades i emmagatzemades per aquesta clau. Les columnes estan ordenades per la família de columnes.
  1. La base de dades del document s es va inspirar en Lotus Notes i és similar a les botigues de valors clau. El model és, bàsicament, documents versionats que són col·leccions d'altres col·leccions clau-valor. Els documents semiestructurats s'emmagatzemen en formats com JSON.
  2. La base de dades de gràfics es construeix amb nodes, relacions entre notes i les propietats dels nodes. En lloc de les taules de files i columnes i l'estructura rígida de SQL, s'utilitza un model gràfic flexible que pot escalar entre moltes màquines.

Principals jugadors NoSQL

Els principals actors de NoSQL han sorgit principalment per les organitzacions que els han adoptat. Algunes de les tecnologies NoSQL més grans inclouen:

Consultar NoSQL

La qüestió de com consultar una base de dades NoSQL és la que més interessa la majoria dels desenvolupadors. Després de tot, les dades emmagatzemades en una base de dades enorme no fan res bo si no podeu recuperar-la i mostrar-la als usuaris finals o als serveis web. Les bases de dades NoSQL no proporcionen un llenguatge de consulta declarativa d'alt nivell com SQL. Al contrari, consultar aquestes bases de dades és específica del model de dades.

Moltes de les plataformes NoSQL permeten interfícies RESTful a les dades. Altres API de consulta de la oferta. Hi ha un parell d'eines de consulta que s'han desenvolupat que intenten consultar diverses bases de dades NoSQL. Aquestes eines solen funcionar en una única categoria NoSQL. Un exemple és SPARQL. SPARQL és una especificació de consulta declarativa dissenyada per a bases de dades de gràfics. Aquí teniu un exemple d'una consulta SPARQL que recupera l'URL d'un blogger en particular (cortesia d'IBM):

PREFIX foaf:
SELECCIONEU url
FROM
WHERE {
Foaf contribuïdor: nom "Jon Foobar".
Foaf contributor: weblog? url.
}

Futur de NoSQL

Les organitzacions que tenen necessitats d'emmagatzematge massiu de dades estan mirant seriosament a NoSQL. Pel que sembla, el concepte no està obtenint tanta tracció en organitzacions més petites. En una enquesta realitzada per la Setmana de la Informació, el 44% dels professionals informàtics empresarials no han escoltat parlar de NoSQL. A més, només l'1% dels enquestats va informar que NoSQL forma part de la seva direcció estratègica. Clarament, NoSQL té el seu lloc en el nostre món connectat, però haurà de seguir evolucionant per aconseguir l'atractiu massiu que molts pensen que podria tenir.