13

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

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

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

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

ответ

12

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

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

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

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

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

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

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

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

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

5

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

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

Мифического человеко-месяце прежнему актуально здесь.

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

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

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

+0

Cat, не то, что я не согласен с тем, что вы здесь говорите, но существует разница между моделью, взятой сама по себе (и актом рисования любой такой типовой статьи), и реализацией этой модели (акт определения структура базы данных для реализации этой модели). Есть ли какой-либо закон, который гласит, что концептуальная/неформальная модель, которая выглядит «6NF», обязательно должна также приводить к логической структуре базы данных, которая _IS_ 6NF? Лично мой ответ был бы более похожим на то, что при использовании моделирования Anchor в качестве метода для рисования _IN_formal моделей один атрибут в «сущности» (продолжение ...) –

+0

... занимает больше квадратных дюймов, чем когда вы используете ER в качестве техники рисования. С неизбежным следствием того, что при фиксированном размере бумаги моделирование якоря не может передавать столько информации (_IN_formal), сколько может быть E/R. Что именно останавливает вас от реализации модели с анкеровкой в ​​5NF вместо 6NF? Что мешает вам реализовать модель, нарисованную в E/R crowfoot, в полном объеме 6NF? –

+0

@ErwinSmout: нет реляционного закона, который говорит, что концептуальная модель в 6NF должна привести к базе данных, которая находится в 6NF. Я реализовал концептуальные модели 5NF в Lotus Notes раньше - это примерно так же, как и физическая модель 5NF *, как вы можете получить. Но я понимаю, что в Anchor Modeling, * каждая * таблица, которая реализует якорь, атрибут или узел *, должна быть в 6NF. Таблицы в 6NF, по-видимому, необходимы для поддержки гибких методов Anchor Modeling; Я не думаю, что вы можете опуститься до 5NF, не делая ничего, что больше не «Anchor Modeling». (Не то, чтобы в этом что-то не так.) –

7

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

И общий комментарий, присоединения не обязательно являются плохими. Читайте: Why joins are a good thing.

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

 Смежные вопросы

  • Нет связанных вопросов^_^