Якорная модель (Xtkjugx bk;yl,)

Перейти к навигации Перейти к поиску

Якорное моделирование — технология моделирования хранилищ данных, подходящая для информации, которая со временем изменяется как по структуре, так и по содержанию. Обеспечивает графическое обозначение[уточнить], используемое для концептуального моделирования, аналогичное моделированию сущностей и связей, с расширениями для работы с временными данными. В методике моделирования используются четыре модели моделирования: якорь, атрибут, связь и узел, каждый из которых отражает различные аспекты моделируемого домена. Полученные модели могут быть переведены в физические проекты баз данных с использованием формализованных правил. Когда такой перевод сделан, таблицы в реляционной базе данных будут в основном в шестой нормальной форме.

Философия и история[править | править код]

Якорное моделирование было создано для того, чтобы воспользоваться преимуществами высокой степени нормализации базы данных и избежать его недостатков. Получаются такие преимущества, как способность не разрушать модель, избегать пустых (то есть null) значений и не допускать избыточности информации. Проблемы производительности из-за дополнительных объединений в значительной степени устранены благодаря функции в современных механизмах баз данных, называемой «устранение таблицы».

Первые хранилища данных на якорных моделях были построены в Швеции, первая из них (2004) — для страховой компании. В 2007 году методика использовалась в нескольких хранилищах данных и одной OLTP-системе, и она была представлена на международном уровне Ларсом Рёнбеком конференции TDWI (Института хранилищ данных) в Амстердаме[1]. Это вызвало интерес к технике, чтобы получить более формальное описание. С тех пор исследования, связанные с моделированием якорей, проводятся в сотрудничестве между создателями — Улле Регардтом и Ларсом Рёнбеком, а также с участием специалистов кафедры компьютерных и системных наук Стокгольмского университета. Первая работа[2], в дано формальное описание технологии, была представлена на 28-й Международной конференции по концептуальному моделированию[3] и получила награду за лучшую статью.

Материал по якорному моделированию доступен в рамках лицензии Creative Commons. Также доступен онлайн-инструмент для моделирования, который можно использовать свободно и с открытым исходным кодом.

Основные понятия[править | править код]

Якорное моделирование имеет четыре основные концепции моделирования: якоря, атрибуты, связи и узлы. Якоря используются для моделирования сущностей и событий, атрибуты используются для моделирования свойств якорей, связи моделируют отношения между якорями, узлы используются для моделирования общих свойств, таких как состояния. Атрибуты и связи могут быть истолкованы, когда изменения в информации, которую они моделируют, необходимо сохранить.

Примерная модель, показывающая различные графические символы для четырёх концепций модели, приведена ниже. Символы напоминают те, что используются в модели моделированию сущностей и связей, с несколькими расширениями[уточнить]. Двойной контур по атрибуту или привязке указывает, что сохраняется история изменений, и также доступен символ узла (обведённый квадрат с закругленными краями).

Пример якорной модели

Временные аспекты[править | править код]

Якорное моделирование управляет двумя типами информационной эволюции[уточнить], структурными изменениями и изменениями контента. Изменения в структуре информации представлены через расширения. Высокая степень нормализации данных позволяет неразрушающим образом добавлять надлежащие концепции моделирования, необходимые для фиксации изменений, таким образом, что каждая предыдущая схема базы данных всегда остаётся в виде подмножества Текущей схемы. Поскольку существующая схема не тронута, это даёт преимущество, поскольку она может развиваться в базе данных очень итеративным образом и не вызывать никаких простоев.

