powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ненормальная таблица
20 сообщений из 20, страница 1 из 1
Ненормальная таблица
    #34668913
Горбатый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте !
Имеется база данных, основное назначение которой оперативная выписка и ввод документов. Одна из главных таблиц в ней таблица с товарами где хранятся названия, номенклатурные номера, прочие различные атрибуты. Среди прочих главные: остатки по складам (поле номер склада в них остаток, с десяток разных). Основаная выписка проходит с двух складов. Таблица денормализована. Записей в таблице ~70000. В книжках прочитал что транзакционные базы данных должны буть нормализованны по максимуму, но мы имеем такую. Внимание вопрос будет ли прирост производительности если эту таблицу нормализовать, что вообще можно с ней сделать ? Работа эта большая, а будет ли толк. По своему скудоумию оценить не могу помогите пожалуйста сирому !?
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34668938
ГорбатыйЗдравствуйте !
Имеется база данных, основное назначение которой оперативная выписка и ввод документов. Одна из главных таблиц в ней таблица с товарами где хранятся названия, номенклатурные номера, прочие различные атрибуты. Среди прочих главные: остатки по складам (поле номер склада в них остаток, с десяток разных). Основаная выписка проходит с двух складов. Таблица денормализована. Записей в таблице ~70000. В книжках прочитал что транзакционные базы данных должны буть нормализованны по максимуму, но мы имеем такую. Внимание вопрос будет ли прирост производительности если эту таблицу нормализовать, что вообще можно с ней сделать ? Работа эта большая, а будет ли толк. По своему скудоумию оценить не могу помогите пожалуйста сирому !?
В теории - все должно нормализовываться.
На практике - не всегда так. Иногда, для ускорения получения результатов (чтобы не выполнять сложные запросы), делают частичную денормализацию. Правда, такое практикуется чаще всего в OLAP/Data Warehouses - системах, а не в OLTP...

С другой стороны, если таблицу нормализовать "по максимуму", то ускорения работы может не произойти и даже может произойти замедление(!).
Как "+" - в нормализованной таблице можно возложить на сервер БД много работы по контролю непротиворечивости данных (constarints), которую иначе потребовалось бы вести вручную/через Хранимые процедуры/триггеры....

Вообще мое мнение (как практика): "Система работает? Да? Ну и не трожь ее!!!"
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34668972
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый пишет:
> но мы имеем такую. Внимание вопрос будет ли прирост производительности
> если эту таблицу нормализовать, что вообще можно с ней сделать ? Работа
> эта большая, а будет ли толк. По своему скудоумию оценить не могу
> помогите пожалуйста сирому !?


Это зависит от конкретики системы. Как ненормализована таблица,
в каких запросах участвует. Одно не понятьно - 70000 записей -
достаточно скромные объемы данных, там все должно быстро работать.
Видимо все же у вас кроме ненормализованности еще и в приложениях
полная каша.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34669105
Горбатый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же говорю в таблице кроме инормации о товаре храняться остатки. Для тех кто в бронепоезде структура сокращенно (GoodsID, Nomnum, ... W_1,W_2...W_12,...GoodsKindID)
Одновременно с ней работает около 30 юзеров. Выписывая товары делаетяся апдейт полю с остатком. Выписка идет с нескольких складов. OLAP не главное главное выписка. Трогать ничего не хочется, но вот начальники они расстраиваются из-за тормозов. Что-то нужно сделать или грамотно мотивировать бездействие.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34669169
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбатый пишет:
> Одновременно с ней работает около 30 юзеров. Выписывая товары делаетяся
> апдейт полю с остатком. Выписка идет с нескольких складов. OLAP не

30 пользователей. 70000 записей. Что ж там может тормозить ?

