Моделирование якоря
![]() | Судя по всему, основной автор этой статьи тесно связан с ее предметом. ( сентябрь 2023 г. ) |

Якорное моделирование — это гибкий базы данных метод моделирования , подходящий для информации, которая со временем меняется как по структуре, так и по содержанию. Он предоставляет графическую нотацию, используемую для концептуального моделирования, аналогичную модели сущностей-связей , с расширениями для работы с временными данными . Методика моделирования включает в себя четыре конструкции моделирования: якорь, атрибут, связь и узел, каждая из которых отражает различные аспекты моделируемой области. [1] Полученные модели можно преобразовать в физические конструкции баз данных с использованием формализованных правил. Когда такой перевод будет выполнен, таблицы в реляционной базе данных в основном будут иметь шестую нормальную форму .
В отличие от звездообразной схемы ( мерное моделирование ) и классической реляционной модели (3NF), моделирование хранилища данных и привязки хорошо подходят для фиксации изменений, которые происходят при изменении или добавлении исходной системы, но считаются продвинутыми методами, требующими опытных архитекторов данных. . [2] И хранилища данных, и модели привязки являются на основе сущностей . моделями [3] но якорные модели имеют более нормализованный подход. [ нужна ссылка ]
Философия [ править ]
Якорное моделирование было создано для того, чтобы воспользоваться преимуществами высокой степени нормализации , избегая при этом ее недостатков, которые имеют высшие нормальные формы в отношении удобочитаемости для человека. Получаются такие преимущества, как возможность неразрушающего развития модели, избежание нулевых значений и сохранение информации без избыточности. Проблем с производительностью из-за дополнительных соединений можно избежать благодаря функции современных СУБД. [ когда? ] называется ликвидацией соединения или ликвидацией таблицы. Чтобы обрабатывать изменения в информационном содержании, моделирование привязки имитирует аспекты временной базы данных в результирующей схеме реляционной базы данных .
История [ править ]
Самые ранние установки с использованием якорного моделирования были осуществлены в 2004 году в Швеции, когда с использованием этой технологии было построено хранилище данных для страховой компании.
В 2007 году этот метод использовался в нескольких хранилищах данных и одной системе онлайн-обработки транзакций (OLTP), и он был представлен на международном уровне Ларсом Рённбеком на конференции Transforming Data with Intelligence (TDWI) 2007 года в Амстердаме . [4] Это вызвало достаточный интерес к технике, требующей более формального описания. С тех пор исследования, касающиеся якорного моделирования, проводятся в сотрудничестве между создателями Олле Регардтом и Ларсом Рённбеком и командой факультета компьютерных и системных наук Стокгольмского университета .
Первая статья, в которой формализовано якорное моделирование, была представлена в 2008 году на 28-й Международной конференции по концептуальному моделированию и получила награду за лучшую статью. [5]
Коммерческий веб-сайт предоставляет материалы по моделированию якорей, которые можно использовать бесплатно по лицензии Creative Commons . Также доступен онлайн-инструмент моделирования, который можно использовать бесплатно и имеет открытый исходный код . [6]
Основные понятия [ править ]
Моделирование якорей включает четыре основные концепции моделирования: якоря, атрибуты, связи и узлы. Якоря используются для моделирования сущностей и событий, атрибуты используются для моделирования свойств якорей, связи моделируют отношения между якорями, а узлы используются для моделирования общих свойств, таких как состояния. Атрибуты и связи можно архивировать, когда необходимо сохранить изменения в информации, которую они моделируют.
Пример модели, показывающей различные графические символы для всех концепций, можно увидеть ниже. Символы напоминают те, что используются при моделировании сущностей и связей , но с некоторыми расширениями. Двойной контур атрибута или связи указывает на то, что сохраняется история изменений. Символ узла (очерченный квадрат с закругленными краями) также доступен, но узлы не могут быть сохранены в истории. Символ якоря представляет собой сплошной квадрат.
Временные аспекты [ править ]
Якорное моделирование учитывает два типа информационной эволюции: структурные изменения и изменения содержания. Изменения структуры информации представляются посредством расширений. Высокая степень нормализации позволяет неразрушающим образом добавлять необходимые концепции моделирования, необходимые для фиксации изменений , таким образом, что каждая предыдущая схема всегда остается подмножеством текущей схемы. Поскольку существующая схема не затрагивается, это дает возможность развивать базу данных в высокой степени итеративности, не вызывая простоев.
Изменения в содержании информации производятся путем эмуляции аналогичных особенностей временной базы данных в реляционной базе данных . При якорном моделировании фрагменты информации могут быть привязаны к моментам времени или к интервалам времени (как открытым, так и закрытым). Моменты времени, когда происходят события, моделируются с использованием атрибутов, например, дат рождения людей или времени покупки. Интервалы времени, в течение которых значение действительно, фиксируются посредством историзации атрибутов и связей, например, изменения цвета волос человека или периода времени, в течение которого человек состоял в браке. В реляционной базе данных это достигается путем добавления одного столбца с типом данных , достаточно детализированным, чтобы фиксировать скорость изменений, в таблицу, соответствующую историзированному атрибуту или связи. Это добавляет некоторую сложность, поскольку необходимо просмотреть более одной строки в таблице, чтобы узнать, закрыт интервал или нет.
Точки или интервалы времени, не связанные напрямую с моделируемой областью, например, моменты времени, когда информация поступает в базу данных, обрабатываются с помощью метаданных при моделировании привязки, а не с помощью каких-либо вышеупомянутых конструкций. Если информацию о таких изменениях в базе данных необходимо сохранить, то можно использовать битемпоральное моделирование привязки, где помимо обновлений неразрушающими становятся и операторы удаления.
Реляционное представление [ править ]
При моделировании привязки между символами, используемыми в концептуальной модели, и таблицами в реляционной базе данных существует взаимно однозначное соответствие. Каждому якорю, атрибуту, связи и узлу в базе данных соответствует таблица с однозначно определенной структурой. Таким образом, концептуальную модель можно преобразовать в схему реляционной базы данных с помощью простых автоматизированных правил и наоборот. Это отличается от многих других методов моделирования, в которых существуют сложные и иногда субъективные этапы перевода между концептуальным, логическим и физическим уровнями.
Таблицы привязки содержат один столбец, в котором хранятся идентификаторы. Предполагается, что идентичность — единственное свойство сущности, которое всегда присутствует и неизменно. Поскольку идентификационные данные редко доступны из моделируемой области, вместо этого они генерируются технически, например, из возрастающей числовой последовательности.
Примером привязки личностей племянников Дональда Дака является набор кортежей из 1: {⟨#42⟩, ⟨#43⟩, ⟨#44⟩}
Узлы можно рассматривать как комбинацию якоря и одного атрибута. Таблицы узлов содержат два столбца: один для идентификатора и один для значения. Из-за того, что идентификаторы и значения хранятся вместе, узлы не могут быть историзированы. Их полезность заключается в возможности снизить требования к объему памяти и повысить производительность, поскольку таблицы, ссылающиеся на узлы, могут хранить короткое значение, а не длинную строку.
Примером узла для рода является набор из двух кортежей: {⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}
Таблицы статических атрибутов содержат два столбца: один для идентификатора объекта, которому принадлежит значение, и один для фактического значения свойства. Таблицы исторических атрибутов имеют дополнительный столбец для хранения начальной точки временного интервала. В таблице узловых атрибутов столбец значений представляет собой идентификатор, ссылающийся на таблицу узлов.
Примером статического атрибута для их имен является набор из двух кортежей: {⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}
Примером связанного статического атрибута для их пола является набор из двух кортежей: {⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}
Примером исторического атрибута (меняющихся) цветов их одежды является набор из трех кортежей: {⟨#44, 'Orange', 1938-04-15⟩, ⟨#44, 'Green', 1939-04-28⟩, ⟨#44, 'Blue', 1940-12-13⟩}
Статические таблицы связей связывают две или более привязок друг с другом и содержат два или более столбца для хранения идентификаторов. В таблицах с историческими связями есть дополнительный столбец для хранения начальной точки временного интервала. В таблицах узловых связей есть дополнительный столбец для каждого узла, на который ссылаются.
Примером статической связи для родственных отношений является набор из двух кортежей: {⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩, ⟨#44, #42⟩, ⟨#44, #43⟩}
Все полученные таблицы будут иметь шестую нормальную форму, за исключением связей, в которых не все столбцы являются частью первичного ключа.
По сравнению с другими подходами [ править ]
В 2000-х годах было введено несколько шаблонов моделирования данных в хранилищах данных с целью создания гибких хранилищ данных, включая формы ансамблевого моделирования, такие как моделирование привязки, моделирование хранилища данных, моделирование фокусной точки и другие. [7]
Сравнение хранилищ данных [ править ]
В 2013 году на конференции по моделированию данных BI Podium в Нидерландах Ларс Рённбек представил сравнение якорного моделирования и моделирования хранилища данных. [8]
Сравниваемая функция | Хранилище данных | Преимущество* | Моделирование якоря |
---|---|---|---|
Семья | Ансамблевое моделирование | - | Ансамблевое моделирование |
Парадигма | Управление данными Проверяемость имеет приоритет | - | Управление данными Потребности в приоритете |
Архитектура | Гибридный (несколько объектов обслуживания) | - | Реплицированные (отдельные объекты обслуживания) |
Группировка | Как можно больше | - | Как можно меньше |
Основной график | Время записи | - | Изменение времени |
Обнаружение изменений | Доступ к нескольким строкам/столбцам | ЯВЛЯЮСЬ | Доступ к одной строке/столбцу |
Строгость | Слабо формализовано Нет соглашения об именах | - | Строго формализовано Имеет соглашение об именах |
Эволюция схемы | Разрушительный | ЯВЛЯЮСЬ | Неразрушающий |
Темпорализация | Любое-временное вручную, дата окончания необязательна (не рекомендуется) | ЯВЛЯЮСЬ | Одновременно-временной по замыслу, нет конечной даты |
Затягивание | Обновления могут потребоваться | ЯВЛЯЮСЬ | Только вставить |
Поддержка инструментов | Множество инструментов В основном коммерческий | ДВ | Мало инструментов Только с открытым исходным кодом |
Адаптация к изменениям | Все еще громоздко | ЯВЛЯЮСЬ | Почти без усилий |
Обмен моделями | Необработанный SQL с распечатанным диаграммы какого-то вкуса | ЯВЛЯЮСЬ | Стандартизированный формат XML и графические обозначения |
Неизменяемость | Суррогатная личность и естественный ключ | ЯВЛЯЮСЬ | Только суррогатная личность |
Естественное суррогатное материнство | Один к одному, статический Физически реализовано (концентратор) | ЯВЛЯЮСЬ | Многие к одному, историзируемые Логическое представление данных |
Оптимизация запросов | Несколько важно Последние базы данных | ДВ | Очень важно Базы данных последней версии |
Возможность написания сценариев | С некоторым усилием | ЯВЛЯЮСЬ | Формализованное, автоматизированное для всего |
Представления и триггеры | Упоминание, ручная работа и от случая к случаю | ЯВЛЯЮСЬ | Формализованное, автоматизированное для всего |
Предположения | Создан, чтобы служить долго Нужны предположения | ЯВЛЯЮСЬ | Создан, чтобы меняться Никаких предположений |
Доля рынка | Небольшие <1000 установок (2013 г.) | ДВ | Очень маленькие <100 установок (2013 г.) |
Ссылки [ править ]
- ^ Л. Рённбек; О. Регардт; М. Берггольц; П. Йоханнессон; П. Вохед (2010). «Якорное моделирование — гибкое информационное моделирование в развивающихся средах данных». Инженерия данных и знаний . 69 (12): 1229–1253. дои : 10.1016/j.datak.2010.10.002 . ISSN 0169-023X . (Препринт доступен здесь )
- ^ Порсби, Йохан. «Необработанное хранилище вместо структурированного хранилища данных» . www.agero.se (на шведском языке) . Проверено 22 февраля 2023 г.
- ^ Порсби, Йохан. «Модели данных для хранилища данных» . www.agero.se (на шведском языке) . Проверено 22 февраля 2023 г.
- ↑ 6-я Европейская конференция TDWI — домашняя страница TDWI. Архивировано 20 июля 2011 г., в Wayback Machine.
- ^ Регардт, Олле; Рённбек, Ларс; Берггольц, Мария; Йоханнессон, Пол; Вохед, Петия (2009). «Якорное моделирование». Материалы 28-й Международной конференции по концептуальному моделированию . скорая помощь '09. Грамаду, Бразилия: Springer-Verlag: 234–250. ISBN 978-3-642-04839-5 .
- ^ Ларс Рённбек. «Якорная модельная академия» . Промо-сайт . Проверено 20 мая 2017 г.
- ^ «Якорное моделирование» . Блог Ганса . Проверено 15 марта 2023 г.
- ^ Ларс Рённбек; Ганс Хультгрен (2013). «Сравнение моделирования привязки с моделированием хранилища данных» (PDF) .