Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нормальные формы бд
Форумы портала PHP.SU » » Работа с СУБД » Нормальные формы бд

Страниц (1): [1]
 

1. Alho - 27 Июня, 2012 - 10:44:22 - перейти к сообщению
Задался размышлением. С одной стороны нормальные формы баз данных весьма логичны.
Но с другой точки зрения они же, по сути, завтавляют использовать более сложные запросы, с множеством joinов или выборки из предварительно выбранных таблиц, что делает сложнее и разработку и увеличивает время выборки.

Где середина? До какой нормальной формы лучше доводитьть свою бд? Или вообще это не принципиально?
2. Zuldek - 27 Июня, 2012 - 10:58:18 - перейти к сообщению
Alho пишет:

Где середина? До какой нормальной формы лучше доводитьть свою бд? Или вообще это не принципиально?

Середина между чем и чем?
Использование joinов и выборка из нескольких таблиц, это, как я понял, - один берег, второй какой?
3. Мелкий - 27 Июня, 2012 - 11:30:38 - перейти к сообщению
Как не так давно написали на хабре и мне понравилась формулировка:
http://habrahabr.ru/qa/20599/ пишет:
"джойны — зло" - говорят те, кто не знает, что такое индексы и как ими пользоваться.


Нормализация делает работу с базой быстрее и удобнее. Когда это внезапно становится не так - вводят избыточность некоторых данных.
Ведь за избыточными, ненормализованными данными надо отдельно следить и не забывать, что надо будет поменять ещё тут, тут и тут - что опять же лишние усилия и код. А главное - резко вырастает вероятность что-то забыть и схлопотать баг, за которым потом не один час бегать.
4. EuGen - 27 Июня, 2012 - 11:34:17 - перейти к сообщению
На практике, золотая середина - 3 НФ. Иногда, для большего контроля - форма Бойса-Кодда.
Как уже сказали выше - контроль целостности данных - это, при правильной организации БД, не будет в ущерб производительности (разве что на константное время, которым можно пренебречь)
Тот же MySQL, в случае использования индексов при JOIN'ах, исполняет запрос с хорошим планом и хорошим временем.

 

Powered by ExBB FM 1.0 RC1