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:
- son más flexibles: no es necesario que un experimentado administrador las diseñe concienzudamente ante de que los usuarios empiecen a añadir datos
- a consecuencia de esta flexibilidad, una base de datos documental puede diseñarse informalmente según uno va ampliándola, por ejemplo imponiéndole esquemas y estableciendo directrices (sobre nombres de campos, aridad etc.)
- se inventan después de las bases de datos relacionales
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
ofalse
) ynull
- 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
- JSON no debería utilizarse para escribir textos muy extensos o redactados en forma de párrafos, capítulos, secciones sino un dialecto de XML, como DocBook
- JSON es completamente fácilmente legible, mientras que XML no tanto
- En teoría, uno escribe un documento XML siguiendo un esquema (schema) o estructura predeterminada, mientras que JSON se presta a una escritura más libre que podríamos formalizar después.
- JSON, al ser en esencia el formato de objetos JavaScript, el lenguaje de programación más utilizado de todos, resulta fácilmente manipulable por él, mientras que XML require herramientas específicas.