Каковы плюсы и минусы Anchor Modeling?

В настоящее время я пытаюсь создать базу данных, где очень большой процент данных является временным. После прочтения многих методов для этого (большинство из которых включает в себя 6nf нормализацию) я столкнулся с Anchor Modeling.

Схема, которую я разрабатывал, сильно напоминала модель Anchor Modeling, тем более что сценарий использования (временные данные + известные неизвестные) настолько похожи, что я испытываю желание полностью принять его.

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

Я задаюсь вопросом, достаточно ли кто-нибудь здесь знаком с тем, чтобы кратко изложить некоторые из негативов (поскольку позитивы очень хорошо рекламируются в исследовательских работах и ​​на их сайте), а также о любом опыте использования его в производственной среде.

5 ответов

Решение

Со ссылкой на anchormodeling.com

Вот несколько моментов, которые мне известны

  1. Количество объектов DB просто слишком велико, чтобы поддерживать их вручную, поэтому убедитесь, что вы постоянно используете конструктор для развития схемы.

  2. В настоящее время дизайнер полностью поддерживает MS SQL Server, поэтому, если вам все время приходится переносить код, вы можете подождать, пока целевая БД не будет полностью поддержана. Я знаю, что в нём есть Oracle в выпадающем списке, но...

  3. Не ожидайте (и не требуйте), чтобы ваши разработчики поняли это, они должны получить доступ к модели через представления 5NF - и это хорошо. Дело в том, что таблицы загружаются с помощью (вместо) триггеров в представлениях, что может (или не может) влиять на производительность.

  4. Ожидайте, что вам может потребоваться написать некоторые дополнительные процедуры обслуживания (для каждого временного атрибута), которые не генерируются автоматически (пока). Например, мне часто нужна процедура удаления временных атрибутов - для удаления записей с одинаковыми значениями для одного и того же идентификатора в двух последовательных временных событиях.

  5. Сгенерированные представления и запросы на просмотр разрешаются хорошо, и, вероятно, все, что вы напишете в будущем. Однако "другие люди" будут писать запросы на просмотры-просмотры-просмотры, что не всегда хорошо решается. Поэтому ожидайте, что вам, возможно, понадобится проводить полицейские запросы чаще, чем обычно.

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

Я хотел бы предположить, что крайне важно создать демо-систему и тестировать, тестировать, тестировать..., особенно пункт № 3 - загрузка через триггеры.

Что касается пункта № 4 выше. Управление пересчетом почти закончено, так что вы сможете предотвратить два последовательных идентичных значения с течением времени.

И общий комментарий, присоединения не обязательно плохая вещь. Читайте: почему объединения - это хорошо.

Одним из больших преимуществ 6NF в Anchor Modeling является неразрушающая эволюция схемы. Другими словами, каждая предыдущая версия модели базы данных доступна как подмножество в текущей модели. Кроме того, поскольку изменения представлены расширениями в схеме (новые таблицы), обновление базы данных происходит практически мгновенно и может безопасно выполняться в режиме онлайн (даже в производственной среде). Эта выгода будет потеряна в 5NF.

Я не читал ни одной статьи об этом, но, поскольку он основан на 6NF, я ожидал, что он будет страдать от любых проблем, следующих за 6NF.

6NF требует, чтобы каждая таблица состояла из ключа-кандидата и не более одного неключевого столбца. Таким образом, в худшем случае вам понадобится девять объединений для получения набора из 10 столбцов. Но вы также можете создать базу данных, которая использует, скажем, 200 таблиц в 5NF, 30 в BCNF и только 5 в 6NF. (Я думаю, что это больше не будет Anchor Modeling per se, который, кажется, помещает все таблицы в 6NF, но я могу ошибаться в этом.)

Мифический человеко-месяц все еще актуален здесь.

Поэтому вопрос управления заключается не в том, стоит ли создавать пилотную систему и выбрасывать ее. Ты сделаешь это. Единственный вопрос заключается в том, стоит ли планировать заранее создать одноразовый заказ или пообещать предоставить одноразовый заказ клиентам.

