Якорное моделирование - Anchor modeling
Якорное моделирование - это гибкий метод моделирования базы данных, подходящий для информации, которая со временем изменяется как по структуре, так и по содержанию. Он предоставляет графические обозначения, используемые для концептуального моделирования, аналогичные обозначениям моделирование сущности-отношения, с расширениями для работы с временными данными. Техника моделирования включает в себя четыре моделируемых конструкции: привязку, атрибут, связь и узел, каждая из которых отражает различные аспекты моделируемой области.[1]Полученные модели можно преобразовать в физические проекты баз данных с помощью формализованных правил. Когда такой перевод будет выполнен, таблицы в реляционной базе данных будут в основном в шестая нормальная форма.
Философия и история
Якорное моделирование было создано для того, чтобы воспользоваться преимуществами высокой степени нормализация при этом избегая его недостатков. Получены такие преимущества, как возможность неразрушающего развития модели, избежание нулевых значений и сохранение информации без избыточности. Проблемы с производительностью из-за дополнительных объединений в значительной степени можно избежать благодаря функции современных механизмов баз данных, называемой 'присоединиться к исключению 'или' исключение таблицы '. Чтобы обрабатывать изменения в информационном содержании, моделирование якоря имитирует аспекты временная база данных в результате реляционная база данных схема.
Самые ранние установки с использованием моделирования анкеров были выполнены в Швеция с первым, датированным 2004 годом, когда хранилище данных для страховой компании построен с использованием техники. В 2007 году этот метод использовался в нескольких хранилищах данных и одном OLTP системе, и она была представлена на международном уровне Ларсом Рённбеком на конференции 2007 г. «Трансформация данных с помощью разведки» (TDWI) в г. Амстердам.[2] Это вызвало достаточно интереса к технике, чтобы дать более формальное описание. С тех пор исследования, касающиеся моделирования якоря, проводятся в сотрудничестве между создателями Олле Регардтом и Ларсом Рённбеком и командой из Департамента компьютерных и системных наук, Стокгольмский университет. Первая статья, в которой формализовано якорное моделирование, была представлена на 28-й Международной конференции по концептуальному моделированию и получила награду за лучшую работу.[3]
Коммерческий веб-сайт предоставляет материалы по моделированию якорей, которые можно бесплатно использовать под Creative Commons лицензия. Также доступен онлайн-инструмент для моделирования, которым можно пользоваться бесплатно. Открытый исходный код.[4]
Основные понятия
Якорное моделирование включает четыре основных концепции моделирования: якоря, атрибуты, связи и узлы. Якоря используются для моделирования объектов и событий, атрибуты используются для моделирования свойств якорей, связи моделируют отношения между якорями, а узлы используются для моделирования общих свойств, таких как состояния. Атрибуты и связи можно архивировать, когда необходимо сохранить изменения в моделируемой ими информации.
Пример модели, показывающий различные графические символы для всех концепций, можно увидеть ниже. Символы напоминают символы, используемые в моделирование сущностей и отношений, с парой расширений. Двойной контур на атрибуте или галстуке означает, что история изменений сохраняется, а также доступен символ узла (обведенный квадрат с закругленными краями).
Временные аспекты
Якорное моделирование обрабатывает два типа информационной эволюции: структурные изменения и изменения содержания. Изменения в структуре информации представлены через расширения. Высокая степень нормализация позволяет неразрушающим образом добавлять необходимые концепции моделирования, необходимые для фиксации изменений, таким образом, чтобы все предыдущие схема всегда остается как подмножество текущей схемы. Поскольку существующая схема не затрагивается, это дает преимущество, заключающееся в возможности развивать базу данных с высокой степенью итеративности, не вызывая простоев.
Изменения в содержании информации осуществляются путем имитации аналогичных функций временная база данных в реляционная база данных. При моделировании привязки фрагменты информации могут быть привязаны к точкам времени или интервалам времени (как открытым, так и закрытым). Моменты, когда происходят события, моделируются с помощью атрибутов, например дат рождения людей или времени покупки. Интервалы времени, в течение которых значение является действительным, фиксируются посредством историзации атрибутов и связей, например, изменений цвета волос человека или периода времени, в течение которого человек состоял в браке. В реляционной базе данных это достигается добавлением одного столбец, с тип данных достаточно гранулированный, чтобы уловить скорость изменений, чтобы стол соответствующий исторически зафиксированному атрибуту или связи. Это добавляет небольшую сложность, так как более одного ряд в таблице должны быть изучены, чтобы знать, закрыт интервал или нет.
Точки или интервалы времени, не связанные напрямую с моделируемой областью, например, моменты времени, введенные в базу данных, обрабатываются с помощью метаданные при моделировании якоря, а не любой из вышеупомянутых конструкций. Если необходимо сохранить информацию о таких изменениях в базе данных, можно использовать моделирование битемпоральной привязки, где в дополнение к обновлениям операторы удаления также становятся неразрушающими.
Реляционное представление
При моделировании привязки существует взаимно однозначное соответствие между символами, используемыми в концептуальной модели, и таблицами в реляционной базе данных. Каждому якорю, атрибуту, привязке и узлу соответствует таблица в базе данных с однозначно определенной структурой. Таким образом, концептуальную модель можно преобразовать в схему реляционной базы данных с помощью простых автоматизированных правил, и наоборот. Это отличается от многих других методов моделирования, в которых есть сложные, а иногда и субъективные шаги перевода между концептуальным, логическим и физическим уровнями.
Таблицы привязки содержат один столбец, в котором хранятся идентификаторы. Предполагается, что идентичность - единственное свойство объекта, которое всегда присутствует и неизменяемо. Поскольку идентификаторы редко доступны из моделируемой области, они вместо этого генерируются технически, например, из возрастающей числовой последовательности.
Пример якоря для личностей племянников Дональд Дак представляет собой набор 1-кортежей: {⟨#42⟩, ⟨#43⟩, ⟨#44⟩}
Узлы можно рассматривать как комбинацию привязки и одного атрибута. Таблицы узлов содержат два столбца: один для идентификатора, а другой - для значения. Из-за того, что идентичности и ценности хранятся вместе, узлы не могут быть сохранены. Их полезность заключается в возможности снизить требования к хранилищу и повысить производительность, поскольку таблицы, ссылающиеся на узлы, могут хранить короткое значение, а не длинную строку.
Примером узла для пола является набор из двух кортежей: {⟨# 1, 'Мужской'⟩, ⟨# 2,' Женский'⟩}
Таблицы статических атрибутов содержат два столбца: один для идентификатора объекта, которому принадлежит значение, а другой для фактического значения свойства. В таблицах с историческими атрибутами есть дополнительный столбец для хранения начальной точки временного интервала. В связанной таблице атрибутов столбец значений является идентификатором, который ссылается на узловую таблицу.
Примером статического атрибута для их имен является набор из двух кортежей: {⟨# 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⟩}
Полученные таблицы будут в шестая нормальная форма за исключением связей, в которых не все столбцы являются частью первичного ключа.
Рекомендации
- ^ Л. Рённбек; О. Регардт; М. Берггольц; П. Йоханнессон; П. Вохед (2010). «Якорное моделирование - гибкое информационное моделирование в развивающихся средах данных». Инженерия данных и знаний. 69 (12): 1229–1253. Дои:10.1016 / j.datak.2010.10.002. ISSN 0169-023X. (Доступен препринт здесь )
- ^ 6-я Европейская конференция TDWI - Домашняя страница TDWI В архиве 20 июля 2011 г. Wayback Machine
- ^ Regardt, Олле; Рённбек, Ларс; Берггольц, Мария; Йоханнессон, Пол; Wohed, Петя (2009). «Якорное моделирование». Материалы 28-й Международной конференции по концептуальному моделированию.. ER '09. Грамаду, Бразилия: Springer-Verlag: 234–250. ISBN 978-3-642-04839-5.
- ^ Ларс Рённбек. "Академия моделирования якоря". Промо-сайт. Получено 20 мая, 2017.