El modelado de anclas es una técnica de modelado de bases de datos ágiles adecuada para información que cambia con el tiempo tanto en estructura como en contenido. Proporciona una notación gráfica utilizada para el modelado conceptual similar a la del modelado de entidad-relación , con extensiones para trabajar con datos temporales . La técnica de modelado implica cuatro construcciones de modelado: el ancla, el atributo, el lazo y el nudo, cada uno de los cuales captura diferentes aspectos del dominio que se está modelando. [1] Los modelos resultantes se pueden traducir a diseños de bases de datos físicas utilizando reglas formalizadas. Cuando se realiza dicha traducción, las tablas en la base de datos relacional estarán en su mayoría en la sexta forma normal .
A diferencia del esquema en estrella ( modelado dimensional ) y el modelo relacional clásico (3NF), el modelado de bóvedas de datos y de anclaje son adecuados para capturar los cambios que ocurren cuando se modifica o se agrega un sistema de origen, pero se consideran técnicas avanzadas que requieren arquitectos de datos experimentados . [2] Tanto las bóvedas de datos como los modelos de anclaje son modelos basados en entidades , [3] pero los modelos de anclaje tienen un enfoque más normalizado. [ cita requerida ]
El modelado de anclajes se creó para aprovechar los beneficios de un alto grado de normalización y evitar los inconvenientes que tienen las formas normales superiores en lo que respecta a la legibilidad humana. Se obtienen ventajas como la capacidad de evolucionar el modelo de forma no destructiva, evitar valores nulos y mantener la información libre de redundancias. Los problemas de rendimiento debidos a uniones adicionales se evitan en gran medida gracias a una característica de los motores de bases de datos modernos [ ¿cuándo? ] llamada eliminación de uniones o eliminación de tablas. Para gestionar los cambios en el contenido de la información, el modelado de anclajes emula aspectos de una base de datos temporal en el esquema de base de datos relacional resultante .
Las primeras instalaciones que utilizaron modelado de anclajes se realizaron en 2004 en Suecia, cuando se construyó un almacén de datos para una compañía de seguros utilizando esta técnica.
En 2007, la técnica se estaba utilizando en algunos almacenes de datos y en un sistema de procesamiento de transacciones en línea (OLTP), y fue presentada internacionalmente por Lars Rönnbäck en la conferencia Transforming Data with Intelligence (TDWI) de 2007 en Ámsterdam . [4] Esto despertó suficiente interés como para que la técnica justificara una descripción más formal. Desde entonces, se están realizando investigaciones sobre el modelado de anclaje en colaboración entre los creadores Olle Regardt y Lars Rönnbäck y un equipo del Departamento de Ciencias Informáticas y de Sistemas de la Universidad de Estocolmo .
El primer artículo, en el que se formaliza el modelado de anclajes, se presentó en 2008 en la 28ª Conferencia Internacional sobre Modelado Conceptual y ganó el premio al mejor artículo. [5]
Un sitio web comercial ofrece material sobre modelado de anclajes que se puede utilizar de forma gratuita bajo una licencia Creative Commons . También está disponible una herramienta de modelado en línea, que se puede utilizar de forma gratuita y es de código abierto . [6]
El modelado de anclajes tiene cuatro conceptos básicos: anclajes, atributos, vínculos y nudos. Los anclajes se utilizan para modelar entidades y eventos, los atributos se utilizan para modelar propiedades de los anclajes, los vínculos modelan las relaciones entre anclajes y los nudos se utilizan para modelar propiedades compartidas, como estados. Los atributos y los vínculos se pueden registrar en historiales cuando es necesario conservar los cambios en la información que modelan.
A continuación, se puede ver un modelo de ejemplo que muestra los diferentes símbolos gráficos para todos los conceptos. Los símbolos se parecen a los utilizados en el modelado de relación entre entidades , con un par de extensiones. Un contorno doble en un atributo o vínculo indica que se mantiene un historial de cambios. El símbolo de nudo (un cuadrado delineado con bordes redondeados) también está disponible, pero los nudos no se pueden historizar. El símbolo de ancla es un cuadrado sólido.
El modelado de anclajes maneja dos tipos de evolución de la información, que son los cambios estructurales y los cambios de contenido. Los cambios en la estructura de la información se representan a través de extensiones. El alto grado de normalización permite agregar de manera no destructiva los conceptos de modelado necesarios para capturar un cambio , de tal manera que cada esquema anterior siempre permanece como un subconjunto del esquema actual. Dado que el esquema existente no se toca, esto brinda el beneficio de poder evolucionar la base de datos de una manera altamente iterativa y sin causar tiempo de inactividad.
Los cambios en el contenido de la información se realizan emulando características similares de una base de datos temporal en una base de datos relacional . En el modelado de anclaje, las piezas de información se pueden vincular a puntos en el tiempo o a intervalos de tiempo (tanto abiertos como cerrados). Los puntos de tiempo en los que ocurren los eventos se modelan utilizando atributos, por ejemplo, las fechas de nacimiento de las personas o el momento de una compra. Los intervalos de tiempo en los que un valor es válido se capturan a través de la historización de atributos y vínculos, por ejemplo, los cambios de color de pelo de una persona o el período de tiempo durante el cual una persona estuvo casada. En una base de datos relacional, esto se logra agregando una sola columna , con un tipo de datos lo suficientemente granular para capturar la velocidad de los cambios, a la tabla correspondiente al atributo o vínculo historizado. Esto agrega una ligera complejidad ya que se debe examinar más de una fila en la tabla para saber si un intervalo está cerrado o no.
Los puntos o intervalos de tiempo que no están directamente relacionados con el dominio que se está modelando, como la información de puntos de tiempo ingresada a la base de datos, se manejan mediante el uso de metadatos en el modelado de anclajes, en lugar de cualquiera de las construcciones mencionadas anteriormente. Si es necesario conservar información sobre dichos cambios en la base de datos, se puede utilizar el modelado de anclajes bitemporal, donde además de las actualizaciones, también las instrucciones de eliminación se vuelven no destructivas.
En el modelado de anclajes existe una correspondencia uno a uno entre los símbolos utilizados en el modelo conceptual y las tablas de la base de datos relacional. Cada ancla, atributo, vínculo y nudo tiene una tabla correspondiente en la base de datos con una estructura definida de forma inequívoca. De este modo, un modelo conceptual se puede traducir a un esquema de base de datos relacional mediante reglas automatizadas sencillas, y viceversa. Esto es diferente de muchas otras técnicas de modelado en las que existen pasos de traducción complejos y a veces subjetivos entre los niveles conceptual, lógico y físico.
Las tablas de anclaje contienen una única columna en la que se almacenan las identidades. Se supone que una identidad es la única propiedad de una entidad que siempre está presente y es inmutable. Como las identidades rara vez están disponibles en el dominio que se está modelando, se generan técnicamente, por ejemplo, a partir de una secuencia de números creciente.
Un ejemplo de ancla para las identidades de los sobrinos del Pato Donald es un conjunto de 1-tuplas:{⟨#42⟩, ⟨#43⟩, ⟨#44⟩}
Los nudos pueden considerarse como la combinación de un ancla y un único atributo. Las tablas de nudos contienen dos columnas, una para una identidad y otra para un valor. Debido a que las identidades y los valores se almacenan juntos, los nudos no se pueden historizar. Su utilidad radica en que pueden reducir los requisitos de almacenamiento y mejorar el rendimiento, ya que las tablas que hacen referencia a los nudos pueden almacenar un valor corto en lugar de una cadena larga.
Un ejemplo de un nudo para géneros es un conjunto de 2-tuplas:{⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}
Las tablas de atributos estáticos contienen dos columnas, una para la identidad de la entidad a la que pertenece el valor y otra para el valor real de la propiedad. Las tablas de atributos historizadas tienen una columna adicional para almacenar el punto de inicio de un intervalo de tiempo. En una tabla de atributos anudada, la columna de valor es una identidad que hace referencia a una tabla de anudados.
Un ejemplo de un atributo estático para sus nombres es un conjunto de 2-tuplas:{⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}
Un ejemplo de un atributo estático anudado para sus géneros es un conjunto de 2-tuplas:{⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}
Un ejemplo de un atributo historizado para los colores (cambiantes) de sus atuendos es un conjunto de 3-tuplas:{⟨#44, 'Orange', 1938-04-15⟩, ⟨#44, 'Green', 1939-04-28⟩, ⟨#44, 'Blue', 1940-12-13⟩}
Las tablas de vínculos estáticos relacionan dos o más anclas entre sí y contienen dos o más columnas para almacenar las identidades. Las tablas de vínculos historizadas tienen una columna adicional para almacenar el punto de inicio de un intervalo de tiempo. Las tablas de vínculos anudados tienen una columna adicional para cada nudo al que se hace referencia.
Un ejemplo de un vínculo estático para la relación entre hermanos es un conjunto de 2-tuplas:{⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩, ⟨#44, #42⟩, ⟨#44, #43⟩}
Las tablas resultantes estarán todas en sexta forma normal, excepto los empates en los que no todas las columnas son parte de la clave principal.
En la década de 2000, se introdujeron varios patrones de modelado de datos de almacenamiento de datos con el objetivo de lograr almacenes de datos ágiles , incluidas formas de modelado de conjunto como el modelado de anclaje, el modelado de bóveda de datos, el modelado de punto focal y otros. [7]
En 2013, en la conferencia de modelado de datos BI Podium en los Países Bajos, Lars Rönnbäck presentó una comparación entre el modelado de anclaje y el modelado de bóveda de datos. [8]