Saltar al contenido principal

Bases de datos relacionales

Las bases de datos relacionales se basan en las relaciones (tablas bidimensionales) como único medio para representar los datos del mundo real. Las relaciones están fuertemente asociadas al lenguaje estándar SQL y se trata de un tipo de base de datos muy popular.

Características

Las bases de datos relacionales suponen una posibilidad para el almacenamiento de datos XML. Sin embargo, no están bien preparadas para almacenar estructuras de tipo jerárquico como son los documentos XML. Algunas de las causas son:

  • Las bases de datos relacionales tienen una estructura regular frente al carácter heterogéneo de los documentos XML.
  • Los documentos XML suelen contener muchos niveles de anidamiento mientras que los datos relacionales son planos.
  • Los documentos XML tienen un orden intrínseco mientras que los datos relacionales son no ordenados.
  • Los datos relacionales son generalmente densos (cada columna tiene un valor), mientras que los datos XML son dispersos, es decir, pueden representar la carencia de información mediante la ausencia del elemento.

Algunas de las razones para usar los tipos de bases de datos relacionales y los productos de bases de datos existentes para almacenar XML, aún cuando no sea de forma nativa son:

  • Las bases de datos relacionales y orientadas a objetos son bien conocidas, mientras que las bases de datos XML nativas son nuevas.
  • Como resultado de la familiaridad con las bases de datos relacionales y orientadas a objetos, los usuarios se inclinan a ellas especialmente por el rendimiento.

Bases de datos relacionales y XML

Se han creado complejas teorías y patrones para encajar objetos o estructuras jerarquizadas en bases de datos relacionales. Existen numerosos middlewares encargados de la transferencia de información entre estructuras XML y bases de datos relacionales.

Middleware

Un middleware es un software que permite realizar las tranformaciones necesarias en un conjunto de datos para que dos tecnologías diferentes puedan compartir información entre sí. Sin un middleware, esas dos tecnologías tendrían problemas de comunicación ya que la información no sería traducida para que esos dos sistemas se puedan entender.

El proceso de traducción puede ser descompuesto en los pasos mostrados a continuación.

Crear el XML Schema base

El XML Schema se crea siguiendo las siguientes directrices:

  • Un elemento para cada tabla.
  • Un atributo para cada columna no clave.
  • Las columnas que no permiten valores nulos pueden ser marcadas como requeridas.
  • Las columnas que permiten valores nulos pueden ser marcadas como opcionales.
  • Las columnas pueden ser también anidadas como elementos, pero pueden surgir problemas cuando el mismo nombre de columna es usado en más de una tabla. Por ello, lo más simple es transformar las columnas como atributos XML, donde las colisiones de nombre en el esquema XML no son un problema.

Gestionar las claves primarias

El segundo paso es crear las claves primarias (primary keys) en el XML Schema. Una solución podría ser agregar un atributo para la columna clave primaria, con un ID agregado al nombre de la columna. Este atributo podría necesitar ser definido en el XML Schema como de tipo ID.

Pueden surgir problemas de colisión al crear claves primarias en el esquema XML, ya que a diferencia de las bases de datos relacionales, donde las claves primarias necesitan ser únicas sólo dentro de una tabla, un atributo ID dentro de un documento XML debe ser único a través de todo el documento. Para resolverlo, se puede agregar el nombre del elemento (nombre de la tabla), al valor de la clave primaria (valor del atributo). Esto asegura que el valor es único a través del documento XML.

Establecer las relaciones

Las relaciones entre tablas se pueden lograr mediante el anidamiento de elementos bajo el elemento padre.

Un ID de XML Schema puede ser usado para apuntar a una estructura XML correspondiente conteniendo un IDREF.

Pueden existir muchas variaciones de XML Schemas para representar la misma base de datos relacional.