Русская Википедия:Якорная модель

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Плохой перевод

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

Философия и история

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

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

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

Основные понятия

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

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

Файл:Anchor Modeling Example.svg
Пример якорной модели

Временные аспекты

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

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

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

Реляционное представление

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

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

Примером якоря для идентификации племянников 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 Шаблон:Webarchive
  2. Шаблон:Cite journal
  3. 28th International Conference on Conceptual Modeling — ER’09 homepage