powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / А чем плохо хранить все данные в одной ненормализованной таблице?
25 сообщений из 31, страница 1 из 2
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35951030
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

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

Так вот, вопрос вот в чем: а что плохого, чтобы в базе данных была только одна денормализованная таблица?

Я вот нутром чувствую, что оно не красиво... А почему - объяснить не могу...

Вы то как думаете?
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35951147
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальная форма — требование, предъявляемое к отношениям в теории реляционных баз данных для устранения из базы избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных.

С уважением, Naf
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35951156
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetal wrote:

> Так вот, вопрос вот в чем: а что плохого, чтобы в базе данных была
> только одна денормализованная таблица?

0) Таблица может "лопнуть". В СУБД обычно есть ограничения на количество
полей в таблице и физическую длину записи (не более длины одной страницы БД).
Ваша денормализованная запись может тупо не влезть в эти ограничения.

1) Таблица будет хранить много лишних данных. Собственно, чтобы не
хранить в избытке, несколько раз, одни и те же данные и придумали нормализацию.
В таком случае ваша таблица будет слишком "длинной" и "жирной", т.е. её будет
тупо труднее читать с диска и в конце концов производительность её обработки
упадёт.

Я лично имел опыт денормализации таблицы "для повышения производительности".
Сначала это работало, но с ростом объёмов данных рост денормализованной таблицы
был квадратичный или кубичный, и в итоге денормализованная таблица тупо
перестала влазить в кэш СУБД и производительность запросов с ней перестала
рости, так что пришлось перейти обратно на JOIN-ы. Это где-то на 5-10 млн
записей начинается (тут всё от записей и объёма кэша зависит, конечно).

Это - две основные проблемы ДЕнормализованной таблицы. Это значит,
что у вас было всё сначала нормализовано, а потом физически сохранялась
продукция нормализованных таблиц. Если это просто НЕнормализованная структура,
и она меняется, то сюда ещё добавяться аномалии несогласованности данных.
Типа 3 раза стрелял один и тот же рядовой Иванов Петр Эдгарович, два раза он
был внесён как "Иванов Петр Эдгарович", а третьий раз - как "Иванов Петр
Ейгарович". Теперь вопрос: какое отчество у Иванова.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35951229
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так или иначе все упрется в обработку этих таблиц... Где, с ростом числа записей и количества полей, нормализованые таблички будут обгонять по производительности ненормализованые.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35951233
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv....Вот все это укладывается в несколько слов: если хочешь заниматься любовью с несоответствием данных в разных источниках - пользуйся денормализованными таблицами.

Автор,

Чем плохо загонять используемые константы в код программы?
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35951590
Гость121212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vetal,

За начальную простоту ненормализованной таблицы при увеличением объема данных и при необходимости выполнить более-менее сложный запрос придеться платить потерей производительности.
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35952683
DenKrep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В целом коллеги всё правильно говорят... И про НФ и прочее сейчас ещё много чего расскажут и без меня.

Однако не всё так однозначно в мире данных. Денормализация подчас может и ускорить процесс: RTFM Хранилища данных, star scheme, snowflake etc.

Всё зависит от требований и ожиданий, которые выставляются к данной базе.

PS: не забываем что join-ы тоже ресурсоёмки. И нечто подбное log-ам, может быть эффективнее хранить не в нормальной форме. А если на это ещё и OLAP tool какой-то навишивают....

2Vetal: плохого - если вдруг какой-то классификатор меняется - тебе нужно делать массовый апдейт по этой таблице (либо не надо, если нужно сохранить ИСТОРИЧЕСКИЕ данные - как они были тогда) - тут уж как я говорил - какие требования выставлены.

Плюс одни и те же литералы хранятся по несколько раз - это стоит дороже в плане места. Однако место на HDD сейчас стоит не так уж дорого, потому снова таки - выходим из требований и строим по ним (в дискусии по затратам на блочные чтения итд вдаваться не буду сейчас ибо исходная информация - база маленькая).
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35952989
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DenKrep wrote:

> PS: не забываем что join-ы тоже ресурсоёмки. И нечто подбное log-ам,
> может быть эффективнее хранить не в нормальной форме. А если на это ещё
> и OLAP tool какой-то навишивают....

