Bases de datos documentales (colecciones de documentos JSON, XML...)

Las bases de datos documentales constituyen una alternativa a las bases de datos relacionales. Para comprender lo que son necesitamos asimilar los dos tipos de documentos sobre los que pueden estar basadas: JSON y XML.

Algunas características notables de las bases de datos documentales:

Bases de datos documentales JSON

JSON es el formato o forma de escribir objetos en el lenguaje de programación JavaScript.

Sus características se derivan de la sencillez del formato JSON y de sus limitaciones.

El formato JSON

El formato JSON proviene de la representación de objetos en lenguaje de programación JavaScript. Igual que JavaScript, su meta y gran virtud es la sencillez.

Muy someramente, un documento JSON:

  • se escribe entre llaves ({...})
  • consta de claves y valores separadas por dos puntos ("clave": valor)
  • los tipos de valores sencillos son cadenas de caracteres ("abcd..."), números, valores de verdad (true o false) y null
  • un valor también puede consistir en una lista, por ejemplo: "hijos": ["maria", "tomás"]. (Las listas pueden contener cualquier clase de valor, incluídas sublistas y subobjetos)
  • un valor también puede consistir en un objeto o subobjeto, por ejemplo: "nacimiento": {"año": 1999, "mes": 12, "día": 16}

Un ejemplo:

{
  "term": "Euskal Herria",
  "lang": "eu",
  "translation": [{"lang": "es", "word": "Pueblo Vasco"},
                  {"lang": "en", "word": "Basque People"}
                 ],
  "field": "anthropology"
}

Observamos cómo los pares clave-valor están separados por comas y que el campo translation está formado por una lista con dos elementos, que a su vez son objetos con campos lang (lengua o idioma) y word (palabra).

Gestores de JSON

Uno puede empezar a escribir notas en JSON sin ningún inconveniente ni desventaja. Muchos editores de texto resaltan la sintaxis de modo que se señalan los errores de formato (comas que faltan o que sobran, por ejemplo) que impedirían que la nota se pudiese procesar debidamente.

En lugar de tablas las bases de datos JSON constan de listas de objetos JSON: [{obj1}, {obj2}, ...]. Cada lista puede contener objetos de un mismo tipo o de varios, a diferencia de las tablas relacionales, que exigen una homogeneidad casi absoluta.

Habría por tanto cuatro modos de manejar documentos JSON:

  • un editor de texto como kate, con resalte de sintaxis (syntax highlighting)
  • un procesador o transformador de objetos y listas de objetos JSON, entre los que destaca la herramienta jq
  • un gestor de bases de datos JSON, de los que destacan los gratuitos MongoDB y CouchDB
  • el lenguaje de programación JavaScript, dado que JSON es un estándard suyo.

Bases de datos documentales XML*

...

El formato XML

Ya he dicho que HTML es un ejemplo de XML. El formato XML sirve para escribir desde una breve nota hasta un tratado o un manual de instrucciones.

Comparación entre JSON y XML