Фред Брукс младший, в Мифическом человеко-месяце, стр. 116.

Как дешево вы можете создать прототип, чтобы проверить ожидаемый наихудший случай?

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

В реальном бизнесе ошибки часто происходят на уровне ввода данных. Часто бывает, что при вводе данных генерируется большое количество ошибочных данных. Так что это настоящая и большая проблема. "Якорное моделирование" не может решить эту проблему.

Любой, кто использует базу данных "Anchor Modeling", может ввести неверные данные. Это возможно, потому что авторы "Якорного моделирования" написали, что ошибочные данные могут быть удалены.

Позвольте мне объяснить эту проблему на следующем примере: профессор математики дал лучшую оценку учащемуся, который получил худшую оценку. В этой школе профессора вводят оценки в базу данных Corressponding. Этот студент дал деньги профессору за эту преступную службу. Студент сумел поступить в университет с помощью этой фальшивой оценки. После летних каникул профессор математики вернулся в школу. После удаления неправильной оценки из базы данных профессор ввел правильную оценку в базе данных. В этой школе они используют "Anchor Modeling" db. Поэтому преподаватель математики удалил ложные данные, как это строго предлагается авторами "Якорного моделирования". Теперь этот профессор математики, совершивший это преступное деяние, чист, благодаря программному обеспечению "Якорное моделирование".

В этом примере говорится, что с помощью "Anchor Modeling" вы можете совершать преступления с данными, просто применяя "Anchor modelling technology"


В разделе 5.4 авторы "Моделирования привязки" написали следующее: "Операторы удаления разрешены только в том случае, если они применяются для удаления ошибочных данных.". Вы можете увидеть этот текст в статье "Техника гибкого моделирования с использованием шестой нормальной формы для структурно развивающихся данных", написанной авторами "Моделирования якоря".

Обращаем ваше внимание на то, что "Якорное моделирование" было представлено на 28-й Международной конференции по концептуальному моделированию и получило награду за лучшую статью?!


Авторы "Anchor Modeling" утверждают, что их модель данных может поддерживать историю! Однако этот пример обуви, который "Якорное моделирование" не может поддерживать историю вообще.


Поскольку "Моделирование привязки" позволяет удалять данные, тогда "Моделирование привязки" выполняет все операции с данными, а именно: добавление новых данных, удаление данных и обновление. Обновление можно получить, используя две операции: сначала удалите данные, затем добавьте новые данные.

Это также означает, что моделирование привязки не имеет истории, поскольку оно имеет удаление данных и обновление данных.


Я хотел бы отметить, что в "Моделировании привязки" все ошибочные данные "ДОЛЖНЫ" быть удалены. В "Моделировании привязки" невозможно сохранить ошибочные данные и исправленные данные.

"Якорное моделирование" не может поддерживать историю ошибочных данных.

В первой части этого поста я показал, что с помощью "моделирования якоря" любой может совершить преступление с данными. Это означает, что "Anchor Modeling" ведет бизнес компании прямо в бедствие.

Я приведу один пример, чтобы профессионалы могли увидеть на реальном и важном примере, насколько плохое "моделирование якоря".

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

Международные стандарты: все профессионалы знают, что такое "VIN" для автомобилей, "ISBN" для книг и тысячи других международных стандартов.

Национальные стандарты: все страны имеют свои собственные стандарты для паспортов, личных документов, банковских карт, штрих-кодов и т. Д.

Местные стандарты. Многие компании имеют свои собственные стандарты. Например, когда вы что-то платите, у вас есть счет со стандартным ключом, который также записан в базе данных.

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

Я считаю, что процент этих баз данных, которые имеют сущности со стандартными ключами и которые я представил в этом примере, составляет более 95%.

Для всех вышеперечисленных случаев "суррогатный ключ якоря" - нонсенс. "Якорное моделирование" использует исключительно "якорно-суррогатный ключ"

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

Владимир Одрлин

Другие вопросы по тегам