powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Когда оптимально отклонение от 3нф-формы?
10 сообщений из 10, страница 1 из 1
Когда оптимально отклонение от 3нф-формы?
    #34114086
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две таблицы "Заказы" (хранятся общие данные заказа) и "Заказы_детали"(хранится перечень товаров, стоимость товаров, скидка и т.п.). Между таблицами связь1-ко-многим. Стоит ли хранить общую сумму заказа в таблице "Заказы" или нет?
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34114092
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и собственно сам сабж...
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34114134
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилКСтоит ли хранить общую сумму заказа в таблице "Заказы" или нет?Распишите плюсы и минусы обоих вариантов в Вашем конкретном случае с грубой прикидкой коэффициента значимости каждого из влияющих факторов. На месте ведь всегда виднее.
Можете сделать это в данном топике, но тогда Вам придется доказывать значимость каждого из факторов, так как не исключено, что будут иные мнения.
А что Вы имеете в виду под сабжем ? Допустимо ли иметь зависимости, кроме как от основного ключа ? Типа, в первом абзаце ? Опять же Ваше решение, если в этом есть практический смысл, то ради Бога, а на нет и суда нет.
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34114142
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChAТипа, в первом абзаце ?На всякий, в первом абзаце нарушения 3НФ нет. Имелось в виду аналогия, типа, храним отдельные значения и их сумму, но в одной таблице.
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34116216
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChAРаспишите плюсы и минусы обоих вариантов
Если хранить сумму в таблице "Заказы", то скорей всего производительность отчётов увеличится, но тогда нужно будет "вешать" тригер на изменение в поле "Сумма" таблицы "Заказы_детали", что в свою очередь уменьшит производительность при редактировании данных. Важность производительности отчётов и скорости редактирования ... допустим одинаковая, остальные показатели не учитываем (например, физ. память).
Проверить на практике немного утомительно. Может априори уже есть правильный ответ?

По 3нф:
Да, в примере нарушения 3-нф нет, но есть избыточность данных, что может привести к нарушению целостности данных.
Основной вопрос - это насколько/в какой мере испоьзование двух связанных таблиц уступает производительности одной таблицы для формирования отчёта. Как определить когда наступает избыточная нормализация?
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34116412
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилК Как определить когда наступает избыточная нормализация?
Попробуйте вывести в грид заказы с суммами и поскроллировать вперед-назад
(сумму желательно хранить)
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34116540
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилКМожет априори уже есть правильный ответ?Ну не может быть однозначного ответа. Могу только выразить частное мнение, что вряд ли есть необходимость делать дополнительное поле в Вашем случае. Агрегирующие операции типа SUM выполняются достаточно быстро, так что принципиального, на порядки, прироста производительности при выполнении отчетов добавлением предрассчитанной суммы Вы все равно не получите. Но взамен получаете некие хлопоты по синхронизации и обновлению.
МихаилКОсновной вопрос - это насколько/в какой мере испоьзование двух связанных таблиц уступает производительности одной таблицы для формирования отчёта. Как определить когда наступает избыточная нормализация?Как правило, при очень больших объемах, когда затраты на чтение и агрегацию из подчиненной таблицы превышают некий порог, после которого выгоднее один раз выполнить предрасчет. Чаще всего это присуще системам OLAP/DSS, но что-то мне подсказывает, что это не Ваш случай.
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34116953
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ChA при очень больших объемах, когда затраты на чтение и агрегацию из подчиненной таблицы превышают некий порог, после которого выгоднее один раз выполнить предрасчет
Можно уточнить о каких цифрах идёт речь?
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34117175
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL Server попадает в эту категорию?
...
Рейтинг: 0 / 0
Когда оптимально отклонение от 3нф-формы?
    #34117293
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилКМожно уточнить о каких цифрах идёт речь?Нет, не могу, это слишком зависит от контекста задачи, о чем уже говорилось выше. Если эта сумма вычисляется только один раз в каком-либо отчете, то, скорее всего, не имеет смысл ее предрасчитывать. Или рассчитать один раз только перед выполнением ровно этого отчета. Много всяких "или", и если не хватает логики для выбора того или иного решения, то критерий истины один - практика. Конкретных чисел Вам никто не даст, а если и даст, то лично я бы не поверил им без дополнительной проверки в своей конкретной ситуации.
МихаилКSQL Server попадает в эту категорию?Исходя из вышесказанного, надеюсь понятно, что принятие решения в наименьшей, если не сказать - никакой, степени не зависит от сервера, разумеется, если выбирать из зарекомендовавших себя на рынке.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Когда оптимально отклонение от 3нф-формы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]