Diferencias Entre una Base de Datos XML y una Relacional


Cuando se trata de diseñar bases de datos, es habitual tener que decidir si los datos que se van tratar se adaptan mejor al modelo XML (NoSQL) o al modelo relacional (SQL). En este artículo analizamos y explicamos las principales diferencias entre estos dos modelos de bases de datos para que puedas comprender y decidir que tipo de base de datos es más adecuado en cada caso.

base de datos xml y relacional

Diferencias entre los datos XML y los datos relacionales

La principal diferencia es que las bases de datos XML son de naturaleza jerárquica. En cambio una base de datos relacional se representan en un modelo de relaciones lógicas.

Las bases de datos XML disponen de información sobre la relación de los elementos de datos entre sí de forma jerárquica. En cambio, con el modelo relacional, los únicos tipos de relaciones que pueden definirse son las relaciones de tabla matriz y de tabla dependiente.

Por otra parte, en una base de datos NoSQL, los datos se describen a sí mismos. Esto no ocurre en las bases de datos de tipo SQL.


Una base de datos XML no sólo contiene los datos, sino que también dispone de etiquetas. Es decir, marcajes que explica que es cada conjunto de datos. En este sentido, un mismo documento puede tener diferentes tipos de datos. Al contrario, con el modelo relacional, el contenido de los datos se define por su definición de columna. Todos los datos de una columnason de las misma tipología.

Las bases de datos XML, los datos tienen un orden inherente. Las bases de datos los datos relacionales no. En el caso de un documento XML, se supone que el orden en que se especifican los elementos de datos es el orden de los datos del documento. En ocasiones no hay otra forma de especificar el orden dentro del documento. En el caso de los datos relacionales, el orden de sus filas no está garantizado a menos que se indique una cláusula de orden en una o más columnas.

Factores que influyen en la elección del modelo de base de datos

Un aspecto muy importante es tener en cuenta el tipo de datos que se almacena. Esto puede ayudar a determinar cómo los almacena.

Por ejemplo, si los datos son naturalmente jerárquicos y autodescriptivos, puede almacenarlos como datos XML. Sin embargo, hay otros factores que pueden influir en su decisión sobre qué modelo utilizar:

Necesidad máxima flexibilidad

Las tablas relacionales siguen un modelo bastante rígido. Por ejemplo, normalizar una tabla en muchas o desnaturalizar muchas tablas en una sola puede ser muy difícil. Si el diseño de los datos cambia a menudo, representarlos como datos XML es una mejor opción. Los esquemas XML pueden evolucionar con el tiempo, por ejemplo.

Necesidad de máximo rendimiento para la recuperación de datos

Algunos gastos están asociados a la serialización e interpretación de los datos XML. Si el rendimiento es más problemático que la flexibilidad, los datos relacionales podrían ser la mejor opción.

Cuando los datos se procesan más tarde como datos relacionales

Si el procesamiento posterior de los datos depende de que éstos se almacenen en una base de datos relacional, podría ser apropiado almacenar partes de los datos como relacionales, utilizando la descomposición. Un ejemplo de esta situación es cuando se aplica el procesamiento analítico en línea (OLAP) a los datos de un almacén de datos.

Además, si se requiere otro tipo de procesamiento en el documento XML en su conjunto, el almacenamiento de algunos de los datos como relacionales, así como el almacenamiento de todo el documento XML, podría ser un enfoque adecuado en este caso.

Cuando los componentes de los datos tienen un significado fuera de una jerarquía


Los datos pueden ser inherentemente jerárquicos por naturaleza, pero los componentes del niño no necesitan que los padres les den valor. Por ejemplo, una orden de compra podría contener números de parte. Los pedidos de compra con los números de parte podrían representarse mejor como documentos XML. Sin embargo, cada número de pieza tiene asociada una descripción de la pieza.

Tal vez sea mejor incluir las descripciones de las piezas en una tabla relacional, porque la relación entre los números de pieza y las descripciones de las piezas es lógicamente independiente de los pedidos de compra en los que se utilizan los números de pieza.

Cuando los atributos de los datos se aplican a todos los datos, o sólo a un pequeño subconjunto de los mismo

Algunos conjuntos de datos tienen un gran número de atributos posibles, pero sólo un pequeño número de esos atributos se aplican a un valor de datos determinado.

Por ejemplo, en un catálogo de venta al por menor, hay muchos atributos de datos posibles, como el tamaño, el color, el peso, el material, el estilo, el tejido, los requisitos de potencia o los requisitos de combustible.

Para cualquier artículo del catálogo, sólo un subconjunto de esos atributos es relevante: los requisitos de potencia son significativos para una sierra de mesa, pero no para un abrigo. Este tipo de datos es difícil de representar y buscar con un modelo relacional, pero relativamente fácil de representar y buscar con un modelo XML.

Alta complejidad de los datos y su volumen

Muchas situaciones implican información altamente estructurada en cantidades muy pequeñas. La representación de esos datos con un modelo relacional puede implicar complejos esquemas estelares en los que cada tabla de dimensiones se une a muchas más tablas de dimensiones, y la mayoría de las tablas tienen sólo unas pocas filas. Una mejor manera de representar esos datos es utilizar una sola tabla con una columna XML y crear vistas en esa tabla, en la que cada vista representa una dimensión.

Necesidad de integridad referencial

Las columnas XML no pueden definirse como parte de las restricciones referenciales. Por lo tanto, si los valores en los documentos XML

Deja un comentario