Ага, рассказывай. Как раз в логах ещё надо 100 раз подумать, прежде
чем денормализировать, потому что там объёмы данных большие.
У нас вызовы логируются, с параметрами. Были бы ненормализованные
таблицы, кол-во записей в таблице лога увеличилось бы в среднее
число параметров вызова (сама таблица параметров с узкой записью,
короткая).

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35953057
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо. Насчёт больших баз данных - однозначно нормализация рулит!

А вот если у меня в базе никогда не будет больше нескольких десятков тысяч записей - есть ли смысл использовать денормализованную таблицу, или лучше всё-таки нормализовать?
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35953221
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vetal,
делать сразу хорошо, а плохо само получится. Нормализовать небольшую базу просто, а вот потом разгребать ненормализованное г... с актуальными данными внутри - отвратительное занятие.
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35953406
trdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VetalА чем плохо хранить все данные в одной ненормализованной таблице?
а ты снеси все внутренние стены в своей квартире и сразу врубишся че к чему :)
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #35953838
Enot5467
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запросы сложнее получаются для разделения данных, соответственно все дольше работает. Я просто в одной таблице объединил шапки и табличные части самых разных документов с самой разной структурой. Так лучше не делать
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36801401
Фотография Katy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychVetal,
делать сразу хорошо, а плохо само получится. Нормализовать небольшую базу просто, а вот потом разгребать ненормализованное г... с актуальными данными внутри - отвратительное занятие.+1000. Но к сожалению, иногда, это не аргумент
извините, что поднимаю древнюю тему, но не хотелось бы плодить топики.
Похожая ситуация Есть небольшая служебная БД, используется для хранения метаданных. Возник "философский" спор: нужно ли всё засунуть в одну таблицу, или разнести разные сущности в разные таблицы. Мне кажется настолько естественным нормализовать БД, что даже сходу не смога найти аргументы на вопрос "а зачем?".
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804067
Фотография Хопа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafНормальная форма — требование, предъявляемое к отношениям в теории реляционных баз данных для устранения из базы избыточности, которая потенциально может привести к логически ошибочным результатам выборки или изменения данных.

С уважением, Naf

Вы все перепутали. Как раз изменения в сильно нормализованной базе могут легко привести к потере данных, в отличие от денормализованой.
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804485
Хопа,

Дааа? Пример можете привести? И что значит сильно нормализована?
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804687
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VetalВсем привет!

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

Так вот, вопрос вот в чем: а что плохого, чтобы в базе данных была только одна денормализованная таблица?

Я вот нутром чувствую, что оно не красиво... А почему - объяснить не могу...

Вы то как думаете?

Если база небольшая и в дальнейшем не предполагается её рост и полей не более 20 штук, то вполне можно обойтись и одной таблицей.
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804692
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValGer...
Если база небольшая и в дальнейшем не предполагается её рост и полей не более 20 штук, то вполне можно обойтись и одной таблицей.

ога,
вот так оно обычно и начинается - "да скока той зимы тех данных ! - и так сайдёт !"

вот только и заканчивается, тоже всегда одинаково - плохо
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804694
Фотография pureproft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VetalХорошо. Насчёт больших баз данных - однозначно нормализация рулит!

А вот если у меня в базе никогда не будет больше нескольких десятков тысяч записей - есть ли смысл использовать денормализованную таблицу, или лучше всё-таки нормализовать?

Забыть про субд,сиквел, и пр. проглjтить в память и получить полную свободу хранения, поиска, представления, в соответствие с предметной областью....

в 1992г внедрял(официально купив) nwsql а xbase гуру крутили у виска, а теперь я кручу показывая на тех, кто в любую дырку пытается запихнуть sqlsrv
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804792
Фотография Хопа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лень регитьсяХопа,

Дааа? Пример можете привести? И что значит сильно нормализована?

Ага. Весь год магазин продавал трусы и добавлял записи в две таблицы - нормализованную и денормализованную. Потом трусы кончились и поступили майки с тем же артикулом. Бух поправила название товара... дальше рассказывать про то, как по отчету по нормализованной таблице оказалось, что магазин торговал майками целый год? А в денормализованной таблице, как ни странно, все осталось на своих местах и отчет получился правильным.

