Подтвердить что ты не робот

Каковы преимущества и недостатки Anchor Modeling?

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

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

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

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

4b9b3361

Ответ 1

Относительно anchormodeling.com

Вот несколько моментов, о которых я знаю

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

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

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

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

Как дешево вы можете построить прототип для проверки ожидаемого худшего случая?