
El modelado de anclaje es una técnica ágil de modelado de bases de datos 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 entidad-relación , con extensiones para trabajar con datos temporales . La técnica de modelado implica cuatro constructos de modelado: el anclaje, el atributo, el vínculo 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 mayoritariamente en la sexta forma normal .
A diferencia del esquema de estrella ( modelado dimensional ) y el modelo relacional clásico (3NF), el modelado de bóveda de datos y el modelado de anclaje son adecuados para capturar los cambios que ocurren cuando se modifica o agrega un sistema fuente, 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.
Filosofía
El modelado de anclaje se creó para aprovechar las ventajas de un alto grado de normalización , evitando al mismo tiempo los inconvenientes que presentan las formas normales superiores en cuanto a legibilidad. 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 derivados de uniones adicionales se evitan en gran medida gracias a una característica de los motores de bases de datos modernos denominada eliminación de uniones o eliminación de tablas. Para gestionar los cambios en el contenido de la información, el modelado de anclaje emula aspectos de una base de datos temporal en el esquema de base de datos relacional resultante .
Historia
Las primeras instalaciones que utilizaron el modelado de anclaje 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 utilizaba en algunos almacenes de datos y en un sistema de procesamiento de transacciones en línea (OLTP), y Lars Rönnbäck la presentó internacionalmente en la conferencia Transforming Data with Intelligence (TDWI) de 2007 en Ámsterdam . [ 4 ] Esto despertó suficiente interés como para justificar una descripción más formal de la técnica. Desde entonces, se está llevando a cabo una investigación sobre el modelado de anclajes en colaboración entre sus creadores, Olle Regardt y Lars Rönnbäck, y un equipo del Departamento de Ciencias de la Computación y de Sistemas de la Universidad de Estocolmo .
El primer artículo, en el que se formaliza el modelado de anclaje, 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 anclas que se puede usar gratuitamente bajo una licencia Creative Commons . También está disponible una herramienta de modelado en línea, que es gratuita y de código abierto . [ 6 ]
nociones básicas
El modelado de anclajes se basa en cuatro conceptos fundamentales: anclajes, atributos, vínculos y nudos. Los anclajes se utilizan para modelar entidades y eventos; los atributos, para modelar las propiedades de los anclajes; los vínculos, para modelar las relaciones entre anclajes; y los nudos, para modelar propiedades compartidas, como los estados. Los atributos y los vínculos pueden historizarse cuando es necesario conservar los cambios en la información que modelan.
A continuación se muestra un ejemplo de modelo con los distintos símbolos gráficos para todos los conceptos. Los símbolos se asemejan a los utilizados en el modelado entidad-relación , con algunas extensiones. Un doble contorno en un atributo o vínculo indica que se conserva un historial de cambios. También está disponible el símbolo de nudo (un cuadrado con contorno y bordes redondeados), pero los nudos no se pueden historizar. El símbolo de ancla es un cuadrado sólido.
![]()
Aspectos temporales
El modelado de anclaje gestiona dos tipos de evolución de la información: cambios estructurales y cambios de contenido. Los cambios en la estructura de la información se representan mediante extensiones. El alto grado de normalización permite añadir de forma no destructiva los conceptos de modelado necesarios para capturar un cambio , de manera que cada esquema anterior permanezca como un subconjunto del esquema actual. Dado que el esquema existente no se modifica, esto ofrece la ventaja de poder evolucionar la base de datos de forma altamente iterativa y sin interrupciones del servicio.
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 en el 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 mediante la historización de atributos y vínculos, por ejemplo, los cambios de color de cabello 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 dato lo suficientemente granular como 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 no directamente relacionados con el dominio que se está modelando, como la información sobre los momentos en que se ingresa a la base de datos, se manejan mediante el uso de metadatos en el modelado de anclaje, en lugar de cualquiera de las construcciones mencionadas anteriormente. Si se necesita conservar información sobre dichos cambios en la base de datos, se puede utilizar el modelado de anclaje bitemporal, donde, además de las actualizaciones, las instrucciones de eliminación también se vuelven no destructivas.
Representación relacional
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 anclaje, 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 puede traducirse a un esquema de base de datos relacional mediante reglas automatizadas sencillas, y viceversa. Esto difiere de muchas otras técnicas de modelado, en las que existen pasos de traducción complejos y, en ocasiones, subjetivos entre los niveles conceptual, lógico y físico.
Las tablas de anclaje contienen una única columna donde se almacenan las identidades. Se asume que la identidad es la única propiedad de una entidad que siempre está presente e inmutable. Dado que 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 numérica incremental.
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 la identidad y otra para el valor. Debido a que almacenan identidades y valores juntos, los nudos no se pueden historizar. Su utilidad radica en que permiten reducir los requisitos de almacenamiento y mejorar el rendimiento, ya que las tablas que hacen referencia a nudos pueden almacenar un valor corto en lugar de una cadena larga.
Un ejemplo de 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 nudos.
Un ejemplo de atributo estático para sus nombres es un conjunto de tuplas de 2 elementos: {⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}
Un ejemplo de atributo estático anudado para sus géneros es un conjunto de tuplas de 2 elementos: {⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}
Un ejemplo de 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 enlaces estáticas relacionan dos o más anclas entre sí y contienen dos o más columnas para almacenar las identidades. Las tablas de enlaces historizadas tienen una columna adicional para almacenar el punto de inicio de un intervalo de tiempo. Las tablas de enlaces anudadas tienen una columna adicional por cada nudo referenciado.
Un ejemplo de 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 en los casos de empate, donde no todas las columnas forman parte de la clave primaria.
En comparación con otros enfoques
En la década de 2000, se introdujeron varios patrones de modelado de datos para almacenes de datos con el objetivo de lograr almacenes de datos ágiles , incluyendo formas de modelado de conjuntos como el modelado de anclaje, el modelado de bóveda de datos, el modelado de punto focal y otros. [ 7 ]
Comparación de bóvedas de datos
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 ]
Referencias
- ↑ L. Rönnbäck; O. Regardt; M. Bergholtz; P. Johannesson; P. Wohed (2010). "Modelado ancla: modelado ágil de información en entornos de datos en evolución". Data & Knowledge Engineering . 69 (12): 1229– 1253. doi : 10.1016/j.datak.2010.10.002 . ISSN 0169-023X . (Preimpresión disponible aquí )
- ^ Porsby, Johan. "Rålager istället för ett strukturerat datalager" . www.agero.se (en sueco) . Consultado el 22 de febrero de 2023 .
- ^ Porsby, Johan. "Modelador de datos para almacén de datos" . www.agero.se (en sueco) . Consultado el 22 de febrero de 2023 .
- ↑ 6.ª Conferencia Europea TDWI - Página principal de TDWI. Archivado el 20 de julio de 2011 en Wayback Machine .
- ^ Respecto a Olle; Rönnbäck, Lars; Bergholtz, María; Johannesson, Paul; Wohed, Petia (2009). "Modelado de anclajes". Actas de la 28ª Conferencia Internacional sobre Modelado Conceptual . Emergencias '09. Gramado, Brasil: Springer-Verlag: 234– 250. ISBN 978-3-642-04839-5.
- ↑ Lars Rönnbäck. "Anchor Modeling Academy" . Sitio web promocional . Consultado el 20 de mayo de 2017 .
- ↑ "Modelado de anclaje" . El blog de Hans . Consultado el 15 de marzo de 2023 .
- ↑ Lars Rönnbäck; Hans Hultgren (2013). "Comparación del modelado de anclaje con el modelado de bóveda de datos" (PDF) .
Enlaces externos
- Blog sobre modelado de anclas, con videotutoriales e información de investigación.
- Herramienta de modelado de anclajes en línea
- Almacenamiento de datos
- Modelado de datos
- Diagramas de modelado de datos
- Normalización de la base de datos