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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нормальные формы бд

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Alho
Отправлено: 27 Июня, 2012 - 10:44:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




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

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


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Alho пишет:

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

Середина между чем и чем?
Использование joinов и выборка из нескольких таблиц, это, как я понял, - один берег, второй какой?
 
 Top
Мелкий Супермодератор
Отправлено: 27 Июня, 2012 - 11:30:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Как не так давно написали на хабре и мне понравилась формулировка:
http://habrahabr.ru/qa/20599/ пишет:
"джойны — зло" - говорят те, кто не знает, что такое индексы и как ими пользоваться.


Нормализация делает работу с базой быстрее и удобнее. Когда это внезапно становится не так - вводят избыточность некоторых данных.
Ведь за избыточными, ненормализованными данными надо отдельно следить и не забывать, что надо будет поменять ещё тут, тут и тут - что опять же лишние усилия и код. А главное - резко вырастает вероятность что-то забыть и схлопотать баг, за которым потом не один час бегать.


-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 27 Июня, 2012 - 11:34:17
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




На практике, золотая середина - 3 НФ. Иногда, для большего контроля - форма Бойса-Кодда.
Как уже сказали выше - контроль целостности данных - это, при правильной организации БД, не будет в ущерб производительности (разве что на константное время, которым можно пренебречь)
Тот же MySQL, в случае использования индексов при JOIN'ах, исполняет запрос с хорошим планом и хорошим временем.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB