Los datos semiestructurados [1] son una forma de datos estructurados que no obedecen a la estructura tabular de los modelos de datos asociados con bases de datos relacionales u otras formas de tablas de datos , pero que, no obstante, contienen etiquetas u otros marcadores para separar elementos semánticos y aplicar jerarquías de registros y campos dentro de los datos. Por lo tanto, también se los conoce como estructura autodescriptiva .
En datos semiestructurados, las entidades que pertenecen a la misma clase pueden tener atributos diferentes aunque estén agrupadas, y el orden de los atributos no es importante.
Los datos semiestructurados son cada vez más comunes desde la llegada de Internet , cuando los documentos de texto completo y las bases de datos ya no son las únicas formas de datos y las diferentes aplicaciones necesitan un medio para intercambiar información . En las bases de datos orientadas a objetos , a menudo se encuentran datos semiestructurados.
XML , [2] otros lenguajes de marcado, el correo electrónico y el EDI son formas de datos semiestructurados. El OEM (modelo de intercambio de objetos) [3] se creó antes que XML como un medio para autodescribir una estructura de datos. XML se ha popularizado gracias a los servicios web que se desarrollan utilizando principios SOAP .
Algunos tipos de datos descritos aquí como "semiestructurados", especialmente XML, sufren la impresión de que son incapaces de un rigor estructural al mismo nivel funcional que las tablas y filas relacionales. De hecho, la visión de XML como inherentemente semiestructurado (anteriormente, se lo denominaba "no estructurado") ha obstaculizado su uso para una gama cada vez mayor de aplicaciones centradas en los datos. Incluso los documentos, considerados normalmente como el epítome de la semiestructura, pueden diseñarse con prácticamente el mismo rigor que el esquema de base de datos , aplicarse mediante el esquema XML y procesarse mediante programas de software comerciales y personalizados sin reducir su facilidad de uso para los lectores humanos.
En vista de este hecho, se podría decir que XML tiene una "estructura flexible" capaz de un flujo y una jerarquía centrados en el ser humano, así como una estructura de elementos y una tipificación de datos altamente rigurosas.
Sin embargo, el concepto de XML como "legible para humanos" sólo puede llevarse hasta cierto punto. Algunas implementaciones/dialectos de XML, como la representación XML del contenido de un documento de Microsoft Word, tal como se implementó en Office 2007 y versiones posteriores, utilizan docenas o incluso cientos de diferentes tipos de etiquetas que reflejan un dominio de problemas particular (en el caso de Word, formato a nivel de caracteres, párrafos y documentos, definiciones de estilos, inclusión de citas, etc.) que están anidadas unas dentro de otras de maneras complejas. Comprender incluso una parte de un documento XML de este tipo leyéndolo, y mucho menos detectar errores en su estructura, es imposible sin un conocimiento previo muy profundo de la implementación XML específica, junto con la ayuda de un software que comprenda el esquema XML que se ha empleado. Ese texto no es "comprensible para humanos", como tampoco lo sería un libro escrito en suajili (que utiliza el alfabeto latino) para un estadounidense o un europeo occidental que no conozca una palabra de ese idioma: las etiquetas son símbolos que no tienen significado para una persona que no esté familiarizada con el dominio.
JSON o JavaScript Object Notation es un formato estándar abierto que utiliza texto legible para transmitir objetos de datos. JSON se ha popularizado gracias a los servicios web desarrollados utilizando principios REST .
Las bases de datos como MongoDB y Couchbase almacenan datos de forma nativa en formato JSON, aprovechando las ventajas de la arquitectura de datos semiestructurada.
El modelo semiestructurado es un modelo de base de datos donde no hay separación entre los datos y el esquema , y la cantidad de estructura utilizada depende del propósito.
Las ventajas de este modelo son las siguientes:
La principal desventaja que se presenta al utilizar un modelo de base de datos semiestructurada es que las consultas no se pueden realizar de manera tan eficiente como en una estructura más restringida, como en el modelo relacional . Normalmente, los registros de una base de datos semiestructurada se almacenan con identificadores únicos a los que se hace referencia con punteros a su ubicación en el disco. Esto hace que las consultas basadas en rutas o de navegación sean bastante eficientes, pero para realizar búsquedas en muchos registros (como es típico en SQL ), no es tan eficiente porque tiene que buscar en el disco siguiendo punteros.
El modelo de intercambio de objetos (OEM) es un estándar para expresar datos semiestructurados, otra forma es XML .