Изменения в содержании информации осуществляются путём эмуляции аналогичных функций временной базы данных в реляционной базе данных. В моделировании с привязкой фрагменты информации могут быть привязаны к моментам времени или к промежуткам времени (как открытые, так и закрытые). Временные моменты, когда происходят события, моделируются с использованием атрибутов, например, дат рождения людей или времени покупки. Интервалы времени, в которые действительна ценность, фиксируются через историзацию[неизвестный термин] атрибутов и связей, например, изменения цвета волос человека или период времени, в течение которого человек был женат. В реляционной базе данных это достигается добавлением одного столбца с типом данных, достаточно гранулированным, чтобы фиксировать скорость изменений в таблице, Соответствующий историческому атрибуту или связи. Это добавляет небольшую сложность, так как более чем одна строка в таблице должна быть исследована, чтобы узнать, закрыт ли интервал или нет.

Точки или интервалы времени, непосредственно не связанные с моделируемым доменом, такие как информация о точках времени, введенная в базу данных, обрабатываются посредством использования метаданных в моделировании привязки, а не в любой из вышеупомянутых конструкций. Если необходимо сохранить информацию о таких изменениях в базе данных, можно использовать моделирование с привязкой к бидемоповым[неизвестный термин] якорям, где в дополнение к обновлениям удалённые операторы становятся неразрушающими.

Реляционное представление[править | править код]

В якорном моделировании существует взаимно-однозначное соответствие между символами, используемыми в концептуальной модели, и таблицами в реляционной базе данных. Каждый якорь, атрибут, связь и узел имеют соответствующую таблицу в базе данных с однозначно определённой структурой. Таким образом, концептуальная модель может быть переведена в схему реляционной базы данных, используя простые автоматизированные правила, и наоборот. Это отличается от многих других методов моделирования, в которых существуют сложные и иногда субъективные шаги трансляции между концептуальным, логическим и физическим уровнями.

Таблицы привязки содержат один столбец, в котором хранятся идентификационные данные. Идентичность считается единственным свойством объекта, который всегда присутствует и неизменен. Поскольку тождества редко доступны из моделируемого домена, они вместо этого технически сгенерированы, как правило из возрастающей числовой последовательности.

Примером якоря для идентификации племянников Donald Duck является набор из 1 кортежей:
{⟨#42⟩, ⟨#43⟩, ⟨#44⟩}

Узлы можно рассматривать как сочетание якоря и одного атрибута. Таблицы узлов содержат два столбца: один для идентификатора и один для значения. Благодаря хранению идентичностей и ценностей, узлы не могут быть истолкованы. Их полезность исходит из возможности сократить требования к памяти и повысить производительность, поскольку таблицы, ссылающиеся на узлы, могут хранить короткое значение, а не длинную строку.

Пример узла для гендерных групп — это набор из двух кортежей:
{⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}

Таблицы статических атрибутов содержат два столбца, один для идентификатора объекта, которому принадлежит значение, и один для фактического значения свойства. В исторических таблицах атрибутов имеется дополнительный столбец для хранения начальной точки временного интервала. В узловой таблице атрибутов столбец значений — это идентификатор, который ссылается на таблицу узлов.

Примером статического атрибута для их имен является набор из 2-х кортежей:
{⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}

Примером заузленного статического атрибута для их гендерных групп является набор из двух кортежей:
{⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}

Примером атрибута с историей для (изменяющихся) цветов их нарядов является набор из 3-х кортежей:
{⟨#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⟩}

Все результирующие таблицы будут находиться в шестой нормальной форме, за исключением связей, в которых не все столбцы являются частью первичного ключа.

Примечания[править | править код]

  1. 6th TDWI European Conference — TDWI homepage Архивировано 20 июля 2011 года.
  2. Regardt, Olle; Rönnbäck, Lars; Bergholtz, Maria; Johannesson, Paul; Wohed, Petia (2009). "Anchor Modeling". Proceedings of the 28th International Conference on Conceptual Modeling. ER '09 (англ.). Gramado, Brazil: Springer-Verlag: 234—250. ISBN 978-3-642-04839-5.
  3. 28th International Conference on Conceptual Modeling — ER’09 homepage Архивная копия от 17 июня 2016 на Wayback Machine