Ну даже если у них в одной записи по всем складам остатки храняться, и
пользователи все в одну запись тычятся, то все равно по идее не должно
быть так это критично. Сколько проходит изменение остатка ? Ну пусть
секунду. что ж им пару секунд не подождать ?
Я думаю, что тебе надо выяснить сначала конкретно, какие запросы
к каким данным порождают конкуренцию по доступу к данным, а
потом ты уже сможешь понять, виной ли там ненормализацованность
таблиц, или нет. Ненормализованность страшна более теоретическими
последствиями, напр., ты не сможешь хранить данные по более чем
N складам. Но для производительности как правило достаточно
все равно (не абсолютно все равно).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34669180
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и не всегда нужна нормализация, но держать остатки по складам в полях под каждый склад в справочнике номенклатуре это ЖЕСТЬ
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34670210
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГорбатыйВ книжках прочитал что транзакционные базы данных должны буть нормализованны по максимуму, но мы имеем такую. Внимание вопрос будет ли прирост производительности если эту таблицу нормализовать, что вообще можно с ней сделать ? Работа эта большая, а будет ли толк.Денормализация, как правило, ускоряя выборку данных, может сильно замедлить модификацию данных. Поэтому ее применение типично, как тут уже заметили, для систем анализа данных.
Основной причиной торможения в вашем случае, если правильно понял ситуацию, могут являться блокировки, учитывая, что работаете вы с блокировочником, если судить по вашему профилю. Есть подозрение, что интересы пользователей часто пересекаются на одних и тех записях, хотя по смыслу этого быть не должно. Типичный пример, пользователи оперируют одним и тем же товаром, но из-за того, что остатки для каждого склада находятся в одной и той же записи, то они будут постоянно сталкиваться по интересам и будут вынуждены ждать друг друга. Надеюсь, что при этом транзакции используются ровно столько, сколько необходимо для обеспечения непротиворечивости данных, а не открываются в момент, когда пользователь решил редактировать, а закрываются, когда он допил кофе. Речь пока не идет о правильной индексации, которая может сильно повысить общую производительность, возможно у вас идет постоянное сканирование(scan), вместо точного поиска(seek).
IMHO, переделывать надо, и обязательно.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34670462
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA пишет:

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

Это не ДЕнормализания. Это НЕнормализация. Для того, чтобы была ДЕнормализация,
надо БД сначала нормализовать, а потом денормализовать. И при этом
обычно таблица остается во 2-ой или 1-ой НФ.
А это - не тот случай. Тут 1НФ нарушается.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34670466
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA пишет:

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

Это я к тому, что замечание не к месту.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34670660
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЭто не ДЕнормализания. Это НЕнормализация. Для того, чтобы была ДЕнормализация,
надо БД сначала нормализовать, а потом денормализовать. И при этом
обычно таблица остается во 2-ой или 1-ой НФ.
А это - не тот случай. Тут 1НФ нарушается.Благодарю, Вы открыли мне веки :) Кстати, не будете ли так любезны, процитировать место из топика автора, где Вы обнаружили нарушение 1НФ ?
MasterZivЭто я к тому, что замечание не к месту.Предлагаю это решить автору темы.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34670709
Горбатый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас начну открывать военные тайны.
Как уже говорил ранее выписка осуществляется с нескольких складов. Если на одном складе товара не хватает, то он выписывается с другого. Далее самое интересное в этой же таблице хранятся остатки по фирмам (у нас их несколько, а база одна) и склад закреплен за несколькими фирмами. Товар может одновременно числиться на нескольких фирмах А,В,С лежа на складе А.
Структура: GoodsID..W_1,W_2,...F_1,F_2 и т.д.). Т.е товар выписывается со склада, сразу же и с фирмы. Так вот получается онлайн или как мы называем живая выписка. В любой момент времени видно ситуацию на складе и фирме. Зачем ? Так велено.
Вся эта механизма поддерживется триггерами.
Мысля по нормализации во какая: создать отдельные таблицы типа (GoodsID,W_1) и (GoodsID,F_1).
Написать ряд триггерочков по поддержке правил. Вот стоит ли все это ? Работа-то каторжная.
Если не стоит, то чего делать.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34670725
Горбатый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot ChA] Надеюсь, что при этом транзакции используются ровно столько, сколько необходимо для обеспечения непротиворечивости данных, а не открываются в момент, когда пользователь решил редактировать, а закрываются, когда он допил кофе.
Панимаите теперь что разных действий очень много. Да исчо регистрация изменений.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34670919
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГорбатыйМысля по нормализации во какая: создать отдельные таблицы типа (GoodsID,W_1) и (GoodsID,F_1).
Написать ряд триггерочков по поддержке правил. Вот стоит ли все это ? Работа-то каторжная.
Если не стоит, то чего делать.Судя по Вашему настрою, то не стоит, пусть кто-нибудь другой этим занимается.

