Sin categoría

Estructurar lo no estructurado

Es el nombre de una charla que daré en las próximas semanas. Básicamente trata de la modelización de datos no estructurados o semiestructurados.

Si está interesado, lo impartiré en las siguientes conferencias:

 

Si tienes algo de tiempo, esto es básicamente un resumen de la introducción a la charla:

Las promesas de agilidad y datos sin esquema están siempre a la vuelta de la esquina para las bases de datos NoSQL. Y el caso es que todo esto es cierto. Puedes almacenar datos no estructurados fácilmente. Pero tendrás que aplicar una estructura cuando vayas a utilizar realmente los datos. Hay varias maneras de aplicar esa estructura. Y hoy vamos a hablar de ello.

Pero primero entremos en el tema de estructurados VS no estructurados. Los datos estructurados, tal como los conocemos en las bases de datos, se refieren tradicionalmente a columnas. Una columna tiene un nombre y un tipo y se agrupa por tablas. Cuando intentas insertar una nueva línea en esa tabla, todos los elementos de esta línea tienen que corresponder al nombre y tipo de cada columna. No puedes añadir una nueva sobre la marcha ni cambiar el tipo dinámicamente.

Bueno, probablemente se podría almacenar todo como cadenas, pero es un poco contra el propósito de utilizar columnas de base de datos (también vale la pena mencionar la mayoría de la columna de la tienda están llegando con un tipo Json). Así que es como tener un esquema. Y si lo que estás tratando de almacenar no se ajusta a ese esquema obtendrás un error.

¿Qué es Schemaless?

En cambio, las estructuras sin esquema permiten almacenar cualquier tipo de información. Si piensas en programación y estructuras de datos como mapas o diccionarios, son estructuras sin esquema. Si piensas en un almacén clave/valor, el valor puede ser cualquier cosa. Puede ser una imagen codificada en binario, un objeto serializado, JSON, XML, un número, etc.

Mientras que en un archivo codificado en binario puede no haber ninguna estructura incrustada, sí la hay en JSON y XML. Solemos referirnos a ellos como datos semiestructurados. Ambos te ofrecen campos con nombre, tipados y flexibilidad para añadir cualquier campo en cualquier momento. Es como un esquema implícito. Y ambos tienen especificaciones de esquema reales como XSD o JSON-SCHEMA.

Por eso, la mayoría de las veces, cuando se habla de bases de datos sin esquema, se hace referencia a datos semiestructurados.

Estructurado, no estructurado o semiestructurado, ya lo tengo, ¿y ahora qué?

Y, por supuesto, como estás almacenando datos, querrás utilizarlos en algún momento. Así que eso significa aproximadamente tres cosas:

  • Tienes que escribir esos datos
  • Tienes que leer esos datos
  • Debe asignar la respuesta del almacén de datos a una estructura o a un objeto que pueda utilizar su aplicación.

 

Estos tres puntos, unidos a la arquitectura de la tienda que está utilizando, plantearán más preguntas:

  • Qué puede utilizar para recuperar datos (¿obtención de claves simples? ¿vistas materializadas? ¿lenguaje de consulta? )
  • ¿Sus datos están distribuidos, replicados y son coherentes?

 

Todos estos puntos influirán en cómo estructures tus datos. Y para ello puedes añadir todas las particularidades del diseño de tu dominio.

Intentaré responder a estas preguntas en la medida de lo posible y tomando Couchbase como ejemplo. Couchbase es un almacén distribuido de Claves/Valores y una base de datos de Documentos y es un buen candidato para esto.

Únase a mí para aprender más sobre el modelado de datos.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Laurent Doguin

Laurent es un metalero empollón que vive en París. Principalmente escribe código en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programación reactiva y otras cosas de moda. También fue Developer Advocate de Clever Cloud y Nuxeo, donde dedicó su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.