Вывод - immutable данные рулят. А update придумали идиоты
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804894
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХопаПотом трусы кончились и поступили майки с тем же артикулом.пример такой мутации в студию
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36804917
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага. Весь год магазин продавал трусы и добавлял записи в две таблицы - нормализованную и денормализованную. Потом трусы кончились и поступили майки с тем же артикулом. Бух поправила название товара... дальше рассказывать про то, как по отчету по нормализованной таблице оказалось, что магазин торговал майками целый год? А в денормализованной таблице, как ни странно, все осталось на своих местах и отчет получился правильным.

Вывод - immutable данные рулят. А update придумали идиоты
О! Буду использовать на собеседованиях. Кто не сможет возразить - сразу, до свидания! )))
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36805004
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VetalВсем привет!

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

Так вот, вопрос вот в чем: а что плохого, чтобы в базе данных была только одна денормализованная таблица?

Я вот нутром чувствую, что оно не красиво... А почему - объяснить не могу...

Вы то как думаете?
Если речь идет о схеме БД
Ну обычно есть риски аномалий ввода и удаления, и конечно же контроля избыточности.
У даления: напримр, есть склады и есть там всякие товары. Вот нет ни одного товара на складе таком-то, то этот склад нуно либо тепрь удалить из этой обльшой таблы, (также незя добавить склад без товаров). Ну разве что с пустыми товарами. Но это тоже типа мусор редкостный в БД набирается.
Избыток: у вас товары одной фирмы - нуно каждый раз повторять все реквизиты фирмы (как правило операторы интуитивно этого не делают - получается типа пустые значения, т.е. они как бы типа мыстленно нормализуют). Теперь ошибка в реквизите: нуно все просматривать везде править - проблемы контроля избыточности. В общем все это ведет к рискам потерь данных.
Отдельно риски гемором с ОЦ, и в общем случе с написанием запросов могут вознкать как отдельный приз. Часто прежде чем написать запрос нуно еще написать несколько проверочных, чтобы понять на скока все плохо с данными. И запрос тоже писать с учетом косяков в данных.

Если речь идет о каком-то представлении для отчета, а представлени получено из нормальных таблов, то ниче: ну это просто промежуточный запрос.
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36807889
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychХопаПотом трусы кончились и поступили майки с тем же артикулом.пример такой мутации в студиюНу пример-то как раз легко привести (ничуть при этом не выступая за денормализованные таблицы). Поступали нам оные спортивные трусы от ООО "Торпедо" с ИНН 111111111111, а потом ООО реорганизовалось в ЗАО "ЗИЛ" с ИНН 22222222222. Все договора с контрагентом продолжают действовать, даже банковские реквизиты могут остаться теми же - мы просто в БД ИНН и название у контрагента поменяли. И опа... Все счета-фактуры за прошлый год сами собой поменялись.
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36807973
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyООО "Торпедо" с ИНН 111111111111, а потом ООО реорганизовалось в ЗАО "ЗИЛ" с ИНН 22222222222. Все договора с контрагентом продолжают действовать, даже банковские реквизиты могут остаться теми же - мы просто в БД ИНН и название у контрагента поменяли. И опа... Все счета-фактуры за прошлый год сами собой поменялись.Да? Что, правда? И даже банковские реквизиты те же остались? У новой-то компании. Пруф в студию, пока своими глазами такое не увижу, не поверю.
...
Рейтинг: 0 / 0
А чем плохо хранить все данные в одной ненормализованной таблице?
    #36807974
Ortogon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyegorychХопаПотом трусы кончились и поступили майки с тем же артикулом.пример такой мутации в студиюНу пример-то как раз легко привести (ничуть при этом не выступая за денормализованные таблицы). Поступали нам оные спортивные трусы от ООО "Торпедо" с ИНН 111111111111, а потом ООО реорганизовалось в ЗАО "ЗИЛ" с ИНН 22222222222. Все договора с контрагентом продолжают действовать, даже банковские реквизиты могут остаться теми же - мы просто в БД ИНН и название у контрагента поменяли. И опа... Все счета-фактуры за прошлый год сами собой поменялись.
Решается хранением исторических данных. И что у вас за нужда на регулярной основе печатать первичку за прошлые периоды? В книгах покупок/продаж ИНН у вас тоже меняется?
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / А чем плохо хранить все данные в одной ненормализованной таблице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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