P.S. Вам в принципе надо менять подход, IMHO. Отказаться от хранения актуальных остатков, ну разве что, при больших оборотах, фиксировать остаток на начало месяца, например. А получать актуальный остаток простым суммированием. Это будет выполняться достаточно быстро, зато конфликтов между пользователями будет значительно меньше. Кроме того, так как товар одновременно "принадлежит" фирме и складу, то, возможно, вместо приведенных Вами 2-х таблиц лучше использовать одну, "типа" (GoodsID, WareHouseID, FirmID, ...), которая будет отражать "атомарное" движение товара между владельцами. Заодно решается проблема логгирования, если добавить соответствующие поля в таблицу. Более точно, какой структуры желательно иметь таблицы можно сказать, только имея дополнительную информацию. Впрочем, это только направление, дальше, как мне кажется, Вам стоит подумать самому.
Кстати, я бы не рекомендовал сильно увлекаться триггерами, иногда процедуры могуть стать более предпочтительным решением, но может и нет, зависит от нюансов.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34671046
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA пишет:
> процитировать место из топика автора, где Вы обнаружили нарушение 1НФ ?

Там несколько остатков хранится в одной записи, я не ошибся ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34671052
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТам несколько остатков хранится в одной записи, я не ошибся ?И Вы считаете, что это признак 1НФ ? IMHO, Вам стоит освежить свои знания теории.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34671068
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA пишет:
> Там несколько остатков хранится в одной записи, я не ошибся ?
>
> И Вы считаете, что это признак 1НФ ? IMHO, Вам стоит освежить свои
> знания теории.

Да, именно это оно и есть. Если у вас другое мнение, оно неправильное.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34671184
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДа, именно это оно и есть. Если у вас другое мнение, оно неправильное.Уже не смешно, уже грустно. Поройтесь в Google, что ли... Вот Вам Википедия , на всякий.

P.S. Сказать глупость, это еще полбеды, но настаивать на ней ?
P.P.S. В топике автора можно усмотреть, в лучшем случае, нарушение 3НФ - зависимость между значениями неключевых атрибутов.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34671432
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA пишет:

> Уже не смешно, уже грустно. Поройтесь в Google, что ли... Вот Вам
> Википедия <http://ru.wikipedia.org/wiki/Нормальная_форма>, на всякий.

Ну так что такое W_1,W_2,...F_1,F_2 и т.д. ?
W_1,W_2,... - массив значений. Т.е. неатомарный атрибут.
Если бы СУБД поддерживала массивы, ты мог бы это запихать
в одну колонку W, но ты не можешь, а изображаешь массив
в виде суффикса имени колонки. Надеюсь, что ты согласен,
что массив в поле - это нарушение 1НФ ?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34671478
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivИзвините, но не вижу смысла продолжать дискуссию, времени жалко. Можете продолжать себя убеждать, что все так и есть, как Вы пишете, но это ни на йоту не добавит убедительности Вашим рассуждениям.
...
Рейтинг: 0 / 0
Ненормальная таблица
    #34673484
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA пишет:
> Извините, но не вижу смысла продолжать дискуссию, времени жалко.

ОК, не продолжай. Мне это тоже не интересно.

> Можете
> продолжать себя убеждать, что все так и есть, как Вы пишете, но это ни
> на йоту не добавит убедительности Вашим рассуждениям.

Я искренне думал, что ты что-то не понимаешь, и хочешь понять.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Ненормальная таблица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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