El modelado de anclaje es una tecnología de modelado de almacenamiento de datos adecuada para la información que cambia con el tiempo tanto en estructura como en contenido. Proporciona un gráfico[ aclarar ] utilizado para el modelado conceptual, similar al modelado de entidades y relaciones , con extensiones para trabajar con datos temporales. La técnica de modelado utiliza cuatro modelos de modelado: ancla, atributo, enlace y nodo, cada uno de los cuales refleja diferentes aspectos del dominio que se está modelando. Los modelos resultantes se pueden traducir a diseños de bases de datos físicas usando reglas formalizadas. Cuando se realiza dicha traducción, las tablas en una base de datos relacional estarán en su mayoría en sexta forma normal .
El modelado de anclaje se creó para aprovechar el alto grado de normalización de la base de datos y evitar sus desventajas. Hay beneficios como la capacidad de no destruir el modelo, evitar valores vacíos (es decir, nulos ) y no permitir información redundante. Los problemas de rendimiento debidos a uniones adicionales se eliminan en gran medida mediante una característica de los motores de bases de datos modernos llamada " eliminación de tablas ".
Los primeros almacenes de datos sobre modelos ancla se construyeron en Suecia , el primero de ellos (2004) fue para una compañía de seguros. En 2007, la técnica se utilizó en varios almacenes de datos y un sistema OLTP , y fue presentada internacionalmente por Lars Rönbeck en la conferencia TDWI (Data Warehouse Institute) en Amsterdam [1] . Esto despertó un interés en la técnica para obtener una descripción más formal. Desde entonces, la investigación relacionada con el modelado de anclas se ha llevado a cabo en colaboración entre los creadores, Ulle Regardt y Lars Rönbeck, así como con la participación de especialistas del Departamento de Informática y Ciencias de Sistemas de la Universidad de Estocolmo . El primer artículo [2] , que describía formalmente la tecnología, se presentó en la 28ª Conferencia Internacional sobre Modelado Conceptual [3] y recibió el premio al mejor artículo.
El material de modelado de anclas está disponible bajo una licencia Creative Commons . También está disponible una herramienta de simulación en línea, que se puede utilizar de forma gratuita y de código abierto.
El modelado de anclas tiene cuatro conceptos básicos de modelado: anclas, atributos, enlaces y nodos. Las anclas se usan para modelar entidades y eventos, los atributos se usan para modelar propiedades de anclas, los enlaces modelan relaciones entre anclas, los nodos se usan para modelar propiedades generales como estados. Los atributos y las relaciones se pueden interpretar cuando es necesario guardar los cambios en la información que modelan.
A continuación se muestra un modelo ejemplar que muestra los diversos símbolos gráficos para los cuatro conceptos del modelo. Los símbolos se asemejan a los utilizados en el modelo de modelado de entidades y relaciones , con varias extensiones.[ especificar ] . Un contorno doble en un atributo o ancla indica que se mantiene un historial de cambios y también está disponible un símbolo de nodo (cuadrado en un círculo con bordes redondeados).
El modelado de anclaje gobierna dos tipos de evolución de la información.[ aclarar ] , cambios estructurales y cambios de contenido. Los cambios en la estructura de la información se representan mediante extensiones. Un alto grado de normalización de datos le permite agregar de forma no destructiva los conceptos de modelado necesarios para confirmar los cambios, de modo que cada esquema de base de datos anterior siempre permanezca como un subconjunto del esquema actual . Dado que el esquema existente no se modifica, esto tiene la ventaja de que puede evolucionar hacia la base de datos de una manera muy iterativa y no causar ningún tiempo de inactividad.
Los cambios en el contenido de la información se realizan emulando funciones similares de una base de datos temporal en una base de datos relacional . En el modelado anclado, las piezas de información se pueden vincular a puntos en el tiempo o a períodos de tiempo (tanto abiertos como cerrados). Los momentos en que ocurren los eventos se modelan utilizando atributos como las fechas de nacimiento de las personas o los tiempos de compra. Los intervalos de tiempo en los que el valor es válido se fijan a través de la historización[ término desconocido ] atributos y relaciones, como cambios en el color del cabello de una persona o el tiempo que una persona ha estado casada. En una base de datos relacional, esto se logra agregando una sola columna de tipo de datos , lo suficientemente granular para capturar la tasa de cambio en la tabla, correspondiente al atributo o relación histórica. Esto agrega un poco de complejidad ya que se debe examinar más de una fila en la tabla para ver si el intervalo está cerrado o no.
Los puntos o intervalos de tiempo no asociados directamente con el dominio modelado, como la información de puntos de tiempo ingresada en una base de datos, se manejan mediante el uso de metadatos en el modelado de anclaje y no en ninguna de las construcciones mencionadas anteriormente. Si desea guardar información sobre dichos cambios en la base de datos, puede usar el modelado con referencia a bidemop[ término desconocido ] anclas donde, además de las actualizaciones, las declaraciones eliminadas se vuelven no destructivas.
En el modelado de anclaje, existe una correspondencia uno a uno entre los símbolos utilizados en un modelo conceptual y las tablas en una base de datos relacional. Cada ancla, atributo, enlace y nodo tiene una tabla correspondiente en la base de datos con una estructura definida de forma única. Por lo tanto, un modelo conceptual se puede traducir a un esquema de base de datos relacional utilizando reglas automatizadas simples 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 enlace contienen una sola columna que almacena información de identidad. Se considera que la identidad es la única propiedad de un objeto que está siempre presente e inmutable. Dado que las identidades rara vez están disponibles en el dominio que se está modelando, en su lugar se generan técnicamente, por ejemplo, a partir de una secuencia numérica ascendente.
Un ejemplo de ancla para identificar a los sobrinos del Pato Donald es un conjunto de tuplas de 1:
{⟨#42⟩, ⟨#43⟩, ⟨#44⟩}
Los nodos se pueden considerar como una combinación de un ancla y un solo atributo. Las tablas de nodos contienen dos columnas, una para el ID y otra para el valor. Debido al almacenamiento de identidades y valores, los nodos no se pueden interpretar. Su utilidad proviene de la capacidad de reducir los requisitos de memoria y mejorar el rendimiento, ya que las tablas que hacen referencia a los nodos pueden almacenar un valor corto en lugar de una cadena larga.
Un nodo de ejemplo para grupos de género es un conjunto de dos tuplas:
{⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}
Las tablas de atributos estáticos contienen dos columnas, una para el ID del objeto al que pertenece el valor y otra para el valor real de la propiedad. Las tablas de atributos históricos tienen una columna adicional para almacenar el punto de inicio de un intervalo de tiempo. En una tabla de atributos de nodos, la columna de valor es un identificador que hace referencia a la tabla de nodos.
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 dos tuplas:
{⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}
Un ejemplo de un atributo con un historial 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 unión estática vinculan dos o más anclas entre sí y contienen dos o más columnas para almacenar identificadores. Históricamente, las tablas de expansión tienen una columna adicional para almacenar el punto de inicio del intervalo de tiempo. Las tablas vinculadas con un nodo tienen una columna adicional para cada nodo de vínculo.
Un ejemplo de una relación estática para una relación de hermanos es un conjunto de dos tuplas:
{⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩, ⟨#44, #42⟩, ⟨#44, #43⟩}
Todas las tablas resultantes estarán en sexta forma normal , excepto las relaciones en las que no todas las columnas forman parte de la clave principal.