Каковы плюсы и минусы якорного моделирования?

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

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

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

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

5 ответов


в отношении anchormodeling.com

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

обратите внимание, что "якорное моделирование" было представлено на 28-й Международной конференции по концептуальному моделированию и получило награду best paper award?!


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


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

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


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

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

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


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

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

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

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

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

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

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

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

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

Владимир Odrljin