Вы всегда разрабатываете базы данных по крайней мере в третьей нормальной форме (3NF)? Зачем?Базы данных и 3-я нормальная форма
ответ
Как правило, я хочу создать базу данных по крайней мере для Boyce Codd/5th Normal Form, за исключением случаев, когда я нахожу веские причины. Основной причиной использования нормальной формы является исключение избыточности, которое могло бы привести к неправильным результатам. Другим преимуществом является то, что нормальная форма помогает избежать «смещения» в дизайне базы данных (тенденция укладываться в некоторые шаблоны использования больше, чем другие), что упрощает поддержку изменений схемы по мере развития требований.
Нет, не всегда.
Вам нужно хорошо понимать нормальные формы, чтобы избежать глупых ошибок. Но иногда это полезно, по соображениям удобства или производительности. (Кэширование)
Я считаю важным, чтобы избежать дублирования данных, которые могут выйти из синхронизации. (Измененные имена, перемещенные ресурсы.) Тем не менее, иногда это именно то, что вы хотите. (Сводка счета в определенный момент времени.)
«dportas» имеет важное значение для предвзятости. Нарушение правил нормальной формы, как правило, делает ваш код и данные менее ремонтопригодными и гибкими.
Я бы, по крайней мере, разработал этот способ (если бы я не создавал хранилище данных, которое имеет разные правила). В любое время, когда я видел, как люди пытаются денормализовать на начальном этапе проектирования, они создали гораздо больше проблем, чем они решили. Я ежедневно проклинаю этих людей, так как я человек, который исправляет этот мусор.
Еще в тот же день я использовал моделирование ER для анализа данных, затем преобразовал в реляционную модель, а затем преобразовал реляционную модель в таблицы SQL (с их индексами). Это звучит сложно, но это не так. Каждый шаг прост и управляем.
Если вы правильно моделируете ER, вы связываете каждый атрибут с правильным сущностью или отношением. Каждая организация получает ключ, будь то естественный или синтетический. Обнаружение всех полезных отношений - это самая глубокая часть анализа данных.
Модель ER может использоваться как руководство для формирования отношений из атрибутов. Каждый объект получает отношение, и каждое отношение «многие ко многим» получает отношение, в то время как отношения «многие к одному» получают внешний ключ в одном из отношений сущности.
Такая конструкция автоматически в 3NF. Вылеты из BCNF, 4NF и 5NF встречаются редко.
Создание таблиц SQL на основе отношений является простым. Для проектирования индекса требуется, чтобы вы ожидали объем, нагрузку и ресурсы и несколько зависимы от СУБД.
Хороший вопрос о хранилищах данных. –