2016-05-05 2 views
0

Я изучаю базы данных в школе и имею назначение, которое должен выполнять нормализация. Думаю, у меня хорошее понимание по этому вопросу. У меня есть проект, над которым я работаю, что мне нужно выполнить нормализацию для нескольких таблиц. Я смог сделать это на нескольких столах, но другие, я просто не могу думать о каких-либо частичных или транзитивных зависимостях. Мой вопрос заключается в том, нужно ли каждой таблице/сущности пройти нормализацию?Должен ли каждый стол проходить нормализацию?

Заранее благодарим за ваши ответы.

+1

Значимость нормализации очень важна, поэтому вы можете узнать, когда и где это целесообразно использовать в реальной базе данных. –

+0

Нет. В этом случае данные нормализуются. –

ответ

1

Как общий совет, вы должны иметь ваш начальный дизайн базы данных нормализован. Это означает просто исключение избыточности путем разложения отношений с проблемными зависимостями в нормальной форме Boyce-Codd или четвертой нормальной формы (если вы не потеряете некоторые зависимости, и в этом случае вы должны выбрать Третью нормальную форму).

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

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

+0

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

+0

@TAM, это абсолютно правильно! – Renzo

0

Короткий ответ: да, я бы посоветовал хотя бы отправиться в 3NF.

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

Поскольку вы студент, вы не можете знать о представлениях, их можно использовать там, где вы думаете, «мне нужно нормализовать, но это делает так много смысла, чтобы не»

Смежные вопросы